( تعداد نمایش : 2201 )

آموزش پاسکال قسمت اول

نویسنده : ایران دولوپر

زبان پاسکال یکی از زبانهای برنامه سازی است که ویژگیهای آموزشی آن بسیار بالاست یعنی زبان خوبی برای آموزش برنامه نویسی منظم و دقیق است.قابلیت خوانایی و درک برنامه های این زبان بالاست ومیتوان برنامه هایی نوشت که احتمال خطاهای آنها بسیار اندک باشد علتش این است که یک زبان ساختار یافته (structed) است .

ساختار کلی برنامه چیست؟
۱-تعریف
۲-به وسیله procedure و functionقسمتهای تکراری را از بین ببریم
۳-بدنه
فرم کلی پاسکال:

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

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

انواع متغیرها در پاسکال:
Integer :انواع عددی صحیح شامل اعداد بدون نقطه ممیز است
نوع مقادیری که می پذیرند طول(بایت)
byte 0 تا ۲۵۵ ۱
Shortint 128- تا ۱۲۷ ۱
integer 32768- تا ۳۲۷۶۷ ۲
Word 0 تا ۶۵۵۳۵ ۲
Longint 2147483648- تا ۲۱۴۷۴۸۳۶۴۷ ۴

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

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

single 1.5e-45 تا۳٫۴e38 7 تا ۸ ۴
real 2.9e-39 تا ۱٫۷e38 11 تا ۱۲ ۶
Double 5.0e-324تا ۱٫۷e308 15 تا ۱۶ ۸
extended 1.9e-4951تا ۱٫۱e493 19 تا ۲۰ ۱۰

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

-Char :
نوع داده کاراکتری که با کلمه char مشخص می شود میتواند یک کاراکتر را در خود نگهداری کند بنابراین کاراکترها در یک بایت از حافظه کامپیوتر ذخیره می شوند

String – :
این نوع داده ها برای ذخیره رشته ها مثل اسامی افراد به کار می رود و با کلمه کلیدی string مشخص ی گردد
برای هر رشته باید طول معلوم کنیم اگر طولی تعریف نشود به طور پیش فرض ۸۰ در نظر گرفته میشود(مقدار طول حداکثر ۲۵۵ است)
- 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.


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

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);


مثال : برنامه ای بنویسید که تعداد فرزندان وحقوق پایه و رتبه یک کارگر را از ورودی دریافت و حقوق کل وی را بر اساس فرمول زیر حساب کند.
کسریها – مزایا +بیمه = حقوق کل
۵*رتبه +۱۰۰۰* تعداد فرزند = مزایا
مالیات + بیمه = کسریها

بیشتر کمتر یا مساوی ۲ تعداد فرزند
تعداد فرزندان ۱۰۰۰ بیمه
هر چیزی دیگر ۲۰ تا ۰ رتبه
حقوق پایه حقوق پایه*۱۰۰/۱۰ مالیات

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.


تکلیف : در یک ترکیب شیمیایی ۴ عنصر شرکت دارند مقدار مجاز برای تهیه ماده ای به نام 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 دارد
مقدارها میتوانند شامل یک مقدار یا چند مقدار که از یکدیگر با کاما جدا شده اند باشند و یا یگ سری شمارشی باشند مثل:

۱:——
۱,۱۰,۲۸:——
۱٫٫۱۰۰,۱۵۰٫٫۲۴۳:———
‘A’..’Z':———

Of متغیر Case
Begin : مقدار۱
——-
——-
End;
Begin : مقدار۲
——-
——-
End;
Begin :Else
——-
——-
End;
End.

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

BEGIN
READLN(X);
CASE X OF
0:WRITELN(‘ZERO’);
1:WRITELN(‘ONE’);
2:WRITELN(‘TWO’)
ELSE
WRITELN(‘ERROR’);
END;
END.

دیدگاه خود را بیان کنید.

باید وارد سایت شده باشید برای دیدگاه دادن