; Programme permettant d'afficher un histogramme des valeurs lues ; (tiré de "An introduction to computer science with ; Modula2" par Adams, Gabrini, Kurtz, D.C. Heath 1988) ; Ph. Gabrini 2005 (page 116) ;int main (){ Histogra:DECI nbBarres,d ; cin >> nbBarres; LDA 1,i ; for(index = 1; STA compte,d ; Boucle: CPA nbBarres,d ; index <= nbPts; index++){ BRGT Fini ; DECI valeur,d ; cin >> valeur; LDA valeur,d ; paramètre passé par valeur STA -2,s ; SUBSP 2,i ; empiler paramètre CALL AfficBar ; AfficBar(valeur); ADDSP 2,i ; désempiler paramètre LDA compte,d ; ADDA 1,i ; STA compte,d ; BR Boucle ; } Fini: STOP ;} nbBarres:.WORD 0 ;nombre de barres valeur: .WORD 0 ;valeur lue compte: .WORD 0 ;compteur ; ; Sous-programme d'affichage du nombre d'astérisques correspondant ; à la valeur du paramètre ;void AfficBar(int n){ AfficBar:SUBSP 2,i ; allouer variable locale sommet pile LDA 1,i ; for(index = 1; STA 0,s ; sommet pile Repete: CPA 4,s ; index <= n; index++){ BRGT Retour ; CHARO '*',i ; cout << '*'; LDA 0,s ; sommet pile ADDA 1,i ; STA 0,s ; sommet pile BR Repete ; } Retour: CHARO '\n',i ; cout << endl; RET2 ; return} // relâche var. locale .END