Паскаль: типи дійсних, оператори розгалуження, функції та їх виклики, процедури, під задачі
Аргументом для параметра-значення може бути будь-який вираз, тип якого сумісний за присвоюванням із типом параметра.
Аргументом для параметра-змінної може бути тільки ім'я змінної того ж типу, що й параметр.
У літературі часто параметри підпрограм називаються формальними параметрами, а аргументи у викликах – фактичними.
Задачі
3.18.* Як Ви гадаєте, процедури readln і writeln мають параметри-значення або параметри-змінні?
3.19.* Як відомо, будь-які дві різні точки площини задають єдину пряму, що проходить через них. Рівняння прямої ax+by+c=0 називається нормалізованим, якщо (b=1) або (b=0 і a=1). Пряма може бути задана не єдиним рівнянням, але її нормалізоване рівняння єдине.
Написати процедуру обчислення коефіцієнтів нормалізованого рівняння прямої за координатами двох різних точок.
Написати функцію перевірки, чи лежать дві точки площини по один бік прямої, заданої коефіцієнтами нормалізованого рівняння.
З використанням цих підпрограм написати програму читання координат точки і вершин трикутника і перевірки, чи лежить точка всередині його.
3.20. Прочитати координати двох пар точок, якими задано два відрізки, та визначити, чи мають вони хоча б одну спільну точку.
3.21. Прочитати координати точок A, B, C, D. Обчислити довжину найкоротшого шляху з точки A в точку B з урахуванням того, що відрізок CD перетинати не можна.3.22. Прочитати координати точок A, B, C, D і визначити, чи є замкнена ламана ABCDA:
а) чотирикутником; б) неопуклим чотирикутником; в) опуклим чотирикутником.
5. Підзадачі, підпрограми та бібліотеки підпрограм
Підпрограми, як очевидно з попередніх двох параграфів, використовуються для організації програми. Якщо в кількох місцях програми треба описати по суті ті самі обчислення, але з різними значеннями або змінними, то використання підпрограм може скоротити програму, зробити її більш зрозумілою й заощадити час на її створення. Якщо програма – це опис розв'язання якоїсь задача, то підпрограма, як правило, – це опис розв'язання частини цієї задачі.
У багатьох випадках частину задачі можна сформулювати так само чітко, як і самому задачу, тобто виділити її як підзадачу. Наприклад, у задачі обчислення найкоротшої з довжин відрізків, утворених точками, виділяється підзадача обчислення довжини відрізка, а в задачі про переупорядкування значень трьох змінних – підзадача обміну значень двох змінних. Таким чином,
прагматика підпрограм, тобто те, для чого вони призначені, є опис розв'язання підзадач.
Розв'язання переважної більшості задач на програмування починається з аналізу їх умови. При цьому дуже важливо правильно виділити підзадачі – це дозволить використовувати підпрограми і прискорить створення програми в цілому.
Кожна система програмування має у своєму складі цілий набір уже готових підпрограм для розв'язання різноманітних задач. Ці задачі виникають як підзадачі практично в будь–який задачі програмування і по суті є стандартними. До них відносяться, наприклад, задачі обчислення математичних функцій (sin, exp тощо) або читання значень із зовнішніх носіїв даних. Підпрограми розв'язання деяких таких задач нам уже знайомі, про інші ми ще дізнаємося.
Стандартні підпрограми в системах програмування зібрано в спеціальний набір – бібліотеку. У процесі побудови машинної програми вони додаються до програми, начебто були в ній визначені. Якщо ж програма інтепретується, вони завантажуються з бібліотеки й виконуються. Знати їх корисно і необхідно в практичному програмуванні, адже користуватися готовими деталями набагато легше, ніж створювати їх самому.