نمایش نتایج 1 تا 2 از 2

نام تاپیک: تحلیل یک مسئله در دلفی | دستور Repeat |

  1. #1

    تحلیل یک مسئله در دلفی | دستور Repeat |

    سلام

    امیداورم حال دوستان خوب باشه
    ان شا... که همین طور هم هست

    در مورد یک مثال و مسئله برای فهم حلقه تکرار 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 قرار می گیره ...

    دوستان اون چند دستور اخر که قرمز و بولد کردم رو اگه توضیح بدن ممنون می شم تا بشه
    این مسئله رو دقیق درک کرد.( یه هفتس که موندم و نتونستم درک کنم )

    برای راحتی کار سورس رو هم پیوست همین نامه گذاشتم .
    فایل های ضمیمه فایل های ضمیمه

  2. #2
    سری فیبوناچیه این نه ؟ یادش بخیر

    دستور Sum :=Sum + Help یکی از خواسته های مسئله رو بهمون نشون می ده ، همون مجموع جملات سری رو
    متغیر Help در هر بار تکرار با استفاده از دستور Help:=Current+Next یکایک جمله های سری رو تولید می کنه تا زمانی که حلقه تموم بشه.
    متغیر Current جمله ی ما قبل جمله ی آخر سری رو در تکرار فعلی نشون می ده که همون میشه مقدار Help در تکرار قبلی ، که مقدارش در تکرار فعلی در متغیر Next قرار داره و با دستور Current:=next اینکار انجام میشه.
    متغیر Next جمله ی آخر سری رو در تکرار فعلی نشون میده که جمله ی آخر فعلی همون Help هستش رو درش قرار می دیم ، همون دستور Next:=Help

    در حقیقت در این سری جمله ی جدید (Help) از مجموع جمله ی آخر (Next) با جمله ماقبل آخر (Current) بدست می آد.
    مثلا از مجموع 8 (جمله آخر فعلی) با 5 (جمله ی ماقبل) جمله ی جدید همون 13 بدست می آد. بهمین ترتیب جمله ی بعدی میشه 21 و ...

    توضیح بیشتر در مورد سری فیبوناچی

تاپیک های مشابه

  1. repeat column در دیتاگرید
    نوشته شده توسط eworkpro در بخش ASP.NET Web Forms
    پاسخ: 4
    آخرین پست: پنج شنبه 20 دی 1386, 22:02 عصر
  2. Repeat
    نوشته شده توسط pejo-barnamenevis در بخش C#‎‎
    پاسخ: 3
    آخرین پست: چهارشنبه 12 دی 1386, 16:30 عصر
  3. Repeat Group header
    نوشته شده توسط rockpigeon در بخش گزارش سازی با Crystal Report
    پاسخ: 12
    آخرین پست: پنج شنبه 16 شهریور 1385, 14:27 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •