Занятие 23 из 24
Прогресс сохраняется в этом браузере
Занятие 23. Процедуры и функции
Процедуры и функции — это подпрограммы: блоки кода, которые можно вызывать по имени. Они помогают структурировать программу и избегать повторений. Процедура выполняет действие; функция вычисляет и возвращает значение.
1. Прочитайте слова и словосочетания, переведите, запомните их значения.
| Подпрогра́мма | |
| Помога́ть I, помо́чь I (чему? чем?) | |
| Вспомога́тельный, -ая, -ое, -ые |
Вспомога́тельный алгори́тм
Вспомога́тельная фу́нкция
|
| Пара́метр |
Форма́льный пара́метр
Факти́ческий пара́метр
|
| Фу́нкция | |
| Процеду́ра | |
| Програ́мма | |
| Програ́ммный, -ая, -ое, -ые | Програ́ммная едини́ца |
| Специфика́ция (сущ., ж.р.) | Специфика́ция пара́метров |
| Возвра́т | Опера́тор возвра́та |
| Реку́рсия | |
| Рекурси́вный, -ая, -ое, -ые |
Рекурси́вное определе́ние
Рекурси́вный алгори́тм
|
| Обраще́ние (сущ., ср.р.) | Обраще́ние к фу́нкции |
📖 Теория
Процедура
procedure Имя(параметры);
var локальные_переменные;
begin
тело
end;
// вызов:
Имя(аргументы);
Функция
function Имя(параметры): тип_результата;
var локальные;
begin
тело;
Имя := значение; // возврат
end;
// вызов в выражении:
x := Имя(аргументы);
Пример процедуры
procedure Greet(name: string);
begin
writeln('Привет, ', name, '!');
end;
begin
Greet('Анна');
Greet('Иван');
end.
Пример функции
function Square(n: integer): integer;
begin
Square := n * n;
end;
var x: integer;
begin
x := Square(5);
writeln(x);
end.
Что выведет? Тренажёр: что выведет программа с процедурой?
Процедура PrintLine выводит строку из символов '*' заданной длины.
program.pas
procedure PrintLine(n: integer);
var i: integer;
begin
for i := 1 to n do write('*');
writeln;
end;
begin
PrintLine(3);
PrintLine(5);
PrintLine(7);
end.
Что выведет? Тренажёр: что вернёт функция?
Функция Cube возвращает куб числа.
program.pas
function Cube(n: integer): integer;
begin
Cube := n * n * n;
end;
begin
writeln(Cube(2));
writeln(Cube(4));
end.
Заполни пропуск Тренажёр: заполни функцию
Функция должна возвращать абсолютное значение числа: для отрицательного — изменить знак на плюс, для положительного — оставить как есть. Подсказки в комментариях справа.
function MyAbs(x: integer): ; // введите тип данных
begin
if x 0 // введите знак сравнения
then MyAbs := // введите выражение
else MyAbs := x;
end;
Расставь по порядку Тренажёр: расставь объявление функции
Это функция Min, возвращающая меньшее из двух чисел. Расставь строки по порядку.
function Min(a, b: integer): integer;
begin
if a < b
then Min := a
else Min := b;
end;
Примечание: Учти: встроенный «Запустить» в этих тренажёрах поддерживает базовые конструкции, но не работает с procedure/function. Для запуска таких программ используй задание «что выведет?» и проверяй вывод по эталону, либо запусти код в Free Pascal на компьютере.