.تعمیـــرکاران کیان ست (kiansat.kim)تابع قوانین -جمهموری-اسلامی ایران میباشد و ارسال هر گونه مطلب سیاسی،مذهبی،غیراخلاقی و خرید و فروش متعلقات ماه-واره و دیگر موارد مجرمانه ممنوع میباشد وبا کاربران خاطی به شدت برخورد میگردد انجمن فقط تعمیرات لوازم الکترونیک میباشد...













سلام مهمان گرامی؛
به کیان ست خوش آمدید برای مشاهده انجمن با امکانات کامل می بايست از طريق این لینک عضو شوید.

http://teranzit.pw/uploads/14469017281.png
پیام خصوصی به مدیریت کل سایت ........... صفحه توضیحات و شرایط گروه ویژه ........... ...........
ارتباط تلگرامی با مدیریت سایت ................. ایدی تلگرام suportripair@ .................
نمایش نتایج: از شماره 1 تا 2 , از مجموع 2

موضوع: اموزش پاسکال

  1. #1


    تاریخ عضویت
    Nov 2009
    محل سکونت
    robatkarim
    علایق
    prey
    شغل و حرفه
    service
    سن
    48
    نوشته ها
    284
    تشکر ها
    1,533
    2,311 سپاس از287 پست

    پیش فرض اموزش پاسکال

    آموزش Pascal


    اجزاء تشکيل دهنده کامپيوتر عبارتند از :
    1.سخت افزار
    2.نرم افزار
    • سخت افزار
    خروجی<============== پردازش<===============ورودی
    كامپيوترهاي امروزي معمولاً از قطعات زير تشكيل مي‌شوند:
    دستگاههاي ورودي
    حافظه‌هاي جانبي
    حافظه‌هاي اصلي
    واحد پردازشگر مركزي
    دستگاههاي خروجي

    • نرم افزار:

    نرم‌افزار يكي از بخش‌هاي اساسي كامپيوتر به شمار مي‌آيد، كه در واقع سخت‌افزار را بكار مي‌گيرد. بعبارت ديگر رابط بين كاربر و سخت‌افزار را نرم‌افزار مي‌نامند. نرم‌افزار در حقيقت روح و جان يك كامپيوتر است، كه به سخت‌افزار هويت مي‌بخشد.

    زبانهاي برنامه‌نويسي :

    نرم‌افزارها توسط زبانهاي برنامه‌نويسي نوشته مي‌شوند. زبانهاي برنامه‌نويسي، يك سيستم ارتباطي هستند كه توسط آنها مي‌توان دستورات لازم را به ماشين انتقال داد.
    هرزبان برنامه‌نويسي به مجموعه‌أي از علايم، قواعد و دستورالعمل‌ها گفته مي‌شود كه امكان ارتباط با كامپيوتر را جهت بيان كاري يا حل مسئله‌اي فراهم مي‌كند.
    در حالت كلي زبانهاي برنامه‌نويسي را به سه دسته زير تقسيم‌بندي مي‌كنند:
    1.زبانهاي سطح بالا
    2.زبانهاي سطح پايين
    3.زبانهاي سطح مياني
    زبان Pascal
    این زبان توسط پروفسور نيكلاس ويژت در انستيتو فني فدرال سوئيس در در اواخر سال 1960 و اوايل 1970 مطرح گرديد و به افتخار بلز پاسكال دانشمند فرانسوي قرن هفدهم ميلادي، پاسكال نامگذاري شده است.پاسکال یک زبان سطح بالا است.
    اجزاي تشکيل‌دهنده يک برنامه:
    1.کلمات ذخيره‌شده ( Reserved Words )
    2.شناسه‌ها ( identifier )

    کلمات ذخيره‌شده ( Reserved Words )

    کلمات ذخيره شده، کلماتي هستند که مترجم زبان آنها را مي‌شناسد و معناي خاصي براي زبان دارند. مترجم زبان به محض مشاهده اين کلمات اعمال خاصي را انجام مي‌دهد. هر زبان داراي تعداد مشخصي کلمات ذخيره شده مي‌باشد و اين تعداد قابل افزايش توسط برنامه‌نويس نيست.
    بعضی از کلمات ذخیره شده در پاسکال عبارت است از :
    And,file,goto,var, while,unit,until,program,procedure,..
    شناسه‌ها ( identifier )
    شناسه در پاسکال براي نامگذاري ثابتها، تايپها، پروسيجروها، توابع، ميدانهاي يک رکورد، برنامه و همچنين يونيت مورد استفاده قرار مي‌گيرد.
    در حالت کلي دو نوع شناسه وجود دارد :
    1.id هاي استاندارد: اين نوع id ها از قبل در زبان پاسکال تعريف شدهاند و در برنامهها، معناي خاصي دارند .

    2.Id هاي غيراستاندارد: اين نوع id ها بوسيله کاربر بطور مجزا تعريف ميشوند و اصطلاحاً به آنها userdefined گفته ميشود.

    ساختار برنامه در زبان پاسکال :
    اجزاء اصلي يک برنامه به زبان پاسکال بصورت زير مي‌باشد:
    1. عنوان برنامه
    2.قسمت تعاريف برنامه
    3.قسمت دستور العملها

    قسمت تعاريف برنامه:

    1.اعلان ثابتها Constant Declaration
    2.اعلان انواع Type Declaration
    3.اعلان متغيرها Declaration Variable
    4.اعلان برچسبها Declaration Label

    درحالت کلي مي‌توان شکل يک برنامه در زبان پاسکال را بصورت زير بيان کرد:

    1.استفاده از کلمه ذخيره شده Program و اسم برنامه ( که مي‌تواند بکار برده نشود )
    2.قسمت تعاريف شناسه‌ها
    3.بلوک اصلي برنامه که با Begin شروع و به End همراه نقطه ( . ) ختم مي‌شود.
    4.هر دستور در پاسکال به ( ; ) ختم مي‌شود.
    فرم کلی برنامه در پاسکال:
    ; نام program
    ; تعریف ثابت Const
    ; تعریف متغیرVar
    ;تعریف نوع Type
    BRGIN
    ; دستورات برنامه
    END; متغيرها (Variables)
    متغير، محلي از حافظه است که داراي نوع و اسم مي‌باشد. نوع متغير همان نوع داده بوده و اسم متغير از قواعد اسم‌گذاري شناسه تبعيت مي‌کند.
    انواع داده‌ها ( data types ):
    1.داده‌هاي ساده (Simple data type)
    .2داده‌هاي ساخت‌يافته ( ( Structural Data Types
    3. داده‌هاي اشاره‌گر (Pointer Data Types)


    داده‌هاي ساده (Simple data type)

    1.انواع صحیح شامل اعداد بدون ممیز است متداولترین انواع صحیح را در شكل زير ببينيد:

    2.اعداد اعشاری: شامل اعداد با نقطه ممیز است متداولترین آن در شكل زير ببينيد::



    3.:Char این نوع داده که به آن کاراکتری می گویند حداکثر می تواند یک کاراکتر را در خود نگه دارد و اندازه آن یک بایت از حافظه را اشغال می کند.

    4.نوع String:
    این نوع داده برای ذخیره رشته ها مثل اسامی افراد به کار می رود حداکثر طول آن 255 کاراکتر است در ضمن برای هر رشته باید طول آن را مشخص کنیم در غیر این صورت طول آن را به طور پیش فرض 80 در نظر می گیرد.
    5.نوع Boolean:
    این نوع داده که داده های بولی خوانده می شود مقادیر این نوع داده های بولی دارای دو ارزش درستی یا نادرستی است که در پاسکال با 0و1 نمایش می دهند 0 به معنای نادرستی و1 به معنای درستی است.

    2.انواع داده‌هاي ساخت‌يافته عبارتند از:

    • آرايه‌ها
    • رکوردها
    • مجموعه‌ها
    • فايلها
    3. داده‌هاي اشاره‌گر (Pointer Data Types)
    ممکن است در نوشتن برنامه، نوع داده‌هاي بحث شده در بالا به دلايل مختلف از جمله مشخص نبودن تعداد وروديهاي مسئله و غيره مشخص نباشد لذا نياز به متغيرهايي هست که بتوانند آدرس متغيرهاي ديگر را در خود نگه دارند، اين نوع داده‌ها، داده‌هاي اشاره‌گر نام دارند.
    • در پاسکال براي معرفي متغيرها بصورت زير عمل مي‌کنند:
    Var
    ; نوع متغير: اسم متغير
    • براي تعريف يک ثابت بصورت زيرعمل مي‌کنيم :
    ; مقدار ثابت = اسم متغير Const

    شکل کلي يک دستور جايگزيني در پاسکال بصورت زير است:

    عبارت محاسباتي = : اسم شناسه
    عبارت قياسي يا
    عبارت منطقي
    افزودن توضيحات به برنامه (Comment):
    افزودن مطلب توضيحي در درون خود برنامه عملي پسنديده و مطلوب است بدين ترتيب که بعد از مدتي امکان فراموشي کار با برنامه از بين مي‌رود و در کل مي‌توان گفت که نوشتن توضيحات در برنامه خوانايي آن را بالا مي‌برد.
    در پاسکال توضيحات بين دو آکولاد محصور مي‌شوند.
    { This is comment }
    { This program written by A. Pascal }

    قبل از این که شروع به نوشتن یک برنامه کنیم ابتدا باید دستورات ورودی و خروجی را در پاسکال یاد بگیریم :

    خروجي با دستور Write :
    اين دستور براي نوشتن اطلاعات در خروجي بکار مي‌رود. اطلاعات خروجي مي‌توانند ثابتهاي عددي، مقادير متغيرها، عبارات و غيره باشند. شکل دستور در حالت کلي بصورت زير است:
    (....... و متغير2 و متغير1 )write
    يا (....... و' عبارت 2' و'عبارت1 ')
    يا (....... و ثابت 2 وثابت 1 )
    مثال:
    Var
    A , B: integer ;
    Ch: char ;
    R: Real ;
    Begin
    A: = 10 ; B: = 15 ;
    Ch: = ' T ' ;
    R: = 12.25
    Write ( ' A = ' , A, ' B = ' , B ) ;
    Write ( ' ch = ' , ch , ' R= ' , R ) ;
    Write ( ' sum of A and B = ' , A + B ) ;
    End. { end of program}

    بعد از اجراي برنامه فوق در خروجي خواهيم داشت:


    A = 10 B = 15 ch = TR = 1.2250000000 e + 01 sum of A and

    B = 25
    خروجي با دستور Writeln :
    اين دستور همانند دستور Write عمل مي‌کند با اين تفاوت که بعد از اجرا، کنترل را به ابتداي سطر بعد منتقل مي‌کند در نتيجه موجب چاپ داده‌هاي بعدي در ابتداي سطر بعد مي‌شود.
    خروجي برنامه بالا بصورت زير مي‌باشد:
    A = 10 B = 15
    Ch = T R = 1.225000000 e + 01
    Sum of A and B = 25
    خروجي فرمت‌بندي شده:
    اگر بخواهيم اطلاعات با فاصله هاي مشخص يا در مکان مشخصي در صفحه نمايش قرار گيرند، بايد فرمت چاپ را در دستورات بيان شده مشخص کنيم.
    طريقه تعيين فرمت چاپ براي اعداد صحيح :
    ( طول ميدان: داده صحيح ) Writeln يا Write
    در تعريف طول ميدان براي متغيرها يا داده‌هايي از نوع صحيح به نکات زير توجه کنيد:
    1.اگر طول ميدان از طول ارقام عدد صحيح بيشتر تعريف شود، عدد در منتهي‌اليه سمت راست ميدان نوشته مي‌شود.
    .2اگر طول ميدان از طول ارقام عدد صحيح کمتر تعريف شود، طول ميدان به اندازه تعداد ارقام در نظر گرفته مي‌شود و طول ميدان تعريف شده بي‌اثر خواهد بود.

    مثال:

    X:= 3200 ;
    A: = 12 ;
    B: = 217 ;
    Write ( X:3 , A:5 , B:5 ) ;
    خروجی: 217 دوتا فاصله 12 سه تافاصله 3200


    طول ميدان اعداد اعشاري :

    براي نمايش اعداد اعشاري بصورت دلخواه، مي توان با تعريف طول ميدان و تعداد ارقام اعشاري، عدد مزبور را نمايش داد.
    : در حالت کلي طول ميدان را مي‌توان به صورت زير تعريف کرد:
    ( تعداد ارقام بعد از مميز: طول ميدان: متغير اعشاري) Writeln يا Write
    در تعريف فرمت براي اعداد اعشاري به نکات زير بايد توجه کرد:
    .1 اگر طول ميدان بزرگتر از تعداد ارقام عدد ذکر شود، عدد در منتهي اليه سمت راست ميدان چاپ مي‌شود.
    2.اگر فقط طول ميدان ذکر شود، عدد به صورت نماد علمي در طول ميدان مشخص شده
    چاپ می شود .از آنجائي که براي نمايش اعداد در نماد علمي حداقل 8 محل مورد نياز است، لذا هنگامي که تنها طول ميدان ذکر شده باشد، اگر از 8 رقم کمتر باشد، حداقل 8 رقم در نظر گرفته مي‌شود.
    3.هنگامي که طول ميدان همراه با تعداد ارقام بعد از مميز ذکر شود، اگر طول ميدان کوچکتر از مقدار عدد باشد، پاسکال تنها طول ميدان را به اندازه‌اي که مورد نياز است تصحيح کرده و آنرا برابر اندازه واقعي که عدد در آن قرار مي‌گيرد، اصلاح مي‌کند.
    4.اگر تعداد ارقام بعد از مميز زياد باشد و تعداد ارقام بعد از مميز ذکر شده در طول ميدان کمتر از تعداد ارقام اعشاري عدد باشد، تعداد ارقام اعشار مطابق درخواست برنامه‌نويس نشان داده خواهد شد و رقم آخر اعشار آن نسبت به عدد بعدي گرد مي‌شود.
    طول ميدان کاراکترها و رشته‌ها :
    براي نمايش رشته‌ها و کاراکترهاي با طول ميدان بصورت زير عمل مي‌کنيم.
    (طول ميدان: متغير يا عبارت رشته‌اي يا کاراکتري) Writeln يا Write
    در توربو پاسکال، کليه موارد گفته شده در مورد اعداد صحيح براي رشته‌ها نيز صادق است.
    ورودي با Readln , Read
    از اين دستورات براي خواندن داده ها و اختصاص آنها به متغيرها استفاده مي‌شود. در خواندن داده ها به دو موضوع بايد دقت شود:
    1- منبع داده‌ها يعني دستگاه ورودي که از آن داده‌ها خوانده مي‌شود.
    2- متغيري که داده‌هاي خوانده شده در آن قرار مي‌گيرد.
    شکل کلي دستور ورودي Read بصورت زير مي‌باشد:
    ;( ..... و متغير 2 و متغير 1Read (
    اين دستور عمل خواندن داده‌ها و ذخيره آنها در متغيرها را انجام مي‌دهد و پس از اتمام عمل خواندن کنترل را براي خواندن و نوشتن‌هاي بعدي. در همان خط نگه مي‌دارد
    شکل کلي دستور ورودي ReadLN بصورت زير مي‌باشد:
    ;( ..... و متغير 2 و متغير 1ReadLN (
    اين دستور عمل خواندن داده‌ها و ذخيره آنها در متغيرها را انجام مي‌دهد و پس از اتمام عمل خواندن کنترل را براي خواندن و نوشتن‌هاي بعدي به خط بعد می رود.
    تا به ما قادر شدیم که یک برنامه کامل را بنویسیم حال چند مثال را حل می کنیم:
    1.برنامه ای بنویسید که محتویات دو عدد را عوض کند؟
    program Example_1 ( input , output ) ;
    Var
    first , second , temp: integer Begin
    Writeln ;
    Writeln ( 'Please Enter two numbers ' ) ;
    Readln ( first , second ) ;
    Temp: = first ;
    First: = second ;
    Second: = temp ;
    Write ( ' first = ' , first , ' second = ': 10 , second ) ;
    End. { end of program }
    خروجي برنامه بالا به صورت زير مي‌باشد:
    Please Enter two numbers
    15 17
    First = 17 second = 15

    2.برنامه ای بنویسید که حقوق پایه و تعداد فرزندان یک کارگر را از ورودی گرفته و مبلغ حقوق وی را بر اساس فرمول زیر محاسبه کند؟

    10* تعداد فرزندان+ حقوق پایه= حقوق کل

    program TEST( input , output ) ;

    Var
    CHILD:BYTE
    :LONGINT SALARY
    : integer ; KOL
    Begin
    Writeln ; Writeln ( 'Please Enter salary an number of child);
    Readln ( salary, child ) ;
    Kol:=salary+child*10;
    Writeln ('kol is',kol);
    End. { end of program }
    در درس بعدی انواع عمگرها ،دستورات شرطی،دستور case ،حلقه ها را خواهم گفت در ضمن این مطالب هر هفته آپدیت می شود.

    عملگر ها:


    انواع عملگر ها عبارت است از:

    1.عملگرهای رابطه ای

    2.عملگرهای منطقی


    3.عملگر های محاسباتی



    عملگرهای رابطه ای:


    آن دسته از عبارات منطقی که عمل مقایسه را انجام می دهند یکی از اشکال زیر را دارند:

    Variable relational-operator Variable
    Variable relational-operator constant

    عملگر های رابطه ای به شرح زیرند:

    > کوچکتر
    < بزرگتر
    <= بزرگتر مساوی
    = > کوچکتر مساوی
    <> نامساوی
    = مساوی

    نکته: دو عملوند یا داده ای که با هم مقایسه می شوند اغلب یا دو متغیر هستند یا یک متغیر و یک ثابت هستند. نوع داده ی عملوند های یک عملگر رابطه ای باید یکسان باشد.


    عملگرهای منطقی:


    با استفاده از عملگر های منطقی not , or , and می توان عبارات منطقی پیچیده تری ایجاد نمود .


    مثال :

    (x < y ) or (y > 5)

    متغیر های منطقی در واقع عبارات منطقی هستند . بنابر این از آنها می توان به عنوان عملگر های منطقی استفاده نمود .


    مثال

    :(X and (not y

    جداول درستی :


    عملگر Andو OR:


    عملوند2 OR عملوند 1 عملوند2 and عملوند 1

    عملوند2
    عملوند 1

    True True

    True
    true

    True false

    False
    True

    False True

    true
    false

    False False

    False
    False


    عملگر Not:


    عملوند 1 not

    عملوند 1

    false

    true

    True

    false


    تقدم عملگرها ترتیب ارزیابی را مشخص می کند.جدول تقدم عملگرها عبارتند از :



    عملگر


    Not


    * / div mod and


    + - or


    < <= = <> >= >


    دستورات کنترلی:


    1.دستور IF:


    در پاسکال یک ساختار انتخابی ابتدایی شامل دستور IF است که در دستور همراه یک عبارت منطقی قرار می گیرد .دستور IF مشخص می کند که در یک حالت خاص ، کدام مجموعه از دستورات باید اجرا شوند.


    دستور if یک انتخابی:

    If condition then
    Statement-

    دستور if دو انتخابی:

    If condition then
    Statement1
    Else Statement2

    مثال: برنامه ای بنویسید که تعداد فرزندان و حقوق پایه و رتبه یک کارگر را از ورودی دریافت کرده و حقوق کلی او را بر اساس فرمول زیر حساب کند؟


    کسریها - مزایا + بیمه = حقوق کل

    5*رتبه+1000* تعداد فرزندان =مزایا
    مالیات+بیمه=کسریها


    بیشتر

    کمتر یا مساوی 2
    تعداد فرزند

    تعداد فرزندان

    1000
    بیمه

    هر چیزی دیگر

    0تا 20
    رتبه

    حقوق پایه

    حقوق پایه*100/10
    مالیات


    Program salary_kol;

    uses wincrt;
    Var
    Salary:longint;
    kasry,bimeh,mazaya,kol,net:real;
    Num,grade:integer;
    Begin
    Writeln('Enter salary and grade and number of child');
    Readln(salary,grade,num);
    If num<=2 then
    Bimeh:=100
    Else
    Bimeh:=num*500;
    If (grade>0) and (grade<=20) then
    begin
    Net:=20/100*salary;
    Mazaya:=num*1000+grade*50 ;
    Kasry:=bimeh+net;
    Kol:= salary+mazaya-kasry;
    End
    Else
    If (grade>20)then
    begin
    Net:=20/100*salary;
    Mazaya:=num*1000+grade*50 ;
    Kasry:=bimeh+net;
    Kol:= salary+mazaya-kasry;
    End;
    Writeln('salary kol is:',kol);
    Readln;
    End.
    دستور case:

    برای انتخاب یک حالت از چندین گزینه ، در پاسکال علاوه بر دستور if ،دستور دیگری به نام case وجود دارد. Case میتواند تعدادی شرط را بگیرد و انتخاب کند.


    مقادیری را که دستور case می پذیردORDINAL است .مقادیری که دارای ORDINAL هستند دارای ترکیب نیستند و همچنین قابل شمارش هستند مثل :integer,character,byte,boolean,longint,…پسstr ing,real,… نمی توانند ORDINAL باشند.دستور case دارای begin نمی باشد.

    Case selector of
    Label : statement ;
    Label : statement ;
    .
    .
    .
    .
    .
    label : statement
    end [case]

    مثال:

    case N of
    1,2 : begin
    write (‘1,2,’) ;
    writeln( ‘buckle my shoe’)
    end ; {1,2}
    3 , 4 :writeln (‘ 3,4 , shut the door ‘) ;
    5 , 6 :writeln (‘ 5 , 6 , oick up sticks’)
    end {case}


    عبارت otherwise یا else برای دستور :case


    چنانچه انتخاب کننده case یک مقدار غیر قابل انتظار داشته باشد می توان از این عبارت برای نمایش پیغام خطا یا عمل تصحیح استفاده نمود.در دستور case بعد، در صورتی که مقدار غیر منتظره ای در DayNumber ذخیره شود، عبارت otherwise پیغام خطای invalid day number را نمایش می دهد.

    {compute gross pay for a particular day }
    case DayNumber of
    1, 7 : Gross := Hours * 1.5 * dailyRate ;
    2, 3 , 4 , 5 , 6 : Gross := Hours * DailyRate ;
    otherwise
    writeln (‘ invalid day number . ‘)
    end {case}

    مثال:برنامه ای بنویسید که دو عدد را از ورودی دریافت کرده وچنانچه عدد اول در بازه 0 تا 5 بود توان دوم عدد دوم را چاپ کند اگر 68 بود ضرب آن دو عدد را نمایش دهد در غیر اینصورت مقادیر مجاز را چاپ کند؟

    Program case_of;
    Uses wincrt;
    Var a,b:integer;
    Begin
    Writeln('enter tow number');
    Readln(a,b);
    Case a of
    0..5:Writeln('sqrt(b):',b*b);
    68:writeln('a*b:',a*b)
    Else
    writeln('Enter 0..5 or 68');
    End;{case}
    Readln;
    End.

    حلقه ها:

    1.حلقه FOR:

    حلقه for برای تعداد تکرار 0 یا بیشتر و در ضمن برای تعداد تکرار معین به کار می رود .


    شکل کلی دستور for به صورت زیر است:

    Do مقدار نهایی To} مقدار شروع =: متغیرfor

    Downto


    To زمانی به کار میرود که مقدار اولیه از مقدار نهایی کمتر باشد.

    downTo زمانی به کار میرود که مقدار اولیه از مقدار نهایی بیشتر باشد.

    مثال:برنامه ای بنویسید که مجموع مضارب 5 بین 0 تا 100 را حساب کند؟

    Program zarb;
    Uses wincrt;
    Var I,sum:integer;
    Begin
    Sum:=0;
    For i:=1 to 20 do
    Begin
    Sum:=sum+i*5;
    End;
    Writeln('sum is:',sum);
    End.

    مثال:برنامه ای بنویسید که تعداد مضارب 5و7 را در بازه [231,846] چاپ کند؟

    Program number;
    Uses wincrt;
    Var I,s,k:integer;
    Begin
    S:=0;
    K:=0;
    For i:=846 downto 231 do
    Begin
    If I mod 7=0 then
    S:=s+1;
    If I mod 5=0 then
    K:=k+1;
    End;
    Writeln('7=',s);
    Writeln('5=',k);
    End.

    حلقه های for می توانند علاوه بر نوع integer ، از انواع دیگر ترتیبی نیز استفاده کنند . در مثال زیر ، از متغییر char استفاده شده است.


    مثال :

    For nextch := ‘ A’ to ‘Z’ do Write (nextch );


    2.حلقه while:


    ساده ترین دستور کنترل حلقه دستور While می باشند. دستوراتی که تکرار می شوند بدنه حلقه نام دارند و بعد از کلمهdo قرار می گیرند. بدنه حلقه یک دستور مرکب است که بین begin و end محصور شده است.


    حلقه While یک حلقه با تکرار 0 یا بیشتر و تعداد تکرار در آن نامعین است.


    شکل آن بصورت زیر است:

    Do شرطWhile
    begin

    دستورات

    End;

    مثال:برنامه ای بنویسید که تعدادی از اسامی را از ورودی دریافت کند و سپس بگوید اسم 'ali' چند بار تکرار شده است؟(آخرین اسم end باشد)

    Program repeat_ali;
    Uses wincrt;
    Var s:integer;
    Name:string;
    Begin
    S:=0;
    Writeln('Enter names ');
    Readln(name);
    While name<>'end' do
    Begin
    Readln(name);
    If name='ali' then
    S:=s+1;
    End;
    Writeln('ali repeat:',s);
    End.
    3.حلقه Repeat:

    دستور repeat یک حلقه شرطی را مشخص می کند که تا وقتی که شرط آن درست بشود ، حلقه تکرار می گردد (یعنی این حلقه تا زمانی اجرا می شود که شرط آن نا درست باشد و به محض درست بودن شرط حلقه دیگر اجرا نمی شود ).

    Repeat
    loop-body
    Until termination-condition

    حلقه شرطی دستور repeat ، یک حلقه repeat – until نامیده می شود. توجه داشته باشید که چون کلمات repeat و until بدنه حلقه را محصور می کنند نیازی به کلمات begin و end نیست . این نوع حلقه حداقل یکبار تکرار می شود.


    مثال:

    Repeat
    write (‘Enter a digit >’);
    read (ch)
    Until (‘0’ <= ch) and (ch <= ‘9’)

    حلقه های لانه ای:


    همانند دستور if حلقه ها را می توان درون یک دیگر قرار داد .حلقه های لانه ای شامل یک حلقه خارجی یا بیرونی و یک یا چند حلقه درونی است . هر بار که حلقه بیرونی تکرار می شود حلقه های درونی نیزاجرا می شوند و عبارت کنترل حلقه در آنها مجدد ارزیابی می شود وتمام تکرارهای الزامی انجام می شوند .


    مثال:

    Program m_n;
    Uses wincrt;
    Var
    I , j : integer ;
    Begin
    Writeln (‘I’ :12 , ‘j’ :5);
    For I:=1 to 3 do
    Begin
    Writeln (‘outer’ :5,I :7 );
    For j:= 1 to I do
    Writeln (‘inner’ :7 , I :5 , j:5)
    End;
    End.
    دستورات break,continue:
    Break: این دستور در داخل حلقه ها بکار رفته و باعث خروج از داخلی ترین حلقه شده و دستور بعد از آن حلقه اجرا شود.
    Continue: این دستور نیز مانند break در درون حلقه ها بکار رفته و باعث می شود کنترل برنامه به ابتدای حلقه باز گردد.

    دستورات halt,exit:

    Halt پرس و جویی است که باعث خروج کامل از برنامه و بازگشت به سیستم عامل می گردد.
    Exit پرس و جویی است که باعث خروج از زیر برنامه می شود و چنانچه در قسمت اصلی برنامه به کار رود مانند halt عمل می کند.

    دستور goto


    این دستور کنترل را به خط دلخواه می برد نحوه استفاده آن با اینصورت است که از یک برچسب در جلوی آن استفاده می شود کنترل برنامه زمانی که به آن رسید به برچسب مورد نظر پرش می کند.


    برچسبها نیز می بایست در ابتدای برنامه تعریف شوند .تعریف آن به صورت زیر است.

    ; نام برچسبLABEL

    تعریفی از پارامتر ها:


    پارامترها خطوط ارتباطی بین برنامه اصلی و پیمانه های آن هستند . پارامترها باعث می شوند که توابع و رویه ها روانتر عمل کنند زیرا آنها به یک پیمانه این قابلیت را می دهند که با هر بار فراخوانی ، داده های مختلفی را مورد پردازش قرار دهد. در بخش بعدی خواهید دید که چگونه برنامه نویسان برای ارسال اطلاعات بین برنامه اصلی و پیمانه ها و یا ارسال اطلاعات بین پایانه ها ، از پارامتر استفاده می کنند.


    پارامتر های واقعی و صوری:


    هر دستور فرا خوانی رویه ، دو قسمت دارد :نام رویه و لیست پا رامترهای واقعی .برای مثال ، رویه Line را در نظر بگیرید که از یک نقطه روی صفحه به نقطه دیگر خطی رسم میکند . دستور فراخوانی آن شامل نام رویه یعنی line و لیست پارامتر های واقعی یا ((x1,y1,x2,y2 می باشد.


    Line ( X1 , Y1 , X2 , Y2 )

    در هر بار فراخوانی این رویه ،برنامه نویس چهار متغیر یا چهار عدد را که مختصات دو نقطه را نشان می دهند، در آن قرار می دهد. چون با هر بار فراخوانی line، مختصات نقاط می توانند تغییر کنند ، باید آنها را در قسمت تعاریف رویه نشان دهیم . برای اینکار، از نامهای ساختگی که اصطلاحا" به آنها، پارامترهای صوری می گوییم ،استفاده می کنیم.

    Procedure Line ( XStart , YStart , XEnd , YEnd : Integer ) ;


    رویه line تا وقتی فراخوانی نشود ، نمی داند که چه داده ای دریافت خواهد کرد. برنامه فراخوان،اطلاعات مورد نیاز line را از طریق پارامتر های واقعی به رویه ارسال می کند و هر پارامتر واقعی با پارامتر صوری متناظر با آن جفت می شود .


    پارامتر واقعی پارامتر صوری

    X1 <-------------------Xstart
    Y1 <------------------- Ystart
    X2 <---------------------Xend
    Y2 <-------------------- Yend

    ناحیه داده های رویه:


    هر بار که رویه ای فراخوانی می شود ،ناحیه ای از حافظه برای ذخیره داده های رویه اختصاص می یابد . ناحیه داده های رویه شامل سلولهایی از حافظه است که برای ذخیره پارامتر های صوری و متغیرهای محلی یا ثابتهایی که در رویه تعریف می شوند ،می باشد. هر گاه که رویه ای پایان می یابد ناحیه داده های مربوط به آن پاک می شود .


    انواع پارامتر های صوری:


    پارامتر های صوری به دو دسته تقسیم می شوند:

    1.پارامتر های مقدار
    2.پارامتر های متغیر

    پارامتر های مقدار ، اطلاعاتی که به رویه فرستاده می شود را در یافت می کند.

    پارامتر متغیر ، محتوی یک پارامتر واقعی را تغییر داده و آن را به عنوان نتیجه حاصل از رویه بر می گر داند.

    مثال: رویه ComputerSumAve چهار پارامتر دارد : دو پارامتر برای ورودی (Num1,Num2) و دو پارامتر برای خروجی (Average,Sum) .رویه ComputerSumAve مجموع و میانگین دو عدد را محاسبه می کند ولی آنها را نمایش نمی دهد.


    Procedure computesumave (num1, num 2, {input}: real ;

    Var sum , Average {output}: real ) ;
    begin { computeSumAve }
    sum := num1 + num2 ;
    average := sum / 2.0
    end ;{ ComputeSumAve }

    دستور فراخوانی :

    ComputerSumAve( x , y , total , Mean )
    قواعد تناظر لیست پارامتر ها:

    • تناظر میان پارامتر های واقعی و صوری از روی موقعیت آنها در لیست پارامتر ها تعیین می شود.این لیستها باید هم اندازه باشند ولی اسامی پارامتر ها ی واقعی و صوری متناظر می توانند با هم متفاوت باشند.

    • در مورد پارامتر های متغیر ، نوع پارامتر های واقعی و صوری باید با یک دیگر یکسان باشند.در مورد پارامترهای مقدار ، نوع داده پارامتر واقعی باید با نوع پارامتر صوری متناظرش سازگار باشد.
    • در مورد پارامتر های متغیر ، پارامتر های واقعی باید یک متغیر باشد ولی برای پارامتر های مقدار یک پارامتر واقعی می تواند ، متغیر ، ثابت یا یک عبارت باشد.

    زیر برنامه ها:


    1.پروسی جر((Procedure:


    یک نوع از زیر برنامه ها در پاسکال پروسی جر است که بصورت پردازه، رویه ، روال و غیره نیز ترجمه شده است.

    فرم کلی پرو سی جر بصورت زیر است:
    ;(پارامتر های پروسی جر)نام پروسی جرP rocedure
    [ type
    Const
    Var
    Label ]
    Begin

    دستورات پروسی جر


    End;


    با یک مثال نحوه صدا زدن رویه ها را شرح می دهیم.

    مثال:برنامه ای با پروسی جر بنویسد که طول و عرض مستطیلی را گرفته و محیط آن را حساب کند؟
    Program environment;
    Uses wincrt ;
    Procedure rectangle ( a,b:integer;var k:integer ) ;
    Begin
    K:=2*( a+b ) ;
    End;
    Var
    X,y,p:integer ;
    Begin
    Readln( x,y ) ;
    Rectangle( x,y,p ) ;
    Writeln( p ) ;
    End.

    تعریف رویه با کلمه کلیدی procedure آغاز می شود بعد از آن یک نام اختیاری که این نام از قواعد نامگذاری متغییرها پیروی می کند آورده می شود. پارامتر های رویه در درون پرانتز ها نوشته می شوند. در رویه بین آرگومان ها سمی کالن(; ) قرار می گیرد ولی هنگام صدا زدن بین آرگو مان ها کاما (, )قرار می گیرد.

    رویه میتواند هیچ، یک یا چند خروجی داشته باشد.
    نکته:هنگام صدا زدن رویه نمی توان از عبارات محاسباتی، عبارات مقایسه ای، دستور write و �
    [FONT=Georgia][SIZE=5][COLOR=blue]تعجیل د[/COLOR]ر[COLOR=purple] ظهور[/COLOR][COLOR=lime] امام زمان[/COLOR] [COLOR=blue]صلوات[/COLOR][/SIZE][/FONT][SIZE=5][FONT=Georgia][COLOR=blue].[/COLOR][/FONT][/SIZE]
    [SIZE=5][FONT=Georgia][COLOR=blue][URL="http://www.novinrobat"][U][COLOR=#0066cc][SIGPIC][/SIGPIC][/COLOR][/U][/URL][/COLOR][/FONT][/SIZE]

    [URL="http://www.novinrobat.tk"][FONT=Book Antiqua][SIZE=5][FONT=Verdana][COLOR=mediumturquoise]w[/COLOR][COLOR=blue]w[/COLOR][COLOR=purple]w[/COLOR][/FONT].[COLOR=red]novinrobat[/COLOR].[COLOR=lime]tk[/COLOR][/SIZE][/FONT][/URL]

  2. 7کاربر از davodpor بخاطر ارسال این پست مفید سپاسگزاری کرده اند:

    ARIYA (17th December 2010),Borna66 (4th May 2012),Kakero (8th March 2012),KIAN FAR (16th December 2010),masoud-sat (4th May 2012),Meisam-Alishahi (14th February 2011),علي اصلاني  (30th December 2010)

  3. #2


    تاریخ عضویت
    Oct 2010
    نوشته ها
    198
    تشکر ها
    38
    401 سپاس از181 پست

    پیش فرض

    سلام
    مطالب آموزشی مفیدی بود
    اگر ادامه بدید عالی میشه
    ضمنا اگر مطالب مرتب تر باشه بهتر میشه
    یاحق
    [CENTER]:1205219183:
    [B][FONT=Tahoma][SIZE=3][COLOR=#0000ff][URL="http://kiansat3.ir/showthread.php?t=47100"]فروش جدیدترین و کاملترین پکیج نرم افزاری و بازی و آموزشی و تعمیراتی انواع موبایل ها بصورت کاملا فارسی به همراه چندین اشانتیون[/URL][/COLOR][/SIZE][/FONT][/B]
    [B]:1205219183::فقط خودت باش نه کسی دیگر!
    :lay:
    [/B][/CENTER]

  4. 2کاربر از Borna66 بخاطر ارسال این پست مفید سپاسگزاری کرده اند:

    ARIYA (5th May 2012),masoud-sat (4th May 2012)

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

کلمات کلیدی این موضوع

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

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


Copyright ©2000 - 2013, Jelsoft Enterprises Ltd کیــــــــــان ستـــــــــــ ...® اولین و بزرگترین سایت فوق تخصصی الکترونیک در ایران



Cultural Forum | Study at Malaysian University