مقدمات زبان پاسکال
زبان پاسکال، یکی از زبانهای برنامه سازی است که ویژگی های آموزشی آن بسیار بالاست. یعنی زبان خوبی برای آموزش برنامه نویسی منظم و دقیق است. قابلیت خوانایی و درک برنامه های این زیان بالاست و می توان برنامه هایی نوشت که احتمال خطاهای آنها بسیار اندک باشند. علتش اینست که یک زبان ساخت یافته (structured) است.
انواع داده ها
ما روزمره با اطلاعات و داده هایی سروکار داریم و نیازهای خود را با آنها برآورده می کنیم.
بعضی از داده هایی که با آنها سروکار داریم، عددی صحیح هستند (مثل 150)
و بعضی دیگر نیز به صورت عددیِ اعشاری هستند (مثل 255.5)
و بعضی دیگر نیز عددی نیستند (مثل علی)
انواع داده عددی
داده های عددی به دو دسته تقسیم می شوند:
1- عددیِ صحیح
2- عددیِ اعشاری
انواع عددیِ صحیح، شامل اعداد بدون نقطه ممیز است.
انواع عددیِ اعشاری، شامل اعدادی با نقطه ممیز است.
حال یه سوال پیش می آید که:
با اینکه داده های نوع صحیح را می توان به صورت داده های اعشاری، که قسمت اعشار آنها صفر باشد نشان داد، چرا نوع صحیح در پاسکال گنجانده شده است؟
علتش اینست که در بسیاری از کامپیوتر ها، محاسبات روی اعداد صحیح، سریعتر از محاسبات روی اعداد اعشاری است و فضایی که در اختیار اعداد صحیح قرار می گیرد، کمتر از فضایی است که در اختیار اعداد اعشاری قرار خواهد گرفت.این تفاوت، به شیوه ی ذخیره سازی داده ها در کامپیوتر بر می گردد. تمام داده ها در حافظه کامپیوتر به صورت باینری (مجموعه ای از صفرها و یکها) ذخیره می شوند و شیوه ذخیره اعداد صحیح با اعداد اعشاری فرق می کند. بنابراین، شکل باینری ذخیره عدد 13 با 13.0 متفاوت است.
انواع داده های صحیح
|
نوع
|
مقادیری که می پذیرند
|
طول (بایت)
|
|
Byte
|
0 _ 255
|
1
|
|
ShortInt
|
128- _ 127
|
1
|
|
Integer
|
32768- _ 32767
|
2
|
|
Word
|
0 _ 65535
|
2
|
|
LongInt
|
2147483648- _ 2147483647
|
4
|
انواع داده های اعشاری
|
نوع
|
مقادیری که می پذیرند
|
ارقام با معنی
|
طول (بایت)
|
|
Single
|
3.4E 38 _ 1.5E -45
|
7 تا 8
|
4
|
|
Real
|
1.7E 38 _ 2.9E -39
|
11 تا 12
|
6
|
|
Double
|
1.7E 308 _ 5.0E -324
|
15 تا 16
|
8
|
|
Extended
|
1.1E 493 _ 1.9E -4951
|
19 تا 20
|
10
|
حرف E به معنی توان است. پس 45- 1.5E برابر است با 45-10×1.5
نوع داده کاراکتری
با کلمه char مشخص می شود. کاراکتر در یک بایت از حافظه ذخیره می شود.
نوع داده بولی
این نوع داده را با کلمه boolean تعریف می کنیم.
مقادیر بولی دارای دو ارزش درستی یا نادرستی اند که در پاسکال با صفر و یک نشان داده می شوند.
نوع داده رشته ای
با کلمه کلیدی string تعریف می شود. برای ذخیره رشته ها(مثل اسامی افراد) به کار می رود.
کلمات کلیدی (key words)
یکی از ویژگیهای زبان پاسکال اینست که از کلماتی که در محاوره روزمره به کار می رود، استفاده می کند. حال بعضی از این کلمات معنای خاصی دارند که در جدول زیر می آیند.
|
Set
|
Nil
|
End
|
And
|
|
Then
|
Not
|
File
|
Arraye
|
|
To
|
Of
|
For
|
Begin
|
|
Type
|
Or
|
Function
|
Const
|
|
Until
|
Packed
|
Goto
|
Div
|
|
Var
|
Procedure
|
If
|
Do
|
|
While
|
Program
|
In
|
Downto
|
|
With
|
Record
|
Label
|
Else
|
|
|
Repeat
|
Mod
|
|
*** عزیزان، نترسین از این همه جداول ، شاید بعضی از این کلمات حتی ازشون استفاده هم نکردین، و بعضی هاشونو فقط تویه برنامه نویسی یاد گرفین.پس هراسی از این حجم کلمات نداشته باشین.
شناسه ها
نامی است که به عناصر زبان پاسکال می دهند که بعضی از این عناصر عبارنتد از: ثوابت، متغیرها، زیر برنامه ها و....
شناسه به دو دسته تقسیم میشه: شناسه های استاندارد و شناسه هایی که خود برنامه نویس برای خودش تعریف می کنه.
نام گذاری شناسه از قوانین زیر پیروی می کند(اگر برنامه نویس خواست برای خودش یه شناسه دلخواه تعریف کنه(:
1- نام شناسه باید با کاراکترهای A تا Z (کوچک و بزرگش فرقی نمی کنه) شروع شود.
2- نام شناسه می تواند ترکیبی از حروف و ارقام باشد.
3- کلمات کلیدی پاسکال نمی تواند به عنوان شناسه انتخاب شوند.
4- طول نام شناسه می تواند تا 63 کاراکتر باشد.
متغیرها
یکی از شناسه ها در پاسکال است و نامی است که به کلمات حافظه داده می شود. به طور کلی، متغیرها محل ذخیره و بازیابی داده ها می باشد.
محتویات متغیر می تواند در طول اجرای برنامه تغییر کند.
حال، چون متغیر یک شناسه است، پس از قوانین نامگذاری شناسه ها پیروی می کند.
هر متغیر در پاسکال باید دارای نوع باشد.
متغیر را در پاسکال به این شکل تعریف می کنند:
<-- Iran Universities Software Students [iuss.ir] -->
<-- Start Code -->
var
sum:integer;
ave1,ave2:real;
<-- End Code -->
<-- Birjand University Software Students [buss.ir] -->
var یک کلمه کلیدی است و به کامپیوتر می گوید که در حال تعریف نوع متغیرها هستیم.
راستی، اسامی متغیر ها باید با کاما (,) از هم جدا بشن
مقدار دادن به متغیرها به دو روش می باشد:
1- با دستور انتساب
2- با دستورات ورودی
نکاتی در مورد دستور انتساب:
* برای انتساب مقداری به متغیر از علامت (=:) استفاده می شود
* کاراکتر ها در داخل کوتیشن یکانی ( ' ) قرار می گیرند.
* مقدار متغیری مثل X را می توان به متغیری دیگر مثل Y نسبت داد.
* متغیرهای بولین، مقادیر درستی (True) و یا نادرستی(False) را می پذیرند.
مقدار دادن با دستورات ورودی
یعنی متغیرها را در برنامه تعریف می کنیم و مقدار آنها را هنگام اجرای برنامه از ورودی می خوانیم.
<-- Iran Universities Software Students [iuss.ir] -->
<-- Start Code -->
var
item:integer;
read(item);
<-- End Code -->
<-- Birjand University Software Students [buss.ir] -->
ثوابت
مقادیری هستند که در برنامه مورد استفاده قرار می گیرند و مقدار آنها در طول اجرای برنامه ثابت است.(بر خلاف متغیرها)
ثوابت با کلمه کلیدی const تعریف می شود.
نام گذاری ثوابت مثل متغیرهاست.
<-- Iran Universities Software Students [iuss.ir] -->
<-- Start Code -->
const
metric=1.196;
star='*';
<-- End Code -->
<-- Birjand University Software Students [buss.ir] -->
عملگرها
نمادهایی هستند که اعمال خاصی را بر روی اطلاعات انجام می دهند. (مثلا نماد + دو مقدار را با هم جمع می کند.)
مقادیری را که عملگرها بر روی آنها عملی را انجام می دهند، عملوند می گویند.
عملگرهای محاسباتی
برای انجام محاسبات بر روی مقادیر مورد استفاده قرار می گیرند.
|
عملگر
|
نام
|
مثال
|
|
+
|
جمع
|
2+5 برابر است با 7
|
|
-
|
تفریق
|
2-5 برابر است با 3
|
|
*
|
ضرب
|
2*5 برابر است با 10
|
|
/
|
تقسیم اعشاری
|
2/5 برابر است با 2.5
|
|
Div
|
تقسیم صحیح
|
5 div 2 برابر است با 2
|
|
Mod
|
باقیمانده تقسیم
|
5 mod 2 برابر است با 1
|
عملگر ( / ) برای تقسیم اعشاری بکار می رود. یعنی خارج قسمت، یک مقدار اعشاری است.نتیجه عملگر ( / ) از نوع اعشاری است.
عملگرد (div) برای تقسیم صحیح بکار می رود، یعنی عملوندهایش باید از نوع صحیح باشند و خارج قسمت آن نیز به صورت یک عدد صحیح می شود.
عملگرد (mod) برای محاسبه باقیمانده تقسیم صحیح بکار می رود.
عملگردهای رابطه ای
برای مقایسه مقادیر مختلف کاربرد دارد.
|
عملگر
|
نام
|
مثال
|
نتیجه ارزیابی
|
|
<
|
کوچکتر
|
Power < Maxpow
|
نادرست
|
|
<=
|
کوچکتر یا مساوی
|
X <= 0
|
درست
|
|
>
|
بزرگتر
|
Item > Minitem
|
درست
|
|
>=
|
بزرگتر یا مساوی
|
X >= Y
|
نادرست
|
|
=
|
مساوی
|
Momordat = 'm'
|
درست
|
|
<>
|
نامساوی
|
Num <> Sentinal
|
نادرست
|
عملگرهای منطقی
توسط این عملگرهای می توان عبارتهای مرکب تهیه کرد.
عملگرهای منطقی موجود در پاسکال: xor,or,and,not
عملگر منطقی Not:
|
Not Operand
|
Operand
|
|
نادرست
|
درست
|
|
درست
|
نادرست
|
عملگر منطقی And:
|
Operand1 and Operand2
|
Operand2
|
Operand1
|
|
درست
|
درست
|
درست
|
|
نا درست
|
نادرست
|
درست
|
|
نادرست
|
درست
|
نادرست
|
|
نادرست
|
نادرست
|
نادرست
|
عملگر منطقی Or:
|
Operand1 and Operand2
|
Operand2
|
Operand1
|
|
درست
|
درست
|
درست
|
|
درست
|
نادرست
|
درست
|
|
درست
|
درست
|
درست
|
|
نادرست
|
نادرست
|
نادرست
|
عملگر منطقی Xor:
|
Operand1 and Operand2
|
Operand2
|
Operand1
|
|
نادرست
|
درست
|
درست
|
|
درست
|
نادرست
|
درست
|
|
درست
|
درست
|
نادرست
|
|
نادرست
|
نادرست
|
نادرست
|
تقدم عملگرها در عبارات
هر ترکیبی از عملگرها، متغیرها و ثوابت را عبارت گویند.
محاسبه مقدار عبارت را ارزیابی می گویند.
|
تقدم
|
عملگر
|
|
بالاترین تقدم
|
Not
|
|
|
*,/,div,mod,and
|
|
|
+,-,or
|
|
بالاترین تقدم
|
<,<=,=,<>,>=,>
|
بالاترین تقدم مربوط به not
پایین ترین تقدم مربوط به عملگرهای رابطه ای
*** عملگرهایی که در یک سطر بیان شده اند، از تقدم مکانی برخوردارند. یعنی هر عملگری که زودتر ظاهر شود، زودتر انجام می گردد.
*** اگر بخشی از عبارت داخل پرانتز () باشد، اولویت عملگرهای داخل پرانتز بیشتر است.
<-- Iran Universities Software Students [iuss.ir] -->
<-- Start Code -->
var
m,n,p:integer;
m:=10;
n:=12;
p:=2*(m+n);
<-- End Code -->
<-- Birjand University Software Students [buss.ir] -->
در این مثال اول m با n جمع می شود. سپس حاصل در 2 ضرب می شود و داخل p قرار می گیرد.
نوع داده عبارات محاسباتی
حاصل عبارت صحیح می تواند به متغیری از نوع اعشاری نسبت داده شود ولی عکس آن امکان پذیر نیست.
اگر عملگری دارای یک عملوند صحیح و یک عملوند اعشاری باشد، نتیجه آن عملگر، مقداری اعشاری می باشد.
***انتساب نوع کاراکتری به عدد و بالعکس و انتساب رشته ها به متغیرهای عددی و بالعکس ممکن نیست.
<-- Iran Universities Software Students [iuss.ir] -->
<-- Start Code -->
var
count:integer;
count:=3.5;
count:=count+1.0;
count:=count/2;
<-- End Code -->
<-- Birjand University Software Students [buss.ir] -->
دستور انتساب اول به این دلیل نادرست است که عدد 3.5 یک مقدار اعشاری است و count از نوع صحیح.
دستور انتساب دوم به این دلیل نادرست است که 1.0 یک مقدار اعشاری است و نتیجه جمع، یک مقدار اعشاری خواهد بود و نمی تواند در count قرار گیرد.
دستور انتساب سوم به این دلیل نادرست است که حاصل count/2 یک مقدار اعشاری خواهد بود و نمی تواند در count قرار گیرد.
*********************
خوب. آنچه که خواندید قستهای مهم و کلیدی از کتاب "برنامه نویسی به زبان پاسکال" نوشته "مهندس عین الله جعفر نژاد قمی" بود که به طور خلاصه تقدیم گردید.
ما از ارائه این متن ، تنها قصدی که داریم، آموزش مطالب بود و هیچ قصد خاص دیگری نداشتیم و نخواهیم داشت.
با تشکر
Medals
ممنون میشم بذارید
[پاسخ]