|
اموزش پاسکال( قسمت اول )
از: dev.ir
زبان پاسكال يكي از زبانهاي برنامه سازي است كه ويژگيهاي آموزشي آن بسيار بالاست يعني زبان خوبي براي آموزش برنامه نويسي منظم و دقيق است.قابليت خوانايي و درك برنامه هاي اين زبان بالاست وميتوان برنامه هايي نوشت كه احتمال خطاهاي آنها بسيار اندك باشد علتش اين است كه يك زبان ساختار يافته (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. |+| نوشته شده توسط شادی در یکشنبه 11 فروردین1387 و ساعت 5:56 بعد از ظهر |
|
