• Очень срочно. Вопрос по программированию по Паскалю. Задача: Даны 3 числа. Функцией проверить, есть ли такое число в которой подряд идут 2 или больше одинаковых цифр. Почему данная программа выводит в любом случае, что нет такого числа.
    Program lul;
    Var a,b,c:Integer;
    Function qq (chislo:Integer):Integer;
    Var n,n1,k:Integer;
    Begin
    n:=0;
    n1:=0;
    k:=0;
    While (chislo*10 div 10 <> 0) do begin
    n:=chislo mod 10;
    chislo:=chislo div 10;
    n1:=chislo mod 10;
    If n=n1 then
    k:=1;
    break;
    end;
    qq:=k;
    end;
    begin
    ReadLn(a,b,c);
    If qq(a)=1 then WriteLN('Да, первое число походит');
    If qq(b)=1 then WriteLn('Да, второе число подходит');
    If qq(c)=1 then WriteLN('Да, третье число подходит') else WriteLn('Никакое число не подходит');
    end.

Ответы 2

  • Ни в одном распространенном алгоритмическом языке не предполагается выполнение в условном операторе более одной инструкции языка, так что Паскаль тут не при чем, если нет ума указать, что выполнить нужно не одну инструкцию, а больше.
    • Автор:

      lilia45
    • 5 лет назад
    • 0
  • Какая дикая дичь. Вот до чего доводит знакомство с Pascal неокрепших умов.

    В принципе, ты бы увидел ошибку даже сам, если бы отступы расставлял. Дело в скобках begin-end - у тебя итерация цикла всегда завершается break, а не по условию n=n1.

    P. S. *10 div 10 - эту замечательную операцию можешь ещё тысячу раз написать в проверке числа на ноль.

    • Автор:

      zack48
    • 5 лет назад
    • 0
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

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

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

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