profile
Размещено 6 лет назад по предмету Информатика от gamidmagome

В случае с усложнённым заданием теперь программа не только будет ПРОСИТЬ пользователя ВВЕСТИ ЧИСЛО ДЛЯ ВОЗВЕДЕНИЯ В СТЕПЕНЬ и саму степень... Программа будет должна осуществлять дополнительную проверку на то больше результат по модулю, чем число 2147483647 или нет, если да, то предупреждать об этом пользователя («Опасность! Результат больше чем … »)Комментарий по ходу выполнения программы давать вразумительный и обязательный.


Пример работы программы такой:

На экране появляется фраза типа

«Введите целое число»

Введите его степень»

Юзер вводит два целых числа (пускай 5 и 30)

Программа сообщает:

«Внимание! Результат 5^30 выходит за пределы типа INTEGER, 2147483647!!! Тем не менее, Ваш результат равен ….»

Или если всё в порядке, то программа сообщит пользователю: «Всё ОК. Результат: …»

  1. Ответ на вопрос
    Ответ на вопрос дан Giammy
    //PascalABC.NET
    //Версия 3.3, сборка 1634 (14.02.2018)

    begin
      var (n,i):=ReadInteger2('Введите целое число и его степень->');
      If n**i>Integer.MaxValue 
      then WritelnFormat('Внимание! Результат {0}^{1} выходит за пределы типа INTEGER, 2147483647!!! Тем не менее, Ваш результат равен {2}',n,i,biginteger(n**i))
      else Println('Всё ОК. Результат:',n**i);
    end.
    1. Ответ на вопрос
      Ответ на вопрос дан Giammy
      В чем разница?
    2. Ответ на вопрос
      Ответ на вопрос дан Giammy
      Результат всеравно biginteger, нет?
    3. Ответ на вопрос
      Ответ на вопрос дан Аккаунт удален
      Разница в том, что обычно тип результата операции х для "A x B" выбирается по типу того из операндов, который имеет бОльшую разрядность. Если Вы используете операцию вида < integer > x < integer > то ее результат будет тоже integer. Вас немного спасло (но не надолго) то, что A**B - это не обычная операция, а синоним некоторой функции, которая в своей внутренней реализации для некоторого количества умножений сама использует преобразование к BigInteger.
    4. Ответ на вопрос
      Ответ на вопрос дан Аккаунт удален
      Стоило это количество превысить - и получили стандартный вызов Power(A,B), которая рассчитывается через экспоненту от логарифма, т.е. работает с плавающей точкой. Можно проверить написанное выше обычным умножением.
    5. Ответ на вопрос
      Ответ на вопрос дан Аккаунт удален
      begin
      var k:=123456789;
      Writeln(k*k);
      Writeln(BigInteger(k*k));
      Writeln(BigInteger(k)*k)
      end.
  2. Ответ на вопрос
    Ответ на вопрос дан Аккаунт удален
    PascalABC.NET 3.3.5, сборка 1650 от 01.04.2018
    Внимание! Если программа не работает, обновите версию!

    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
Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 6 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.