• Aucun résultat trouvé

1- Procédure saisir d un entier. 4- Procédure remplir un tableau T

N/A
N/A
Protected

Academic year: 2022

Partager "1- Procédure saisir d un entier. 4- Procédure remplir un tableau T"

Copied!
5
0
0

Texte intégral

(1)

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;

(2)

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;

(3)

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;

(4)

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;

(5)

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.

Références

Documents relatifs

[r]

[r]

Dans ce cas, il est probable de n’en retrouver qu’une partie avec le bilan (comptes 131 et 138) et il faut prendre en compte la quote-part virée au résultat durant l’année

[r]

[r]

A chaque unité de temps , la particule se déplace d’une unité à droite avec une probabilité 0,5 ou d’une unité à gauche avec une probabilité 0,5.. On suppose que les

Nous allons voir une nouvelle méthode pour remplir une valeur dans un tableau : le produit

POTASSIUM CALCIUM SCANDIUM TITANE VANADIUM CHROME MANGANÈSE COBALT NICKEL CUIVRE ZINC GALLIUM GERMANIUM ARSENIC SÉLÉNIUM BROME. RUBIDIUM STRONTIUM YTTRIUM ZIRCONIUM