420 likes | 509 Views
Prmt. For imbriqués. program for01 ; const N = 6 ; var k , j : Byte ; begin for k := 1 to N do begin for j := 1 to N do write (k,'-',j,' ') { od } ; writeLn end { od } end. 1-1 1-2 1-3 1-4 1-5 1-6 2-1 2-2 2-3 2-4 2-5 2-6
E N D
Prmt For imbriqués
program for01 ; const N = 6 ; var k , j : Byte ; begin for k := 1 to N do begin for j := 1 to N do write(k,'-',j,' ') {od} ; writeLn end {od} end. 1-1 1-2 1-3 1-4 1-5 1-6 2-1 2-2 2-3 2-4 2-5 2-6 3-1 3-2 3-3 3-4 3-5 3-6 4-1 4-2 4-3 4-4 4-5 4-6 5-1 5-2 5-3 5-4 5-5 5-6 6-1 6-2 6-3 6-4 6-5 6-6
Ecrire une petite application Pascal qui, de manière répétitive, demande à l'utilisateur d'entrer le nombre de lignes du carré d’étoiles à afficher, lit cette donnée et affiche le carré correspondant (cfr. exemple). Instructions d’affichage : write(‘*’), write(‘ ‘) et writeLn. Respectez les principes de bonne programmation ! Exemple d'exécution :
program for02 ; var k ,j ,nbLn : Byte ; begin write('entrez le nbre de ligne(s) : ') ; readLn(nbLn) ; whilenbLn > 0 do begin // affichage du carré for k := 1 to nbLn do begin for j := 1 to nbLn do write('*') {od} ; writeLn end {od} ; write('entrez le nbre de ligne(s) : ') ; readLn(nbLn) ; end {od} end.
program for03 ; var k ,j ,nbLn : Byte ; begin {loop}repeat write('entrez le nbre de ligne(s) : ') ; readLn(nbLn) ; {exit}if nbLn = 0 then break ; // affichage du carré for k := 1 to nbLn do begin for j := 1 to nbLn do write('*') {od} ; writeLn end {od} {pool}until false end. Utilisation de la boucle généralisée
program for04 ; procedureafficherCarre(n : Byte) ; var k, j : Byte ; begin for k := 1 to n do begin ; for j := 1 to n do write('*') {od} ; writeLn end {od} end ; var nbLn : Byte ; begin {loop}repeat write('entrez le nbre de ligne(s) : ') ; readLn(nbLn) ; {exit}if nbLn = 0 then break ; afficherCarre(nbLn) {pool}until false end. Utilisation d’une procédure On définit une nouvelle commande : afficherCarre
Ecrire une petite application Pascal qui, de manière répétitive, demande à l'utilisateur d'entrer le nombre de lignes du carré à afficher, lit cette donnée et affiche le carré correspondant (cfr. exemple). Instructions d’affichage : write(‘*’), write(‘ ‘) et writeLn. Respectez les principes de bonne programmation ! Exemple d'exécution :
procedureafficherCarre(n : Byte) ; var k, j : Byte ; begin for k := 1 to n do write('*') {od} ; writeLn; for k := 2 to n-1 do begin write('*') ; for j := 2 to n-1 do write(' ') {od} ; writeLn('*') end {od} ; for k := 1 to n do write('*') {od} ; writeLn end ; 1ère version (le reste du programme est inchangé…) Problème pour n = 1 ?
if (k=1)OR(k=n)0R(j=1)OR(j=n) then write('*') else write(' ') {fi}
procedureafficherCarre(n : Byte) ; var k, j : Byte ; begin for k := 1 to n do begin for j := 1 to n do if (k=1)OR(k=n)OR(j=1)OR(j=n) then write('*') else write(' ') {fi} {od} ; writeLn end {od} end ; 2ème version
Ecrire une petite application Pascal qui, de manière répétitive, demande à l'utilisateur d'entrer le nombre impair de lignes de la figure à afficher, lit cette donnée et affiche la figure (un X) correspondante (cfr. exemple). Instructions d’affichage : write(‘*’), write(‘ ‘) et writeLn. Respectez les principes de bonne programmation ! Exemple d'exécution :
program for07 ; procedureafficherX(n : Byte) ; var k, j : Byte ; begin //…. end ; var nbLn : Byte ; begin {loop}repeat repeat write('entrez le nbre impair de ligne(s) ou 0 : ') ; readLn(nbLn) until (nbLn MOD 2 = 1)OR(nbLn = 0) ; {exit}if nbLn = 0 then break ; afficherX(nbLn) {pool}until false end.
procedureafficherX(n : Byte) ; var k, j : Byte ; begin for k := 1 to n do begin for j := 1 to n do if (k=j)OR(k+j=n+1) then write('*') else write(' ') {fi} {od} ; writeLn end {od} end ;
Ecrire une petite application Pascal qui, de manière répétitive, demande à l'utilisateur d'entrer le nombre de lignes du triangle rectangle d’étoiles à afficher, lit cette donnée et affiche le triangle correspondant (cfr. exemple). Instructions d’affichage : write(‘*’), write(‘ ‘) et writeLn. Respectez les principes de bonne programmation ! Exemple d'exécution :
program for08 ; procedureafficherTriangle(n : Byte) ; var k, j : Byte ; begin for k := 1 to n do begin for j := 1 to n do if (k>=j) then write('*') else write(' ') {fi} {od} ; writeLn end {od} end ; var nbLn : Byte ; begin {loop}repeat write('entrez le nbre de ligne(s) : ') ; readLn(nbLn) ; {exit}if nbLn = 0 then break ; afficherTriangle(nbLn) ; {pool}until false end.
procedureafficherTriangle(n : Byte) ; var k, j : Byte ; begin for k := 1 to n do begin for j := 1 to k do write('*') {od} ; writeLn end {od} end ;
Ecrire une petite application Pascal qui, de manière répétitive, demande à l'utilisateur d'entrer le nombre de lignes du triangle rectangle d’étoiles à afficher, lit cette donnée et affiche le triangle correspondant (cfr. exemple). Instructions d’affichage : write(‘*’), write(‘ ‘) et writeLn. Respectez les principes de bonne programmation ! Exemple d'exécution :
Une première version… procedureafficherTriangle(n : Byte) ; var k, j : Byte ; begin for k := 1 to n do begin for j := 1 to n do if (k<=j) then write('*') else write(' ') {fi} {od} ; writeLn end {od} end ;
Une deuxième version… procedureafficherTriangle(n : Byte) ; var k, j : Byte ; begin for k := 1 to n do begin for j := 1 to k-1 do write(' ') {od} ; for j := 1 to n+1-k do write('*') {od} ; writeLn end {od} end ;
Ecrire une petite application Pascal qui, de manière répétitive, demande à l'utilisateur d'entrer le nombre de lignes du triangle rectangle d’étoiles à afficher, lit cette donnée et affiche le triangle correspondant (cfr. exemple). Instructions d’affichage : write(‘*’), write(‘ ‘) et writeLn. Respectez les principes de bonne programmation ! Exemple d'exécution :
Une première version… procedureafficherTriangle(n : Byte) ; var k, j : Byte ; begin for k := 1 to n do begin for j := k to n do write('*') {od} ; writeLn end {od} end ;
Une deuxième version… procedureafficherTriangle(n : Byte) ; var k, j : Byte ; begin for k := 1 to n do begin for j := 1 to n do if (k+j<=n+1) then write('*') else write(' ') {fi} {od} ; writeLn end {od} end ;
Ecrire une petite application Pascal qui, de manière répétitive, demande à l'utilisateur d'entrer le nombre de lignes du triangle rectangle d’étoiles à afficher, lit cette donnée et affiche le triangle correspondant (cfr. exemple). Instructions d’affichage : write(‘*’), write(‘ ‘) et writeLn. Respectez les principes de bonne programmation ! Exemple d'exécution :
procedureafficherTriangle(n : Byte) ; var k, j : Byte ; begin for k := 1 to n do begin for j := 1 to n do if (k+j>=n+1) then write('*') else write(' ') {fi} {od} ; writeLn end {od} end ;
Ecrire une petite application Pascal qui, de manière répétitive, demande à l'utilisateur d'entrer le nombre de lignes du triangle à afficher, lit cette donnée et affiche le triangle correspondant (cfr. exemple). Instructions d’affichage : write(‘*’), write(‘ ‘) et writeLn. Respectez les principes de bonne programmation ! Exemple d'exécution :
procedureafficherTriangle(nbLn : Byte) ; var k, j : Byte ; begin for k := 1 to nbLn do begin for j := 1 to (nbLn-k) do write(' ') ; for j := 1 to (2*k-1) do write('*') ; writeLn end end ;
procedureafficherTriangle(nbLn : Byte) ; var k, j : Byte ; begin for k := 1 to nbLn do begin for j := 1 to (2*nbLn - 1) do if (j >= nbLn-k+1)and(j <= nbLn+k-1) then write('*') else write(' ') {fi} {od} ; writeLn end end ;
Ecrire une petite application Pascal qui, de manière répétitive, demande à l'utilisateur d'entrer le nombre (impair) de lignes du papillon à afficher, lit cette donnée et affiche le papillon correspondant (cfr. exemple). Instructions d’affichage : write(‘*’), write(‘ ‘) et writeLn. Respectez les principes de bonne programmation ! Exemple d'exécution :
procedureafficherPapillon(n : Byte) ; var k, j : Byte ; begin for k := 1 to n do begin for j := 1 to n do if ((k>=j)and(k+j<=n+1))or((k<=j)and(k+j>=n+1)) then write('*') else write(' ') {fi} {od} ; writeLn end {od} end ;