Mr. ANIS ELBAHI 2TI Page 1
1- Procédure saisir d’un entier
Sans condition Avec condition
Procedure saisir (var N :integer) ; Begin
Writeln('donner N'); readln(N);
End;
Procedure saisir (var N :integer) ; Begin
Repeat
Writeln(' donner N '); readln(N);
Until( condition);
End;
2- Procédure saisir d’un intervalle 1<a<b≤50
3- Saisir une chaine formée au maximum de 5 caractères et contenant au moins un
espace
Procedure saisir (var a,b :integer) ; Begin
Repeat
Writeln(' donner a '); readln(a);
Writeln(' donner b '); readln(b);
Until(a>1) and (a<b) and (b<=50);
End;
Procedure saisir (var ch:string) ; Begin
Repeat
Writeln(' donner votre chaine '); readln(ch);
Until(length(ch)<=5) and (pos(‘ ‘,ch)<>0);
End;
4- Procédure remplir un tableau T
Sans condition Avec condition
Procedure remplir (var T:tab; N :integer) ; Var i:integer;
Begin
For i:=1 to N do begin
Writeln(' T[ ', i , ' ] '); readln(T[i]);
end;
End;
Procedure remplir (var T:tab; N :integer) ; Var i:integer;
Begin
For i:=1 to N do repeat
Writeln(' T[ ', i , ' ] '); readln(T[i]);
until(condition);
End;
5- Procédure remplir un tableau T de
façon aléatoire T[i] [2..10] 6- Procédure remplir un tableau T de façon croissante
Procedure remplir (var T:tab; N :integer) ; Var i:integer;
Begin
For i:=1 to N do
T[i] := random(9)+2;
End;
Procedure remplir (var T:tab; N :integer) ; Var i:integer;
Begin
Writeln(' donner le premier élément ');
readln(T[1]);
For i:=2 to N do repeat
Writeln(' donner un element ', i); readln(T[i]);
until(T[i] >T[i-1]);
End;
Mr. ANIS ELBAHI 2TI Page 2
7- Procédure remplir un tableau T par des éléments distincts
8- Procédure initialiser un tableau T par des 1
Procedure remplir (var T:tab;N:integer);
Var i,j,nb:integer;
Begin
Writeln(
'donner le premier élément
');
readln(T[1]);
For i:=2 to N do Repeat
Writeln
(' T[ ', i , ' ] ');readln(T[i]);
nb:=0;
For j :=1 to i-1 do
if(T[j] = T[i]) then nb:=nb+1;
Until( nb=0);
End;
Procedure remplir (var T:tab ; N :integer) ; Var i:integer;
Begin
For i:=1 to N do T[i] := 1;
End;
9- Remplir un tableau T par des caractères alphabétiques MAJUSCULES
de façon aléatoires
Procedure remplir (var T:tab; N :integer) ; Var i,x:integer;
Begin Randomize;
For i:=1 to N do begin
x:=random(26)+65;
T[i]:=chr(x);
End;
End;
10- Afficher tous les éléments d’un tableau T : (Affichage sans condition)
11- Afficher les éléments d’un tableau qui sont pairs (Affichage avec condition)
Procedure affiche (T:tab; N :integer) ; Var i:integer;
Begin
For i:=1 to N do Writeln(T[i]);
End;
Procedure affiche ( T:tab; N :integer) ; Var i:integer;
Begin
For i:=1 to N do
if(T[i] mod 2 = 0) then writeln(T[i]);
End;
12- Afficher tous les éléments de la deuxième moitié d’un tableau T.
13- Afficher les éléments qui se trouvent dans les positions impaires d’un tableau T en commençant par le dernier élément
Procedure affiche (T:tab; N :integer) ; Var i:integer;
Begin
For i:=(N div 2) to N do Writeln(T[i]);
End;
Procedure affiche (T:tab; N :integer) ; Var i:integer;
Begin
For i:=N downto 1 do
if (i mod 2 <> 0 ) then Writeln(T[i]);
End;
Mr. ANIS ELBAHI 2TI Page 3 14- Calculer le nombre des éléments positifs
dans un tableau T
15- Calculer le factoriel d’un entier X X !=1*2*3*…*X
Function nombre(T:tab; N:integer): integer;
Var i,nb:integer;
Begin nb:=0;
For i:=1 to N do
If(T[i] >=0 ) then nb:=nb+1;
Nombre:=nb;
End;
Function FACT (X:integer): longint;
Var i:integer; F:longint;
Begin F:=1;
For i:=1 to N do F:=F*i;
FACT:=F;
End;
16 - Calculer la somme des éléments d’une liste Par exemple calculer la somme des codes ascii
des caractères d’une chaine.
17 - Construire une chaine de caractères à l’envers
Exemple : CH=’ANIS’
la chaine à l’envers est S=’SINA’
Function calcul(ch:string): integer;
Var s,i:integer;
Begin S:=0;
For i:=1 to length(ch) do S:=S+ord(ch[i]);
Calcul:=S;
End;
Function envers(ch:string): string;
Var i:integer; S:string;
Begin S:= '';
For i:=1 to length(ch) do S:=ch[i]+S;
envers:=S;
End;
18- Vérifier si un élément X existe ou non dans le tableau T
19- Calculer X à la puissance Y 23=2*2*2=8
Function verif(T:tab; N,X:integer): boolean;
Var i:integer; ok:boolean;
Begin
i:=0; ok:=false;
Repeat i:=i+1;
if(T[i] = X) then ok:=true;
Until(ok=true) or (i=N);
Verif := ok;
End;
Function PUIS (X,Y:integer): longint;
Var i:integer; P:longint;
Begin P:=1;
For i:=1 to Y do P:=P*X;
PUIS:=P;
End;
Mr. ANIS ELBAHI 2TI Page 4 20- Remplir un tableau R par les éléments
strictement positifs qui se trouvent dans un tableau T puis par les éléments strictement négatifs qui se trouvent dans le même tableau T.
21 - Afficher si la somme des chiffres d’un entier formé de 4 chiffres est multiple de 5.
Procedure remplir(var R:tab; T:tab; n:integer);
Var i,k:integer;
Begin k:=1;
For i:=1 to N do if(T[i]>0) then
begin R[k]:=T[i];
k:=k+1;
end;
For i:=1 to N do if(T[i]<0) then
begin R[k]:=T[i];
k:=k+1;
end;
End;
Procedure affiche (X :integer) ; Var M,C,D,U : integer;
Begin
M:=X div 1000;
C:=(X mod 1000) div 100;
D:= (X mod 100) div 10 ; U:=X mod 10;
if (M+C+D+U) mod 5 = 0 then
write(' somme multiple de 5 ') else write(' somme non multiple de 5 ');
End ;
22- Saisir une chaine formée uniquement par des caractères alphabétiques.
procedure saisir(var ch:string);
var nb,i:integer;
begin repeat
writeln('donner une chaine ');
readln(ch);
nb:=0;
for i:=1 to length(ch) do
if(ch[i] in ['A'..'Z', 'a'..'z'] ) then nb:=nb+1;
until(nb=length(ch));
end;
Mr. ANIS ELBAHI 2TI Page 5 23 – faire un programme pascal qui permet de
saisir un entier positif et afficher la somme de ses diviseurs (solution 1)
24 – faire un programme pascal qui permet de saisir un entier positif et afficher la somme de
ses diviseurs (solution 2) program ex;
uses wincrt;
procedure affiche;
var sd,i:integer;
begin repeat
writeln(' donner x >= 0');
readln(x);
until(x>=0);
sd:=0;
for i:=1 to x do if(x mod i=0) then sd:=sd+i;
writeln('la somme des diviseurs de ', x, ' =' ,sd);
end;
begin affiche;
end.
program ex;
uses wincrt;
var x:integer;
procedure saisir(var x:integer);
begin repeat
writeln(' donner x >= 0');
readln(x);
until(x>=0);
end;
procedure affiche(x:integer);
var sd,i:integer;
begin sd:=0;
for i:=1 to x do if(x mod i=0) then sd:=sd+i;
writeln('la somme des diviseurs de ', x, ' =' ,sd);
end;
begin saisir(x);
affiche(x);
end.