Для правильного визначення області дії ідентифікаторів під час використання в програмі процедур і функцій необхідно дотримуватися наступних правил: Кожний ідентифікатор повинен бути описаний перед тим, як він буде використаний. Ідентифікатор діє у межах блоку, в якому він описаний. Всі ідентифікатори в одному блоці повинні бути унікальними, тобто не повторюватися. Однакові ідентифікатори можуть бути по-різному визначені у кожному окремому блоці, але це вважається поганим стилем програмування і тому не рекомендується в різних блоках програми використовувати змінні з однаковими іменами. Якщо ідентифікатор підпрограми користувача збігається з ім'ям стандартної процедури або функції, то вони стають недоступними в межах області дії підпрограми, оголошеної користувачем, тобто стандартна функція ігнорується, а виконується програма користувача.
Наприкінці уроку рекомендуємо перевірити засвоєння матеріалу на запитаннях для самоконтролю. Крім того, можна запропонувати учням деякі тестові завдання, наприклад, такого типу.
ЗАДАЧА №415
Умова: Нехай в програмі описано такі процедури:
Procedure Р(х,у:integer);
Begin y:=x+l; End;
Procedure Q(x:integer; var у: integer);
Begin y:=x+1; End;
Procedure R(var x,y:integer);
Begin y:=x+1; End;
Визначити, що буде надруковано в результаті виконання таких операторів:
Очікувана відповідь
с:=2; d:=1; P(c,d); writeln(d); — на екрані буде 1
с:=2; d:=l; Q(c,d); writeln(d); — на екрані буде 3
с:=2; d:=1; R(c,d); writeln(d); —на екрані буде 3
Чи припустиме таке звертання до вищезазначених процедур?
Очікувана відповідь
P(sqrt(c),d) —так
Р(с,2) —так
Q(sqrt(c),d)—так