![]() |
|
الحلقات التكرارية - نسخة قابلة للطباعة +- 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 لكنها لا تساعدني في مشكلات أخرى ![]() شكرا وبارك الله فيكم الحلقات التكرارية - 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 ماشاء الله عليك في الإبداع كل معلومة زودتمونا بها، جعلها الله في ميزان حسناتكم كل الشكر والتقدير لك أخي والسلام عليكم |