1989/02/01
20. zenbakia
eu es fr en cat gl
Aparecerá un contenido traducido automáticamente. ¿Deseas continuar?
Un contenu traduit automatiquement apparaîtra. Voulez-vous continuer?
An automatically translated content item will be displayed. Do you want to continue?
Apareixerà un contingut traduït automàticament. Vols continuar?
Aparecerá un contido traducido automaticamente. ¿Desexas continuar?
Batuketak
Hona hemen matematikan ikasten den lehen eragiketa: BATUKETA. Garai bateko irakasteko sistemaren arabera alabeharrez buruz ikasi behar izaten zen eta nekez bederen ikasten zen.
Programaren zatiak
Gaur egun berriz, irakasteko era aldatu den arren gauza bera lortu nahi da, baina era alaiagoan. Askotan edo ia kasu gehienetan, lan hau irakasleen esku uzten den zerbait da. Eta gurasoek zer? Pertsona helduagoek zer? Hasierak edozein zaletasunerako ezinbesteko garrantzia izaten du. Lehen topaketak beti izaten du pertsonengan eragina. Guzti hau zertarako? galdetuko du irakurle batek baino gehiagok. Ba, erantzuna erraza da. Guzti hau, ordenadorearen aroari ekin zaion belaunaldi honetan, jolastuz ikas daitekeela azaltzeko. Batzuentzat ordenadorearen erabilpena jolasetara muga badaiteke ere, beste askorentzat lan-tresna bilakatzen da. Beste batzuentzat berriz, jolas-moduan irakasteko tresna egoki. Hau da guk gaur programa honekin azaldu nahi duguna. Ordenadorea ez da martzianoz beteriko etxe bat bakarrik. Baditu (hori azaltzen ahalegindu gara bederen orain arte) beste erabilpen batzuk ere. Honek, froga txiki bat besterik ez du izan nahi. Demostrazio bat da, zuk (guraso, pertsona heldu, ...) haur bat batuketak lantzeko laguntza eske hurbiltzen zaizunean pikotara bidali beharrean berari lagunduz biok une alaia pasatu ahal izateko. 10 REM BATUKETAK 20 KEY OFF:SCREEN 2:SCREEN 0:COLOR 2 30 DIM BAT$(17),ZENB$(6) 40 LOCATE 12,20:COLOR 2:PRINT “Kaixo, ongi etorria programa honetara!!!”: FOR I=1 TO 3000:NEXT I 50 CLS:COLOR 2:RANDOMIZE TIMER 60 LOCATE 1,36:PRINT “BATUKETAK”:LOCATE 2,36:COLOR 3:PRINT “=========”:COLOR 2 70 LOCATE 9,7:PRINT “Batugaien digitu-kopurua (3-15):”;:COLOR 4:BEEP: INPUT “ “,N1$:N1=VAL(N1$) 80 IF N1 3 OR N1 15 THEN COLOR 3:LOCATE 21,7: PRINT “3tik 15era bitartekoa izan behar du!”:LOCATE 11,7:PRINT SPC(70): LOCATE 11,7:COLOR 2:GOTO 70 90 LOCATE 21,7:PRINT SPC(70) 100 COLOR 2:LOCATE 13,7:PRINT “Batugai-kopurua (2-6):”;:COLOR 4:BEEP: INPUT “ “,N2$:N2=VAL(N2$) 110 IF N2 2 OR N2 6 THEN COLOR 3:LOCATE 21,7: PRINT “2tik 6ra bitartekoa izan behar du!”:LOCATE 15,7:PRINT SPC(70): LOCATE 15,7:GOTO 100 120 MAX=0:FOR J=1 TO 6:ZENB$(J)=””:NEXT J:GA=0 130 FOR I=1 TO N2:DIG=INT(RND*(N1-3))+3 140 IF DIG MAX THEN MAX=DIG 150 FOR J=1 TO DIG:D=INT(RND*10) 160 IF D=0 AND I=DIG THEN 180 170 ZENB$(I)=RIGHT$(STR$(D),1)+ZENB$(I) 180 NEXT J 190 N1=MAX 200 NEXT I 210 CLS:LOCATE 1,36:COLOR 2:PRINT “BATUKETAK”:COLOR 3:LOCATE 2,36: PRINT “=========” 220 COLOR 2:FOR I=1 TO N2:LOCATE 7+I,54-LEN(ZENB$(I))*2:FOR J=1 TO LEN(ZENB$(I)) :PRINT MID$(ZENB$(I),J,1);” “;:NEXT J:NEXT I 230 COLOR 10:LOCATE 8+N2,51-N1*2:PRINT STRING$(N1*2+2,45) 240 BAT$=””:SAR$=”” 250 FOR I=1 TO 17:BAT$(I)=””:NEXT I 260 FOR I=N1 TO 0 STEP -1 270 FOR J=1 TO N2:LOCATE 7+J,52-(N1-I-1)*2:COLOR 2:IF (N1-I) =LEN(ZENB$(J)) THEN PRINT MID$(ZENB$(J),LEN(ZENB$(J))-(N1-I-1),1) 280 LOCATE 7+J,52-(N1-I)*2:COLOR 10:IF (N1-I) LEN(ZENB$(J)) THEN PRINT MID$(ZENB$(J),LEN(ZENB$(J))-(N1-I),1) 290 NEXT J 300 IF I=0 AND BAT$(1) “10” THEN 610 310 BAT$(I)=RIGHT$(STR$(BUR),1) 320 FOR J=1 TO N2 330 IF LEN(ZENB$(J)) N1-I THEN BAT$(I)=STR$(VAL(BAT$(I))+VAL(MID$(ZENB$(J),LEN(ZENB$(J))-(N1-I),1))) 340 NEXT J 350 BUR=VAL(LEFT$(BAT$(I),LEN(BAT$(I))-1)):BAT$=RIGHT$(BAT$(I),1)+BAT$ 360 LOCATE 9+N2,52-(N1-I)*2:COLOR 5:PRINT “\”;CHR$(29); 370 TE$=” “:WHILE ASC(TE$) 48 OR ASC(TE$) 57:TE$=INKEY$:IF TE$=”” THEN TE$=” “ 380 WEND:SOUND 2000,.8 390 PRINT TE$ 400 IF TE$=RIGHT$(BAT$(I),1) THEN 460 410 LOCATE 21,7:COLOR 3 420 PRINT “Seguru al zaude “;TE$;” sartu nahi duzula (B/E)?”:T$=” “ 430 WHILE T$ ”B” AND T$ ”b” AND T$ ”E” AND T$ ”e”:T$=INKEY$:WEND 440 LOCATE 21,7:PRINT SPC(70) 450 IF T$=”E” OR T$=”e” THEN 360 460 SAR$=TE$+SAR$ 470 IF BUR=0 AND I =1 THEN 610 480 COLOR 3:LOCATE 21,7:PRINT “Bururakorik ez baduzu 0 sartu.” 490 COLOR 5:LOCATE 7,52-(N1-I+1)*2:PRINT “\”;CHR$(29); 500 TE$=” “ 510 WHILE ASC(TE$) 48 OR ASC(TE$) 57 520 TE$=INKEY$:IF TE$=”” THEN TE$=” “ 530 WEND 540 SOUND 2000,.8:PRINT TE$:LOCATE 21,7:PRINT SPC(70) 550 IF VAL(TE$)=BUR THEN 610 560 LOCATE 21,7:COLOR 3 570 PRINT “Ziur al zaude “;TE$;” sartu nahi duzula (B/E)?”:T$=” “ 580 WHILE T$ ”B” AND T$ ”b” AND T$ ”E” AND T$ ”e”:T$=INKEY$:WEND 590 SOUND 2000,.8:LOCATE 21,7:PRINT SPC(70) 600 IF T$=”E” OR T$=”e” THEN 480 610 NEXT I 620 COLOR 3 630 IF BAT$=SAR$ THEN LOCATE 21,7:PRINT “ONGI!!! Batuketa ongi egin duzu.”: FOR I=1 TO 1000:NEXT I:GOTO 710 640 GA=GA+1:LOCATE 21,7:PRINT “GAIZKI!!!” 650 FOR I=LEN(BAT$) TO 1 STEP -1 660 IF MID$(BAT$,I,1) MID$(SAR$,I,1) THEN COLOR 13: LOCATE 9+N2,52-(LEN(BAT$)-I)*2:PRINT MID$(SAR$,I,1) 670 NEXT I 680 COLOR 3 690 IF GA=1 THEN LER$=”Aproba ezazu berriro.” ELSE LER$=”Batuketa honekin zailtasunak izan dituzu.” 700 LOCATE 21,17:PRINT LER$:LOCATE 23,29:PRINT “Jarraitzeko J sakatu.”:BEEP: TE$=””:WHILE TE$ ”J” AND TE$ ”j”:TE$=INKEY$:WEND:LOCATE 23,30: PRINT SPC(40):IF GA=1 THEN 210 ELSE 720 710 LOCATE 23,29:PRINT “Jarraitzeko J sakatu.”:BEEP:TE$=””:WHILE TE$ ”J” AND TE$ ”j”:TE$=INKEY$:WEND 720 LOCATE 21,7:PRINT SPC(70):LOCATE 23,7:PRINT SPC(70) 730 LOCATE 21,17:PRINT “Beste batuketarik egin nahi al duzu (B/E)?” 740 TE$=””:WHILE TE$ ”B” AND TE$ ”b” AND TE$ ”E” AND TE$ ”e”:TE$=INKEY$:WEND 750 IF TE$=”B” OR TE$=”b” THEN 50 760 CLS:LOCATE 13,27:COLOR 2:PRINT “A G U R !!! Beste bat arte.” 770 FOR I=1 TO 2000:NEXT I:CLS 780 END 790 REM AMAIA BATUKETAK - 60-110: Batuketen zailtasun-maila aukeratu, hots, batugaien digitu-kopurua eta batugai-kopurua.
- 120-200: Zenbakiak aleatorioki atera; lehenbizi zenbaki edo batugai bakoitzak izango duen digitu-kopurua eta ondoren digitu hauetako bakoitza, ezkerreko digituak Ø baino handiagoa izan beharko duelarik.
- 210-230: Batuketa pantailan azaldu.
- 260-610: Batuketa egin.
- 270-290: Eskuinetik hasita une bakoitzean batzen ari garen zutabea kolore desberdinez nabarmenduko da, aurretik nabarmenduta zeudenak normal jarriz.
- 310-350: Uneko zutabeko batura partziala lortzeko lehendik bururako zegoena hartuko da lehenik, ondoren zenbaki bakoitzak posizio horretan duen digitua (baldin badu) gehituz.
Lortutako emaitzak digitu bat baino gehiago baditu, hots, 10 baino handiagoa bada, ezkerreko digituak bururako gorde beharko ditugu. - 360-600: Lehenengo beheko zenbakia eskatuko zaizu eta ondoren bururakoa. Bururako ezer ez baduzu, Ø sartu beharko duzu.
Horrela jarraituko da ezkerreko zutabera iritsi arte. - 630: Ordenadoreak kalkulatutako emaitza (BAT$) eta zuk sartutakoa (SAR$) konparatu ondoren, ongi ala gaizki egin duzun adieraziko zaizu.
- 650-670: Batura zuzena ez bada, gaizki dagoen zenbaki bakoitza kolorez aldatuko da.
- 690-760: Batuketa bakoitzeko bi saio posible izango dituzu.
OHARRAK: - Ohartuko zinen zenbakiak aleatorioki ateratzerakoan digituz digitu egin dugula. Zergatik hori?
Ordenadoreek badute muga bat. Muga hortik gorako zenbakiak notazio esponentzialean idazten ditu eta nahiz eta kalkuluak burutzeko arazorik izan ez, zenbakiak pantailan agertzeko garaian eta batuketa pausoz pauso egiterakoan zailtasunak genituen. Beraz, karaktere-katea bezala tratatu behar izan ditugu. - Batugaien digitu-kopuruaren eta batugai-kopuruaren mugak alda daitezke, beti ere pantailaren neurriak kontuan izanik, noski. Horretarako 30, 70, 80, 100, 110, 120 eta 250 lerroetan aldatu beharko dira.
Kontuan izan batura gordetzeko erabiltzen den taulak digitu-kopuru maximoa baino handiagoa izan behar duela. |
Proiektu honen laguntzaile izan nahi baduzu,
harpidetu. Urtean 28 € baino ez.