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

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

 

-----------

ما را از نظرات گرانبها خود بهره مند سازید

نظرات 1 + ارسال نظر
3line یکشنبه 20 آذر‌ماه سال 1384 ساعت 10:00 ق.ظ http://3line3.blogsky.com

مرسی از وب لاگ قشنگت واقعا دستت درد نکنه به وبلاگ ما هم یه سری بزن من برای تبادل لینک یا اوگو آماده ام اگه با تبادل لینک موافق بودی تو قسمت نظرات بگو هر چی باشه همشهریم
در ضمن اگه خواستی یه لطفی هم بکنی تو قسمت نظر سنجی یه نظری هم به وبلاگم بده یا حق
----------.----.
------ _.'__ ---`.
--.--(#)(#)----/##
.' @------------/###
:------------,--#####
--`-..__.-'_.--###/
--------`;_:-- ---`"'
-------.'"""""`.
-----/, ------- ,
----//---------
----`-.______.-'
--- ___`. | .´'___
-(______|______)

برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد