|
في حال وجود أي مواضيع أو ردود مُخالفة من قبل الأعضاء، يُرجى الإبلاغ عنها فورًا باستخدام أيقونة ( تقرير عن مشاركة سيئة )، و الموجودة أسفل كل مشاركة .
آخر المواضيع |
|
ملتقى طلاب الاعلام الالي لحل تمارين Algorithmes et programmation en Pascal
|
أدوات الموضوع | انواع عرض الموضوع |
2013-04-25, 19:43 | رقم المشاركة : 421 | |||||
|
اقتباس:
الترمين يقوم بحساب transposer de matrice et affectuer la * de matrice avec le transposer de matrive
|
|||||
2013-04-25, 19:45 | رقم المشاركة : 422 | ||||
|
اقتباس:
وضع الكود في خانة كود:
ادراجو كود الموجود في الردود |
||||
2013-04-25, 19:48 | رقم المشاركة : 423 | |||
|
بخصوص المصفوفات |
|||
2013-04-25, 20:06 | رقم المشاركة : 424 | ||||
|
اقتباس:
عموما هناك اخطاء كثيرة في البرنامج من بينها استدعاء دوال بدون متغيراتها مثال كود:
function max(a,b,c:integer):integer; عند استدعاءنا للدالة max يجب علينا ان نقدم لها 3 متغيرات مثلا max(x,y,z); بينما لا يمكن انا نستدعيها هكدا max :confused: الباسكال يتيح امكانية اعطاء قيمة اولية لاسم الدالة مثلا function min (a,b,integer):byte فيمكن ان نعطي قيمة اولية للدالة min تكون من نفس نوع الدالة min الدي هو في هده الحالة byte فيمكن كتابة min:=5; صحيحة في الباسكال هناك لغان برمجة لا يمكن ان نقدم قيمة اولية للدالة او حتى قيم للدوال مثلا هده الكتابة nbrj_F := nbrj_F - jour + jour_Cornt; لا تعتبر صحيحة ادن من الاحسن استعمال متغير اخر الدي نقوم من خلاله بالقيام بعملليات وعند الانتهاء من العمليات نعطي النتيجة النهائية للدالة فمثلا يمكن استعمال المبدا التالي كود:
var n:integer; n:=0; for i:=1 to 5 do n:=n+t[i] nom_function:=n; شكرا |
||||
2013-04-26, 11:27 | رقم المشاركة : 425 | |||
|
تم تصحيح بعض الاخطاء في البرنامج ولكن النتائج ليست صحيحة كود:
program Nbr_Jours; uses wincrt; const les_mois : array[1..12] of byte = (31,28,31,30,31,30,31,31,30,31,30,31); var Annee,Annee_Cornt,Mois_Cornt,Jour_Cornt,jour_semaine : word; mois,jour : byte; function validj(annee:word;mois,jour:byte):boolean; begin validj := false; if annee mod 4 = 0 then les_mois[2] := 29; if not ((jour > les_mois[mois]) or (jour < 1)) then validj := true; end; function nbrj_D (jour,mois: byte;annee : word):longint; var i : byte;nbr:integer; begin nbr := 0; if Annee_Cornt > Annee then begin if Annee mod 4 = 0 then les_mois[2] := 29; i := mois ; repeat nbr:= nbr + les_mois[i]; i := i + 1; until i > 12 ; nbr := nbr - jour ; nbrj_D:=nbr; end; end; function nbrj_M(Annee_Cornt,annee : word):longint; var nbr:integer; begin nbr := 0; if Annee_Cornt -1 > annee then repeat annee := annee + 1; if annee mod 4 = 0 then nbr := nbr + 366 else nbr := nbr + 365; until annee >= Annee_Cornt - 1; nbrj_M:=nbr; end; function nbrj_F(jour,mois: byte;annee : word):longint; var i : byte;nbr:integer; begin nbr := 0; if Annee_Cornt > Annee then begin jour := 0; mois := 1; end; i := mois ; if Annee_Cornt mod 4 = 0 then les_mois[2] := 29; if i < Mois_Cornt then repeat nbr := nbr + les_mois[i]; i := i + 1; until i >= Mois_Cornt ; nbr:= nbr - jour + jour_Cornt; nbrj_f :=nbr; end; function nbrJours(jour,mois: byte;annee : word):longint; begin nbrJours := nbrj_D(jour,mois,annee) + nbrj_M(Annee_Cornt,annee) + nbrj_F(jour,mois,annee); end; begin write('Entre l''annee :'); readln(annee); repeat write('Entre le mois :'); readln(mois); until (mois >= 1) and (mois <= 12); repeat write('Entre le jour :'); readln(jour); until validj(annee,mois,jour); write('le nombre de jours entre le ',jour,'/',mois,'/',annee,' et le '); writeln(Jour_Cornt,'/',Mois_Cornt,'/',Annee_Cornt,' : ',nbrJours(jour,mois,annee),' Jours'); writeln('nombre de nbr_j:',nbrj_D(jour,mois,annee)); writeln('nombre de nbrj_mt:',nbrj_M(Annee_Cornt,annee)); writeln('nombre de nbrj_f:',nbrj_F(jour,mois,annee)); end. 1-استخدام اسماء المتغيرات طويلة من الاحسن ان نستخدم اسماء متغيرات قصيرة لتسهيل قرائة وفهم البرنامج يمكن استخدام مثلا كود:
var nbr_j:integer; ou var nj:integer; هده الدالة قمنا بتعريفها ولكن لم نستخدمها كود:
function validj(annee:word;mois,jour:byte):boolean; begin validj := false; if annee mod 4 = 0 then les_mois[2] := 29; if not ((jour > les_mois[mois]) or (jour < 1)) then validj := true; end; حسنا عدد ايام شهر فيفري هل يتعلق بالايام او بالشهور ام بالسنة التي قمنا بادخالها؟ لان الدالة هده لديها 3 متغيرات 3 entreé donc c'est logique qu'il depont de trois entreé mais le nombre de jour pour fécrier depent delement de l'anneé لاننا عندما نقوم بتعريف دالة ويكون لديها مثلا 4 متغيرات فهنا يجب ان نستخدم 4متغيرات لاجراء امور الدالة مثلا كود:
f(x)-->x^3+2x+5 هده الدالة لديها متغير واحد وهو x يمكن تحويل نفس الدالة الى دالة بمتغيران هكدا f(x,y)-->x^3+2x+5+0y+0y/15+y-y+y^2-y^2 نتيجة الدالتين هي نفسها ولكن من المنطق ان نستعمل الدالة الاولى لانها تتعلق ب x نفس الامر بالنسبة لدالتنا كود:
function validj(annee:integer):boolean; مثلا ادا كان لدي حرف اريد طباعته على الشاشة مرات متكررة فيمكنني ان استعمل العبارة writeln ادا اريد مثلا كتابة x 5مرات في برنامجي الرئيسي فيمكنني ان استعمل المبدا التالي كود:
writeln(x); writeln(x); writeln(x); writeln(x); writeln(x); في هده الحالة من الاحسن استعمال بروسيدور بالشكل التالي كود:
procedure impr(c:char,n:integer); var i:integer; begin for i:=1 to n do writeln(x); end; y 100 مرة فلا يعقل ان ان استعمل writeln 100 مرة بل اقوم باستدعاء البروسيدور بالشكل التالي كود:
procedure impr('y',100); بينما انك في الدوال الاخرى دائما تقومين بعمل فحص ادا كان عدد الايام 29 او 28 بدون استدعاء البروسيدور كحال هده الدالة كود:
function nbrj_D (jour,mois: byte;annee : word):longint; var i : byte;nbr:integer; begin nbr := 0; if Annee_Cornt > Annee then begin if Annee mod 4 = 0 then les_mois[2] := 29; 3- كود:
const les_mois : array[1..12] of byte = (31,28,31,30,31,30,31,31,30,31,30,31); بحيث مثلا شهر جانفي ومارس وماي جويلية واوت اكتوبر ديسمبر لديهام نفس عدد الايام 31 حاول تلخيص هده الدالة ولكن لا يهم حاول في الاول تعديل البرنامج وبعدها نقوم بتعديل هده الامور وتقليصها 4- لقد جربت ادخال التاريخ 0-0-0 يعني السنة0 الشهر0 اليوم0 حاول القيام بعمل فحصوات لادخال تاريخ صحيح وسنة يمكن مثلا اظهار تعليقف عند ادخال تاريخ اثل من 1950 او تاريخ اكبر من 2013 باقي الاخطاء الموجودة في الربنامج سيتم تصحيحها وشرحها ان شاء الله ولكن ارجوا تصحيح البرنامج ووضع تنبيه لمعرفة عمل كل دالة او بروسيدور والاهم عدم تكرار الاشياء واسخدام الدوال والبروسيدور التي عرفناهم من قبل شكرا |
|||
2013-04-26, 12:09 | رقم المشاركة : 426 | ||||
|
اقتباس:
اخي من فضلك اريد ان اعرف طريقة رفع البروغرام بهذه الطريقة بصراحة لا اعرفها |
||||
2013-04-26, 13:51 | رقم المشاركة : 427 | |||
|
شكرا اخي علي المساعدة جزاك الله خيرا و جعله في ميزان حسناتك |
|||
2013-04-26, 18:58 | رقم المشاركة : 428 | ||||
|
اقتباس:
|
||||
2013-04-26, 23:04 | رقم المشاركة : 429 | ||||
|
اقتباس:
|
||||
2013-04-27, 11:22 | رقم المشاركة : 430 | |||
|
merci akhi yo92cef |
|||
2013-04-29, 20:11 | رقم المشاركة : 431 | |||
|
salam 3likom cv?? bon plz 3awnouni f un algorithme en pascal de cryptage de balaise de vigénère meme fahmouni fih bark w jazakom lah khir |
|||
2013-04-29, 22:07 | رقم المشاركة : 432 | ||||
|
اقتباس:
عموما طريقة فجنر تعتمد على التشفير عن طريق كلمة يعني مثلا Algorithmes et programmation en PascaL هده الجملة الاصلية كلمة التشفير هي مثلا FORUM الجملة السابقة فيها 34 حرف طريقة التشفير هي التالي ناخد الجملة التي نريد ان نشرفها ناخد كلمة التشفير نضع كل حرف من الجملة مع الحرف الدي يقابله من كلمة التشفير سيتم وضع شرح مفصل ان شاء الله غدا شكرا |
||||
2013-04-30, 11:29 | رقم المشاركة : 433 | ||||
|
اقتباس:
ارجوا تحميل هدا البرنامج الخاص بتشفير بطريقة فجنر https://www.gulfup.com/?YCl5G5 ثانيا الشرح موجود في الصور التالية 1/ https://im36.gulfup.com/DqxaW.png 2/ https://im36.gulfup.com/IxivU.png 3/ https://im36.gulfup.com/3g1PQ.png 4/ https://im36.gulfup.com/oXydU.png 5/ https://im36.gulfup.com/lsHAf.png 6/ https://im36.gulfup.com/WlWWk.png شكرا |
||||
2013-04-30, 11:36 | رقم المشاركة : 434 | |||
|
ارجوا مراجعة الرد 99 الموجود في هده الصفحة فيما يتعلق بكيفية ملء مصفوفة |
|||
2013-04-30, 21:38 | رقم المشاركة : 435 | |||
|
rabi ywaf9ak ya khouya w ya3tik matetmena |
|||
الكلمات الدلالية (Tags) |
ملتقى, الالي, الاعلام, طلاب |
|
|
المشاركات المنشورة تعبر عن وجهة نظر صاحبها فقط، ولا تُعبّر بأي شكل من الأشكال عن وجهة نظر إدارة المنتدى
المنتدى غير مسؤول عن أي إتفاق تجاري بين الأعضاء... فعلى الجميع تحمّل المسؤولية
Powered by vBulletin .Copyright آ© 2018 vBulletin Solutions, Inc