Tableau en pascal

mokhtarou -  
plorytriass Messages postés 17 Statut Membre -
Bonjour,
j'ai un exercice avec TURNO PASCAL que je n'ai pas pu résoudre correctement, l'énoncé et le suivant:

soit un tableau T de N entiers positifs (5<N<20), on désire écrire un programme qui permet de remplir un tableau R par les nombres de chiffres de chaque élément de T, d'afficher les éléments de R ainsi que l'entier qui admet le plus de chiffres.

NB: dans le cas ou plusieurs entiers ont le meme nombre de chiffres, le programme affiche celui quio apparait le premier dans T.

exemple: T: 54 17654 9 4532 36187 997

R: 2 5 1 4 5 3

l'entier qui possède le plus de chiffres est: 17654

merci de m'aider!!

voila mon essai: mais il ne donne pas une réponse correcte

program tablo;
uses wincrt;
var t:array [5..20] of integer;
r:array[1..100] of integer;
i,m,n,k:integer;
ch:ARRAY[1..100] OF STRING;

BEGIN

repeat
writeln('Donnez le nombres de cases');
readln(n);
until n in [5..20];

for i:=1 TO n do

BEGIN
write('T[',i,']=');
readln(t[i]);
END;

for i:=1 to n do
str(t[i],ch[i]);

for i:=1 to n do
r[i]:=length(ch[i]);

for i:=1 to n do
write(r[i]:7);

m:=0;

for i:=1 to n do

begin

for k:=1 to n do

if (r[k]>r[k+1]) and (r[k]>r[k-1]) then

m:=r[k];

if (r[n]>m) then m:=r[n]

else

if (r[1]>m) then m:=r[1];
end;

writeln(' ');
writeln('le garnd nombre de chiffres introduit est ',m);
writeln('la case qui contient ce nombres est ',R[K]);

end.
Configuration: Windows XP
Firefox 3.0.4

1 réponse

  1. plorytriass Messages postés 17 Statut Membre 10
     
    program tablo;
    uses wincrt;
    var t:array [5..20] of integer;
    r:array[1..100] of integer;
    i,m,n,k:integer;
    BEGIN

    repeat
    writeln('Donnez le nombres de cases');
    readln(n);
    until n in [5..20];

    for i:=1 TO n do
    BEGIN
    write('T[',i,']=');
    readln(t[i]);
    r[i]:=length(str(t[i]));
    END;
    m:=r[1];
    k:=1;
    for i:=2 to n do
    begin
    if r[i]>m then
    begin
    m:=r[i];
    k:=i;
    end;
    end;

    for i:=1 to n do
    begin
    writeln ('le ',i,'ème élément de r est :',r[i]);
    end;
    writeln('l''élémént le plus grand est ;',r[k]);

    END.
    0