نمایش نتایج: از شماره 1 تا 1 , از مجموع 1

موضوع: دستوارت شرطی در دلفی

  1. #1
    ناظم ارشد انجمن
    شاید من بی عیب نباشم اماتوهم نیستی...پس برو وپیش از شمارش اشتباهات من به خطاهای خودت رسیدگی کن
    تاریخ عضویت
    Feb 2010
    محل سکونت
    زیر ی سقف کنار عزیزترینم
    نوشته ها
    12,484
    تشکر تشکر کرده 
    190
    تشکر تشکر شده 
    12,809
    تشکر شده در
    3,688 پست
    حالت من : Relax
    قدرت امتیاز دهی
    11330
    Array

    دستوارت شرطی در دلفی

    دستوارت شرطی در دلفی

    هر زبان برنامه نویسی دارای دستوارت شرطی و کنترل روند برنامه میباشد که دلفی نیز این امکان را با دستوارت خاص به شما میدهد …
    مثلا شما نیاز دارید در قطعه کدی شرطی قرار دهید تا عدد بزگتر یا کوچکتر از بین ۲ یا چند عدد را انتخاب کند یا مثلا میخواهید برای بارها روندی تکرار شود … برای مواردی این چنین شما نیاز به استفاده از دستوارت شرطی دارید
    دستوارت شرطی و تکرار رایج در دلفی عبارت است از:
    If else ,for,while,repeat,switch,
    قالب کلی دستوارت بالا به صورت زیر میباشد
    قطعه کد مورد نظر (در صورت درستی شرط اجرا میشود) Then شرط if
    قطعه کد مورد نظر (در صورت غلط بودن شرط) else
    نکته این دستور این است که این دستور در صورت کلی بالا فقط میتواند ۲ حالت را بررسی کند یعنی یا شرط درست است یا غیر از ان است ولی گاهی شما نیاز دارید حالت های مقایسه را گسترش بدهید برای این منظور میتوانید از دستور else if استفاده کنید به این صورت که به جای کلمه else در دستور بالا else if گزاشته میشود و در این صورت میتوانید یک شرط دیگر را نیز اضافه کنید و در نهایت else را قرار دهید
    قطعه کد then شرط if
    قطعه کد then شرط ۲ else if
    قطعه کد( در صورت غلط بودن هر ۲ شرط بالا) else
    به این صورت میتوانید تا تعداد بیشتری شرط قرار بدهید . مقایسه را انجام بدهید
    نکته در باره دستور if وجود دارد این است که اگر شما در انتهای قطعه کد خود ; را قرار دهید کامپایلر از شما ایراد میگیرد چون قبل از کلمه else نباید ; قرار دهید
    عمل مقایسه به صورت بالا وقتی تعداد حالات زیاد میشود روش مناسبی نیست مثلا برای ۱۰ شرط کد نویسی وقت گیر و به هم ریخته ایجاد میشود بنابراین نیاز به دستور دیگری داریم تا در تعداد حالات زیاد از ان استفاده کنیم …
    دستور switch دستوری است که شما با استفاده از ان میتوانید حالات بیشتری را مقایسه کنید ..روند کلی ان به صورت زیر است :
    case variant of
    Case 1:code;
    Case2:code;
    Case3:code
    Else:code;
    End;
    روند بالا متغیری(variant) را با چند عدد یا متغیر یا رشته یا…. مقایسه کرده و در صورت برابر بودن قطعه کد مورد نظر را به اجرا در می اورد و همانطور که در دستور if گفته شد قبل از else قرار دادن ; باعث خطا میشود ..
    حلقه for:
    گاهی شما نیاز دارید تا دستوری چندین بار اجرا شود … مثلا عددی را ۱۰ بار با خودش جمع کنید
    حالت کلی دستور for به صورت زیر است :
    for i:=1 to 10 do
    begin
    قطعه کد
    End;
    دستور بالا ۱۰ بار قطعه کد شما را اجرا میکند .. اول از همه شما نیاز به تعریف متغیری مانند i دارید که باید از نوع محلی باشد در غیر اینصورت خطا رخ میدهد .. پس از تعریف متغییر میتوانید مقادیر دلخواه را در ان به صورت عددی یا متغیر قرار دهید تا به حد نهایت تعیین شده توسط شما( در این مثال عدد ۱۰ برسد) که میتواند متغیر باشد ..
    نکته دیگر در دستور for این است که شما حتما باید یک begin و end برای داخل حلقه for قرار دهید و قطعه کد را درون ان بنویسید ..
    گاهی شما نیاز دارید تا مقادیر به صورت نزولی شمرده بشوند یعنی مثلا از به جای اینکه از عدد ۱ به ۱۰ برود از عدد ۱۰ به ۱ پیمایش کند برای این منظور باید به جای to از کلمه downto استفاده شود به صورت زیر
    For i:10 downto 1 do
    Begin
    قطعه کد
    End;
    دستور while این امکان را به شما میدهد تا با شرط حلقه را کنترل کنید مثلا تا زمانی که متغیری از متغیر دیگر بزگتر یا کوچکتر است کاری را تکرار کند
    روند کلی دستور به صورت زیر است :
    While x>y do
    Begin
    قطعه کد
    End;
    در این نمونه شرط بزگتر بودن x از y میباشد ..در واقع تا زمانی که این شرط درست باشد قطعه کد تکرار میشود
    دستور repeat نیز همانند while میباشد و به صورت زی استفاده میشود
    قطعه کد repeat
    ;شرط until
    تا زمانی تکرار میشود که شرط درست است!
    ذکر چند مثال برای موارد بالا :
    میخواهیم ۲ عدد را از کاربر گرفته و عدد بزگتر را پیدا کنیم :
    پس از دریافت عدد و مقدار دهی انان که در اموزش های قبلی گفته شده نوبت به مقایسه و نمایش عدد بزگتر میرسد
    برای مثال ۲ عدد گرفته شده در ۲ متغیر x,y هستند :
    if x>y then showmessage(‘the number 1 is greater’)
    Else if Y>x then showmessage(‘the number 2 is greater’)
    Else showmessage(‘num1=num2’);
    عکس ۱:
    if1
    با فرض اینکه عدد اول در x و عدد دوم را در y ریخته باشیم کد بالا مقایسه بین ۲ عدد میباشد
    حالا فرض کنیم میخواهیم عددی از کاربر بگیریم و انرا با ۵ عدد مقایسه کنیم
    عدد مربوط را در متغیر برای مثال به اسم x قرار میدهیم
    case x of
    1:showmessage(‘your number is 1’);
    ۲:showmessage(‘your number is 2’);
    ۳:showmessage(‘your number is 3’);
    ۴:showmessage(‘your number is 4’);
    ۵:showmessage(‘your number is 5’)
    Else showmessage(‘not found’);
    End;
    عکس۲:
    if2
    این گونه مقایسه را میتوانید مثلا برای چک کردن user name و یا password استفاده کنید به این صورت که جای قطعه کد ها که در این مثال showmessage استفاده شده از دستور if استفاده کنید که در مقاله بعدی توضیح داده خواهد شد
    مثلا میخواهیم عددی را از کاربر بگیریم و ۱۰ با با خودش جمع کنیم :
    عدد را در متغیری به اسم x میریزیم و سپس با حلقه برای ۱۰ بار انرا جمع میکنیم :
    For i:=1 to 10 do
    Begin
    A:=X+a;
    End;
    عکس۳:
    if3
    توجه کنید که متغیر a باید مقدار دهی اولیه شود (۰)
    [SIGPIC][/SIGPIC]

  2. کاربر مقابل از mehraboOon عزیز به خاطر این پست مفید تشکر کرده است:


برچسب ها برای این تاپیک

علاقه مندی ها (بوک مارک ها)

علاقه مندی ها (بوک مارک ها)

مجوز های ارسال و ویرایش

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

http://www.worldup.ir/