Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otchet.doc
Скачиваний:
6
Добавлен:
22.02.2015
Размер:
160.26 Кб
Скачать

Лабораторная работа № 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!

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]