Лабораторная работа № 10. Подпрограммы
Задание 1.Исправьте ошибки в программе.
Program Example19;
Uses Crt;
Function V(R, H: real): integer;
Begin
V:= pi*sqr(R)*H;
End;
Var x: integer;
Begin
a:= V(3,4)
b:= V(2,4)
Writeln('V1=', a);
Writeln('V2=', b);
x:= a – b;
Writeln('V1 – V2=', x:4:1);
End.
Листинг программы:
Program Example19;
Uses Crt;
Var x, a, b: real;
Function V(R, H: real): real;
Begin
V:=pi*sqr(R)*H;
End;
Begin
a:=V(3,4);
b:=V(2,4);
Writeln('V1=',a:4:1);
Writeln('V2=',b:4:1);
x:=a-b;
Writeln('V1-V2=',x:4:1);
Readln;
End.
Протокол выполнения программы:
V1=113.1
V2=50.3
V1-V2=62.8
Задание 2.Посмотрите пример функции вычисляющей факториал числа. В основной программе посчитайте выражениеy = (m! + k!)/s!
Function factorial(n: byte): longint;
Begin
if (n = 0) or (n = 1) then factorial:= 1
else factorial:= n * factorial(n - 1);
End;
Листинг программы:
Program z102;
Uses crt;
Var m, k, s: byte; y: real;
Function factorial(n: byte): longint;
Begin
if (n=0) or (n=1) then factorial:=1
else factorial:=n*factorial(n-1);
End;
Begin
Write('m=');
Readln(m);
Write('k=');
Readln(k);
Write('s=');
Readln(s);
y:=(factorial(m)+factorial(k))/factorial(s);
Writeln('y=',y:5:0);
Readln;
End.
Протокол выполнения программы:
m=3
k=4
s=2
y=15
Задание 3.Составьте функцию, вычисляющую логарифм с произвольным основаниемlogab.
Листинг программы:
Program z103;
Uses crt;
Var a, b, y: real;
Function Log(x, y: real): real;
Begin
Log:=ln(b)/ln(a);
End;
Begin
Write('a=');
Readln(a);
Write('b=');
Readln(b);
y:=Log(a,b);
Writeln('Log=',y:5:2);
Readln;
End.
Протокол выполнения программы:
a=2
b=8
Log=3.00
Задание 4.Составьте функцию для вычисления площади кольца.
Рис. 1. Кольцо
Листинг программы:
Program z104;
Uses Crt;
Var S, S1, S2, R1, R2: real;
Function SK(R: real): real;
Begin
SK:=pi*sqr(R);
End;
Begin
Writeln('R1>R2');
Write('R1=');
Readln(R1);
Write('R2=');
Readln(R2);
S1:=SK(R1);
S2:=SK(R2);
Writeln('S1=',S1:5:2);
Writeln('S2=',S2:5:2);
S:=S1-S2;
Writeln('S=',S:5:2);
Readln;
End.
Протокол выполнения программы:
R1>R2
R1=5
R2=3
S1=78.54
S2=28.27
S=50.27
Задание 5.Наберите код программы и посмотрите пример использования процедурыColor.
Program Example20;
Uses Crt;
Procedure Color(x, y: word);
Begin
TextColor(x);
TextBackGround(y);
End;
Begin
Color(1,5);
Write('Hello ');
Color(1,3);
Writeln('student!');
Readln;
End.
Задание 6.Доработайте программу, чтобы цвет фона и цвет текста вводились пользователем при запуске программы.
Листинг программы:
Program Example20;
Uses crt;
Var n1, m1, n2, m2 : word;
Procedure Color(x,y: word);
Begin
TextColor(x);
TextBackGround(y);
End;
Begin
Write('n1=');
Readln(n1);
Write('m1=');
Readln(m1);
Write('n2=');
Readln(n2);
Write('m2=');
Readln(m2);
Color(n1,m1);
Write('Hello');
Color(n2,m2);
Writeln('student!');
Readln;
End.
Протокол выполнения программы:
n1=1
m1=2
n2=3
m2=4
Hello student!