Lycée Mahmoud Messadi Nabeul
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment :
Funko POP! Jumbo One Piece Kaido Dragon Form : ...
Voir le deal

je bloque ici ...

2 participants

Aller en bas

je bloque ici ... Empty je bloque ici ...

Message par Oussama Saied Lun 9 Mar - 22:32

écrire un programme permettant de remplir un tableau T (de taille max =50 ) par n entiers de quatre chiffres puis affiche la somme des chiffres de chaque élément.

je bloque a la déclaration de la fonction "som"
dans la procédure remplir ...

program somme ;
uses wincrt ;
type
tab=array [1..50] of integer ;

var
t:tab ;n,i,s,d,m,c,u,x,e :integer ;ch:string;

procedure lecture(var n :integer);
begin

repeat
write('n= ');readln(n);
until n in [1..50];

end;

procedure remplir(var t:tab ;n:integer);
begin
for i:=1 to n do
repeat
readln(t[i]);
until (n>1000) and (n<9999) ;
end;

function som( x:integer):integer;
begin

str(x,ch);
val(ch[1],m,e);
val(ch[2],c,e);
val(ch[3],d,e);
val(ch[4],u,e);
som := m+c+d+u

end;

procedure affiche (t:tab ;n :integer);
begin
for i:=1 to n do
readln (som(x)) ;
end;



begin
lecture(n);
remplir(t,n);
affiche(t,n);

end.


merci d'avance

Oussama Saied

Messages : 3
Date d'inscription : 18/01/2009

Revenir en haut Aller en bas

je bloque ici ... Empty réponse à Oussama

Message par Admin Mar 10 Mar - 13:24

très bien Oussama, mais ta solution manque quelques retouches
program somme ;
uses wincrt ;
type
tab=array [1..50] of integer ;
var
t:tab ;n,i,s,d,m,c,u,x,e :integer ;ch:string;
procedure lecture(var n :integer);
begin
repeat
write('n= ');readln(n);
until n in [1..50];
end;
procedure remplir(var t:tab ;n:integer);
begin
for i:=1 to n do
repeat
readln(t[i]);
until (t[i]>1000) and (t[i]<9999) ;
end;
function som( x:integer):integer;
begin
str(x,ch);
val(ch[1],m,e);
val(ch[2],c,e);
val(ch[3],d,e);
val(ch[4],u,e);
{on peut extraire m,c,d et u sans transformer x en une chaîne
ça ce fait comme suit: som:=(x div 1000)+(x mod 1000 div 100) + (x mod 100 div 10)
+ (x mod 10);
}
som := m+c+d+u;
end;
procedure affiche (t:tab ;n :integer);
begin
for i:=1 to n do
writeln (som(t[i])) ;
end;

begin
lecture(n);
remplir(t,n);
affiche(t,n);
end.

Admin
Admin

Messages : 65
Date d'inscription : 30/12/2008

https://lmmnabeul.forumactif.org

Revenir en haut Aller en bas

je bloque ici ... Empty Re: je bloque ici ...

Message par Oussama Saied Mar 10 Mar - 23:38

baraka allahou fik ... Smile

Oussama Saied

Messages : 3
Date d'inscription : 18/01/2009

Revenir en haut Aller en bas

je bloque ici ... Empty Re: je bloque ici ...

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum