Turbo Pascal. Процедуры и функции
Подпрограмма – это выделенный в
самостоятельную единицу участок программы, имеющий собственное имя, которое
позволяет вызывать подпрограмму из основной программы.
Два вида подпрограмм:
- процедуры
- функции.
1. Процедуры
Тема: Процедуры.
Цель:
1)
Освоить простейшую структуру программы при работе с
процедурами.
2)
Получить практические навыки работы в интерактивном
(диалоговом) режиме.
3)
Получить практические навыки работы над ошибками.
ХОД РАБОТЫ:
Задание №1: Составить программу с использованием
процедуры вывода на экран визитной карточки программиста. Записать программу в
тетрадь.
Program NP_1;
Var Dat, Fam: string; { Fam: глобальная
переменная }
Procedure VIZ(D_R :string); {
D_R - формальный параметр }
Var S_t: string; { S_t: локальная переменная }
Begin
writeln('| -------------------------------- |');
writeln('| Разработчик программы:',
Fam:14,' |');
writeln('| |');
writeln('| г. Нефтеюганск,
', D_R:14,' |');
writeln('| Телефон: 22-44-66 |');
writeln('| -------------------------------------- |');
writeln(' Комментарий: ');
Readln(S_t);
end;
Begin
Fam:='И.И.Иванов';
Dat:='06.12.95'; {Dat - фактический
параметр }
VIZ(Dat); { вызов процедуры }
Readln;
END.
Задание №2: Оформить в виде процедуры программу
приветствия (подобную программе Hellow в пункте «Процедуры записи Write,
Writeln». Запись процедуры и текст основной программы, из которой выполняются
обращения к процедуре. Записать программу в тетрадь.
Эта программа выводит на экран приветствия для
трех человек:
1. Кати,
2. Андрея,
3. Лены.
Program privet;
Procedure Hellow (Name :string);
Begin
writeln('Привет,',
Name,'!');
writeln(Name,', как дела');
End;
Begin
Hellow (‘Катя’);
Hellow (‘Андрей’);
Hellow (‘Лена’);
Readln;
End.
Задание №3: Составим программу вычисления выражений и с
использованием процедуры расчета гиперболических функций. Записать программу в
тетрадь.
В некоторых расчетах приходится пользоваться
функциями гиперболических синуса и косинуса:
Program Hiperbolik;
Var
A: real;
Sx, Sy, F1, F2: real;
Procedure Hpb (X : real; var Ch, Sh :
real);
Begin
X:=EXP(X);
Ch:=(X+1/X)/2;
Sh:=(X-1/X)/2;
End;
Begin
A:=0.5;
Hpb (A, Sx, Sy);
F1:=Sx*Sx+Sy;
F2:=Sy*Sy+Sx;
writeln('Значение функции F1 равно', F1);
writeln('Значение функции F2 равно', F2);
Readln;
End.
Самостоятельное задание
1.
Составьте программу вычисления функции thX=shX/chX,
используя приведенные выше процедуры расчета гиперболических функций. Записать
программу в тетрадь.
2.
Составьте программу вычисления функции thY=shY/chY,
используя приведенные выше процедуры расчета гиперболических функций. Записать
программу в тетрадь.
3.
Составьте программу вычисления функции
cthX=chX/shX, используя приведенные выше процедуры расчета гиперболических
функций. Записать программу в тетрадь.
4.
Составьте программу вычисления функции thY=chY/shY,
используя приведенные выше процедуры расчета гиперболических функций. Записать
программу в тетрадь.
5.
Запишите программу расчета корней квадратного
уравнения с произвольными значениями коэффициентов. Используйте по возможности
процедуры. Записать программу в тетрадь.
(procedure Discr (А, В,
С, D: real);
begin
D:=B*B-4*A*C;
end;
В этой процедуре использованы переменные А, В,
С, D типа real. Они являются формальными параметрами)
2. Функции
Тема: Подпрограммы – функции.
Цель:
1)
Освоить простейшую структуру программы при работе с
функциями.
2)
Получить практические навыки работы в интерактивном
(диалоговом) режиме.
3)
Получить практические навыки работы над ошибками.
ХОД РАБОТЫ:
Задание №1: Составить программу с использованием
функции в расчете выражения . Записать программу в
тетрадь.
Вычисление модуля оформлено в виде
пользовательской функции Modul:
Program P1;
Var
X, Y: real;
Function Modul(x: real): real;
Begin
If x<0
then Modul:= -x else Modul:=x;
end;
Begin
writeln('Введите X');
Readln (X);
Y:=Modul(X+1)+ Modul(X+2);
writeln(Y);
Readln;
End.
Задание №2: Вычисление степенной функции Y=XN,
которой нет среди встроенных функций. Для вычисления XN
предназначена описываемая ниже пользовательская функция. Записать программу в
тетрадь.
Program Degree;
Var
Z, F: real;
N: integer;
Function Deg(N: integer; x: real): real;
Var
I: integer;
Y: real;
Begin
I:=1;
Y:=1;
While I<=N do
Begin
Y:=Y*X;
I:=I+1;
end;
Deg:=Y;
end;
Begin
writeln('Введите Z, N');
Readln (Z, N);
F:= Deg (N,Z);
writeln('F=',F);
Readln;
End.
Самостоятельное задание
1.
Составить программу с использованием функции в
расчете выражения . Записать программу
в тетрадь.
2.
Составить программу с использованием функции в
расчете выражения . Записать программу
в тетрадь.
3.
Составить программу с использованием функции в
расчете выражения . Записать программу
в тетрадь.
4.
Составить программу с использованием функции в
расчете выражения . Записать программу
в тетрадь.
5.
Составить программу с использованием функции в
расчете выражения . Записать программу
в тетрадь.
6.
Составить программу с использованием функции в
расчете выражения . Записать программу
в тетрадь.
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.