Предмет: Информатика, автор: niktoooooooooo

Где ошибка в программе?
Моя программа Паскаль нормально и правильно посчитала натуральное число, отрицательное по какой-то причине игнорирует. Объяснения от авторов не нашла.

Приложения:

Ответы

Автор ответа: restIess
1

Это всё можно решить с помощью функции abs(), просто при взятии остатка от деления мы будем получать отрицательные числа, проще показать на примере.

Пусть x = - 523

-523 mod 10 = -3

-523 mod 100 div 10 = -2

-523 div 100 = -5

То есть, мы получим сумму с другим знаком, чего нам не нужно. Для решения проблемы можно преобразовать сам x к модулю x. abs(x)

Либо же преобразовать результат с помощью этой же функции.


niktoooooooooo: То есть программа в учебнике правильная?
restIess: Для натуральных чисел она будет работать верно
restIess: А вот для отрицательных нужно подправить чутка
niktoooooooooo: Подставил
niktoooooooooo: Подставив знак модуля?*
restIess: Да, модуль у нас поменяет знак числа на "+" и всё будет прекрасно работать
niktoooooooooo: Спасибо большое!!
Похожие вопросы
Предмет: Другие предметы, автор: кристинатомилова