; ************************************************************ ; Programme: lab_n_8.txt version PEP813 sous Windows ; ; INF2171 - laboratoire traitement des tableaux de nombres ; 8) Lire des nombres au terminal et afficher la racine carrée de chaque nombre. ; ; auteur: Bernard Martin ; code permanent: non applicable ; courriel: martin.bernard@uqam.ca ; date: hiver 2019 ; cours: INF2171 ; *********************************************************** ; STRO msgbien,d LDX 0,i LDA 0,i ; somme <- 0 lecture: DECI nombre,d ; nombre n'a pas à être conservé dans un tableau BREQ termine ; la lecture est terminée ; ; racine carrée ; bien qu'impossible, la racine carrée d'un nombre négatif donnera 0 ; ; essai avec 1*1, 2*2, 3*3, 4*4, ..., jusqu'au nombre ; LDA 1,i LDX 1,i STA résultat,d tantque: CPX nombre,d ; tant que (x <= nombre) BRGT finttq ADDX résultat,d ADDX résultat,d ADDX 1,i ; x <- 2 * résultat + 1 ADDA 1,i STA résultat,d BR tantque finttq: SUBA 1,i ; 1 fois en trop STA résultat,d ; STRO msgres1,d DECO nombre,d STRO msgres2,d DECO résultat,d ; racine carrée STRO msgnombr,d BR lecture ; 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." msgnombr:.ASCII "\n\nVeuillez entrer des nombres qui subiront" .ASCII "\nune racine carrée:" .ASCII "\n(0-pour terminer)\n\x00" msgres1: .ASCII "\nLa racine carrée du nombre: \x00" msgres2: .ASCII "\nest: \x00" msgfin: .ASCII "\n\nFin normale du programme.\x00" résultat:.BLOCK 2 ; #2d nombre: .BLOCK 2 ; #2d .END