آموزش پاسکال (قسمت اول) Pascal زبان پاسکال یکی از زبانهای برنامه سازی است که ویژگیهای آموزشی آن بسیار بالاست یعنی زبان خوبی برای آموزش برنامه نویسی منظم و دقیق است.قابلیت خوانایی و درک برنامه های این زبان بالاست ومیتوان برنامه هایی نوشت که احتمال خطاهای آنها بسیار اندک باشد علتش این است که یک زبان ساختار یافته (structed) است .
ساختار کلی برنامه چیست؟ 1-تعریف 2-به وسیله procedure و functionقسمتهای تکراری را از بین ببریم 3-بدنه فرم کلی پاسکال:
به ادمه مطلب مراجعه کنید ...
زبان پاسکال یکی از زبانهای برنامه سازی است که ویژگیهای آموزشی آن بسیار بالاست یعنی زبان خوبی برای آموزش برنامه نویسی منظم و دقیق است.قابلیت خوانایی و درک برنامه های این زبان بالاست ومیتوان برنامه هایی نوشت که احتمال خطاهای آنها بسیار اندک باشد علتش این است که یک زبان ساختار یافته (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. |