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


Ответы 2

  • В строке

    n3:=n div100

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

    • Автор:

      rileyuxqr
    • 6 лет назад
    • 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.

  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years