زبان پاسكال يكي از زبانهاي برنامه سازي است كه ويژگيهاي آموزشي آن بسيار بالاست يعني زبان خوبي براي آموزش برنامه نويسي منظم و دقيق است.قابليت خوانايي و درك برنامه هاي اين زبان بالاست وميتوان برنامه هايي نوشت كه احتمال خطاهاي آنها بسيار اندك باشد علتش اين است كه يك زبان ساختار يافته (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.