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


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

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

Нехай нам дана найпростіше завдання, де якесь число необхідно звести в цілу позитивну ступінь. Припустимо, число 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, т.к. тут ми вже працюємо з будь-якими числами, а не тільки з цілими. Отже, зведення в ступінь дійсних чисел нами повністю розглянуто. Залишилося розглянути лише одне питання.

Переходячи до нього, слід зазначити, що при вирішенні даного завдання необхідні досить глибокі знання в програмуванні. Це зведення в ступінь комплексного числа. Тут можна пробувати використовувати різні варіанти рішення, припустимо, формулу Муавра, але там є труднощі з перекладом комплексного числа в тригонометричну форму. Є рішення даної задачі в завданні процедури перемноження двох комплексних чисел і простого циклу з лічильником, тобто повторення цієї процедури рівне ступеня число разів. На наданому прикладі ви можете більш детально розібратися з текстом цієї програми.

Поділися в соц мережах:

Увага, тільки СЬОГОДНІ!