Vous êtes sur la page 1sur 6

Correction de la série

Série d’exercices – Informatique -3ème Maths et Techniques


Les structures de contrôle itératives

Exercice 6:
Écrivez un programme qui saisit un entier n suivi de n noms à mettre dans un tableau MN. Il
cherche à partir de la fin du tableau, tous les noms commençant par “R” et les affiches. (On
suppose que la saisie est en majuscule).

Exercice 6 :
Algorithme : En pascal
0) Début exercice6 program exercice6;
1) Ecrire("n=") , lire(n) uses wincrt;
2) Pour i de 1 à n faire var
Ecrire("MN[" ,i, "]= ") , lire (MN[i]) MN : array[1..10] of string ;
FinPour n , i : integer ;
3) Pour i de n à 1 (pas= -1) faire Begin
Si MN[i][1]="R" alors Ecrire(MN[i]) write('n='); readln(n);
FinSi
FinPour For i:=1 to n do
4) Fin Exercice6 Begin
Write('mn[', i ,']='); readln(mn[i]);
End;

For i:=n downto 1 do


If mn[i][1]='R' then writeln(mn[i]);
www.Cours-Informatique.tn

End.

Autre méthode : En utilisant la fonction prédéfinie pos

Algorithme : En pascal
0) Début exercice6 program exercice6;
1) Ecrire("n=") , lire(n) uses wincrt;
2) Pour i de 1 à n faire var
Ecrire("MN[" ,i, "]= ") , lire (MN[i]) MN : array[1..10] of string ;
FinPour n , i : integer ;
3) Pour i de n à 1 (pas= -1) faire Begin
Si pos("R", MN[i])=1 alors write('n='); readln(n);
Ecrire(MN[i])
Cour s d' inf o r m a t i q u e e n l i g n e :

FinSi For i:=1 to n do


FinPour Begin
4) Fin Exercice6 Write('mn[', i ,']='); readln(mn[i]);
End;

For i:=n downto 1 do


If pos ('R',mn[i])=1 then writeln(mn[i]);
End.
Exercice 8:
Ecrire un programme qui permet d’afficher un nombre x à la puissance n (avec x et n à
saisir) . X=5 n=3 donne p=xn=53=5*5*5

Exercice 8 :
Algorithme : En pascal
0) Début puissance program puissance;
1) Ecrire("x=") , lire(x) uses wincrt;
2) Ecrire("n=") , lire(n) var p,x,n,i : integer;
3) [p 1] pour i de 1 à n faire
P p*x begin
Fin pour write('x='); readln(x);
4) Ecrire (x , "à la puissance ", n , "=" , write('n='); readln(n);
p)
5) Fin puissance p:=1;
for i:=1 to n do
p:=p*x;

writeln(x , ' à la puissance ', n , ' = ' , p) ;

end.

Exercice 9:
Ecrire un programme qui permet d’afficher la table de multiplication d’un entier donné n
.Exemple : pour n=8 Table de multiplication pour : 8
www.Cours-Informatique.tn

1x8=8
2 x 8 = 16
...
10 x 8 = 80

Exercice 9 :
Algorithme : En pascal:
0) Début ex9 program multiplication;
1) Ecrire("n=") , lire(n) uses wincrt;
2) Ecrire("Table de multiplication pour : var
", n) i,n:integer;
3) Pour i de 1 à 10 faire
Ecrire(i , " x ", n, " = ", i*n) begin
Cour s d' inf o r m a t i q u e e n l i g n e :

Fin pour write('n=');


4) Fin Ex9 readln(n);

writeln('Table de multiplication pour : ', n);

for i:=1 to 10 do
writeln(i:2, ' x ', n ,' = ',i*n);

end.
Exercice 10: Ecrire un programme pascal pour chaque figure suivante : pour n=5
********** * *
* * ** ***
* * *** *****
* * **** *******
********** ***** *********

Exercice 10 :
Exercice 10: Exercice 10 : triangle Exercice 10 : triangle2
Program ex10; Program ex10triangle; Program ex10triangle2;
Uses wincrt; Uses wincrt; Uses wincrt;
Var Var Var i,j,k,n :integer ;
I,n :integer ; I,j,n :integer ; Begin
Begin Begin write('n=');
write('n='); write('n='); readln(n);
readln(n); readln(n);
writeln('**********'); for i:=1 to n do
for i:=1 to n do begin
for i:=1 to n-2 do begin for k:=1 to n-i do
writeln('* *'); for j:=1 to i do write(' ');
write(‘*’);
writeln('**********'); for j:=1 to 2*I-1 do
writeln; write('*');
end. end;
end. writeln;
end;
www.Cours-Informatique.tn

end.

Exercice 11 :
Écrivez un programme qui saisit une chaîne de caractères, la renverse et la mettre dans une
deuxième chaîne puis il affiche les deux sur deux lignes successives.
Cour s d' inf o r m a t i q u e e n l i g n e :

Algorithme : En pascal
0) Début excercice11 program ex11;
1) Ecrire("ch1=") , lire(ch1) uses wincrt;
2) [ch2  ""] pour i de long(ch1) à 1 (pas=-1) faire var i : integer;
Ch2 ch2+ch1[i] ch1,ch2 : string;
Fin pour begin
3) Ecrire ( "chaine1 = " , ch1) write('ch1='); readln(ch1);
4) Ecrire ( "Inverse chaine1 = " , ch2) ch2:= '';
5) Fin exercice11 for i:=length(ch1) downto 1 do
ch2:=ch2+ch1[i];
writeln('chaine1 =',ch1);
writeln('Inverse chaine1=', ch2);
end.
Exercice 12 :
Un programme qui permet de saisir un mot en majuscule puis le convertir en minuscule sauf le
premier caractère puis l’affiche.

Algorithme : En pascal
0) Début excercice12 program ex12;
1) Ecrire("ch=") , lire(ch) uses wincrt;
2) Ecrire(ch[1]) var i : integer;
3) [] pour i de 2 à long(ch) faire ch : string;
Ecrire(chr( ord(ch[i])+32 ) begin
Fin pour
4) Fin exercice12 write('ch='); readln(ch);
write(ch[1]);
for i:=2 to length(ch) do
write(chr( ord(ch[i])+32 ) );

end.
Autre méthode: Modification sur la chaîne CH

Algorithme : En pascal
0) Début excercice12 program ex12;
1) Ecrire("ch=") , lire(ch) uses wincrt;
2) [] pour i de 2 à long(ch) faire var i : integer;
ch[i]chr( ord(ch[i])+32 ) ch : string;
www.Cours-Informatique.tn

Fin pour begin


3) Ecrire(ch)
4) Fin exercice12 write('ch='); readln(ch);
for i:=2 to length(ch) do
ch[i]:=chr( ord(ch[i])+32 ) ;
writeln(ch);
end.

Exercice 13: Ecrire un programme qui permet de saisir une chaine Ch puis une lettre L ensuite
calcul et affiche le nombre d’occurrence de L dans Ch

Algorithme : En pascal
Cour s d' inf o r m a t i q u e e n l i g n e :

0) Début excercice13 program ex13;


1) Ecrire("ch=") , lire(ch) uses wincrt;
2) Ecrire("L=") , lire(L) var i,nb : integer;
3) [nb 0] pour i de 1 à long(ch) faire ch : string;
Si ch[i]=L alors nb nb+1 L :char ;
Fin pour begin
4) Ecrire("Le nbre d’occurrence de ",L , "dans ",
ch ,"est ", nb) write('ch='); readln(ch);
5) Fin exercice13 write('L='); readln(L);
nb:=0;
for i:=1 to length(ch) do
if ch[i]=L then nb := nb+1;
writeln(' Le nbre d’’occurrence de
',L , ' dans ', ch , ' est ', nb)
end.

Exercice 14: Écrivez un programme qui saisit un entier positif n et détermine s'il est ou non
premier. (Un entier autre que 1 est premier s'il n'est divisible que par 1 et par lui même.)

Algorithme : En pascal
0) Début excercice14 program ex14;
1) Ecrire("n=") , lire(n) uses wincrt;
2) [nb 0] pour i de 1 à n faire var i,nb,n : integer;
Si n mod i=0 alors nb nb+1 begin
Fin pour write('n='); readln(n);
3) Si nb=2 alors Ecrire(n ,"est premier") nb:=0;
Sinon Ecrire(n ,"n’est pas premier") for i:=1 to n do
4) Fin exercice14 if n mod i=0 then nb:=nb+1;
www.Cours-Informatique.tn

if nb=2 then
writeln(n, ' est premier' )
else writeln(n, ' n''est pas premier' );
end.

Exercice 15: Écrivez un programme qui cherche et affiche les 100 premiers entiers naturels
premiers.
Cour s d' inf o r m a t i q u e e n l i g n e :

Algorithme : En pascal
0) Début excercice15 program ex14;
1) Pour j de 1 à 100 faire uses wincrt;
[nb 0] pour i de 1 à j faire var i,nb,j : integer;
Si j mod i=0 alors nb nb+1 begin
Fin pour for j:=1 to 100 do
Si nb=2 alors Ecrire(j) begin
finSi nb:=0;
finpour for i:=1 to j do
2) Fin exercice15 if j mod i=0 then nb:=nb+1;

if nb=2 then write(j:3);


end ;

end.
Cour s d' inf o r m a t i q u e e n l i g n e : www.Cours-Informatique.tn