Tableau en pascal

Fermé
mokhtarou - 16 déc. 2008 à 12:52
plorytriass Messages postés 17 Date d'inscription samedi 5 janvier 2008 Statut Membre Dernière intervention 21 décembre 2008 - 21 déc. 2008 à 09:58
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.
A voir également:

1 réponse

plorytriass Messages postés 17 Date d'inscription samedi 5 janvier 2008 Statut Membre Dernière intervention 21 décembre 2008 10
21 déc. 2008 à 09:58
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