В случае с усложнённым заданием теперь программа не только будет ПРОСИТЬ пользователя ВВЕСТИ ЧИСЛО ДЛЯ ВОЗВЕДЕНИЯ В СТЕПЕНЬ и саму степень... Программа будет должна осуществлять дополнительную проверку на то больше результат по модулю, чем число 2147483647 или нет, если да, то предупреждать об этом пользователя («Опасность! Результат больше чем … »)Комментарий по ходу выполнения программы давать вразумительный и обязательный.
Пример работы программы такой:
На экране появляется фраза типа
«Введите целое число»
Введите его степень»
Юзер вводит два целых числа (пускай 5 и 30)
Программа сообщает:
«Внимание! Результат 5^30 выходит за пределы типа INTEGER, 2147483647!!! Тем не менее, Ваш результат равен ….»
Или если всё в порядке, то программа сообщит пользователю: «Всё ОК. Результат: …»
Answers & Comments
Внимание! Если программа не работает, обновите версию!
begin
var (a,b):=ReadInteger2('Введите целые основание и показатель степени:');
var bigA:=BigInteger(a);
var r:=bigA**b;
if r>integer.MaxValue then begin
Write($'Внимание! Результат {a}^{b} выходит за пределы типа INTEGER, ');
Writeln(integer.MaxValue, '!!!');
Writeln('Тем не менее, Ваш результат равен ',r)
end
else
Writeln($'Все ОК. Результат {a}^{b}={r}')
end.
Примеры
Введите целые основание и показатель степени: 12 6
Все ОК. Результат 12^6=2985984
Введите целые основание и показатель степени: 5 30
Внимание! Результат 5^30 выходит за пределы типа INTEGER, 2147483647!!!
Тем не менее, Ваш результат равен 931322574615478515625