Bestalde, kalkulua konplikatzen doan neurrian programaren zailtasuna era geometrikoan konplikatzen dela jakin behar da.
Mendel-en legeak elkarrizketaren bidez ikasteko hurbilketa besterik ez da ondoko programa hau. Horretarako adibide sinple bat erabiliko da.
Demagun izaera heredagarri zehatz bat dugula; kolorea adibidez. Gorria adierazteko G erabiliko dugu eta zuria adierazteko berriz Z. Honetaz gain, lehentasuna nork duen ez da adieraziko.
Kromosoma bakoitzeko gen bat kontsideratuko da eta, bi pertsonen genotipoak zehaztasunez eman ondoren, lehen belaunaldiko seme-alaben genotipoa zein izango den jakin nahi da. Erantzuna eman ondoren, ordenadoreak erantzun errealarekin konparatuko du eta zuzendu ala ez erabakiko.
Lehen genotipoak, ordenadoreak aleatorioki sortuko ditu eta erabiltzaileari komunikatuko dizkio.
Adibidez, gurasoetako bat GZ bada eta bestea ZZ, ondoko emaitza izango da erreala:
eta lehen belaunaldiko seme-alaben genotipoa berriz, ondokoa:
GZ ZZ ZZ GZ
Oharrak: 1.- Ikusiko duzunez, programa honen 400. lerroan CSRLIN funtzioa erabili da. Funtzio honek kurtsorea une jakin batean aurkitzen deneko lerroa itzultzen du emaitzatzat. Lerro honen helburua zera da: pantailan erabiltzaileari egingo zaizkion galderak 1. zutabean egin ordez barrurago idaztea. Horretarako LOCATE X, Y sententzia erabili da, non X-ek lerroa eta Y-k zutabea adieraziko bait dute. Gure kasuan Y berdina izango da ziklo osoan, baina X-ek gehituz joan behar du sententzia burutzen den bakoitzean. Bestalde, sententzia hau bi FOR sententzien barnean dagoenez, ezinezkoa zaigu lerroa I eta J indizeen bidez adieraztea. Beraz, eta INPUT sententziak kurtsorea hurrengo lerrora automatikoki eramaten duenez, aski da CSRLIN funtzioa erabiltzea. Behar bada, beste soluzio posible bat bururatuko zaizu, hau da, INPUT sententzian testua sartzerakoan zuriguneak ipintzea. Dena den, jakin ezazu CSRLIN funtzioa ere erabil daitekeela. 2.- Elkarrizketa bidezko programa gehienetan pausagune batzuk sartu behar izaten dira, erabiltzaileak erakusten zaizkion pantailak irakurtzeko denbora izan dezan. Askotan, pausagune hauek finkoak izaten dira, hau da, programatzaileak definitzen ditu eta berdinak izaten dira programa burutzen den bakoitzean. Pertsona bakoitzak erritmo desberdina eramaten duela kontutan hartuz gero, aurrera jarraitzeko nahia tekla bat sakatuz adieraztea izango da egokiena eta hauxe da hain zuzen ere programa honetan 250-290 lerroetan egiten dena. Bestalde, eta INKEY funtzioak sakatutako tekla guztiak kontutan hartzen dituenez, komenigarria izaten da tekla bat sakatzeko mezua pantailan azaldu aurretik sakatu diren teklak ahaztu eraztea. Horrela izan ezean, pantaila irakurtzeko denborarik gabe pasatuko litzaiguke. Hori da hain zuzen ere 270-280 lerroetan egiten dena. |
10 REM MENDEL-EN ANALISIA
20 KEY OFF : CLS
30 LOCATE 5,31 : PRINT "MENDEL-EN ANALISIA"
40 LOCATE 9,7 : PRINT "Programa honen helburua, Mendel-en analisi sinple bat burutzea da."
50 LOCATE 12,7 : PRINT "Bertan, lehen belaunaldiko seme-alaben genotipoa aztertuko da. Bes-"
60 LOCATE 14,7 : PRINT "talde, kromosoma bakoitzeko gen bat bakarrik hartuko da kontutan."
70 LOCATE 17,7 : PRINT "Ezaugarriak G (GORRIA) eta Z (ZURIA) letraz adieraziko dira."
80 REM ERABILIKO DIREN MATRIZEEN DIMENTSIONAKETA
90 DIM AITA$(2),AMA$(2),SA$(2,2),E$(2,2)
100 REM GURASOEN GENOTIPOEN SORMEN ALEATORIOA
110 RANDOMIZE TIMER
120 FOR I=1 TO 2
130 A=CINT(RND) : B=CINT(RND)
140 IF A=1 THEN AITA$(I)="G" ELSE AITA$(I)="Z"
150 IF B=1 THEN AMA$(I)="G" ELSE AMA$(I)="Z"
160 NEXT I
170 REM LEHEN BELAUNALDIKO SEME-ALABEN GENOTIPOEN KALKULUA
180 FOR I=1 TO 2
190 FOR J=1 TO 2
200 SA$(I,J)=AITA$(I)+AMA$(J)
210 ALD$(I,J)=AMA$(J)+AITA$(I)
220 NEXT J
230 NEXT I
240 REM ERABILTZAILEAREKIKO ELKARRIZKETA
250 REM JARRAITZEKO
260 LOCATE 23,30 : PRINT "Jarraitzeko J sakatu"
270 TE$=INKEY$
280 WHILE TE$ "" : TE$=INKEY$ : WEND
290 WHILE TE$ "J" AND TE$ "j" : TE$=INKEY$ : WEND
300 CLS
310 LOCATE 4,23 : PRINT "GURASOEN KONFIGURAZIOA ONDOKOA DA:"
320 LOCATE 5,23 : PRINT "---------------------------------"
330 LOCATE 7,30 : PRINT "AITA" : LOCATE 7,46 : PRINT "AMA"
340 LOCATE 9,30 : PRINT AITA$(1);AITA$(2)
350 LOCATE 9,46 : PRINT AMA$(1);AMA$(2)
360 LOCATE 12,10: PRINT "Zein izango da lehen belaunaldiko seme-alaben konfigurazioa?"
370 LOCATE 14,30
380 FOR I=1 TO 2
390 FOR J=1 TO 2
400 LOCATE CSRLIN,30 : INPUT E$(I,J)
410 NEXT J
420 NEXT I
430 REM ERANTZUNAK KONPARATU
440 ERAN = 0
450 FOR I=1 TO 2
460 FOR J=1 TO 2
470 IF E$(I,J)=SA$(I,J) OR E$(I,J)=ALD$(I,J) THEN ERAN=ERAN + 1
480 NEXT J
490 NEXT I
500 IF ERAN 4 THEN 530
510 LOCATE 19,23 : PRINT "ONGI!!!. Zuzen erantzun duzu."
520 GOTO 590
530 LOCATE 19,10 : PRINT "GAIZKI!!!. Erantzun zuzena ondokoa da: ";
540 FOR I=1 TO 2
550 FOR J=1 TO 2
560 PRINT SA$(I,J);" ";
570 NEXT J
580 NEXT I
590 LOCATE 21,31 : PRINT "Programa amaitu da."
600 END
610 REM AMAIA MENDEL-EN ANALISIA