delphi4arab منتديات دلفي للعرب
الحلقات التكرارية - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : الحلقات التكرارية (/showthread.php?tid=4364)



الحلقات التكرارية - belnono - 19-07-2012

السلام عليكم ورحمة الله تعالى وبركاته

كيف أستبدل هذه الحلقة وأعني بها (FOR) بحلقة من إحدى هاتين الحلقتين WHILE أو REPEAT

مثال على ذلك: عندي العدد X والعدد Y بحيث اصل إلى قيمة هذين المجهولين اللذين جداؤهما هو العدد 63875
أعرف استخراجهما بالحلقة التكرارية التالية FOR لكنها لا تساعدني في مشكلات أخرى
[صورة: san4758stitre.png]
شكرا وبارك الله فيكم


الحلقات التكرارية - King SofT - 19-07-2012

وعليكم السلام اخي

اولا باستعمال الحلقة Repeat


كود :
var a,b:integer; begin a:=3; repeat b:=0; repeat if a*b=63875 then begin Edit1.Text:=IntToStr(a); Edit2.Text:=IntToStr(b); Exit; end else b:=b+1; until b=1000; a:=a+1; until a=1000; end;

الان باستعمال الحلقة While

كود :
var a,b:integer; begin a:=3; while a<1000 do begin b:=0; while b<1000 do begin if a*b=63875 then begin Edit1.Text:=IntToStr(a); Edit2.Text:=IntToStr(b); exit; end else b:=b+1; End; a:=a+1; End; end;


بالتوفيق


الحلقات التكرارية - belnono - 19-07-2012

ماذا أقول أخي الكريم
King SofT
أدعو الله أن يبارك لك في دنياك وآخرتك
وأن يديم الله سعادتك وأهلك
لقد جربتهما معا ونجحتا، حتى أنني فهمتهما بكل سهولة
شكرا


الحلقات التكرارية - S.FATEH - 19-07-2012

السلام عليكم

للاستفادة الفرق بين Repeat و while
Repeat تتحقق من الشرط عند النهاية until و لذلك سينفذ الكود مرة اخرى قبل الخروج من الحلقة while تحقق من
الشرط عند البداية و لذلك لن ينفذ الكود ما لم يتحقق الشرط ...
باستخدام حلقة while
كود :
procedure TForm1.Button2Click(Sender: TObject); var a,b: Integer; begin a := 2; while a <= 100 do begin b := 0; while b <= 1000 do begin if (a * b = 63875) then begin Edit1.Text := IntToStr(a); Edit2.Text := IntToStr(b); end; inc(b); end; inc(a); end; end;

بالتوفيق


الحلقات التكرارية - belnono - 19-07-2012

جزاك الله عنا كل الخير أخي الكريم s.fateh
على الزيادة وعلى التوضيح
بارك الله فيك


الحلقات التكرارية - محمد عبد العزيز - 19-07-2012

باستخدام حلقة Repeat وبطريقة اخرى اسرع!
كود :
Var d:integer; begin d:=1; Repeat inc(d); Until frac(63875/d)=0; Edit1.Text := IntToStr(d); Edit2.Text := FloatToStr(63875/d); end;



الحلقات التكرارية - belnono - 19-07-2012

أخي الكريم B.M.AbdelAziZ
عندما رأيت المرة الأولى الكود، استغربت
لأنه قصير، بعدها عرفت أنك ربطت الجزء الصحيح من القسمة بالعدد a
ماشاء الله عليك في الإبداع
كل معلومة زودتمونا بها، جعلها الله في ميزان حسناتكم
كل الشكر والتقدير لك أخي
والسلام عليكم