سلام
امیداورم حال دوستان خوب باشه
ان شا... که همین طور هم هست
در مورد یک مثال و مسئله برای فهم حلقه تکرار Repeat در دلفی 7
مثال :
برنامه ای که مجموع جملات سری زیر را تا رسیدن به اولین جمله ای با مقدار بیش از عددی
که از ورودی دریافت می شود , رو نمایش دهد .
1 1 2 3 5 8 13 ......
1 - پروژه جدیدی ایجاد کنید .دو عنصر Label با کپشن sum Is , Last Is به فرم اضافه کنید
2- دو عنصر Edit ایجاد کرده و خاصیت Text ان ها رو حذف کنید و جلوی دو عنصر Label قرار
دهید.
3 -دو عنصر Button به نام های Start , Stop ایجاد کنید .
4 - یک عنصر به نام ListBox به فرم اضافه کنید .
5 - دکمه Start را کلیک مضاعف کرده و دستورات زیر را تایپ کنید .
procedure TForm1.Button1Click(Sender: TObject);
var
last,Help,Current,Next,Sum :integer;
begin
Current:=1;
Next:=1;
last:=strtoint(Edit2.Text);
Listbox1.Items.Add(inttostr(Current));
listbox1.Items.add(inttostr(Next));
sum:=2;
repeat
Help:=Current+Next;
listBox1.items.Add(inttostr(Help));
Sum:=Sum + Help;
Current:=next;
Next:=Help;
until Help > Last;
Edit1.Text:=inttostr(sum);
end;
end.
در این مسئله last,Help,Current,Next,Sum این متغیر ها از نوع صحیح تعریف شده اند
ابتدا 1 در Current قرار می گیره
بعد 1 در Next قرار می گیره
بعد توسط تابع Strtoint مقادیری که در Edit2.text هست در last قرار می گیره
بعد مقادیر Current , Next در لیست باکس قرار می گیرند
بعد 2 در Sum قرار می گیره ...
حالا شروع حلقه Repeat :
که Current , Next جمع شده و در Help قرار گرفته ...
و بعد Help به عنوان مقادیر تکرار شوند به لیست باکس اضافه شده
من دستور Sum :=Sum + Help رو متوجه نشدم که چرا ... منظورش چی بوده ؟
و دستورات بعدی رو هم همچین ...
در Until هم که مشخصه اگه مقدار اعداد حلقه از مقدار عددی که در Edit2.text
هست بزرگتر بشه و شرط برقرار بشه ...حلقه به پایان میرسه و مجموع Sum در Edit1.text قرار می گیره ...
دوستان اون چند دستور اخر که قرمز و بولد کردم رو اگه توضیح بدن ممنون می شم تا بشه
این مسئله رو دقیق درک کرد.( یه هفتس که موندم و نتونستم درک کنم )
برای راحتی کار سورس رو هم پیوست همین نامه گذاشتم .