PDA

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



TAHA
11-10-2009, 08:58 PM
زبان پاسكال يكي از زبانهاي برنامه سازي است كه ويژگيهاي آموزشي آن بسيار بالاست يعني زبان خوبي براي آموزش برنامه نويسي منظم و دقيق است.قابليت خوانايي و درك برنامه هاي اين زبان بالاست وميتوان برنامه هايي نوشت كه احتمال خطاهاي آنها بسيار اندك باشد علتش اين است كه يك زبان ساختار يافته (structed) است .


ساختار كلي برنامه چيست؟

1-تعريف

2-به وسيله procedure و functionقسمتهاي تكراري را از بين ببريم

3-بدنه

فرم كلي پاسكال:







اسم Program


; تعريف ثابت const


; تعريف نوع type


; تعريف متغيرها var


)پارامترها ) نام procedure





begin
____
____
____
end ;

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



متغير : محلي است كه داراي يك اسم مي باشد و مي توان مقداري را در آن ذخيرهكرد


انواع متغيرها در پاسكال:

Integer : انواع عددي صحيح شامل اعداد بدوننقطه مميز است

نوع مقاديري كه مي پذيرند طول ( بایت )




byte 0 تا 255 1




Shortint 128- تا 127 1




integer 32768- تا 32767 2




Word 0 تا 65535 2




Longint 2147483648- تا 2147483647 4





اعداد اعشاري:

انواععددي اعشاري شامل اعدادي با نقطه مميز است


نوع مقاديري كه ميپذيرند ارقامبا معني طول ( بایت )


single 1.5e-45 تا3.4e38 7 تا 8 4


real 2.9e-39 تا 1.7e38 11 تا 12 6


Double 5.0e-324تا 1.7e308 15 تا 16 8


extended 1.9e-4951تا 1.1e493 19 تا 20 10

انواع داده هاي اعشاري


-Char :

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


String - :

اين نوع داده ها براي ذخيره رشته ها مثل اسامي افراد به كار مي رود و با كلمه كليدي string مشخص ي گردد .

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

- Boolean :

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


دستورات ورودي در پاسكال:


دستور Readlnبراي خواندن اطلاعات از ورودي به كار ميرود.

فرمت آن به صورت مقابل است:

(اسامي متغيرها)read/ln

اسامي متغيرها بايد با كاما از يكديگر جدا شوند..

براي چاپ اطلاعات در خروجي از دستور write/ln استفاده ميكنيم.

فرمت آن به صورت مقابل است:



' يك پيام '




( متغير ) write/ln


عبارت محاسباتي

انتساب متغيرها:



مقدار ثابت




( متغير )=: متغير


عبارت محاسباتي


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




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;
if a>b then

begin
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.


تكليف : برنامه اي بنويسيد كه با دريافت سه عدد و با فرض اينكه عدد دوم وتر ميباشد به ما بگوييد كه آيا اين سه عدد تشكيل يك مثلث قايم الزاويه مي دهد يا خير؟


CASE:

CASE ميتواند تعداداي شرط را بگيرد و انتخاب كند.

مقاديري كه دستور CASE ميپذيرد ORDINAL است مقاديري كهORDINAL هستند داراي تركيب نيستند و همچنين قابل شمارش هم هستند مثل

INTEGER,CHARACTER,BYTE,BOOLEAN,LONGINT,…

پسREAL,STRING ORDINAL<---- نيستند

CASE تنها دستوري است كه BEGIN ندارد ولي END دارد

مقدارها ميتوانند شامل يك مقدار يا چند مقدار كه از يكديگر با كاما جدا شده اند باشند و يا يگ سري شمارشي باشند مثل:


1:------


1,10,28:------


1..100,150..243:---------


'A'..'Z':---------





Of متغير Case




Begin : مقدار1


-------
-------
End;


Begin : مقدار2


-------
-------
End;
Begin :Else
-------
-------
End;
End.

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



BEGIN
READLN(X);
CASE X OF

0:WRITELN('ZERO');
1:WRITELN('ONE');
2:WRITELN('TWO')
ELSE
WRITELN('ERROR');
END;
END.