Програмування: Функції, процедури та підпрограми
t:=xx;
xx:=yy;
yy:=t
end;
Таке означення параметрів забезпечує, що при виконанні виклику процедури або функції іменам параметрів ставляться у відповідність змінні, тобто ділянки пам'яті, уже зіставлені аргументам. При виконанні виклику зміна значення параметра-змінної насправді є зміною значення аргументу .Якщо в програмі sort31 означити параметри процедури як параметри-змінні, то за виконання виклику swap(a, b) імені xx зіставляється та ж сама ділянка пам'яті, що й змінній a, а імені yy – та ж, що b. У результаті обмін місцями значень xx і yy є обміном a і b. Що й було потрібно. Таким чином, якщо в змінні a, b, c програми було прочитано значення 3, 2, 1 відповідно, то результати виконання викликів процедури swap можна подати станами пам'яті програми. Функції та процедури в мові Паскаль мають загальну назву: підпрограми. У заголовках підпрограм можна означати як параметри-значення, так і параметри-змінні. Означення однотипних параметрів того самого виду називається секцією, і означення параметрів насправді є послідовністю секцій.Секція параметрів-значень – це список імен, за яким після двокрапки записано ім'я типу, наприклад, a1, a2 : real.Секція параметрів-змінних починається словом var, за яким записано список імен параметрів та ім'я типу,наприклад,
var xx, yy : integer.
Секції розділяються ";". За необхідності ми могли б написати, наприклад,
procedure qq(x, y : integer; var z, t : integer).
Як ми вже говорили, у викликах підпрограм вказуються аргументи – вирази, однотипні з параметрами. Але є суттєва відмінність між аргументами, що можуть відповідати параметрам-значенням і параметрам-змінним.
Аргументом для параметра-значення може бути будь-який вираз, тип якого сумісний за присвоюванням із типом параметра.
Аргументом для параметра-змінної може бути тільки ім'я змінної того ж типу, що й параметр. У літературі часто параметри підпрограм називаються формальними параметрами, а аргументи у викликах –фактичними.
Задачі
1)Як Ви гадаєте, процедури readln і writeln мають параметри-значення або параметри-змінні?
2)Як відомо, будь-які дві різні точки площини задають єдину пряму, що проходить через них. Рівняння прямої ax+by+c=0 називається нормалізованим, якщо (b=1) або (b=0 і a=1). Пряма може бути задана не єдиним рівнянням, але її нормалізоване рівняння єдине.
Написати процедуру обчислення коефіцієнтів нормалізованого рівняння прямої за координатами двох різних точок.
Написати функцію перевірки, чи лежать дві точки площини по один бік прямої, заданої коефіцієнтами нормалізованого рівняння.
З використанням цих підпрограм написати програму читання координат точки і вершин трикутника і перевірки, чи лежить точка всередині його.
3). Прочитати координати двох пар точок, якими задано два відрізки, та визначити, чи мають вони хоча б одну спільну точку.
3.Підзадачі, підпрограми та бібліотеки підпрограм