آموزش زبان برنامه نویسی پاسکال – قسمت اول
جمعه 8 بهمن 1389 12:57 PM
زبان پاسکال یکی از زبانهای پایه برای شروع برنامه نویسی است . به همین علت اگر میخواهید یادگیری برنامه نویسی را آغاز کنید باید با یادگیری پاسکال این کار را شروع کنید . این زبان توسط پروفسور نیکلاس ویژت در انستیتو فنی فدرال سوئیس در در اواخر سال ۱۹۶۰ و اوایل ۱۹۷۰ مطرح گردید و به افتخار بلز پاسکال دانشمند فرانسوی قرن هفدهم میلادی، پاسکال نامگذاری شده است.پاسکال یک زبان سطح بالا است.
اجزاء تشکیل دهنده کامپیوتر عبارتند از :
۱٫سخت افزار
۲٫نرم افزار
• سخت افزار
خروجی<============== پردازش<===============ورودی
کامپیوترهای امروزی معمولاً از قطعات زیر تشکیل میشوند:
دستگاههای ورودی
حافظههای جانبی
حافظههای اصلی
واحد پردازشگر مرکزی
دستگاههای خروجی
• نرم افزار:
نرمافزار یکی از بخشهای اساسی کامپیوتر به شمار میآید، که در واقع سختافزار را بکار میگیرد. بعبارت دیگر رابط بین کاربر و سختافزار را نرمافزار مینامند. نرمافزار در حقیقت روح و جان یک کامپیوتر است، که به سختافزار هویت میبخشد.
زبانهای برنامهنویسی :
نرمافزارها توسط زبانهای برنامهنویسی نوشته میشوند. زبانهای برنامهنویسی، یک سیستم ارتباطی هستند که توسط آنها میتوان دستورات لازم را به ماشین انتقال داد.
هرزبان برنامهنویسی به مجموعهأی از علایم، قواعد و دستورالعملها گفته میشود که امکان ارتباط با کامپیوتر را جهت بیان کاری یا حل مسئلهای فراهم میکند.
در حالت کلی زبانهای برنامهنویسی را به سه دسته زیر تقسیمبندی میکنند:
۱٫زبانهای سطح بالا
۲٫زبانهای سطح پایین
۳٫زبانهای سطح میانی
زبان Pascal
این زبان توسط پروفسور نیکلاس ویژت در انستیتو فنی فدرال سوئیس در در اواخر سال ۱۹۶۰ و اوایل ۱۹۷۰ مطرح گردید و به افتخار بلز پاسکال دانشمند فرانسوی قرن هفدهم میلادی، پاسکال نامگذاری شده است.پاسکال یک زبان سطح بالا است.
اجزای تشکیلدهنده یک برنامه:
۱٫کلمات ذخیرهشده Reserved Words -
2.شناسهها – identifier
کلمات ذخیرهشده ( Reserved Words )
کلمات ذخیره شده، کلماتی هستند که مترجم زبان آنها را میشناسد و معنای خاصی برای زبان دارند. مترجم زبان به محض مشاهده این کلمات اعمال خاصی را انجام میدهد. هر زبان دارای تعداد مشخصی کلمات ذخیره شده میباشد و این تعداد قابل افزایش توسط برنامهنویس نیست.
بعضی از کلمات ذخیره شده در پاسکال عبارت است از :
And,file,goto,var, while,unit,until,program,procedure,..
شناسهها ( identifier )
شناسه در پاسکال برای نامگذاری ثابتها، تایپها، پروسیجروها، توابع، میدانهای یک رکورد، برنامه و همچنین یونیت مورد استفاده قرار میگیرد.
در حالت کلی دو نوع شناسه وجود دارد :
۱٫id های استاندارد: این نوع id ها از قبل در زبان پاسکال تعریف شدهاند و در برنامهها، معنای خاصی دارند .
۲٫Id های غیراستاندارد: این نوع id ها بوسیله کاربر بطور مجزا تعریف میشوند و اصطلاحاً به آنها userdefined گفته میشود.
ساختار برنامه در زبان پاسکال :
اجزاء اصلی یک برنامه به زبان پاسکال بصورت زیر میباشد:
۱٫ عنوان برنامه
۲٫قسمت تعاریف برنامه
۳٫قسمت دستور العملها
قسمت تعاریف برنامه:
۱٫اعلان ثابتها Constant Declaration
2.اعلان انواع Type Declaration
3.اعلان متغیرها Declaration Variable
4.اعلان برچسبها Declaration Label
درحالت کلی میتوان شکل یک برنامه در زبان پاسکال را بصورت زیر بیان کرد:
۱٫استفاده از کلمه ذخیره شده Program و اسم برنامه ( که میتواند بکار برده نشود )
۲٫قسمت تعاریف شناسهها
۳٫بلوک اصلی برنامه که با Begin شروع و به End همراه نقطه ( . ) ختم میشود.
۴٫هر دستور در پاسکال به ( ; ) ختم میشود.
فرم کلی برنامه در پاسکال:
; نام program
; تعریف ثابت Const
; تعریف متغیرVar
;تعریف نوع Type
BRGIN
; دستورات برنامه
END; متغیرها (Variables)
متغیر، محلی از حافظه است که دارای نوع و اسم میباشد. نوع متغیر همان نوع داده بوده و اسم متغیر از قواعد اسمگذاری شناسه تبعیت میکند.
انواع دادهها data types -
1.دادههای ساده Simple data type -
.2دادههای ساختیافته – Structural Data Types
3. دادههای اشارهگر – Pointer Data Types
دادههای ساده – Simple data type
1.انواع صحیح شامل اعداد بدون ممیز است متداولترین انواع صحیح را در شکل زیر ببینید:
۲٫اعداد اعشاری: شامل اعداد با نقطه ممیز است متداولترین آن در شکل زیر ببینید::
۳٫:Char این نوع داده که به آن کاراکتری می گویند حداکثر می تواند یک کاراکتر را در خود نگه دارد و اندازه آن یک بایت از حافظه را اشغال می کند.
۴٫نوع String:
این نوع داده برای ذخیره رشته ها مثل اسامی افراد به کار می رود حداکثر طول آن ۲۵۵ کاراکتر است در ضمن برای هر رشته باید طول آن را مشخص کنیم در غیر این صورت طول آن را به طور پیش فرض ۸۰ در نظر می گیرد.
۵٫نوع Boolean:
این نوع داده که داده های بولی خوانده می شود مقادیر این نوع داده های بولی دارای دو ارزش درستی یا نادرستی است که در پاسکال با ۰و۱ نمایش می دهند ۰ به معنای نادرستی و۱ به معنای درستی است.
۲٫انواع دادههای ساختیافته عبارتند از:
• آرایهها
• رکوردها
• مجموعهها
• فایلها
۳٫ دادههای اشارهگر (Pointer Data Types)
ممکن است در نوشتن برنامه، نوع دادههای بحث شده در بالا به دلایل مختلف از جمله مشخص نبودن تعداد ورودیهای مسئله و غیره مشخص نباشد لذا نیاز به متغیرهایی هست که بتوانند آدرس متغیرهای دیگر را در خود نگه دارند، این نوع دادهها، دادههای اشارهگر نام دارند.
• در پاسکال برای معرفی متغیرها بصورت زیر عمل میکنند:
Var
; نوع متغیر: اسم متغیر
• برای تعریف یک ثابت بصورت زیرعمل میکنیم :
; مقدار ثابت = اسم متغیر Const
شکل کلی یک دستور جایگزینی در پاسکال بصورت زیر است:
عبارت محاسباتی = : اسم شناسه
عبارت قیاسی یا
عبارت منطقی
افزودن توضیحات به برنامه (Comment):
افزودن مطلب توضیحی در درون خود برنامه عملی پسندیده و مطلوب است بدین ترتیب که بعد از مدتی امکان فراموشی کار با برنامه از بین میرود و در کل میتوان گفت که نوشتن توضیحات در برنامه خوانایی آن را بالا میبرد.
در پاسکال توضیحات بین دو آکولاد محصور میشوند.
{ This is comment }
{ This program written by A. Pascal }
قبل از این که شروع به نوشتن یک برنامه کنیم ابتدا باید دستورات ورودی و خروجی را در پاسکال یاد بگیریم :
خروجی با دستور Write :
این دستور برای نوشتن اطلاعات در خروجی بکار میرود. اطلاعات خروجی میتوانند ثابتهای عددی، مقادیر متغیرها، عبارات و غیره باشند. شکل دستور در حالت کلی بصورت زیر است:
(....... و متغیر۲ و متغیر۱ )write
یا (....... و' عبارت ۲' و'عبارت۱ ')
یا (....... و ثابت ۲ وثابت ۱ )
مثال:
Var
A , B: integer ;
Ch: char ;
R: Real ;
Begin
A: = 10 ; B: = 15 ;
Ch: = ' T ' ;
R: = 12.25
Write ( ' A = ' , A, ' B = ' , B ) ;
Write ( ' ch = ' , ch , ' R= ' , R ) ;
Write ( ' sum of A and B = ' , A + B ) ;
End. { end of program}
بعد از اجرای برنامه فوق در خروجی خواهیم داشت:
A = 10 B = 15 ch = TR = 1.2250000000 e + 01 sum of A and
B = 25
خروجی با دستور Writeln :
این دستور همانند دستور Write عمل میکند با این تفاوت که بعد از اجرا، کنترل را به ابتدای سطر بعد منتقل میکند در نتیجه موجب چاپ دادههای بعدی در ابتدای سطر بعد میشود.
خروجی برنامه بالا بصورت زیر میباشد:
A = 10 B = 15
Ch = T R = 1.225000000 e + 01
Sum of A and B = 25
خروجی فرمتبندی شده:
اگر بخواهیم اطلاعات با فاصله های مشخص یا در مکان مشخصی در صفحه نمایش قرار گیرند، باید فرمت چاپ را در دستورات بیان شده مشخص کنیم.
طریقه تعیین فرمت چاپ برای اعداد صحیح :
( طول میدان: داده صحیح ) Writeln یا Write
در تعریف طول میدان برای متغیرها یا دادههایی از نوع صحیح به نکات زیر توجه کنید:
۱٫اگر طول میدان از طول ارقام عدد صحیح بیشتر تعریف شود، عدد در منتهیالیه سمت راست میدان نوشته میشود.
.۲اگر طول میدان از طول ارقام عدد صحیح کمتر تعریف شود، طول میدان به اندازه تعداد ارقام در نظر گرفته میشود و طول میدان تعریف شده بیاثر خواهد بود.
مثال:
X:= 3200 ;
A: = 12 ;
B: = 217 ;
Write ( X:3 , A:5 , B:5 ) ;
خروجی: ۲۱۷ دوتا فاصله ۱۲ سه تافاصله ۳۲۰۰
طول میدان اعداد اعشاری :
برای نمایش اعداد اعشاری بصورت دلخواه، می توان با تعریف طول میدان و تعداد ارقام اعشاری، عدد مزبور را نمایش داد.
: در حالت کلی طول میدان را میتوان به صورت زیر تعریف کرد:
( تعداد ارقام بعد از ممیز: طول میدان: متغیر اعشاری) Writeln یا Write
در تعریف فرمت برای اعداد اعشاری به نکات زیر باید توجه کرد:
.۱ اگر طول میدان بزرگتر از تعداد ارقام عدد ذکر شود، عدد در منتهی الیه سمت راست میدان چاپ میشود.
۲٫اگر فقط طول میدان ذکر شود، عدد به صورت نماد علمی در طول میدان مشخص شده
چاپ می شود .از آنجائی که برای نمایش اعداد در نماد علمی حداقل ۸ محل مورد نیاز است، لذا هنگامی که تنها طول میدان ذکر شده باشد، اگر از ۸ رقم کمتر باشد، حداقل ۸ رقم در نظر گرفته میشود.
۳٫هنگامی که طول میدان همراه با تعداد ارقام بعد از ممیز ذکر شود، اگر طول میدان کوچکتر از مقدار عدد باشد، پاسکال تنها طول میدان را به اندازهای که مورد نیاز است تصحیح کرده و آنرا برابر اندازه واقعی که عدد در آن قرار میگیرد، اصلاح میکند.
۴٫اگر تعداد ارقام بعد از ممیز زیاد باشد و تعداد ارقام بعد از ممیز ذکر شده در طول میدان کمتر از تعداد ارقام اعشاری عدد باشد، تعداد ارقام اعشار مطابق درخواست برنامهنویس نشان داده خواهد شد و رقم آخر اعشار آن نسبت به عدد بعدی گرد میشود.
طول میدان کاراکترها و رشتهها :
برای نمایش رشتهها و کاراکترهای با طول میدان بصورت زیر عمل میکنیم.
(طول میدان: متغیر یا عبارت رشتهای یا کاراکتری) Writeln یا Write
در توربو پاسکال، کلیه موارد گفته شده در مورد اعداد صحیح برای رشتهها نیز صادق است.
ورودی با Readln , Read
از این دستورات برای خواندن داده ها و اختصاص آنها به متغیرها استفاده میشود. در خواندن داده ها به دو موضوع باید دقت شود:
۱- منبع دادهها یعنی دستگاه ورودی که از آن دادهها خوانده میشود.
۲- متغیری که دادههای خوانده شده در آن قرار میگیرد.
شکل کلی دستور ورودی Read بصورت زیر میباشد:
;( ..... و متغیر ۲ و متغیر ۱Read (
این دستور عمل خواندن دادهها و ذخیره آنها در متغیرها را انجام میدهد و پس از اتمام عمل خواندن کنترل را برای خواندن و نوشتنهای بعدی. در همان خط نگه میدارد
شکل کلی دستور ورودی ReadLN بصورت زیر میباشد:
;( ..... و متغیر ۲ و متغیر ۱ReadLN (
این دستور عمل خواندن دادهها و ذخیره آنها در متغیرها را انجام میدهد و پس از اتمام عمل خواندن کنترل را برای خواندن و نوشتنهای بعدی به خط بعد می رود.
تا به ما قادر شدیم که یک برنامه کامل را بنویسیم حال چند مثال را حل می کنیم:
۱٫برنامه ای بنویسید که محتویات دو عدد را عوض کند؟
program Example_1 ( input , output ) ;
Var
first , second , temp: integer Begin
Writeln ;
Writeln ( 'Please Enter two numbers ' ) ;
Readln ( first , second ) ;
Temp: = first ;
First: = second ;
Second: = temp ;
Write ( ' first = ' , first , ' second = ': 10 , second ) ;
End. { end of program }
خروجی برنامه بالا به صورت زیر میباشد:
Please Enter two numbers
15 17
First = 17 second = 15
2.برنامه ای بنویسید که حقوق پایه و تعداد فرزندان یک کارگر را از ورودی گرفته و مبلغ حقوق وی را بر اساس فرمول زیر محاسبه کند؟
۱۰* تعداد فرزندان+ حقوق پایه= حقوق کل
program TEST( input , output ) ;
Var
CHILD:BYTE
:LONGINT SALARY
: integer ; KOL
Begin
Writeln ; Writeln ( 'Please Enter salary an number of child);
Readln ( salary, child ) ;
Kol:=salary+child*10;
Writeln ('kol is',kol);
End. { end of program }
در درس قسمت بعدی انواع عمگرها ،دستورات شرطی،دستور case ،حلقه ها را بحث خواهد شد .