
В программе Паскаль ошибка в 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.

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

Объяснение:
Что касается ошибки в строке 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.



В строке
n3:=n div100
д.б. так: n3:=n div 10


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







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