زبان پاسكال يكي از زبانهاي برنامه سازي است كه ويژگيهاي آموزشي آن بسيار بالاست يعني زبان خوبي براي آموزش برنامه نويسي منظم و دقيق است.قابليت خوانايي و درك برنامه هاي اين زبان بالاست وميتوان برنامه هايي نوشت كه احتمال خطاهاي آنها بسيار اندك باشد علتش اين است كه يك زبان ساختار يافته (structed) است .
ساختار كلي برنامه چيست؟
۱-تعريف
۲-به وسيله procedure و functionقسمتهاي تكراري را از بين ببريم
۳-بدنه
فرم كلي پاسكال:


کد:
اسم Program
; تعريف ثابت const
; تعريف نوع type
; تعريف متغيرها var
)پارامترها ) نام procedure
begin
____
____
____
end ;
; ( پارامترها ) نام نوع تابع function
begin
____
____
____
end ;
begin
____
____
____
end .

متغير : محلي است كه داراي يك اسم مي باشد و مي توان مقداري را در آن ذخيره كرد
انواع متغيرها در پاسكال:
Integer :انواع عددي صحيح شامل اعداد بدون نقطه مميز است
نوع مقاديري كه مي پذيرند طول(بايت)
byte ۰ تا ۲۵۵ ۱
Shortint ۱۲۸- تا ۱۲۷ ۱
integer ۳۲۷۶۸- تا ۳۲۷۶۷ ۲
Word ۰ تا ۶۵۵۳۵ ۲
Longint ۲۱۴۷۴۸۳۶۴۸- تا ۲۱۴۷۴۸۳۶۴۷ ۴
اعداد اعشاري:
انواع عددي اعشاري شامل اعدادي با نقطه مميز است
نوع مقاديري كه ميپذيرند ارقام با معني طول(بايت)


single ۱.۵e-۴۵ تا۳.۴e۳۸ ۷ تا ۸ ۴
real ۲.۹e-۳۹ تا ۱.۷e۳۸ ۱۱ تا ۱۲ ۶
Double ۵.۰e-۳۲۴تا ۱.۷e۳۰۸ ۱۵ تا ۱۶ ۸
extended ۱.۹e-۴۹۵۱تا ۱.۱e۴۹۳ ۱۹ تا ۲۰ ۱۰


انواع داده هاي اعشاري
-Char :
نوع داده كاراكتري كه با كلمه char مشخص مي شود ميتواند يك كاراكتر را در خود نگهداري كند بنابراين كاراكترها در يك بايت از حافظه كامپيوتر ذخيره مي شوند
String - :
اين نوع داده ها براي ذخيره رشته ها مثل اسامي افراد به كار مي رود و با كلمه كليدي string مشخص ي گردد
براي هر رشته بايد طول معلوم كنيم اگر طولي تعريف نشود به طور پيش فرض ۸۰ در نظر گرفته ميشود(مقدار طول حداكثر ۲۵۵ است)
- Boolean :
نوع ديگري از داده ها در پاسكال وجود دارند كه داده هاي بولي خوانده مي شوند مقادير بولي داراي دو ارزش درستي يا نادرستي اند كه در پاسكال با صفر و يك نمايش داده مي شوند صفر به معني نادرستي و يك به معني درستي به كار ميرود اين نوع داده ها با كلمه Boolean تعريف ميشوند.
دستورات ورودي در پاسكال:
دستور Readlnبراي خواندن اطلاعات از ورودي به كار ميرود.
فرمت آن به صورت مقابل است:
(اسامي متغيرها)read/ln
اسامي متغيرها بايد با كاما از يكديگر جدا شوند..
براي چاپ اطلاعات در خروجي از دستور write/ln استفاده ميكنيم.
فرمت آن به صورت مقابل است:
‘ يك پيام ‘
( متغير ) write/ln
عبارت محاسباتي
انتساب متغيرها:
مقدار ثابت
( متغير )=: متغير
عبارت محاسباتي
مثال : برنامه اي بنويسيد كه دو عدد را از ورودي دريافت و حاصلجمع آن دو را چاپ كند .

کد:
Program add; Var a,b:integer; begin writeln(’enter ۲ num’); readln(a,b); c:=a+b; writeln(’result is =’,c); end.


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

کد:
Program test; Var Salary:longint; Child:byte; kole:integer Begin Writeln(’enter salary and number of child); Readln(salary,child); Kole := salary + child *۱۰ Writeln(’kole is ‘,kole); END.


اولويت عملگرها:

/ *
- +
شرط:
کد:
then شرط if Begin ____ ____ ____ end else begin ____ ____ ____ end;


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

AND OR NOT XOR
NOT A
۱ ۰
۰ ۱
XOR OR AND B A
۰ ۱ ۱ ۱ ۱
۱ ۱ ۰ ۰ ۱
۱ ۱ ۰ ۱ ۰
۰ ۰ ۰ ۰ ۰


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


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

Var
A,b,c:integer;
D,x۱,x۲:real;
Begin
Writeln(’enter a,b,c’);
Readln(a,b,c);
D:=b*b-۴*a*c;
If (d >=۰ ) then
Begin
X۱:=(-b+sqrt(d))/۲*a);
X۱:=(-b-sqrt(d))/۲*a);


مثال : برنامه اي بنويسيد كه تعداد فرزندان وحقوق پايه و رتبه يك كارگر را از ورودي دريافت و حقوق كل وي را بر اساس فرمول زير حساب كند.
كسريها - مزايا +بيمه = حقوق كل
۵*رتبه +۱۰۰۰* تعداد فرزند = مزايا
ماليات + بيمه = كسريها
بيشتر كمتر يا مساوي ۲ تعداد فرزند
تعداد فرزندان ۱۰۰۰ بيمه
هر چيزي ديگر ۲۰ تا ۰ رتبه
حقوق پايه حقوق پايه*۱۰۰/۱۰ ماليات

کد:
begin writeln(’enter salary and grade and number of child’); readln(salary ,num,grade); if num<=2 then bimeh:=۱۰۰ else bimeh :=num*۵۰۰; if (grade>=۰) and (grade<=20)then net := ۱۰/۱۰۰*salary else if grade >۲۰ then begin net:=۲۰/۱۰۰*salary; mazaya:=num*۱۰۰۰+grade*۵۰; kasry:=bimeh+net; kol :=salary + mazaya-kasry; end; writeln(kol); end.


تكليف : در يك تركيب شيميايي ۴ عنصر شركت دارند مقدار مجاز براي تهيه ماده اي به نام asxd به اين صورت است.
A ۰ ~ ۵۰
S ۰.۵ ~ ۰.۸۳
X ۸۱ ~ ۹۲ or ۸۲۴ ~ ۹۰۱
D -۱۰۰ ~ ۱۰۰
با دريافت مقادير a,s,x,d از ورودي به ما بگويد كه آيا مي توان اين ماده را توليد كرد يا نه ؟

کد:
Begin Num:=۰; Writeln(’please enter a s x d’); Readln(a,s,x,d); If (a>۰) and(a<50) then Num:=num+۱; If (s>۰.۵)and (s<0.83) then Num:=num+۱; If ((x>۸۱)and(x<92))or ((x>۸۲۴)and(x<901))then Num:=num+۱; If (d>-۱۰۰) and (d<100) then Num:=num+۱; If num=۴ then Writeln('yes can') Else Writeln('you can not'); End.


تكليف : برنامه اي بنويسيد كه با دريافت سه عدد و با فرض اينكه عدد دوم وتر ميباشد به ما بگوييد كه آيا اين سه عدد تشكيل يك مثلث قايم الزاويه مي دهد يا خير؟
CASE:
CASE ميتواند تعداداي شرط را بگيرد و انتخاب كند.
مقاديري كه دستور CASE ميپذيرد ORDINAL است مقاديري كهORDINAL هستند داراي تركيب نيستند و همچنين قابل شمارش هم هستند مثل INTEGER,CHARACTER,BYTE,BOOLEAN,LONGINT,…
پسREAL,STRING ORDINAL<---- نيستند
CASE تنها دستوري است كه BEGIN ندارد ولي END دارد
مقدارها ميتوانند شامل يك مقدار يا چند مقدار كه از يكديگر با كاما جدا شده اند باشند و يا يگ سري شمارشي باشند مثل:

کد:
۱:—— ۱,۱۰,۲۸:—— ۱..۱۰۰,۱۵۰..۲۴۳:——— ‘A’..’Z':——— Of متغير Case Begin : مقدار۱ ——- ——- End; Begin : مقدار۲ ——- ——- End; Begin :Else ——- ——- End; End.


مثال : برنامه اي بنويسيد كه يك عدد را از ورودي دريافت ( (۰<=x<3وتلفظ آنها را چاپ كند.

کد:
BEGIN READLN(X); CASE X OF ۰:WRITELN(’ZERO’); ۱:WRITELN(’ONE’); ۲:WRITELN(’TWO’) ELSE WRITELN(’ERROR’); END; END.