آموزش پاسکال (قسمت سوم)
مثال : برنامه ای بنویسید كه دو عدد را از ورودی دریافت و چنانچه عدد اول در بازه 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.
مثال : برنامه ای بنویسید كه دو عدد را از ورودی دریافت و اعداد ما بین این دو عدد را چاپ كند (aBegin
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.
موفق باشید .