Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АП. Методичнi вказiвки.doc
Скачиваний:
4
Добавлен:
09.11.2019
Размер:
1.25 Mб
Скачать

Лабораторна робота № 7 функції і процедур, визначувані програмістом

Завдання 1: Скласти програму, використовуючи процедури.

Умови завдань приведені в таблиці 7.1.

Завдання 2: Скласти програму обчислення функції Z

використовуючи функції, визначені програмістом (таблиця 7.2).

У мові Паскаль існує два типи підпрограм - процедури і функції. Найбільш ефективним засобом для вирішення складних завдань є програми, написані ієрархічним шляхом.

Програму, що складається тільки з великого числа інструкцій, називають монолітною. Програму, що складається з процедур і функцій, називають модульною. Модульна програма має ієрархічну структуру.

Процедури

У Паскалі процедурою називають частину програми, що має ім'я і призначену для вирішення певного завдання. Процедуру, так само як і решту всіх об'єктів програми, перед використанням необхідно оголосити. Оголошення процедур і функцій здійснюється після оголошення змінних і перед тілом програми (перед першим словом BEGIN), тобто процедура і функція оголошуються останніми в розділі оголошень.

У Паскалі прийнятий наступний порядок оголошень:

  • мітка LABEL;

  • константи CONST;

  • типи TYPE;

  • змінні VAR;

  • процедури і функції PROCEDURE, FUNCTION;

Кожна процедура визначається тільки один раз, але може використовуватися багато разів в наступних частинах програми, задаючи її ім'я.

Загальна форма запису:

PROCEDURE ім'я (список параметрів); оголошення;

BEGIN

тіло процедури

END;

Процедури, що мають внутрішні описи (оголошення), повинні слідувати тим же правилам розташування описів, що і основна програма. Таким чином, процедури треба сприймати як програму в мініатюрі. У них можуть бути власні змінні, власні описи типів і навіть власні процедури і функції.

Змінні, використовувані тільки усередині процедури, називаються локальними.

Змінні, які використовуються і в процедурі і в основній програмі називаються глобальними.

Приклад.

program prim;

var a,b:integer;

procedure pas(i:integer);

var b:real;k:integer;

begin

a:=0;

for k:=1 to i do a:=a+k;

b:=cos(a);

end;

begin { основна програма}

a:=a+1;b:=0;

pas(5);

writeln('a=',a,'b=',b);

end.

У даному прикладі змінна А є глобальною, оскільки вона визначена тільки в основній частині програми, і відома як в викликанній програмі, так і в процедурі, але тільки в тому разі якщо в процедурі немає іншого оголошення А. змінна К є локальною, вона оголошена в процедурі і не доступна для викликанної програми. Будь-яке оголошення ідентифікатора в процедурі робить недоступним об'єкт, що має те ж ім'я і оголошений в зовнішньої по відношенню до процедури частини програми. Наприклад, для програми. У є цілій змінній, але в процедурі PAS є своя власна змінна, що відноситься до типу REAL. Процедурі PAS недоступна змінна В з головної програми. Всі зміни, що відбуваються із змінній в процедурі PAS, стають неістотними при виході з цієї процедури.

Отже, після виклику процедури і виконання інструкції WRITELN, на екрані з'явиться А=16 В=0.

Паскаль дає можливість задавати параметри, що набувають певних значень в процедурі. Такі змінні називаються формальними параметрами. Таким формальним параметром є змінна i, розташована в дужках при описі процедури, і далі в зухвалій програмі цієї змінної при виклику привласнено значення, рівне 5.

Функції

Функція відрізняється від процедури тільки тим, що завжди повертає в точку виклику скалярне значення. Таким чином, визначення функції схоже на визначення процедури. Відмітні особливості функції:

  • Необхідно завжди задавати тип повертаного функцією результату.

  • Щоб повернути результат в викликану програму, імені функції, так само як і звичайній змінній необхідно привласнити значення.

Загальна форма запису:

FUNCTION ім'я (список параметрів): тип результату;

FUNCTION ім'я: тип результату;

Тип результату представляється ідентифікатором типу, який описує тип значення, що отримується після виконання функції.

Список параметрів будується з параметрів даної функції.

Якщо список параметрів не визначений, то функції ніякі аргументи не передаються.

Тип результату функції є або порядковим, або REAL.

Результат функції не може бути масивом або іншим структурованим типом.

Тип параметра може бути будь-яким, включаючи структурований.

Приклад.

program summa;

var a:integer;

function sum(b,c:integer):integer;

begin

sum:=b+c;

end;

begin {тіло основної програми}

a:=sum(5,4);

writeln('сума дорівнює ',a:2);

end.

Таблиця 7.1 - Варіанти завдань для лабораторної роботи № 7 (процедури)

Зміст завдання

1

Знайти стовпець матриці з мінімальним елементом матриці

2

Обчислити визначник матриці [4*4]

3

Знайти рядок матриці з максимальним елементом матриці

4

Дано два одновимірні масиви. Знайти суму мінімальних елементів масиву.

5

Розташувати елементи кожного рядка матриці в порядку убування

6

Знайти максимальний елемент двовимірної матриці

7

Знайти мінімальний елемент двовимірної матриці

8

Для кожного стовпця заданої матриці знайти номери рядків, що містять негативні елементи.

9

Дано два одновимірні масиви.

Знайти добуток чисел максимальних елементів

10

У квадратній матриці представити так, щоб кількість невід’ємних елементів зростала від рядка до рядка.

11

12

13

У квадратній матриці переставити рядки так, щоб сума елементів в кожному рядку зменшувалася із збільшенням номера рядка.

14

Дано дві квадратні матриці. Поміняти місцями їх головні діагоналі, заздалегідь упорядкувавши їх елементи за збільшенням.

15

Нормувати квадратну матрицю, розділивши елементи кожного рядка на максимальний по модулю елемент цього рядка

16

У матриці представити стовпці так, щоб сума елементів стовпця зростала від першого елементу до останнього

17

18

Перемножити дві матриці. Перерахувати кількість елементів, великих по абсолютному значенню числа а.

20

Транспонувати матрицю А.

Вивести на друк матрицю до і після транспонування.

21

Обчислити функцію за допомогою підпрограми по формулі

.

22

Задано три одновимірні масиви. Переставити елементи цих масивів за збільшенням.

23

Обчислити функцію за допомогою підпрограми по формулі

.

24

25

Обчислити число з точністю до п'ятого знаку і порівняти отриманий результат з результатом стандартної функції

26

Обчислити ряд:

.

27

Обчислити функцію за допомогою підпрограми по формулі

.

28

Дано три одновимірні масиви. Знайти суму середнього геометричного і середнього арифметичного мінімального і максимального елементів

29

Обчислити функцію за допомогою підпрограми по формулі

.

30

Обчислити: .

Таблиця 7.2 - Варіанти завдань для лабораторної роботи № 6 (функції)

Зміст завдання

Оператор - функція

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30