آموزش پاسکال (قسمت دوم) مثال : برنامه ای بنویسید که دو عدد را از ورودی دریافت و چنانچه عدد اول در بازه 0 تا 5 بود توان دوم عدد دوم را چاپ کند چنانچه 68 بود حاصلضرب دو عدد را چاپ کند و در غیر اینصورت مقادیر مجاز را چاپ کند. BEGIN WRITELN('ENTER TWO NUMBER'); READLN(A,B); CASE A OF 0..5 :WRITELN(B*B); 68:WRITELN(A*B) ELSE WRITELN('ENTER 0..5 OR 68'); END; END. ... ادامه مبحث در ادامه مطلب
مثال : برنامه ای بنویسید که دو عدد را از ورودی دریافت و چنانچه عدد اول در بازه 0 تا 5 بود توان دوم عدد دوم را چاپ کند چنانچه 68 بود حاصلضرب دو عدد را چاپ کند و در غیر اینصورت مقادیر مجاز را چاپ کند. BEGIN WRITELN('ENTER TWO NUMBER'); READLN(A,B); CASE A OF 0..5 :WRITELN(B*B); 68:WRITELN(A*B) ELSE WRITELN('ENTER 0..5 OR 68'); END; END. ادامه مبحث در ادامه مطلب - معادل برنامه بالا با دستور If : Begin Writeln('enter 2 number'); Readln(a,b); If (a>=0)and(a<=5) then Writeln(b*b) Else If a=68 then Writeln(a*b) Else Writeln('enter 0..5 or68'); End. تکلیف : روشی برای تلفظ اعداد پیدا کنید.
حلقه تکرار : 1- تعداد معین 2- تعداد معینDo مقدار نهایی to { مقدار شروع=: متغیر for downto begin ___ ___ ___end; توجه مهم : در برخی از حلقه ها دستورات داخل حلقه به متغیر حلقه مرتبط می باشند و در برخی موارد هیچگونه ارتباطی وجود ندارد. حلقه for برای تعداد تکرار معین به کار میرودDownto : در مواردی به کار میرود که مقدار اولیه از مقدار نهایی بیشتر باشد
مثال : برنامه ای بنویسید که توان دوم اعداد 100 تا 200 را چاپ کند. Begin For i:=100 to 200 do Begin Writeln(i*i); End; End. نکته : اجازه ندارید مقدار متغیر حلقه را در داخل بدنه عوض کنید . مثال : برنامه ای بنویسید که حاصلجمع اعداد 100..1 را چاپ کند. Begin Sum:=0; For i:=1 to 10 do Begin Sum:=sum+i End; Write(sum); End.
مثال : برنامه ای بنویسید که حاصلجمع مضارب 5 بین 0 تا 100را به دست آورد.
Begin Sum:=0; For I:=1 to 20 do Begin Sum:=sum+i*5; End; Writeln(sum); End. مثال : برنامه ای بنویسید که دو عدد را از ورودی دریافت و اعداد ما بین این دو عدد را چاپ کند (a<B) Begin Writeln('enter a,b'); Readln(a,b); For I:= a to b do Writeln(i); End. مثال : برنامه ای بنویسید که با یک حلقه for اعداد بین100..1 و738..353و 950..940 را چاپ کند
Begin For i:=1 to 950 do Begin If ( i>=1) and (i<=100) then Writeln(i); If (i>353) and (i<=738) then Writeln(i); If (i>=940) and (i<=950) then Writeln(i); End; End. معادل برنامه بالا با استفاده از دستور case : Begin For i:=1 to 950 do Case I of 1..100,353..738,940..950: writeln(i); end; end. باقیمانده mod مثال : X mod y مثال : برنامه ای بنویسید که مضارب 7 بین 1 تا 100 را چاپ کند Begin For i:= 1 to 100 do Begin If I mod 7 = 0 then Writeln(i); End; End. مثال : برنامه ای بنویسید که تعداد مضارب 5و7 را در بازه 231~846 چاپ کند. Begin K:=0; C:=0; For i:=846 downto 231 do Begin If I mod 5 = 0 then C:=c+1; If I mod 7 = 0 then K:=k+1; End; Writeln('5=',c,'7=',k); End; End. مثال : برنامه ای بنویسید که حقوق پایه وتعداد فرزندان 100 کارگر را از ورودی دریافت و مبلغ حقوق آنها را بر اساس فرمول زیر حساب کند0 1000*تعداد فرزند + حقوق پایه = حقوق کل Begin For i:=1 to 100 do Begin Writeln('enter salary and number of children'); readln(salary,num); kol := salary + num * 1000; writeln(kol); end; end. مثال : برنامه ای بنویسید که 100 عدد را از ورودی دریافت و میانگین و حاصلجمع آنها را به ما بدهد.
Begin Sum:=0; For i:= 1 to 100 do Begin Writeln('enter num'); Readln(num); Sum:=sum+num; End; Ave:=ave/100; Writeln(sum,ave); End.
تعداد تکرار نامعین : Do شرط while begin ___ ___ ___end; مثال : برنامه ای بنویسید که اعداد 100..1 را چاپ کند
Begin I:=1; While i<=100 do Begin Write(i); I:=i+1; End; مثال : برنامه ای بنویسید که تعدادی اسم را از ورودی دریافت و به ما بگوید چند بار اسم ali تکرار شده است(آخرین اسم end است). Var S:integer; St:string; Begin Read(st); While st<> 'end' do Begin If st='ali' then S:=s+1; Read(st); End;write(s); End. مثال : برنامه ای بنویسید که تعدادی عدد که آخرین آنها صفر است را از ورودی دریافت و حاصلجمع آنها را چاپ کند.
Begin Readln(num); T:=1; While num<>0 do Begin Sum:=sum+num; Readln(num); T:=t+1; End; Writeln('s=',s,'average',s/t); End; تکلیف : برای دانش آموزان یک کلاس برنامه ای بنویسید که نام آنها به همراه تعداد نمرات و سپس نمرات آنها را به فرم زیر از ورودی دریافت کند.تعداد دانش آموزان کلاس نامعین است ولی آخرین نفر نامش end است .برنامه میبایستی پس از دریافت هر یک از اطلاعات پیامی به شکل زیر چاپ کند. Average: Sum: Ali Name: 3 18 20 13.5 program test; var name:string[10]; ave,sum,nomreh:real; num,i:integer; begin writeln('enter name ' ); readln(name); while name <> 'end' do begin writeln('enter num:'); readln(num); for i:=1 to num do begin writeln('enter nomreh: '); readln(nomreh); sum:=sum+nomreh; end; ave:=sum/num; writeln('name:',name,'sum:',sum,'ave:',ave); writeln('enter name '); readln(name); end; end. تکلیف : میخواهیم برای برنامه های خود یک منو تهیه کنیم این منو شامل موارد زیر است 1) load 2) save 3) edit 4) exit please select a number :
program test; var num:integer; begin writeln(' 1) load'); writeln(' 2) save'); writeln(' 3) edit'); writeln(' 4) exit'); writeln(please select a number : '); readln(num); while num<>4 do begin case num of 1:writeln('loading'); 2:writeln('saving'); 3:writeln('editing'); end; end; end. |