1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| program tableau_villes3;
const
N_MAX=100;
type
Tab=array[1..N_MAX]of string;
var
t:Tab;
tab_annexe:array[1..N_MAX]of integer;
i,j,nbr_villes,rang,taille:integer; (*déclarations*)
nom_ville,villei: string;
presence:boolean;
begin
writeln('entrez le nombre de villes, inférieur à 100, que vous souhaitez afficher'); (*saisie du nombre de cases par l'utilisateur*)
readln(nbr_villes);
for i:=1 to nbr_villes do
begin
writeln('entrez un nom de ville'); (*remplissage du tableau*)
readln(nom_ville);
t[i]:=nom_ville;
end;
for i:=1 to nbr_villes do (*affichage du tableau*)
writeln(t[i]);
writeln('maintenant, entrez un nom de ville'); (*recherche d'une ville dans le tableau*)
readln(nom_ville);
for j:= 1 to nbr_villes do
begin
if t[j]= nom_ville then (*test*)
begin
writeln('le rang de ',nom_ville,' est ',j); (*affichage du rang si ville présente*)
presence:=true;
end ;
end;
(*instructions si ville absente*)
if (presence=not true) then
writeln(nom_ville,' ne se trouve pas dans le tableau');
writeln('entrez le rang dont vous voulez découvrir la ville'); (*recherche d'une ville à partir de son rang*)
readln(rang);
if (rang <= nbr_villes) then
writeln ('la ville au rang ',rang,' est ',t[rang]) (*affichage de la ville correspondant au rang entré par l'utilisateur*)
else
begin
repeat
writeln('ce rang n''existe pas dans le tableau, entrez en un autre'); (*cas où l'utilisateur entre un rang erroné*)
readln(rang);
until (rang <= nbr_villes);
writeln ('la ville au rang ',rang,' est ',t[rang]);
end;
for i:=1 to nbr_villes do
begin
taille:=0 ;
for j :=1 to length(t[i]) do
begin
taille:=taille + ord (nom_ville[j]);
tab_annexe[i]:=taille;
end;
writeln('la taille de la chaine' ,i, 'est',tab_annexe[i]);
end;
readln;
end. |
Partager