PDA

توجه ! این یک نسخه آرشیو شده می باشد و در این حالت شما عکسی را مشاهده نمی کنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : آموزش پاسکال . شرط ها و حلقه ها



TAHA
10-01-2009, 05:39 PM
مثال : برنامه اي بنويسيد كه دو عدد را از ورودي دريافت و چنانچه عدد اول در بازه ۰ تا ۵ بود توان دوم عدد دوم را چاپ كند چنانچه ۶۸ بود حاصلضرب دو عدد را چاپ كند و در غير اينصورت مقادير مجاز را چاپ كند.



BEGIN
WRITELN(’ENTER TWO NUMBER’);
READLN(A,B);
CASE A OF
۰..۵ :WRITELN(B*B);
۶۸:WRITELN(A*B)
ELSE
WRITELN(’ENTER ۰..۵ OR ۶۸′);
END;
END.


- معادل برنامه بالا با دستور If :



Begin
Writeln(’enter ۲ number’);
Readln(a,b);
If (a>=۰)and(a<=5) then
Writeln(b*b)
Else
If a=۶۸ then
Writeln(a*b)
Else
Writeln('enter ۰..۵ or۶۸');
End.


تكليف : روشي براي تلفظ اعداد پيدا كنيد.
حلقه تكرار :
۱- تعداد معين
۲- تعداد معين


Do مقدار نهايي to { مقدار شروع=: متغير for
downto
begin
___
___
___
end;
توجه مهم : در برخي از حلقه ها دستورات داخل حلقه به متغير حلقه مرتبط مي باشند و در برخي موارد هيچگونه ارتباطي وجود ندارد.
حلقه for براي تعداد تكرار معين به كار ميرود
Downto : در مواردي به كار ميرود كه مقدار اوليه از مقدار نهايي بيشتر باشد
مثال : برنامه اي بنويسيد كه توان دوم اعداد ۱۰۰ تا ۲۰۰ را چاپ كند.



Begin
For i:=۱۰۰ to ۲۰۰ do
Begin
Writeln(i*i);
End;
End.


نكته : اجازه نداريد مقدار متغير حلقه را در داخل بدنه عوض كنيد .
مثال : برنامه اي بنويسيد كه حاصلجمع اعداد ۱۰۰..۱ را چاپ كند.



Begin
Sum:=۰;
For i:=۱ to ۱۰ do
Begin
Sum:=sum+i
End;
Write(sum);
End.


مثال : برنامه اي بنويسيد كه حاصلجمع مضارب ۵ بين ۰ تا ۱۰۰را به دست آورد.



Begin
Sum:=۰;
For I:=۱ to ۲۰ do
Begin
Sum:=sum+i*۵;
End;
Writeln(sum);
End.


مثال : برنامه اي بنويسيد كه دو عدد را از ورودي دريافت و اعداد ما بين اين دو عدد را چاپ كند (a



Begin
Writeln(’enter a,b’);
Readln(a,b);
For I:= a to b do
Writeln(i);
End.


مثال : برنامه اي بنويسيد كه با يك حلقه for اعداد بين۱۰۰..۱ و۷۳۸..۳۵۳و ۹۵۰..۹۴۰ را چاپ كند



Begin
For i:=۱ to ۹۵۰ do
Begin
If ( i>=۱) and (i<=100) then
Writeln(i);
If (i>۳۵۳) and (i<=738) then
Writeln(i);
If (i>=۹۴۰) and (i<=950) then
Writeln(i);
End;
End.


معادل برنامه بالا با استفاده از دستور case :



Begin
For i:=۱ to ۹۵۰ do
Case I of
۱..۱۰۰,۳۵۳..۷۳۸,۹۴۰..۹۵۰: writeln(i);
end;
end.


باقيمانده mod
مثال :
X mod y
مثال : برنامه اي بنويسيد كه مضارب ۷ بين ۱ تا ۱۰۰ را چاپ كند



Begin
For i:= ۱ to ۱۰۰ do
Begin
If I mod ۷ = ۰ then
Writeln(i);
End;
End.


مثال : برنامه اي بنويسيد كه تعداد مضارب ۵و۷ را در بازه ۲۳۱~۸۴۶ چاپ كند.



Begin
K:=۰;
C:=۰;
For i:=۸۴۶ downto ۲۳۱ do
Begin
If I mod ۵ = ۰ then
C:=c+۱;
If I mod ۷ = ۰ then
K:=k+۱;
End;
Writeln(’۵=’,c,’۷=’,k);
End;
End.


مثال : برنامه اي بنويسيد كه حقوق پايه وتعداد فرزندان ۱۰۰ كارگر را از ورودي دريافت و مبلغ حقوق آنها را بر اساس فرمول زير حساب كند۰
۱۰۰۰*تعداد فرزند + حقوق پايه = حقوق كل



Begin
For i:=۱ to ۱۰۰ do
Begin
Writeln(’enter salary and number of children’);
readln(salary,num);
kol := salary + num * ۱۰۰۰;
writeln(kol);
end;
end.


مثال : برنامه اي بنويسيد كه ۱۰۰ عدد را از ورودي دريافت و ميانگين و حاصلجمع آنها را به ما بدهد.



Begin
Sum:=۰;
For i:= ۱ to ۱۰۰ do
Begin
Writeln(’enter num’);
Readln(num);
Sum:=sum+num;
End;
Ave:=ave/۱۰۰;
Writeln(sum,ave);
End.


تعداد تكرار نامعين :


Do شرط while
begin
___
___
___
end;
مثال : برنامه اي بنويسيد كه اعداد ۱۰۰..۱ را چاپ كند



Begin
I:=۱;
While i<=100 do
Begin
Write(i);
I:=i+۱;
End;


مثال : برنامه اي بنويسيد كه تعدادي اسم را از ورودي دريافت و به ما بگويد چند بار اسم ali تكرار شده است(آخرين اسم end است).



Var
S:integer;
St:string;
Begin
Read(st);
While st<> ‘end’ do
Begin
If st=’ali’ then
S:=s+۱;
Read(st);
End;write(s);
End.


مثال : برنامه اي بنويسيد كه تعدادي عدد كه آخرين آنها صفر است را از ورودي دريافت و حاصلجمع آنها را چاپ كند.



Begin
Readln(num);
T:=۱;
While num<>۰ do
Begin
Sum:=sum+num;
Readln(num);
T:=t+۱;
End;
Writeln(’s=’,s,’average’,s/t);
End;


تكليف : براي دانش آموزان يك كلاس برنامه اي بنويسيد كه نام آنها به همراه تعداد نمرات و سپس نمرات آنها را به فرم زير از ورودي دريافت كند.تعداد دانش آموزان كلاس نامعين است ولي آخرين نفر نامش end است .برنامه ميبايستي پس از دريافت هر يك از اطلاعات پيامي به شكل زير چاپ كند.
Average: Sum: Ali Name:
۳
۱۸
۲۰
۱۳.۵



program test;
var
name:string[۱۰];
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:=۱ 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.



تكليف : ميخواهيم براي برنامه هاي خود يك منو تهيه كنيم اين منو شامل موارد زير است
۱) load
۲) save
۳) edit
۴) exit
please select a number :



program test;
var
num:integer;
begin
writeln(’ ۱) load’);
writeln(’ ۲) save’);
writeln(’ ۳) edit’);
writeln(’ ۴) exit’);
writeln(please select a number : ‘);
readln(num);
while num<>۴ do
begin
case num of
۱:writeln(’loading’);
۲:writeln(’saving’);
۳:writeln(’editing’);
end;
end;
end