منتديات الجلفة لكل الجزائريين و العرب - عرض مشاركة واحدة - موضوع مميز ملتقى طلاب الاعلام الالي لحل تمارين Algorithmes et programmation en Pascal
عرض مشاركة واحدة
قديم 2012-11-03, 21:47   رقم المشاركة : 7
معلومات العضو
you92cef
عضو محترف
 
إحصائية العضو










افتراضي

اقتباس:
المشاركة الأصلية كتبت بواسطة salemk مشاهدة المشاركة
التمرين الثاني

امكانية استعمال mod et div

كود:
program somme;
uses wincrt;
var n:integer;
function s(n:integer):integer;
begin
if n<10 then
 s:=n 
else 
s:=n mod 10+s(n div 10);
end;
begin
repeat
readln(n);
until n>=0;
writeln(s(n));
end.
une solution itérative

كود:
programme somme ;
uses wincrt ;
var
n,s :integer ;
begin
readln(n) ;
repeat 
s :=s+s mod 10 ;
n := n div 10 ;
until n=0 ;
writeln(s) ;
باستعمال chaine

كود:
program somme ;
uses wincrt ;
var
n,s,i,d,e :integer ;
ch:string;
begin
readln(n) ;
str(n,ch);
for i:=1 to length(ch) do
begin
val(ch[i],d,e);
s:=s+d;
end;
writeln(s);
end.
une solution récursive
كود:
program somme ;
uses wincrt ;
var
n:integer ;
ch:string;
function som(s:string):integer;
var
   d,e:integer;
begin
if length(s)=1 then
begin
   val(s,d,e);
   som:=d;
end
   else
   begin
       val(s[1],d,e);
       som:=d+som(copy(s,2,length(s)-1));
   end;
end;


begin
readln(n) ;
str(n,ch);
writeln(som(ch));
end.
البرنامج خاطئ اخي للاسف
مثلا لو ادخلت مثلا 987654321
ففي 3 برامج سوف يظهر النتيجة 17 والتي هي مجموع 9+8 ولم يقم بباقي المجموع

الا انك ساعدتني في التفكير في عبارة المجموع

وبرنامج اخر يظهر النتيجة 0









رد مع اقتباس