D'autre part, comme le calcul est compliqué, il faut savoir que la difficulté du programme se complique de forme géométrique.
Ce programme est juste une approche de l'apprentissage dialogué des lois de Mendel. Un exemple simple sera utilisé pour cela.
Supposons que nous ayons un caractère héréditaire particulier, comme la couleur. Nous utiliserons G pour indiquer le rouge et Z pour indiquer le blanc. En outre, il ne sera pas indiqué qui a la priorité.
On considérera un gène pour chaque chromosome et, une fois que les génotypes des deux personnes sont donnés avec précision, on prétend connaître le génotype des enfants de première génération. Une fois répondu, l'ordinateur comparera à la réponse réelle et décidera si corriger ou non.
Les premiers génotypes seront créés aléatoirement par l'ordinateur et communiqués à l'utilisateur.
Par exemple, si l'un des parents est BA et l'autre AD, le résultat réel sera:
et le génotype des fils de première génération:
SS.CC. DG
Observations: 1.- Comme vous le verrez, la ligne 400 de ce programme utilise la fonction CSRLIN. Cette fonction retourne la ligne dans laquelle se trouve le curseur à un moment donné. L'objectif de cette ligne est de remplacer les questions qui seront posées à l'utilisateur sur l'écran par de nouvelles dans la colonne 1. Pour ce faire, la phrase LOCATE X, Y a été utilisée, où X indiquera la ligne et Y la colonne. Dans notre cas Y sera le même pendant tout le cycle, mais X doit être ajouté chaque fois que la sentence est exécutée. D'autre part, cette sentence est incluse dans deux sentences FOR, il n'est donc pas possible d'exprimer la ligne au moyen des index I et J. Par conséquent, puisque la commande INPUT porte automatiquement le curseur sur la ligne suivante, il suffit d'utiliser la fonction CSRLIN. Si nécessaire, une autre solution possible vous arrivera, c'est-à-dire de mettre des blancs au moment de saisir le texte dans la phrase INPUT. Cependant, sachez que vous pouvez également utiliser la fonction CSRLIN. 2.- Dans la plupart des programmes de dialogue, il est nécessaire d'introduire des pauses afin que l'utilisateur puisse lire les écrans qui lui sont affichés. Dans de nombreux cas, ces étapes sont généralement fixes, c'est-à-dire définies par le programmeur et sont identiques à chaque fois que le programme est exécuté. Si l'on considère que chaque personne a un rythme différent, l'idéal est d'exprimer son désir d'aller de l'avant en appuyant sur une touche et c'est ce qui se fait dans ce programme sur les lignes 250-290. D'un autre côté, et comme la fonction INKEY prend en compte toutes les touches pressées, il est conseillé d'oublier les touches que vous avez pressées avant que le message ne s'affiche en appuyant sur une touche à l'écran. Si ce n'était pas le cas, nous aurions du temps pour lire l'écran. C'est ce qui se fait sur les lignes 270-280. |
10 ANALYSE DE MENDEL REM 20 KEY OFF : CLS 30 LOCATE 5,31 : PRINT "ANALYSE DE MENDEL" 40 LOCATE 9,7 : PRINT "L'objectif de ce programme est de réaliser une simple analyse de Mendel." 50 LOCATE 12,7 : PRINT "Le génotype des enfants de première génération sera analysé. Bes- 60 LOCATE 14,7 : PRINT "seul un gène sera pris en compte pour chaque groupe, chromosome." 70 LOCATE 17,7 : PRINT "Les caractéristiques s'exprimeront avec les lettres G (ROUGE) et Z (BLANC)." 1$ THEY=160$ MOIS EXTRA 320 LOCATE 5,23 : PRINT "-------------------------------" 330 LOCATE 7,30 : PRINT "PÈRE" : LOCATE 7,46 : PRINT "MÈRE" 340 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 ! Réponse correcte." 520 GOTO 590 530 LOCATE 19,10 : PRINT "MAL! !! !! La bonne réponse est la suivante: "; 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 "Programme terminé." 600 END 610 REM ANALYSE DE MENDEL AMAIA