profile
Опубликовано 6 лет назад по предмету Информатика от dahsasagat41

Напишите программу, которая получает с клавиатуры трёхзначное число и записывает в логическую переменную значение «да» (True), если это все его цифры одинаковы. После этого на экран выводится ответ на вопрос: «Верно ли, что все цифры введённого числа одинаковы?». Паскаль!) С логической переменной

  1. Ответ
    Ответ дан аыыа

    program znanija;

    var

    answer: boolean;

    a,b,c,d: integer;

    begin

    readln(a);

    b := a mod 10;

    c := a div 100;

    d := a div 10 mod 10;

    if (b=c) and (c=d) then

    answer := true;

    if answer = true then

    writeln ('Да, верно')

    else

    writeln ('Нет, не верно');

    end.

  2. Ответ
    Ответ дан ingr

    var

       a : integer;

       d : boolean;

       

    begin

       write('Введите трехзначное число -- ');

       readln(a);

       write('Верно ли, что все цифры введённого числа одинаковы? -- ');

       if a mod 10 and a div 10 mod 10 = a div 100 then d := true else d := false;

       if d then writeln('ДА') else writeln('НЕТ');

    end.

    1. Ответ
      Ответ дан Ziorar
      Хотел тоже покороче написать, но как всегда опоздал.
      P.S. логическое выражение как то так выглядит:

      var
      a: integer;
      b: boolean;

      begin
      Write('Введите трёхзначное число: ');
      read(a);
      b := (a div 100 = a div 10 mod 10) and (a div 100 = a mod 10);
      Writeln('Вопрос: Верно ли, что все цифры введённого числа одинаковы?');
      Write('Ответ: ');
      if b then Write('Верно') else Write('Неверно');
      end.
    2. Ответ
      Ответ дан ingr
      писал между делом и машинально IF влепил. Ваш вариант конечно же предпочтительнее.
    3. Ответ
      Ответ дан Ziorar
      Если ещё не поздно редактировать, то можно и у вас поправить. Просто текущий вариант ( if a mod 10 and a div 10 mod 10 = a div 100 then... ) не работает- не даёт истину при всех одинаковых цифрах.
    4. Ответ
      Ответ дан ingr
      не правится :( блин тупанул и скобки нужные убрал. Там так должно было быть if a mod 10 and (a div 10 mod 10) = a div 100 then d := true else d := false;
    5. Ответ
      Ответ дан ingr
      ну или в идеале так d := a mod 10 and (a div 10 mod 10) = a div 100;
Самые новые вопросы