; ************************************************************ ; Programme: lab_n_3.txt version PEP813 sous Windows ; ; INF2171 - laboratoire traitement des tableaux de nombres ; 3) Lire des nombres au terminal, afficher le nombre de positifs lus, le nombre de négatifs lus, le total de nombres lus ; et afficher les nombres lus dans l'ordre d'entrée. ; ; auteur: Bernard Martin ; code permanent: non applicable ; courriel: martin.bernard@uqam.ca ; date: hiver 2019 ; cours: INF2171 ; *********************************************************** ; STRO msgbien,d ; bienvenue LDX 0,i ; premier nombre lecture: DECI nombres,x BREQ affiche1 LDA nombres,x BRLT négatif LDA comptpos,d ; compteur de nombres positifs ADDA 1,i STA comptpos,d BR suite négatif: LDA comptnég,d ; compteur de nombres négatifs ADDA 1,i STA comptnég,d suite: ADDX 2,i ; nombre suivant BR lecture ; ; la lecture est terminée ; affiche1:STRO msgplus,d ; nombres positifs DECO comptpos,d STRO msgmoins,d ; nombres négatifs DECO comptnég,d STRO msgtotal,d ; nombre total STX sauvex,d ASRX ; X avance de 2 octets, on doit doit diviser par 2 STX occurenc,d DECO occurenc,d LDX sauvex,d STRO msgaff,d ; on commence à afficher par le début du tableau des nombres LDX 0,i affiche2:CPX sauvex,d BREQ termine LDA nombres,x DECO nombres,x CHARO "\n",i ADDX 2,i ; nombre suivant positif: BR affiche2 ; termine: STRO msgfin,d STOP ; ; variables ; N.B. Il est préférable d'afficher un long message sur plusieurs lignes car la largeur ; de la fenêtre d'output de PEP/8 n'est que de 52 caractères par défaut. msgbien: .ASCII "Bienvenue à ce programme de traitement d'un tableau" .ASCII "\nde nombres." .ASCII "\n\nVeuillez entrer des nombres qui seront comptablisés" .ASCII "\ncomme positifs ou négatifs." .ASCII "\n(0-pour terminer)\n\x00" msgplus: .ASCII "\nQuantité de nombres positifs lus:\n\x00" msgmoins:.ASCII "\nQuantité de nombres négatifs lus:\n\x00" msgtotal:.ASCII "\nQuantité de nombres lus:\n\x00" msgaff: .ASCII "\nVoici les nombres lus:\n\x00" msgfin: .ASCII "\n\nFin normale du programme.\x00" sauvex: .BLOCK 2 comptpos:.BLOCK 2 comptnég:.BLOCK 2 occurenc:.BLOCK 2 ; nombres DOIT se retrouver à la fin du programme nombres: .BLOCK 20 ; #2d10a trace seulement les 10 premiers nombres lus .BLOCK 0 ; les nombres lus qui suivent les 10 premiers, soit 11 à 999 .END