Навчальний курс. 12. Функції та процедури в Delphi. Математичні обчислення. Випадкові числа, Різне, Програмування, статті

Сьогодні ми поговоримо про процедури і функції в Delphi. Що таке процедура? Це маленька програма, що виконує операції із зазначеними даними. Розрізняють власне процедури і функції. Їх основна відмінність – процедура просто робить якісь операції, а функція обов’язково видає якийсь результат в результаті своєї роботи. Існує величезна кількість стандартних процедур і функцій. Підпрограми (так називають процедури і функції) можна писати і самостійно, але про це мова піде пізніше. Зараз нам потрібно навчитися працювати з готовими функціями.


Загальні відомості про підпрограмах


Фактично, підпрограма – це така ж повноцінна програма, просто працює вона не окремо, не сама по собі, а включена в іншу програму.
У підпрограми завжди є ім’я. Ім’я будується за тими ж правилами, що і ідентіфмкатор. Як правило, імена даються цілком логічні. Наприклад, якщо функція знаходить максимальне з декількох чисел, то її логічно назвати Max.
Підпрограми можуть мати вхідні параметри. Вхідні параметри – Це дані, які повідомляються підпрограмі до початку її роботи, а в процесі виконання ці дані можуть використовуватися. Тим не менш, підпрограми можуть і не мати вхідних параметрів. Вхідні параметри також називають аргументами. Наприклад, функції, яка дізнається поточний час, ніякі додаткові параметри не потрібні, а от якщо функція вважає факторіал, то обов’язково має бути число, для якого він вважається.
Як було сказано вище, функція видає якесь значення в результаті своєї роботи. Процедура в загальному випадку значення не видає.


Виклик підпрограм


Викликаються підпрограми по імені. Якщо підпрограмі потрібно передати будь-які параметри, то вони вказуються в дужках після імені підпрограми через кому. Якщо вхідні параметри відсутні, достатньо просто написати ім’я підпрограми, або залишити дужки порожніми. У випадку, якщо робота відбувається з функцією, результат можна “зберегти” в якійсь змінній, просто “присвоївши” цієї змінної функцію.


Зверніть увагу: робота з функціями відбувається як із звичайними змінними, просто їх значення обчислюються “на льоту”.


Функції математичних обчислень


Ці функції працюють з числовими даними. Як правило, вхідним параметром є якесь число, а вихідним – результат обчислення. Практично скрізь аргумент є або цілим числом (Integer), Або речовим (Real). Значення, що повертається – теж число. Розглянемо деякі з цих функцій:


Abs(x) – Модуль (абсолютне значення) зазначеного числа x. Приклад: Abs(-5) = 5.


Sin(x) – Синус числа x. Тут x – Кут у радіанах (не в градусах!). Приклад: Sin(Pi/2) = 1.


Cos(x) – Косинус числа x. Аналогічно, x – Радіани. Приклад: Cos(Pi) = -1.


Exp(x) – Експонента, ex (e в ступені x).


Ln(x) – Натуральний логарифм числа x. Приклад: Ln(Exp(2)) = 2.


Sqr(x) – Квадрат числа x (x2). Приклад: Sqr(5) = 25.


Sqrt(x) – Квадратний корінь числа x. Приклад: Sqrt(64) = 8.


Int(x) – Ціла частина числа x. Приклад: Int(1.234) = 1.


Frac(x) – Дробова частина числа x. Приклад: Frac(1.234) = 0.234.


Round(x) – Округлення аргументу до найближчого цілого числа. Приклад: Round(1.234) = 1.


Trunc(x) – Ціла частина дійсного числа x. Приклад: Trunc(1.234) = 1.


Pred(x) – Попереднє значення x (Наприклад, для x = 2 це 1).


Succ(x) – Таке значення x (Для x = 2 це 3).


Odd(x) – Перевірка аргументу на непарність. Функція повертає значення True, Якщо аргумент є непарним числом і False – Якщо парних. Приклад: Odd(5) = True.


Передбачаю запитання: в чому відмінність Int() від Trunc()? А відмінність у тому, що Int() повертає число речового типу, а Trunc()цілочисельного.


Це лише частина всіх доступних функцій. Насправді їх набагато більше. Але крім функцій є ще процедури.


Процедури роботи з числами


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


Inc(x) – Збільшення аргументу на одиницю. Фактично, це те ж саме, що x:=x+1. Тим не менш, рекомендується використовувати саме цю функцію, так як працює вона швидше.
Примітка: під поняттям “швидше” мається на увазі, звичайно, швидкість “комп’ютерна”. Комп’ютер виконує мільйони операцій в секунду і для людини такі речі непомітні.


Inc(x,n) – Збільшення аргументу на число n. Еквівалентно записи x:=x+n.


Насправді, це не дві різні процедури – просто параметр n є необов’язковим. Так, бувають необов’язкові параметри, які можна вказати, а можна і не вказувати. Якщо вони відсутні, то просто береться якесь значення за замовчуванням. В даному випадку n за замовчуванням має значення 1.


Dec(x,n) – Зменшення аргументу на n одиниць. Точно також, як і в Inc, Параметр n є необов’язковим. Еквівалентно записи x:=x-n.


У документації необов’язкові параметри зазвичай укладають в квадратні дужки, тобто зазвичай пишуть Inc(x , [n]). Зверніть увагу: це лише умовне позначення, яке створено з метою впізнавання, що параметр необов’язковий. У програмному коді ніяких дужок немає і бути не може.

Не вистачає стандартних математичних функцій?


Існує додатковий модуль з ім’ям Math, В якому міститься велика кількість математичних функцій. Наприклад, якщо потрібно порахувати гіперболічний арксеканс числа, то мучитися і описувати спосіб його обчислення вручну не доведеться – є готова функція ArcSecH().
Щоб підключити модуль Math, Відкрийте вихідний код модуля. Для цього, коли відкрита форма, слід натиснути F12, Або вибрати пункт меню View ” Toggle Form/Unit. Далі потрібно переміститися в саме початку модуля в розділ uses. В цьому розділі через кому описуються імена підключених модулів. Як можна помітити, навіть при наявності порожній форми кілька модулів вже підключені. У цей список і варто додати Math:


Рядок з помилкою виділилася, а внизу з’явився її номер (28) І опис – Undeclared identifier (Неописаний ідентифікатор).


Висновок


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

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*