Upload
internet
View
221
Download
2
Embed Size (px)
Citation preview
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
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.
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) ; while nbLn > 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 ;
procedure afficherCarre(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 :
procedure afficherCarre(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} ; writeLnend ;
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}
procedure afficherCarre(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 ;
procedure afficherX(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.
procedure afficherX(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 ;
procedure afficherTriangle(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.
procedure afficherTriangle(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 :
procedure afficherTriangle(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 première version…
Une deuxième version…
procedure afficherTriangle(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 :
procedure afficherTriangle(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 première version…
procedure afficherTriangle(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 ;
Une deuxième version…
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 :
procedure afficherTriangle(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 :
procedure afficherTriangle(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 endend ;
procedure afficherTriangle(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 endend ;
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 :
UNION
procedure afficherPapillon(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 ;