program mardi_28_05_2013_11h;
uses wincrt;
type tab=array[1..20]of string[10];
var t1,t2:tab;
n:integer;
function verif (ch:string):boolean ; var i:integer ;
test:boolean;
begin i:=0;
repeat i:=i+1;
if ch[i] in ['A'..'Z'] then test:= true else test:=false;
until (test=false) or (i= length (ch));
verif:= test;
end;
procedure saisie(var t1:tab; var n:integer);
var i:integer;
begin repeat
write ('Donner un entier : ');
readln (n) ; until n in [4..20] ;
for i:=1 to n do repeat
write('T1[ ',i,']= ');
readln(T1[i]);
until (verif(T1[i])) and (length(T1[i])<=10);
end ;
function poids(ch:string):integer;
var p,i:integer;
begin p:=0;
for i:=1 to length(ch) do p:= p+ ord(ch[i]);
poids:=p;
end;
function min_poids(t:tab):integer;
var
min,i,k:integer;
begin
min:=poids(t[1]);
k:=1;
for i:= 2 to n do if poids(t[i])<min then begin
min:=poids(t[i]);
k:=i;
end;
min_poids:=k;
end;
Procedure tri(var t1,t2:tab);
var i,j,m:integer;
begin
for i:=1 to n do begin
j:=min_poids(t1);
t2[i]:=t1[j];
t1[j]:='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 principale}
begin saisie(t1,n) ;
tri(t1,t2);
affichage(t2,n);
end.