X
تبلیغات
رایتل

آموزش پاسکال (قسمت دوم)

 

مثال : برنامه ای بنویسید که دو عدد را از ورودی دریافت و چنانچه عدد اول در بازه 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.