Sie sind auf Seite 1von 3

Lycée Pilote de Sousse Année scolaire : 2013/2014

Devoir de Synthèse Durée : 1H


Matière : Informatique
Mr. Med Abdallah Mani N° 2 Classe : 4ième MATH
Nom & Prénom : ……………………………………………………. Note : ……. / 20

Bon Travail
program sujet_28_mai_11h;
uses wincrt;
type tab=array[1..20] of string;
var
T1,T2:tab;
n:integer;
procedure saisie(var n:integer);
begin
repeat
write('Donner le nombre d''élèves: ');
readln(n);
until n in [4..20];
end;
function verif (ch:string):boolean;
var i:integer;
test:boolean;
begin
test:=true;
i:=0;
repeat
i:=i+1;
if not(ch[i] in ['A'..'Z']) then
test:=false;
until(test=false) or (i=length(ch));
verif:=test;
end;
procedure remplirT1(var T1:tab;n:integer);
var i:integer;
begin
for i:=1 to n do
repeat
write('Nom de l''élève numéro ',i,':
');
readln(T1[i]);
until (length(T1[i])<=10) and
(verif(T1[i]));
end;
function poids(ch:string):integer;
var i,s:integer;
begin
s:=0;
for i:=1 to length(ch) do
s:=s+ord(ch[i]);
poids:=s;
end;
function
min_poids(T:tab;n:integer):integer;
var i,m:integer;
begin
m:=1;
for i:=2 to n do
if(poids(T[i])<poids(T[m])) then
m:=i;
min_poids:=m;
end;
procedure remplirT2(var T1:tab;var
T2:tab;n:integer);
var i,min:integer;
begin
for i:=1 to n do
begin
min:=min_poids(T1,n);
T2[i]:=T1[min];
T1[min]:='ZZZZZZZZZZ';
end;
end;
procedure affichage(T:tab;n:integer);
var i:integer;
begin
for i:=1 to n do
writeln(T[i],' son poids= ',
poids(T[i]));
end;
{programme principal}
begin
saisie(n);
remplirT1(T1,n);
remplirT2(T1,T2,n);
affichage(T2,n);
end.

Das könnte Ihnen auch gefallen