Ce didacticiel comporte trois niveaux de difficulté (Débutant [0..99], Moyen [0..9999] et Expert [0..999999]) et pour chaque niveau nous avons quatre modes de fonctionnement. Alors l'algorithme que nous présentons ici fera cas d'un niveau de fonctionnement (Débutant) car pour les autres modes de fonctionnement ce n'est qu'une question de nombre de chiffres comme indiqué plus haut de modification de certaines procédures de saisie et d'affichage.
[...] sa particularité est d'afficher ces variables sans afficher les zéro inutiles. L'affichage se fait caractères par caractères. >affichChiffre Cette procédure permet d'afficher un chiffre compris entre 0 à 9. Elle prend comme paramètre en entré ce chiffre à afficher qui se trouve dans le registre AX. >affichNombre Cette procédure permet d'afficher un nombre qui tient sur 16 bits. [...]
[...] lire Error db 'Erreur d''ouverture de mul.sys$' ;message d'erreur N db 6 ;var pour afficher la serie T db 6 ;var pour afficher le temps H db 16,'Partie Termin‚e,Temps ecoul‚ ;msg temps StrParty db 16,'Partie Termin‚e . ;message de fin de partie heure db 4 dup(0) ;variable pour contenir le temps+tps Num dw ; Tps db ; score dw ;le score strSerie db E R I E ; strOp db 'Serie(restant):$' ; strTime db 'Temps(minutes):$' ; StrScore db 'Score ; tmp db 6 dup(0) ;tampon talea db 02,22,85,19,48,74,55,24,89,69,15,53,00,20,88,48 ;tableau des nombres aleatoires db 95,08,85,76,34,51,40,44,62,93,65,99,72,64,09,34 ;contient 256 valeurs db 01,13,09,74,00,88,96,79,38,24,77,00,70,91,47,43 ; db 43,82,71,67,49,90,64,29,81,85,50,47,36,50,91,19 ; db 09,15,98,75,60,58,33,15,94,03,80,04,21,49,54,91 ; db 77,85,00,45,68,23,12,94,23,44,42,28,52,73,06,41 ; db 37,47,47,31,52,99,89,82,22,81,86,55,09,27,52,72 ; db 49,11,30,93,33,29,54,17,54,48,47,42,04,79,54,68 ; db 64,07,85,32,05,96,54,79,57,43,96,97,30,72,12,19 ; db 25,04,92,29,71,11,64,10,42,23,23,67,01,19,20,58 ; db 35,93,28,58,32,91,95,28,42,36,98,59,66,32,15,51 ; db 46,63,57,10,64,35,04,62,24,87,44,85,45,68,41,66 ; db 19,17,13,09,63,37,61,05,55,88,25,01,15,77,12,90 ; db 69,34,36,93,52,39,36,23,98,93,18,93,86,98,99,04 ; db 75,28,30,05,12,09,57,35,90,15,61,89,35,47,16,32 ; db 20,16,78,52,82,37,26,33,67,42,11,93,94,40,82,18 ; du segment de donneeSeg ends pileSeg segment stack 'stack' du segment de db 255 du segment de pileSeg ends ASSUME DS:donneeSeg,SS:pileSeg,CS:progSeg progSeg segment PAUSE PROC near ;procedure qui permet de faire une pause en cours d'exécution d'un programme ;jusqu'a ce qu'on enfonce une touche au clavier ; ;parametre en entree:aucun ;parametre en sortie: al le caract lu ;autre procedure :gotoxy push ax ;sauvegarde de ax mov ax,1B01h ;positionnement du curseur hors de l'ecran CALL near ptr gotoxy ; mov ah,08h ;service 08h de l'int. [...]
[...] Ce qui nous donne pour le niveau Débutant un minimum de 6 PROCEDURES dont nous ferons cas ici. LES VARIABLES deb_opds tableau de dimension 4 qui va recevoir les opérandes (les codes ASCII tapés) initialisé à 1 deb_out tableau de dimension 4 qui va recevoir les opérandes effectifs initialisé à 0 deb_result tableau de dimension 4 qui va contenir le résultat final de la multiplication initialisé à 0 deb_var1 tableau de dimension variables intermédiaires, résultat de la 1ère multiplication initialisé à 0 deb_var2 tableau de dimension variables intermédiaires, résultat de la 2ème multiplication initialisé à 0 deb_result2 cette variable concerne le mode de fonctionnement elle va contenir le résultat saisie par l'utilisateur qui fera office de vérification avec ce se trouve dans deb_result initialisé à 0 deb_saisie1 de même pour deb_var1 initialisé à 0 deb_saisie2 de même pour deb_var2 initialisé à 0 y cette variable contient un octet, contient le nombre de chiffre non nul saisie pour la 2ème opérande initialisé à 0. [...]
[...] La variables deb_out sera comme suit : Au sorti de cette procédure on a la variable y qui est à 2 car la deuxième compte deux caractères non nuls opérande. >MulDeb Cette procédure permet de faire l'opération de multiplication des opérandes se trouvant dans deb_out. L'algorithme est schématisé comme suit. >affichDebMod1 Cette procédure permet d'afficher dans la zone des opérations et sous la première barre les lignes intermédiaires (le contenu des variables intermédiaires : deb_ver1 et deb_var2), la deuxième barre et le résultat de la multiplication (deb_resutl). [...]
[...] Entrez [...]
Source aux normes APA
Pour votre bibliographieLecture en ligne
avec notre liseuse dédiée !Contenu vérifié
par notre comité de lecture