Análisis de Mendel

Arrojeria, Eustakio

Elhuyar Zientziaren Komunikazioa

Lizaso, Pili

Informatika Saila

Elhuyar Fundazioa

Las leyes de Mendel, por su base estadística, se pueden aprender fácilmente a través del ordenador.

Por otra parte, a medida que el cálculo se complica, se debe saber que la dificultad del programa se complica de forma geométrica.

Este programa es sólo una aproximación al aprendizaje dialogado de las leyes de Mendel. Para ello se utilizará un sencillo ejemplo.

Supongamos que tenemos un carácter hereditario concreto, como el color. Utilizaremos G para indicar el rojo y Z para indicar el blanco. Además, no se indicará quién tiene prioridad.

Se considerará un gen por cada cromosoma y, una vez dados los genotipos de ambas personas con precisión, se pretende conocer el genotipo de los hijos de primera generación. Una vez respondida, el ordenador comparará con la respuesta real y decidirá si corregir o no.

Los primeros genotipos serán creados aleatoriamente por el ordenador y comunicados al usuario.

Por ejemplo, si uno de los padres es BA y el otro AD, el resultado real será:

V

C

C

SS

CD

C

SS

CD

y el genotipo de los hijos de primera generación:

SS.CC. DG

Observaciones:

1.- Como verás, en la línea 400 de este programa se ha utilizado la función CSRLIN. Esta función devuelve como resultado la línea en la que se encuentra el cursor en un momento dado.

El objetivo de esta línea es sustituir las preguntas que se le van a hacer al usuario en la pantalla por otras nuevas en la columna 1. Para ello se ha utilizado la sentencia LOCATE X, Y, donde X indicará la línea y Y la columna.

En nuestro caso Y será el mismo durante todo el ciclo, pero X tiene que ir añadiendo cada vez que se ejecute la sentencia. Por otra parte, esta sentencia está incluida en dos sentencias FOR, por lo que no es posible expresar la línea mediante los índices I y J. Por tanto, y dado que la sentencia INPUT lleva automáticamente el cursor a la siguiente línea, basta con utilizar la función CSRLIN.

Si es necesario, se te ocurrirá otra solución posible, es decir, poner espacios en blanco a la hora de introducir el texto en la sentencia INPUT. No obstante, sepa que también se puede utilizar la función CSRLIN.

2.- En la mayoría de los programas de diálogo es necesario introducir pausas para que el usuario pueda leer las pantallas que se le muestran.

En muchos casos, estos pasos suelen ser fijos, es decir, definidos por el programador y son iguales cada vez que se realiza el programa.

Si tenemos en cuenta que cada persona lleva un ritmo diferente, lo ideal es expresar su deseo de seguir adelante pulsando una tecla y es lo que se hace en este programa en las líneas 250-290. Por otro lado, y dado que la función INKEY tiene en cuenta todas las teclas pulsadas, es conveniente que se olvide de las teclas que se han pulsado antes de que aparezca el mensaje de pulsar una tecla en la pantalla. Si no fuera así, nos pasaría sin tiempo para leer la pantalla. Es lo que se hace en las líneas 270-280.


10 ANÁLISIS DE MENDEL REM 20 KEY OFF : CLS 30 LOCATE 5,31 : PRINT "ANÁLISIS DE MENDEL" 40 LOCATE 9,7 : PRINT "El objetivo de este programa es realizar un sencillo análisis de Mendel." 50 LOCATE 12,7 : PRINT "En él se analizará el genotipo de los hijos de primera generación. Bes- 60 LOCATE 14,7 : PRINT "solo se tendrá en cuenta un gen por cada grupo, cromosoma." 70 LOCATE 17,7 : PRINT "Las características se expresarán con las letras G (ROJA) y Z (BLANCA)." 1$ THEY=160$ MES EXTRA 320 LOCATE 5,23 : PRINT "--------------------------------" 330 LOCATE 7,30 : PRINT "PADRE" : LOCATE 7,46 : PRINT "MADRE" 340 LOCATE 9,30 ; PRINT$ PRINT "¿Cuál será la configuración de los hijos de primera generació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 ! Respuesta correcta." 520 GOTO 590 530 LOCATE 19,10 : PRINT "¡MAL!! ! La respuesta correcta es la siguiente: "; 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

Babesleak
Eusko Jaurlaritzako Industria, Merkataritza eta Turismo Saila