تمام کامپیوترهای رقمی ، بدون توجه به اندازه انها ، اساسا دستگاههای الکترونیکی ای هستند که برای انتقال ، ذخیره وپردازش اطلاعات ( یعنی داده ها) مورد استفاده قرار می گیرند .
کامپیوتر ها قادرند انواع مختلفی از داده ها را پردازش کنند .
از این میان می توان داده های عددی ، کا راکتری (نام ، ادرس ) داده های گرافیکی ( نمودار ،رسم ، عکس ) وصوت ( موسیقی ، سخنرانی ) را نام برد.
دو نوع از متداولترین داده ها ، داده های عددی وداده های کاراکتری هستند .
برنامه های کاربردی علمی ومهندسی عمدتا با داده های عددی سروکار دارند ، حال انکه برنامه های کاربردی تجاری وبازرگانیمعمولا نیازمند پردازش هر دو نوع داده ی عددی و کاراکتری هستند .
برای پردازش مجموعه خاصی از داده ها ، باید به کامپیوتر مجموعه ای از دستورها ی مناسب داده شود که به ان برنامه می گویند .
این دستورها وارد کامپیوتر شده پس از ان در بخشی از حافظه ذخیره می شود .
می خواهیم برنامه ای بنویسیم که مساحت یک دایره را با استفاده از دستور a=πr² محاسبه کند .
داده ورودی شعاع دایره r است که یک مقدار عددی است .
در برنامه به مراحل زیر نیاز داریم :
1- مقدار عددی شعاع دیره را بخوانید .
2- با استفاده از دستور بالا، مقدار مساحت را محاسبه کنید .
این مقدار همراه با داده ورودی ، در حافظه کامپیوتر ذخیره می شود .
3- مقادیر شعاع ومساحت متناظر با ان را چاپ کن .
4- پایان .
پایان مقدمه
تاریخچه زبان پاسکال :
انواع زبانها ی برنامه نویسی :
زبانهای مختلف ومتعددی وجود دارد که به کمک انها می توان برای کامپیوتر برنامه نوشت .
ابتدایی ترین این زبان , زبان ماشین است که از مجموعه ای از دستورهای رمزی با 0 و1 با جزئیات کامل برای کنترل مدارهای داخل کامپیوتر تشکیل شده است .معمولا یک برنامه کامپیوتری به یک زبان سطح بالا نوشته می شود که مجموعه دستورهای ان زبان با زبان طبیعی و فرایند اندیشه انسان سازگار است .
اکثر این زبانها ، مانند زبان پاسکال ، زبان همه منظوره هستند .
از دیگر زبان های همه منظوره می توان زبان C , C+ +و فورترن را نام برد .
علاوه بر این زبان های یک منظوره متعددی وجود دارد که برای کاربرد های خاص طراحی شده اند مانند زبانهای CSMP و SIMAN که معروفتر از بقیه هستند .
زبان های یک منظوره اخیر مخصوص شبیه ساز هستند .
زبان یک منظوره LIST زبان پردازش لیست است که از ان به طور گسترده ای برای برنامه های کاربردی هوش مصنوعی استفاده می شود .
نیکلاس ورث، زبان پاسکال را برای اولین بار در نیمه اول دهه 1970 در دانشگاه صنعتی زوریخ ، در سوئیس ، طراحی کرد .
هدف اولیه ورث ایجاد یک زبان برنامه نویسی سطح بالا و منظم برای اموزش برنامه نویسی ساخیافته بود .
تعریف اولیه ورث از این زبان را گاهی اوقات پاسکال استاندارد یا پاسکال استاندارد تعریف شده توسط ینسن و ورث می گویند .
از سال 1983 ، شرکت borland که یک شرکت کوچک نرم افزاری است ، کامپایلر پاسکال ارزان قیمتی به نام توربو پاسکال tuorbo pascal برای استفاده روی کامپیوتر های شخصی به بازار عرضه کرده است .
توربو پاشکال ، به خاطر قیمت پائین و استفاده ساده از ان موقیت فراوانی کسب کرده است این کامپایلر همراه با توسعه و تکامل زبان پاسکال ، به یک محیط برنا مه نویسی کامل تبدیل شده است که حاوی یک ویرایشگر و یک اشکال زدای سؤال و جوابی است.
ساختار یک برنامه پاسکال :
مراحل برنامه نوسی :
1- برسی صورت مساله و اجزای مربوطه
2- شناسایی پارامتر های ورودی و انتخاب نام یا شاخص مناسب برای هر کدام
3- شناسایی پارامتر های خروجی و انتخاب شاخص مناسب برای هر کدام
4- طراحی دستورالعمل با الگوریتم مناسب برای حل مساله با توجه به داده های ورودی و اطلاعات مورد نیاز خروجی .
نوشتن الگوریتم به زبان فلوچارت با استفاده از علائم استاندارد مورد نیاز .
5- ترجمه الگوریتم طراحی شده به خطوط برنامه های زبان مورد نظر .
6- تایپ متن برنامه در محیط نرم افزار مورد نظر .
7- کامپایل کردن و ترجمه برنامه به زبان ماشین ( این کار توسط ابزار برنامه نویسی انجام می شود .
8- اجرای برنامه و رفع اشکالات جواب خروجی ( این اشکالات ناشی از الگوریتم اشتباه می باشد .
مراحل ساختن فایلهایی که در کامپیوتر برای تولید یک برنامه مورد نیاز است :
مراحل ساختن فایلهایی که در کامپیوتر برای تولید یک برنامه مورد نیاز است : source code متن برنامه نوشته شده می باشد که از الگوریتم برنامه ترجمه شده است .
تمرین 1 : برنامه ای بنویسید که حاصل جمع و میانگین دو عدد را محاسبه کند و نمایش دهد.
out put input sum = x وy 0- شروع 1-خواندن 2 عدد ورودی و ذخیره در شاخص های مربوطه محاسبه حاصل جمع x وy sum .
3-محاسبه میانگین و ذخیره در شاخص مربوطه 2 average = sum ⁄ 4-چاپ خروجی sum و average 5-پایان معرفی علائم فلورچارت : 1- start \ end 2- flow جهت حرکت داده ها ورودی , خروجی ( I, o ) در یافت اطلاعات از key board ,scanner, disk, modem , خروجی اطلاعات از monitor , printer,disk, modem 4- هر نوع محاسبه ای در این محل انجام می شود .
5-NO if هر نوع تصمیم گیری در این مکان انجام می شود که شرط کلی برای if این است که اگر از بالا یک علامت وارد شود دو علامت YES و NO خارج می شود .
YES الگوریتم : تمرین 2 : برنامه ای بنویسید که قیمت یک زمین دایره ای شکل را به ازای متری 750 هزار محاسبه کند .
خروجی ورودی مساحت area rediuse متغیر pi=3.14 ثابت p=750000 فلورچارت یا روند نما : شکل نمایش هندسی الگوریتم است .
شرع حداکثر یک خروجی ولی پایان حداقل یک ورودی دارد .
متوازی الاضلاع یک یا بیشتر ورودی ولی یک خروجی دارد .
مستطیل یکی یا بیشتر ورودی و فقط یک خروجی .
لوزی یک یا بیشتر ورودی و فقط یک خروجی یا yes و no.
مثال 1 : الگوریتمی بنویسید که اضلاع مثلث را دریافت , محیط و مساحت را چاپ کند ؟
شروع اندازه سه ضلع را دریافت و در aو b و c بریزد .
حاصل جمع a+b+c را در p بریزد .
حاصل عبارت p/2 –a ) (p/2-b ) (p/2 –c ) √p/2 ( را در s قرار بده .
محتویات p و s را نمایش بده .
پایان .
مثال2 : الگوریتمی بنویسید که اندازه شعاع را دریافت و محیط و مساحت دایره را محاسبه نماید .
شروع r را دریافت کن .
π* R2 P 3- π R*P* S 5- P وS را چاپ کن .
6- پایان .
مثال 3 : فلورچارت و الگوریتمی بنویسید که ضرایب معادله درجه اول را دریافت و معادله را حل وفصل کند .
الگوریتم وفلورچارت که ضرایب معادله درجه اول را دریافت و معادله را حل وبحث نماید .
الگوریتم وفلورچارت که ضرایب یک دستگاه معادله دو مجهول را دریافت و دستگاه را حل و بحث نماید .
معادله درجه 1 1) ax +b=c 2) ax² + bx + c = 0 Δ =b² - 4 ac x¹ , x ² = _-b ± √ ∆ نوع نوشتن در پاسکال : مثال 4 : برنامه ای بنویسید که محیط و مساحت یک مستطیل را محاسبه کند .
program reactangle ; var ; integer a ,b : integer ; s , m : begin read ( a ,b ); : = a * b ; s m := ( a+ b ) * 2 ; writeln ( s , m ) ; end .
هر برنامه پاسکال از یک عنوان و یک بلاک تشکیل می شود .
عنوان برنامه با کلمه program شروع می شود که پس از ان برخی اطلاعات اضافی که ممکن است مورد نیاز باشد ظاهر می شود .
معمولا طول این بخش از برنامه , تنها یک خط است .
بلاک دارای دو بخش اصلی به نام بخش اعلان و بخش دستور است .
بخش اعلان , عنصر های داده ای مختلفی را تعریف می کند که در داخل برنامه مورد استفاده قرار می گیرد .
بخش دستور شامل دستورهای اجرایی است که باعث انجام عملیات خاصی می شوند .
در هر برنامه پاسکال , حد اقل باید یک دستور وجود داشته باشد .
در زیر ساختار کلی هر برنامه پاسکال توضیح داده می شود .
عنوان بلاک که تشکیل شده است از : الف – اعلان ها که شامل : -1 برچسب ها -2 ثابت ها 3- تعریف های نوع 4- متغیر ها 5 - زیر برنامه های procedure و تابع function ب- دستورها, است .
اجزای اصلی یک برنامه از هم تفکیک شده اند تا تاکیدی بر سازمان کلی برنامه باشند .
program circle; (* area of a circle *) var area , radiuse : real ; begin read (radiuse) ; area := 3.14159 *sqr (radiuse) ; ; writeln ( area ) end.
در برنامه بالا , ویژگی های زیر مد نظر بوده است : بعضی از کلمه ها با حروف بزرگ نوشته شده اند .
این کلمه ها کلمه های ذخیره شده ( یا کلمه های کلیدی ) بوده و دارای معنی از پیش تعریف شده ای هستند .
خط اول شامل نام برنامه (circle) است که عنوان برنامه نام دارد .
خط دوم توضیحی است که هدف برنامه را مشخص می کند .
سه خط تو رفته بین begin و end , دستورهای برنامه هستند .
این دستورها باعث می شوند برای شعاع یک مقدار وارد کامپیوتر شوند , برای مساحت یک مقدار محاسبه شود و مقدار مساحت چاپ شود .
مقادیر عددی شعاع و مساحت با نام های نمادی radiuse و area نشان داده شده اند .
به این نامهای نمادی متغیر می گویند .
نام نمادی sqr در خط ششم , یک تابع استاندارد است که برای محاسبه مربع شعاع به کار می رود .
در پایان برنامه , بیشتر خطها با سمی کالن , ; , به پایان رسیده اند .
بعضی از انها علامت نقطه گذاری ندارند و خط اخر با یک نقطه , .
, به پایان رسیده است نقطه , بخشی از ساختار دستوری زبان پاسکال است .
نمونه هایی از برنامه های ساده پاسکال : مثال 5 : مساحت یک دایره شامل یک شناسه ثابت , به نام pi است که مقدار عددی 3.14159 را نشان می دهد .
علاوه بر این , با اجرای این برنامه , پیغامی چاپ می شود که می گوید مقدار شعاع را ( با چاپ rediuse ) وارد کند و پس از ان , مقدار مساحت را با پیغام مناسب در خروجی چاپ می کند .
program circle; (* area of a circle – version 2* ) const pi = 3.14159; var rediuse, area : real ; begin write ( ` rediuse = `) ; read (rediuse); area := pi *sqr (rediuse ) ; writeln ( `area = ` , area) ; end.
خروجی حاصل از اجرای این برنامه سؤال جوابی در زیر نشان داده شده است .
rediuse = 3 area= 2.8274310000e+01 در توربو پاسکال 7 خروجی عددی را با نماد علمی چاپ می کند .
بنا براین مقدار محاسبه شده برای مساحت 2.82743110 است که معادل 28.27431 است .
روش دیگر فورمت خروجی عددی را در مثال زیر مشاهده می کنید .
مساحت دایره با استفاده از زیر برنامه function را برای محاسبه و برگرداندن یک مقدار توضیح می دهیم .
program circle; (* area of a circle – version 3* ) var rediuse, area : real ; function funct ( r : real ): real ; const pi = 3.14159 ; begin funct :=pi *sqr(r) ; end; begin write ( `rediuse = `) ; read( rediuse ); area := funct ( rediuse ) ; writeln ( `area = ` , area) ; end.
در این برنامه از تابع funct استفاده شده است که محاسبات واقعی را انجام می دهد r در داخل برنامه function , پارامتر نام دارد که مقدار شعاع دایره را نشان می دهد که از بلاک برنامه اصلی به تابع funct منتقل شده است .
نام تابع funct , مساحت محاسبه شده را نشان می دهد .
در بلاک اصلی دسترسی به تابع با دستور زیر انجام می گیرد : area := funct ( rediuse ) ; این دستور باعث می شود مقدار rediuse در تابع funct منتقل شود .پس از ان مقدار برگشتی تابع funct در area جایگزین می شود .
مثال6 : مساحت دایره با استفاده از زیر برنامه procedure با توجه به مثال تابع function با استفاده از یک زیر برنامه procedure نوشته ایم : program circle; (* area of a circle – version 4* ) var rediuse, area : real ; ; procedure calc ( var