منتديات الجلفة لكل الجزائريين و العرب - عرض مشاركة واحدة - موضوع مميز ملتقى طلاب الاعلام الالي لحل تمارين Algorithmes et programmation en Pascal
عرض مشاركة واحدة
قديم 2012-11-17, 21:19   رقم المشاركة : 53
معلومات العضو
salemk
عضو مشارك
 
الصورة الرمزية salemk
 

 

 
إحصائية العضو










افتراضي

اقتباس:
المشاركة الأصلية كتبت بواسطة you92cef مشاهدة المشاركة
exo pour les 2 eme anneé info

ecrire un programe recursive qui fait la somme de n element entre d'un tableu
puis affiche le resultat
كود:

program expo;
uses wincrt;


type
tab = array[1..20] of integer;  { disant que le programme accepte 20 entier au max}


{
Pour faire la somme des cases d'un tableau de    n      éléments :
 Pour la case n°1 c'est le cumul de la case n°1 et des case qui précédent (dans ce cas on à pas des cases)
  plus la somme des cases qui restent
 
Pour la case n°2 c'est le cumul de la case n°2 et des cases précédant plus la somme des cases qui restent 

Pour la case n°3 c'est le cumul de la case n°3 et des cases précédant plus la somme des cases qui restent 

Et ainsi de suite...

On s'arrête lorsque la case traité est celle la dernière
(la variable   i    désigne la case traité, la variable    n     désigne le nombre total des cases)
}

function somme (t:tab;i,n:integer):integer;

begin
if i<=n then
   somme:=t[i] + somme (t,i+1,n)
else
   somme:=0;
end;



{On ne parle d'un tableau que lorsque on 'à plus que un élément (2 ou plus)}
procedure saisir(var n:integer);
begin
   readln(n);
if ((n > 20) or (n < 2)) then
   saisir(n);
end;


{Pour remplir un tableau on doit saisir une valeur dans la case traitée puis
on remplit le reste du tableau (Presque même principe que la fonction somme)}
 
procedure remplir(var t : tab ;i,n : integer);

begin
if i <= n then
   begin
   readln(t[i]);
   remplir(t,i+1,n);
   end;
end;


{Variables globaux}
var
n :integer;
t:tab;

{Corps du programme principal}
begin
saisir(n);

remplir(t,1,n);

writeln(somme(t,1,n));

end.









رد مع اقتباس