delphi4arab منتديات دلفي للعرب

نسخة كاملة : الحلقات التكرارية
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله تعالى وبركاته

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

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

اولا باستعمال الحلقة 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;


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

للاستفادة الفرق بين 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;

بالتوفيق
جزاك الله عنا كل الخير أخي الكريم s.fateh
على الزيادة وعلى التوضيح
بارك الله فيك
باستخدام حلقة 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;
أخي الكريم B.M.AbdelAziZ
عندما رأيت المرة الأولى الكود، استغربت
لأنه قصير، بعدها عرفت أنك ربطت الجزء الصحيح من القسمة بالعدد a
ماشاء الله عليك في الإبداع
كل معلومة زودتمونا بها، جعلها الله في ميزان حسناتكم
كل الشكر والتقدير لك أخي
والسلام عليكم