Завдання № 24. Обчислити X^n » Pascal - основи програмування

Основи програмування на мові Pascal

 

Спонсори

Завдання № 24. Обчислити X^n

Завдання № 24. Обчислити X^n
Формулювання. Дано натуральні числа x і n (яке також може бути дорівнює 0). Ви-числити X^n.
Рішення. Для того щоб вирішити цю задачу, згадаємо визначення ступеня з натуральним показником: запис X^n означає, що число x помножено саме на себе n разів.
    Відразу з визначення видно, що тут заздалегідь відомо кількість повторень при обчислюва-лении результату, так що завдання легко вирішується через цикл for. Виходить, ми копіюємо вихідне число x в деяку змінну res (від англ. Result - «результат»), а потім просто множимо його на xn раз? Не варто поспішати з відповіддю.
    Розглянемо приклад: 34 = 3 * 3 * 3 * 3 = 81. Якщо подивитися на цей запис, то ми бачимо, що зведення в четверту ступінь як вираз містить чотири доданків, але тільки три опе-рації, так як ми з першого кроку домножаем число 3 на три трійки. Тоді реалізація ідеї з абзацу вище буде давати число в ступені на 1 більше, ніж потрібно.
    Який можна придумати вихід? Наприклад, можна скоротити цикл на одну операцію, але що тоді буде при обчисленні нульової ступеня? Як відомо, будь-яке число в нульовому ступені дає 1, а тут при введенні в якості n нуля призведе до того, що не буде здійснений вхід в цикл (так як не існує целочисленного відрізка від 1 до 0) і в підсумку на вихід так і піде результат-ное число x.
А що, якщо змінити схему множення так: 34 = 1 * 3 * 3 * 3 * 3 = 81? Так ми можемо порів-няти показник ступеня і число необхідних операцій, та й з нульовим ступенем все стає просто, так як при введенні в якості n нуля не здійснюватиметься вхід в цикл і на вихід в програмі піде число 1!
Тепер алгоритм природною мовою:
1) Введення x і n;
2) Присвоєння змінної res числа 1;
3) Запуск циклу, при якому i змінюється від 1 до n. У циклі:
   1. Надаємо змінної res значення res * x;
4) Висновок змінної res.

 

Код:


  1. program Exponentiation;
  2. var
  3. x, n, i, res: word;
  4. begin
  5. readln(x, n);
  6. res := 1;
  7. for i := 1 to n do begin
  8. res := res * x
  9. end;
  10. writeln(res)
  11. end.

0024.-Exponentiation.rar [575 b] (cкачувань: 4)

 

    До речі, варто розуміти, що оголошення змінної res при використанні типу word до статочно умовно, так як цей тип приймає значення від 0 до 65535, що на одиницю менше числа 2562, хоча вводити в програму можна числа, які передбачають зведення в більш високу ступінь. Так як в умові завдання не сказано нічого про те, в якому числовому проміжку по x і n вона повинна видавати коректну відповідь, залишимо це в такому вигляді, достатньому для перевірки додатку на працездатність.

скачать dle 10.4фильмы бесплатно Наступна сторінка » Завдання № 25. Обчислити xn за алгоритмо... Попередня сторінка » Завдання № 23. Знайти найменше спільне ...