Вопрос задан 15.04.2020 в 10:35. Предмет Информатика. Спрашивает Савельева Софья.

В программе Паскаль ошибка в n3...... Как исправить ? И описание. Условия для программы были такие

: Программа, которая проверяет состоит ли трёхзначное число из одинаковых цифр ( например 555) Var n,n1,n2,n3:integer; begin; readln (n); n1:=n mod 10; n:=n div 10; n2:=n mod 10; n3:=n div100 if (n1=n2) and (n2=n3) then writeln ('Y') else writeln ('N'); end.
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Бутрик Настя.

Объяснение:

Что касается ошибки в строке n3, то скорее всего проблема в пропущенной ";".

Исправленная строка: n3:=n div 100;

А что касается задачи, то она не удовлетворяет условию, так как:

1. В строке "n:=n div 10;" переприсваиваете значение переменной "n". То есть, если при начале работы программы мы вводим "999", то в строке "n:=n div 10;" значение переменной "n" уже будет не "999", а "99". От этого идет и другая ошибка.

2. Учитывая предыдущий пункт, то строка "n3:=n div 100" является ошибочной. Потому что переменная "n" равна 99 и, применяя операцию "div 100", получаем "0", так как при целочисленном делении 99 на 100 мы получаем "0". Из-за этого программа будет работать некорректно.

Решение проблем:

Если хотите оставить тот же алгоритм, то следует вместо переменной "n" в строке "n:=n div 10;" использовать другую переменную.

Пример исправной задачи:

Var n,n1,n2,n3, k :integer;

begin

readln (n);

n1:=n mod 10;

k:=n div 10;

n2:=k mod 10;

n3:=n div 100;

if (n1=n2) and (n2=n3) then writeln ('Y') else writeln ('N');

end.

0 0
Отвечает Рапихов Алибек.

В строке

n3:=n div100

д.б. так: n3:=n div 10

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос