субота, 11 листопада 2017 р.

Тема 1. Підпрограми. Процедури без параметрів

Підпрограми
Часто, працюючи над програмою, програміст помічає, що деяка послідовність команд, зустрічається в різних частинах програми декілька разів. Можна запобігти дублюванню коду в програмі. Для цього потрібно оформити команди, які зустрічаються декілька разів як підпрограму і замінити команди, оформлені як підпрограма командою виклику підпрограми.
Важливим принципом програмування є принцип модульності. В модульній програмі окремі її частини, призначені для розвязування часткових задач, організовані в підпрограми.
Підпрограмою називається самостійний фрагмент програми, який має ім’я та оформлений певним чином.
Модульний принцип організації програм має дві великі переваги :
1.             один і той же фрагмент можна використовувати багаторазово в різних програмах, не набираючи текст наново;
2.             програми краще писати невеликими частинами.
В мові Паскаль модульність забезпечується використанням підпрограм – процедур, підпрограм – функцій і модулів.

По структурі процедура і функція аналогічні самій програмі: є заголовок, може бути присутній один із розділів опису, який передбачений в основній програмі, і тіло процедури, яке являє собою сукупність операторів, закріплених в операторні дужки begin-end, а в кінці ставиться крапка з комою.
Як видно із синтаксичних діаграм, розрізняють процедури з параметром і без параметрів (це ті, де відсутній список формальних параметрів). Виклик процедури здійснюється шляхом вказування імені процедури і списку фактичних параметрів.

Процедури без параметрів
Процедура вводиться у використання (визначається) за допомогою опису процедури в розділі процедур і функцій програми:<заголовок процедури>;<блок>;
Заголовок процедури починається із службового слова procedure, містить ім’я процедури.
Для активізації процедури (тобто для виконання фрагменту програми, оголошеного процедурою) в потрібному місці програми служить оператор процедури:
<ім'я процедури>;
Різні особливості опису процедур і способи їх використання будемо розглядати на прикладі такої задачі.
Задача: по заданих дійсних значеннях x і y обчислити u=max(x+y,x*y), v=max(0.5,u).
запишемо цю програму в такому вигляді:
program MAX2;
var x, y, u, v, a, b, s: real;
begin read (x, y);
a: = x + y; b: = x*y;
if a > b then s: = a else s: = b;
u: = s;
a: = 0.5; b: = u;
if a > b then s: = a else s: = b;
v: = s;
writeln (‘u=’, u, ‘v=’, v)
end.
Тут  два умовні оператори співпадають. Щоб не записувати цей оператор два рази, оголосимо його процедурою з ім’ям MAXPR:
program MAX3;
var x, y, u, v, a, b, s: real;
procedure MAXPR;
begin if a > b then s: = a else s: = b end;
begin read (x, y);
a: = x + y; b: = x*y;
MAXPR;
u: = s;
a: = 0.5; b: = u;
MAXPR;
v: = s;
writeln (‘u=’, u, ‘v=’, v)
end.

Приклад. Скласти програму з використанням процедур без параметрів: порахувати суму елементів матриці розміру 3´4, що містить дійсні елементи.

program PR2;
const m =3; n = 4;
var  i, j: integer;a:array[1..3,1..4] of real; s:real;

procedure Vvid;
 begin
           for i: = 1 to 3 do
             for j: = 1 to 4 do
                 read(a[i, j]);
 end;

procedure SUM;
 begin s: =0;
    for i: = 1 to 3 do      
        for j: = 1 to 4 do
           s: = s + a[i, j];
 end;

begin  
               Vvid;
      SUM;
      writeln (‘s=’, s);
end.

Підручник : ст. 201-203.
Д./з.
1. Ввести ціле число x. Обчислити u = min(x,x2), v = min(0.2,u).
2. Порахувати суму і кількість додатніх елементів кожного з трьох векторів, які складаються з n дійсних елементів.


Немає коментарів:

Дописати коментар