|
في حال وجود أي مواضيع أو ردود مُخالفة من قبل الأعضاء، يُرجى الإبلاغ عنها فورًا باستخدام أيقونة ( تقرير عن مشاركة سيئة )، و الموجودة أسفل كل مشاركة .
آخر المواضيع |
|
ملتقى طلاب الاعلام الالي لحل تمارين Algorithmes et programmation en Pascal
|
أدوات الموضوع | انواع عرض الموضوع |
2013-02-01, 12:38 | رقم المشاركة : 256 | |||||
|
اقتباس:
ينصح باستعمال التعليقات p,fact,s:=1 راجع*-*ي*-* الكتابة s:=x*x*s نفس الامر x*x.=sqr(x); راجع*-*ي*-* الحلقات les boucle لانها غير كاملة pas de do dans la 2 ieme boucle استعمال begin end; في الحلقات عندما يكون لدينا اكثر من عملية للقيام بها cos الصحيح cos(x) ou cos(y) ou sin(u) ext ينصح بعدم استعمال الدوال cos ,sin;tan ext داخل البرامج بل اما ان نعطيها القيمة النهائية او نظهرها في في العرض *-* الكتابة cos(x):=1-p/fact+cos(x) لا ينصح بها ينصح بتغير cos ب r مثلا r:=1-p/fact+r بعدها اما ان نكتب بعد نهاية عمل كل الحلقات cos(x):=r او نستعمل التعليقات writeln('cos(',x,')=',r)); لان r في هذه الحالة متغير variable بينما cos هي دالة
|
|||||
2013-02-01, 14:48 | رقم المشاركة : 257 | |||
|
هذه الخوارزمية كانت للتوضيح فقط ،، غرضها توصيل الفكرة فحسب ,,لكن مع ذلك الشكر موصول لكـ على النصائح ’’ |
|||
2013-02-01, 14:53 | رقم المشاركة : 258 | ||||
|
اقتباس:
الرجاء التوضيح اكثر ,, |
||||
2013-02-01, 14:59 | رقم المشاركة : 259 | |||
|
اريد حل معادلة من الدرجة الثانية الغوريتم او fortron وشكرا |
|||
2013-02-01, 17:17 | رقم المشاركة : 260 | ||||
|
اقتباس:
*-* اظن الصفحة 4 او 5*-* حاول*-*ي*-* برمجته بنفسك |
||||
2013-02-01, 17:37 | رقم المشاركة : 261 | ||||
|
اقتباس:
لحساب العاملي والاس وبما ان fact(n):=n*f(n-1); 5!:=5*4! اذن لم ادخلنا n.=8 اننا نحتاج فقط الى الاعداد الزوجية لكي نحسب العاملي والاس يعني ناخذ المجال [1..8] وكل مرة ناخذ قيمة اذا كانت زوجية نقوم بالحساب اذا لم تكن زوجية ناخذ القيمة التي تليها ولهذا نحتاج الى دالة for I.=1 to 8 do ونحتاج الى معرفة اذا كانت المتغير زوجي ام فردي من اجل هذا نستعمل الدالة mod I mod 2=0 اذا كان الشرط محققا فاننا نحسب العاملي وبما اننا لم نحسب عاملي الاعداد الفردية لانه يحصل لدينا مشكل لماذا؟ مثال for I.=1 to 8 do if I mod 2=0 then fact:=n*fact بحيث في هذه الحالة العاملي باللون الاخضر هو العاملي الجديد والعاملي باللون الاحمر هو العاملي القديم لنجرب عمل البرنامج i:=1 عدد فردي لا نقوم بالحساب i.=i+1 i:=2 عدد زوجي نقوم بالحساب 2!:=2*1 بحيث 1 هو العاملي القديم i.=3 فردي i.=4 4!:=4*2 *-* طبقنا التعريف فقط*-* بحيث 2 هو العاملي السابق وهنا يكمن المشكل لاننا لم نحسب 3! اذن لكي تكون لنا العبارة الصحيحة فيجب ان نضرب في 3 اذا نلاحظ ان 3 =4-1 اذن فهي هذه الحالة نكتب fact:=n*(n-1)*fact ملاحظة في حالة حساب fact que de nombre pair ou inpair on doit multipliyer par n-1 car le fact encient :=fact(n-2) نفس الامر بالنسبة للاس لفهم اكثر*-* جرب*-*ي*-* بورقة وقلم توجد اكثر من طريقة من بينها الطريقة ولكن هذه اسهل |
||||
2013-02-02, 23:53 | رقم المشاركة : 262 | |||
|
نعم يجب ان يتحقق الشرط حتى تعمل tant que تعني طالما ان مثلا tant que n devise 2 fair فاذا كانت العدد الذي ادخلناه من قواسم 2 فاننا نقوم بالعمليات الموجودة داخل البوكل بينما لا بوكل iterer فهي العكس iterer action action2 until n divise 2 هي في الحالة الثانية تقوم بتكرار الامور حتى يتحقق الشرط فاحدى الدالتين عكس الاخرى فالدالة 1 تعمل طالما ان الشرط محقق وتتوقف عندما لا يتحقق الدالة 2 تعمل طالما ان الشرط لم يتحقق وتتوقف عندما يتحقق الشرط الدالة 1 while---tant que طالما ان الدالة 2 ietrer--repeat كرر .... حتى |
|||
2013-02-05, 17:32 | رقم المشاركة : 263 | ||||
|
اقتباس:
|
||||
2013-02-05, 18:10 | رقم المشاركة : 264 | ||||
|
اقتباس:
كود:
En Pascal For Compteur := V_initiale To V_finale Do Begin Actions End ; Le bloc d'instructions (Actions) est répété en modifiant le contenu de la variable Compteur par la valeur du SUCC(compteur) ; la valeur de départ que prend la variable Compteur est celle de V_initiale ; la dernière valeur que la variable Compteur va prendre est V_finale ; Le bloc d'instructions (Actions) est exécuté pour chacune des valeurs que prend successivement la variable Compteur ; La variable Compteur doit être de type scalaire (entier, caractère, booléen ou énuméré) ; Le nombre d’itérations ou de répétition est : ORD (V_finale) - ORD (V_initiale) + 1 ; le contenu de la variable Compteur peut être modifié par la valeur du PRED(Compteur), on parle de la boucle POUR avec un parcourt décroissant : كود:
En Pascal For Compteur :=V_finale Downto V_initiale Do Begin Actions End ; ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- كود:
En Pascal Repeat Actions Until Condition ; * Il est nécessaire qu’une instruction à l’intérieur de traitement de la boucle puisse modifier la valeur de la condition, si non on aura une boucle infinie ; * L’ordre des instructions à répéter dans la boucle est parfois important. --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- كود:
En Pascal While Condition Do Begin Actions End ; * Si la valeur de la condition de non arrêt est vraie alors la boucle continue à s’exécuter, sinon la boucle s’arrête. * En Pascal Begin et End; sont obligatoires même si la boucle comporte une seule instruction |
||||
2013-02-12, 11:29 | رقم المشاركة : 265 | |||
|
هذه محاولتي في كتابة خوارزمية تحول من النظام العشري الى النظام الثنائي |
|||
2013-02-12, 13:17 | رقم المشاركة : 266 | ||||
|
اقتباس:
التصحيح باللون الاحمر كود:
uses crt; var s1,s2,s3,s4,i:integer; begin clrscr; readln(s1); s4:=0; i:=0; s3:=1; repeat i:=i+1; if i=1 then s3:=1 else begin s3:=s3*10; end; s2:=s1 mod 2; s1:=s1 div 2; s4:=s3*s2 + s4; until s1=0; writeln(s4); readln; end. كما ان الحل يعتبر محدود اذ لايمكن للبرنامج تحويل عدد اكبر من 31 الى الاعداد العشرية لان النوع Integer محصور بين 32767 و -32768 لذلك يرجى تحويل المتغيرات الى longint |
||||
2013-02-12, 15:25 | رقم المشاركة : 267 | ||||
|
اقتباس:
نعم معك حق احييك اخي ,,على اكتشاف الخطأ والشكر موصول اليك , |
||||
2013-02-12, 19:48 | رقم المشاركة : 268 | |||
|
السلام عليكم |
|||
2013-02-13, 01:25 | رقم المشاركة : 269 | ||||
|
اقتباس:
هذه محاولتي لنظام اقل من 10 (فقط حاولت التعميم) هل من تعليق أو نصيحة وجزاكم الله خيرا ساحاول كتابة برنامج يحول من نظام الى نظام اخر (المشكلة في A B C D E F ) كود:
program re; uses wincrt; procedure saisir_base(var x:byte); begin writeln('donner la base de convertion'); readln(x); if ((x<1) or (x>10)) then saisir_base(x); end; procedure saisir_nombre(var x:longint); begin writeln('donner un nombre en base 10'); readln(x); if (x<=0) then saisir_nombre(x); end; procedure conv(y:longint;z:byte); begin if y<z then write(y) else begin conv(y div z , z); write( y mod z); end; end; var a:longint; b:byte; begin saisir_nombre(a); saisir_base(b); conv(a,b); end. |
||||
2013-02-13, 22:35 | رقم المشاركة : 270 | ||||
|
اقتباس:
كود:
program conv; uses wincrt; var chiffres,ch:string; b,b1:byte; function verifier(s:string;x:byte):boolean; var i:byte; begin i:=1; while ((upcase(s[i]) in (['A'..'F','0'..'9'])) and (pos(upcase(s[i]),chiffres)<=x)) do begin i:=i+1; end; verifier:= (i>length(s)) and (length(s)>0); end; function base10(s:string;x:integer):longint; var v:longint; i:byte; begin v:=0; for i:=1 to length(s) do v:= pos(upcase(s[i]),chiffres)-1 + (v*x); base10:=v; end; function nouvellebase(x:longint;nb:byte):string; var s:string; i:byte; begin s:=''; while not(x=0) do Begin i:= x mod nb; s:= chiffres[i+1] + s; x:= x div nb; End; nouvellebase:=s; end; begin chiffres:='0123456789ABCDEF'; repeat writeln('donner une valeur'); readln(ch); writeln('Dans quelle base est-elle exprimée ?'); readln(b); until ((verifier(ch,b)) and (ch<>'0') and (b in [2..16])); writeln('Dans quelle base faut-il l''exprimer?'); readln(b1); writeln(ch,' en base ',b,' est égale à ',nouvellebase(base10(ch,b),b1),' en base ',b1); end. |
||||
الكلمات الدلالية (Tags) |
ملتقى, الالي, الاعلام, طلاب |
أدوات الموضوع | |
انواع عرض الموضوع | |
|
|
المشاركات المنشورة تعبر عن وجهة نظر صاحبها فقط، ولا تُعبّر بأي شكل من الأشكال عن وجهة نظر إدارة المنتدى
المنتدى غير مسؤول عن أي إتفاق تجاري بين الأعضاء... فعلى الجميع تحمّل المسؤولية
Powered by vBulletin .Copyright آ© 2018 vBulletin Solutions, Inc