Напишите программу, которая получает с клавиатуры трёхзначное число и записывает в...

0 голосов
634 просмотров

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


Информатика (26 баллов) | 634 просмотров
Дано ответов: 2
0 голосов

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.

(243 баллов)
0 голосов

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.2k баллов)
0

Хотел тоже покороче написать, но как всегда опоздал.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.

0

писал между делом и машинально IF влепил. Ваш вариант конечно же предпочтительнее.

0

Если ещё не поздно редактировать, то можно и у вас поправить. Просто текущий вариант ( if a mod 10 and a div 10 mod 10 = a div 100 then... ) не работает- не даёт истину при всех одинаковых цифрах.

0

не правится :( блин тупанул и скобки нужные убрал. Там так должно было быть if a mod 10 and (a div 10 mod 10) = a div 100 then d := true else d := false;

0

ну или в идеале так d := a mod 10 and (a div 10 mod 10) = a div 100;