1. مهمان گرامی، جهت ارسال پست، دانلود و سایر امکانات ویژه کاربران عضو، ثبت نام کنید.
    بستن اطلاعیه

آموزش پاسکال بخش اول

شروع موضوع توسط hector2141 ‏15/10/12 در انجمن Pascal

  1. کاربر ارشد

    تاریخ عضویت:
    ‏6/9/12
    ارسال ها:
    14,323
    تشکر شده:
    2,698
    امتیاز دستاورد:
    0
    حرفه:
    daneshjo
    [​IMG]
    آموزش پاسکال بخش اول
    زبان پاسكال يكي از زبانهاي برنامه سازي است كه ويژگيهاي آموزشي آن بسيار بالاست يعني زبان خوبي براي آموزش برنامه نويسي منظم و دقيق است.قابليت خوانايي و درك برنامه هاي اين زبان بالاست وميتوان برنامه هايي نوشت كه احتمال خطاهاي آنها بسيار اندك باشد علتش اين است كه يك زبان ساختار يافته (structed) است .


    ساختار كلي برنامه چيست؟
    تعريف
    به وسيله procedure و functionقسمتهاي تكراري را از بين ببريم
    بدنه
    فرم كلي پاسكال :

    اسم برنامه Program
    ; تعريف ثابت const
    ; تعريف نوع type
    ; تعريف متغيرها var
    (پارامترها ) نام procedure
    begin

    ____
    ____
    ____

    end ;

    ; ( پارامترها ) نام نوع تابع function
    begin
    ____
    ____
    ____
    end ;
    begin
    ____
    ____
    ____
    end .

    متغير : محلي است كه داراي يك اسم مي باشد و مي توان مقداري را در آن ذخيره كرد
    انواع متغيرها در پاسكال :
    Integer :انواع عددي صحيح شامل اعداد بدون نقطه مميز است
    نوع مقاديري كه مي پذيرند طول(بايت)
    نوع داده Byte : 0 تا 255 به طول 1 بایت
    نوع داه Shortint : -128 تا +127 طول 1 بایت
    نوع داده Integer : -32767 تا +32768 طول 2 بایت
    نوع داده Word : 0 تا 65535 طول 2 بایت
    نوع داده Long Int : -2147483648 تا +2147843647

    کاراکتر (Char )
    نوع داده كاراكتري كه با كلمه char مشخص مي شود ميتواند يك كاراكتر را در خود نگهداري كند بنابراين كاراكترها در يك بايت از حافظه كامپيوتر ذخيره مي شوند

    رشته (String )
    اين نوع داده ها براي ذخيره رشته ها مثل اسامي افراد به كار مي رود و با كلمه كليدي string مشخص ي گردد
    براي هر رشته بايد طول معلوم كنيم اگر طولي تعريف نشود به طور پيش فرض 80 در نظر گرفته ميشود(مقدار طول حداكثر 255 است )

    منطقی (Boolean )
    نوع ديگري از داده ها در پاسكال وجود دارند كه داده هاي بولي خوانده مي شوند مقادير بولي داراي دو ارزش درستي يا نادرستي اند كه در پاسكال با صفر و يك نمايش داده مي شوند صفر به معني نادرستي و يك به معني درستي به كار ميرود اين نوع داده ها با كلمه Boolean تعريف ميشوند .

    دستورات ورودي در پاسكال :
    دستور Readlnبراي خواندن اطلاعات از ورودي به كار ميرود .
    فرمت آن به صورت مقابل است :
    Readln(اسامی متغیرها )
    اسامي متغيرها بايد با كاما از يكديگر جدا شوند ..
    براي چاپ اطلاعات در خروجي از دستور ()writeln استفاده ميكنيم .
    فرمت آن به صورت مقابل است :
    writeln(' يك پيام ')
    writeln(متغیر)
    عبارت محاسباتي
    عملگر انتساب متغيرها =:
    مقدار ثابت
    متغير )=: متغير )
    عبارت محاسباتي

    مثال : برنامه اي بنويسيد كه دو عدد را از ورودي دريافت و حاصلجمع آن دو را چاپ كند .
    Program add;
    Var
    a,b:integer;
    begin

    writeln('enter 2 num');
    readln(a,b);
    c:=a+b;
    writeln('result is =',c);

    end.
    تكليف : چرا برنامه بايد ادب داشته باشد ؟
    مثال : برنامه اي بنويسيد كه حقوق پايه وتعداد فرزندان يك كارگر را از ورودي دريافت و مبلغ حقوق وي را بر اساس فرمول زير حساب كنيد .
    10*تعداد فرزندان + حقوق پايه =حقوق كل

    Program test;
    Var
    Salary:longint;
    Child:byte;
    kole:integer
    Begin
    Writeln('enter salary and number of child);
    Readln(salary,child);
    Kole := salary + child *10
    Writeln('kole is ',kole);
    END.
    اولويت عملگرها :
    / *
    - +
    شرط :
    then شرط if
    Begin
    ____
    ____
    ____
    end
    else
    begin
    ____
    ____
    ____
    end;

    نكته : دستورالعمل قبل از IF سمي كالن نمي گيرد
    عناصر شرط :

    < > <= >= = <>
    اپراتورها :
    AND OR NOT XOR
    NOT A
    1 0
    0 1
    XOR OR AND B A
    0 1 1 1 1
    1 1 0 0 1
    1 1 0 1 0
    0 0 0 0 0

    مثال : برنامه اي بنويسيد كه با دريافت دو عدد بزرگترين آنها را چاپ كند .

    Program test;
    Var
    a,b:integer;
    begin
    if a>b then
    writeln(a);
    end
    else
    writeln(b);
    end.

    مثال : برنامه اي بنويسيد كه با دريافت سه عدد به عنوان ضرايب y=ax2+bx+c معادله درجه دو را حل كند(اين برنامه را با يك If بنويسيد )

    Var
    A,b,c:integer;
    D,x1,x2:real;
    Begin
    Writeln('enter a,b,c');
    Readln(a,b,c);
    D:=b*b-4*a*c;
    If (d >=0 ) then
    Begin
    X1:=(-b+sqrt(d))/2*a);
    X1:=(-b-sqrt(d))/2*a);

    مثال : برنامه اي بنويسيد كه تعداد فرزندان وحقوق پايه و رتبه يك كارگر را از ورودي دريافت و حقوق كل وي را بر اساس فرمول زير حساب كند .
    كسريها - مزايا +بيمه = حقوق كل
    5*رتبه +1000* تعداد فرزند = مزايا
    ماليات + بيمه = كسريها
    بيشتر كمتر يا مساوي 2 تعداد فرزند
    تعداد فرزندان 1000 بيمه
    هر چيزي ديگر 20 تا 0 رتبه
    حقوق پايه حقوق پايه*100/10 ماليات

    begin
    writeln('enter salary and grade and number of child');
    readln(salary ,num,grade);
    if num<=2 then
    bimeh:=100
    else
    bimeh :=num*500;
    if (grade>=0) and (grade<=20)then
    net := 10/100*salary
    else
    if grade >20 then
    begin
    net:=20/100*salary;
    mazaya:=num*1000+grade*50;
    kasry:=bimeh+net;
    kol :=salary + mazaya-kasry;
    end;
    writeln(kol);
    end.

    تكليف : در يك تركيب شيميايي 4 عنصر شركت دارند مقدار مجاز براي تهيه ماده اي به نام asxd به اين صورت است .
    A 0 ~ 50
    S 0.5 ~ 0.83
    X 81 ~ 92 or 824 ~ 901
    D -100 ~ 100
    با دريافت مقادير a,s,x,d از ورودي به ما بگويد كه آيا مي توان اين ماده را توليد كرد يا نه ؟
    Begin
    Num:=0;
    Writeln('please enter a s x d');
    Readln(a,s,x,d);
    If (a>0) and(a<50) then
    Num:=num+1;
    If (s>0.5)and (s<0.83) then
    Num:=num+1;
    If ((x>81)and(x<92))or ((x>824)and(x<901))then
    Num:=num+1;
    If (d>-100) and (d<100) then
    Num:=num+1;
    If num=4 then
    Writeln('yes can')
    Else
    Writeln('you can not');
    End.