Por outra banda, a medida que o cálculo se complica, débese saber que a dificultade do programa complícase de forma xeométrica.
Este programa é só una aproximación á aprendizaxe dialogada das leis de Mendel. Paira iso utilizarase un sinxelo exemplo.
Supoñamos que temos un carácter hereditario concreto, como a cor. Utilizaremos G paira indicar o vermello e Z paira indicar o branco. Ademais, non se indicará quen ten prioridade.
Considerarase un xene por cada cromosoma e, una vez dados os genotipos de ambas as persoas con precisión, preténdese coñecer o genotipo dos fillos de primeira xeración. Una vez respondida, o computador comparará coa resposta real e decidirá si corrixir ou non.
Os primeiros genotipos serán creados aleatoriamente polo computador e comunicados ao usuario.
Por exemplo, si uno dos pais é BA e o outro AD, o resultado real será:
e o genotipo dos fillos de primeira xeración:
SS.CC. DG
Observacións: 1.- Como verás, na liña 400 deste programa utilizouse a función CSRLIN. Esta función devolve como resultado a liña na que se atopa o cursor nun momento dado. O obxectivo desta liña é substituír as preguntas que se lle van a facer ao usuario na pantalla por outras novas na columna 1. Paira iso utilizouse a sentenza LOCATE X, E, onde X indicará a liña e E a columna. No noso caso E será o mesmo durante todo o ciclo, pero X ten que ir engadindo cada vez que se execute a sentenza. Por outra banda, esta sentenza está incluída en dúas sentenzas FOR, polo que non é posible expresar a liña mediante os índices I e J. Por tanto, e dado que a sentenza INPUT leva automaticamente o cursor á seguinte liña, basta con utilizar a función CSRLIN. Si é necesario, ocorreráseche outra solución posible, é dicir, pór espazos en branco á hora de introducir o texto na sentenza INPUT. No entanto, saiba que tamén se pode utilizar a función CSRLIN. 2.- Na maioría dos programas de diálogo é necesario introducir pausas para que o usuario poida ler as pantallas que se lle mostran. En moitos casos, estes pasos adoitan ser fixos, é dicir, definidos polo programador e son iguais cada vez que se realiza o programa. Si temos en conta que cada persoa leva un ritmo diferente, o ideal é expresar o seu desexo de seguir adiante pulsando una tecla e é o que se fai neste programa nas liñas 250-290. Doutra banda, e dado que a función INKEY ten en conta todas as teclas pulsadas, é conveniente que se esqueza das teclas que se pulsaron antes de que apareza a mensaxe de pulsar una tecla na pantalla. Se non fóra así, pasaríanos sen tempo paira ler a pantalla. É o que se fai nas liñas 270-280. |
10 ANÁLISE DE MENDEL REM
20 KEY OFF : CLS
30 LOCATE 5,31 : PRINT "ANÁLISE DE MENDEL"
40 LOCATE 9,7 : PRINT "O obxectivo deste programa é realizar unha sinxela análise de Mendel."
50 LOCATE 12,7 : PRINT "Nel analizarase o genotipo dos fillos de primeira xeración. Bes-
60 LOCATE 14,7 : PRINT "só terase en conta un xene por cada grupo, cromosoma."
70 LOCATE 17,7 : PRINT "As características expresaranse coas letras G (VERMELLA) e Z (BRANCA)."
1$
THEY=160$
MES
EXTRA
320 LOCATE 5,23 : PRINT "--------------------------------"
330 LOCATE 7,30 : PRINT "PAI" : LOCATE 7,46 : PRINT "NAI"
340
LOCATE 9,30 ;
PRINT$ PRINT "Cal será a configuración dos fillos de primeira xeración?"
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 EN F440 !
Resposta correcta."
520 GOTO 590
530 LOCATE 19,10 : PRINT "MAL!! ! A resposta correcta é a seguinte: ";
540 FOR I=1 TO 2
550 FOR J=1 TO 2
560 PRINT, S.A$(I,J);";
570 NEXT J
580 NEXT I
590 LOCATE 21,31 : PRINT "Programa finalizado."
600 END
610 REM ANALISIS DE MENDEL AMAIA