
Вопрос задан 30.07.2023 в 21:36.
Предмет Информатика.
Спрашивает Копинець Діма.
В паскале я написал программу что бы 3 значное число разбилось на единицы, десятки и сотни, а потом
написал что бы эти 3 цифры перемножились, а он перемножает не только эти 3 цифры, но и цифры 10 и 100 которые я использовал что бы разбить число на десятки сотни и единицы, как исправить? (вот если что program qq; Var x: integer; a,b:real; begin readln(x); writeln('Разряд единиц: ', x mod 10); writeln('Разряд десятков: ', x mod 100 div 10); writeln('Разряд сотен: ', x div 100); a:=x+x+x; b:=x*x*x; writeln ('сумма = ',a); writeln ('произведение = ',b); end;)

Ответы на вопрос

Отвечает Мороз Инна.
Ты просто вывел на экран разряды, но никуда их не записал. Поэтому переменная x по прежнему хранит все число. Из за этого ты просто производил действия сложения и умножения с одним и тем же числом.
Что бы все заработало присвой каким-нибудь переменным, значения которые ты выводил, и проводи действия уже над ними.
Что бы все заработало присвой каким-нибудь переменным, значения которые ты выводил, и проводи действия уже над ними.



Отвечает Казаков Руслан.
Вот рабочая программа:
var
x,a,b,c,proiz,sum:integer;
begin
WriteLn('Введите 3-ех значное число');read(x);
a:=x mod 10;
b:= (x div 10) mod 10;
c:=x div 100;
sum:=a+b+c;
proiz:=a*b*c;
WriteLn('Произведение разрядов=', proiz);
WriteLn('Сумма разрядов=', sum);
end.
var
x,a,b,c,proiz,sum:integer;
begin
WriteLn('Введите 3-ех значное число');read(x);
a:=x mod 10;
b:= (x div 10) mod 10;
c:=x div 100;
sum:=a+b+c;
proiz:=a*b*c;
WriteLn('Произведение разрядов=', proiz);
WriteLn('Сумма разрядов=', sum);
end.



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Чтобы исправить проблему с неправильным перемножением цифр, которые использовались для разделения числа на единицы, десятки и сотни, вам следует создать отдельные переменные для каждой из этих цифр и затем перемножить их. Вот исправленный код:
pascalprogram qq; var x, units, tens, hundreds: integer; product: integer; begin readln(x); // Вычисляем цифры units := x mod 10; tens := x mod 100 div 10; hundreds := x div 100; // Выводим результаты writeln('Разряд единиц: ', units); writeln('Разряд десятков: ', tens); writeln('Разряд сотен: ', hundreds); // Вычисляем сумму и произведение product := units * tens * hundreds; writeln('Произведение = ', product); end.
Теперь в результате вы получите правильное произведение трех цифр (единиц, десятков и сотен), которые были выделены из исходного числа.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili