Зведення в ступінь у мові програмування Паскаль: поради та рекомендації

Зведення в ступінь у мові програмування Паскаль: поради та рекомендації

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


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


Нехай нам дано найпростіше завдання, де якесь число необхідно звести в цілу позитивну ступінь. Припустимо, число a зводимо в 4 ступінь. Тут виконується проста математична операція: b:=a*a*a*a.

У наступному кроці ми ускладнимо завдання і складемо універсальну програму, яка буде зводити будь-яке число в будь-який цілий позитивний ступінь. Тут є можливість скористатися будь-яким циклом, але ми розглянемо більш простий метод з використанням циклу з лічильником. На зображенні зліва ви можете ознайомитися з повним текстом нашої програми, там же є і пояснення виконуваних операцій. До речі, слід зазначити, що зводиться число a необов 'язково задавати Integer, а можна, припустимо, Real, що дозволить звести в ступінь дробове число.

Попередні приклади дозволяють нам зводити числа тільки в цілі позитивні ступені. Але зустрічаються завдання, де необхідно звести число в дробовий ступінь. При написанні такої програми нам необхідне знання властивостей логарифмів. Зокрема: ab=eb ln a. Виходячи з цього, потрібний фрагмент нашої програми буде мати вигляд: r:=exp(b*ln(a)). Але тут ми стикаємося з тим, що цей оператор не працює з нулем і від 'ємними числами. Для того, щоб наша програма виконувала зведення в ступінь 0, потрібно задати умову: If b=0 Then r:=1 Else r:=exp(b*ln(a)). Але як для негативного числа виглядає зведення в ступінь?

Паскаль знову змушує нас задуматися. Тут доводиться робити цю операцію з модулем нашого числа і брати дані з негативним результатом. Потім перевірити чітність ступеня: якщо наш ступінь був парним, тоді ми беремо від результату модуль. У такому випадку наша програма матиме вигляд: r:=(-1)*exp(b*ln(abs(a))); If Round(b/2)=b/2 Then r:=abs(r). Умова тут перевіряє, парна чи ні ступінь.

У підсумку ми підходимо до більш універсальної моделі нашої програми, яка буде працювати з будь-якими числами. Тобто тепер ми повинні об 'єднати в єдине ціле все вищевикладене. У зображенні праворуч ви можете ознайомитися з повним текстом нашої готової програми. Будь ласка, зауважте тип даних. На відміну від першої програми, тут використовується Real, тому що тут ми вже працюємо з будь-якими числами, а не тільки з цілими. Отже, зведення в ступінь дійсних чисел нами повністю розглянуто. Залишилося розглянути лише одне питання.