تمریناتی درمورد روال procedureو تابعfunction
تمریناتی درمورد روال procedureو تابعfunction
1. سه عدد را خوانده و ماکزیمم آنها را باfunction بنویسید.
2. سه عدد را خوانده و ماکزیمم آنها را باprocedureبنویسید.
3. فرض کنید در یک فروشگاه یک4 نوع جنس با عناوینa,b,c,d, باقیت به ترتیب 25و20و12و5ریال موجود می باشد بر نامه ای بنویسید هر جنس با تعداد آن را در یافت قیمت نهایی را اعلام نماید شرط اتمام بر نامه وارد کردن حرفe باشد.
4. به طور کلی تفاوت روال و تابع در چیست؟
5. خروجی تابع زیر اگر n=40باشد چه مقداری است؟
6.
Function ad (n: byte):word;
Begin
If n=1 then
Ad: =1
Else
Ad: =ad (n-1) +n;
End;
پاسخ سوالات تشریحی
1)
Program t1;
Var
a,b,c :integer;
Function max (a,b,c: integer): integer;
Var
m: integer;
Begin
m:=a;
if b>m then m:=b;
if c>m then m:=c;
max:=m ;
End;
Begin
Write ('please enter a, b, c :');
Readln (a ,b ,c);
Write (max(a ,b ,c));
Readln;
End.
2)
Program t1;
Var
a, b, c, m :integer;
Procedure Max (a, b, c: integer; Var m: integer);
Begin
m: =a;
If b>m then m: =b;
If c>m then m: =c;
End;
Write ('please enter a, b, c :');
Readln (a, b, c);
Max (a, b ,c ,m);
Write (m);
Readln;
End.
3)
Program t3;
Label 10;
Var
Ch: char;
n, sum :integer;
Function call (ch: char; n: integer): integer;
Begin
Case ch of
'a', 'A': call:=n*5;
'b', 'B' : call:=n*12;
'c', 'C' : call:= n*20;
'd', 'D' : call:=n*25;
End;
End;
Begin
Writeln;
Writeln ('**** enter "E" to exit ****');
Sum: =0;
While true do
Begin
Write ('enter kind of (a, b, c, d) :');
Readln ( ch );
If (ch='e') or (ch='E') then goto 10;
Write ('enter numbers :');
Readln (n);
Sum:=sum+ call( ch , n);
End;
10:write('pay =' , sum);
Readln;
End.
4)
به طور کلی تفاوت روال و تابع در نحوه فراخوانی آنهااست.
5) این برنامه مقدارزيگما i ازi=1تا n=40 را محاسبه می کند می دانیم این مجموع برابر است با
n(n+1)/2
بنابراین داریم :
n=40 , 40(40+1)/2=820
خروجی 820است .
این وبلاگ جهت آموزش سریع دانشجویان ودانش آموزان عزیز به همت یک مهندس نرم افزار کامپیوتر ایجاد گردیده لطفا از نظرات سازنده دریغ نفرمایید.