Занятие 23 из 24
Прогресс сохраняется в этом браузере
0%

Занятие 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 на компьютере.