; ************************************************************ ; Programme: lab_t_4.txt version PEP813 sous Windows ; ; INF2171 - laboratoire sur le traitement des tableaux ; 4) Lire un texte au terminal et conserver toutes les consonnes dans une chaine qui sera ensuite affichée. ; ; auteur: Bernard Martin ; code permanent: non applicable ; courriel: martin.bernard@uqam.ca ; date: été 2019 ; cours: INF2171 ; *********************************************************** ; STRO msgbien,d ; saisie de tous les caractères de la ligne d'input ; LDX 0,i lecture: CHARI texte,x ; lire un caractèere LDA 0,i LDBYTEA texte,x ADDX 1,i ; caractère suivant skip: CPA "\n",i ; fin de ligne ? BRNE lecture ; ; la lecture est terminée ; ; on commence à rejeter les voyelles ; LDX 0,i analyse: LDBYTEA texte,x ; caractère à traiter CPA "\n",i ; fin de ligne ? BREQ termine ANDA 0x00DF,i ; transforme en majuscules les minuscules (les majuscules demeurent majuscules) CPA "A",i ; rejet des voyelles BREQ voyelle CPA "E",i BREQ voyelle CPA "I",i BREQ voyelle CPA "O",i BREQ voyelle CPA "U",i BREQ voyelle CPA "Y",i BREQ voyelle ; STX postexte,d ; position dans le "texte" lu ; une consonne doit être comprise entre A et Z CPA "A",i BRLT skipc CPA "Z",i BRGT skipc ; ; c'est une consonne ; LDBYTEA texte,x ; caractère original LDX poschain,d ; position dans "chaine" à conserver STBYTEA chaine,x ADDX 1,i ; position suivante à conserver STX poschain,d LDX postexte,d ; position dans "texte" skipc: NOP0 ; pas une consonne voyelle: ADDX 1,i ; caractère suivant BR analyse ; termine: STRO msgconso,d STRO chaine,d 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 texte." .ASCII "\n\nVeuillez entrer un texte duquel" .ASCII "\nj'extrairai les consonnes: \n\x00" msgconso:.ASCII "\nVoici les consonnes lues:\n\x00" msgfin: .ASCII "\n\nFin normale du programme.\x00" postexte:.BLOCK 2 ; #2h sauvegarde temporaire de X poschain:.BLOCK 2 ; #2h position dans "chaine" chaine: .BLOCK 10 ; #1h10a .BLOCK 999 ; les 999 consonnes suivantes ; texte DOIT se retrouver à la fin du programme texte: .BLOCK 10 ; #1h10a trace seulement les 10 premiers caractères lus .BLOCK 0 ; les caractères lus qui suivent les 10 premiers .END