![]() |
|
في حال وجود أي مواضيع أو ردود
مُخالفة من قبل الأعضاء، يُرجى الإبلاغ عنها فورًا باستخدام أيقونة
( تقرير عن مشاركة سيئة )، و الموجودة أسفل كل مشاركة .
آخر المواضيع |
|
ملتقى طلاب الاعلام الالي لحل تمارين Algorithmes et programmation en Pascal
![]() |
|
أدوات الموضوع | انواع عرض الموضوع |
|
![]() |
رقم المشاركة : 1 | ||||
|
![]() التمرين الثاني كود:
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. كود:
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) ; كود:
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. كود:
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.
|
||||
![]() |
![]() |
رقم المشاركة : 2 | |||
|
![]() التمرين الاول كود:
program suite; uses wincrt; var n,i,u0,v0,w0,un,vn,wn:longint; begin u0:=1; v0:=2; w0:=3; readln(n); for i :=1 to n do begin un:=2*u0+3*v0+w0; vn:=u0+v0+2*w0; wn:=u0+4*v0+w0; u0:=un; v0:=vn; w0:=wn; end; writeln('U(',n,')= ',u0); writeln('V(',n,')= ',v0); writeln('W(',n,')= ',w0); end. ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Le programme qui suit est théorique car sous un éditeur Pascal lors de la déclaration des modules on s’assure de la visibilité des objets et de l’ordre des définitions qui doit être conformes aux appels des modules. Dans U on appel V et W, pour calculer V on appel U et W et pour W on utilise U et V : c’est une récursivité croisée, l’éditeur Pascal ne permet pas une telle récursivité ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- كود:
program suite; uses wincrt; function u(n:longint):longint; begin if n=0 then u:=1 else u:= 2*u(n-1)+3*v(n-1)+w(n-1); end; function v(n:longint):longint; begin if n=0 then v:=2 else v:= u(n-1)+v(n-1)+2*w(n-1); end; function w(n:longint):longint; begin if n=0 then w:=3 else w:= u(n-1)+4*v(n-1)+w(n-1); end; var n: longint; begin readln(n); writeln('U(',n,')= ',u(n)); writeln('V(',n,')= ',v(n)); writeln('W(',n,')= ',w(n)); end. |
|||
![]() |
![]() |
رقم المشاركة : 3 | ||||
|
![]() اقتباس:
الحل الثاني هناك خطا *-* باللون الاحمر وهذا ما اشرت اليه سابقا بحيث انني اجد صعوبة في استدعاء دالة داخل دالة رغم ان الاستاذ قال انه يمكنك استدعاء دالة في اي مكان تريد ![]() عموما سوف احتفظ بالحل عندي وسوف احالو القيام بحل بالطريقة الثانية اعتمادا على الطريقة الاولى ![]() |
||||
![]() |
![]() |
رقم المشاركة : 4 | ||||
|
![]() اقتباس:
مثلا لو ادخلت مثلا 987654321 ففي 3 برامج سوف يظهر النتيجة 17 والتي هي مجموع 9+8 ولم يقم بباقي المجموع الا انك ساعدتني في التفكير في عبارة المجموع وبرنامج اخر يظهر النتيجة 0 |
||||
![]() |
![]() |
رقم المشاركة : 5 | ||||
|
![]() اقتباس:
Attention frère, Le type de donné utilisé pour la variable N est entier (integer), par définition un entier sous Pascal ne doit pas dépasser 2^15 = 32768 في البرمجة وتتطوير المواقع لا يوجد خاطئ وصحيح بل يوجد وافق المطلوب أو يتطلب التحسين |
||||
![]() |
![]() |
رقم المشاركة : 6 | ||||
|
![]() اقتباس:
شكرا اخي لمك انتبه جيدا كيف عرفت نوع n ولكن البرنامج والاستاذ طلب ان ندخل n على اساس string شكرا لك |
||||
![]() |
![]() |
رقم المشاركة : 7 | ||||
|
![]() اقتباس:
كود:
Program somme ; Uses wincrt ; Var N: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; function verif(s:string):boolean; begin if length(s)= 0 then verif:= true else begin if not(s[1] in ['0'..'9']) then verif := false; verif:=verif(copy(s,2,length(s)-1)); end; end; Begin repeat Readln(N) ; Until verif(N); writeln(som(N)); end. |
||||
![]() |
![]() |
رقم المشاركة : 8 | ||||
|
![]() اقتباس:
ممكن سؤال في اي سنة تدرس ؟ |
||||
![]() |
![]() |
رقم المشاركة : 9 | ||||
|
![]() اقتباس:
، انا من تونس من ولاية القصرين ونحب تبسة برشا في ما يخص الحلول المقترحة، أكون سعيدا جدا لمناقشتها :d |
||||
![]() |
![]() |
رقم المشاركة : 10 | |||
|
![]()
Une itérative
كود:
Program somme ; Uses wincrt ; Var N:string; function som(s:string):integer; var r,i,d,e:integer; begin r:=0; for i :=1 to length(s) do begin val(s[i],d,e); r:=r+d; end; som:=r; end; function verif(s:string):boolean; var i:integer; begin i:=1; while s[i] in ['0'..'9'] do begin i:=i+1; end; verif:=i>length(s); end; Begin repeat Readln(N) ; Until verif(N); writeln(som(N)); end. |
|||
![]() |
![]() |
الكلمات الدلالية (Tags) |
ملتقى, الالي, الاعلام, طلاب |
|
|
المشاركات المنشورة تعبر عن وجهة نظر صاحبها فقط، ولا تُعبّر بأي شكل من الأشكال عن وجهة نظر إدارة المنتدى
المنتدى غير مسؤول عن أي إتفاق تجاري بين الأعضاء... فعلى الجميع تحمّل المسؤولية
Powered by vBulletin .Copyright آ© 2018 vBulletin Solutions, Inc