На четвёртой лекции (18 октября) вместе написали «Угадайку», решили задачу о нахождении суммы и количества цифр натурального числа и задачу о переворачивании числа. Говорили о логическом разбиении программы на подзадачи. Проходили обычные и функциональные процедуры. Объявление и вызов. Тип возвращаемого значения. Сигнатура. Формальные и фактические параметры. Глобальные и локальные переменные. Возврат из процедуры и оператор RETURN. Булевы процедуры. Коснулись понятия экспорта и разбиения программы на модули.

Задания на практику
Все задачи решаются с помощью написания процедур. В каждой задаче процедура Do организует ввод и вывод.
1) Написать процедуру, возвращающую знак числа (-1, 0 или 1).
PROCEDURE Sign(n: INTEGER): INTEGER;
2) Какая степень двойки? Если никакая, то возвращать -1.
PROCEDURE Power2(n: INTEGER): INTEGER;
3) Какая степень числа K?
PROCEDURE PowerK(n: INTEGER; K: INTEGER): INTEGER;
4) Простое ли число? Простое число — это натуральное число, которое делится только на себя и на единицу и не является единицей.
PROCEDURE Prime(n: INTEGER): BOOLEAN;
5) Точным квадратом какого числа является данное число? Если никакого, возвращать -1.
PROCEDURE PerfectSquare(n: INTEGER): INTEGER;
Пример: PerfectSquare(9) = 3, PerfectSquare(8) = -1
6) Правда ли, что все цифры в числе чётные?
7) Правда ли, что все цифры в числе имеют одинаковую чётность?
8) а) Сколько натуральных чисел, не превосходящих A, делится на C. б) Пользуясь написанной в (а) процедурой, написать процедуру, которая определяет, сколько целых чисел из отрезка [A; B] делится на C.
9) Процедура принимает 4 числа от 1 до 8 (вариант: до 1 млн) — координаты двух клеток на шахматной доске. Если это одна и та же клетка, возвратить -1, иначе если они соединены ходом короля, возвратить 1, ладьи — 2 слона — 3, коня — 4. Если клетки не соединены ходом ни одной из этих фигур, возвратить 0. Разбить задачу на несколько подзадач и оформить каждую из них в виде булевой процедуры.