Предмет: Информатика, автор: dahsasagat41

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

Ответы

Автор ответа: аыыа
3

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.

Автор ответа: ingr
3

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.


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.
ingr: писал между делом и машинально IF влепил. Ваш вариант конечно же предпочтительнее.
Ziorar: Если ещё не поздно редактировать, то можно и у вас поправить. Просто текущий вариант ( if a mod 10 and a div 10 mod 10 = a div 100 then... ) не работает- не даёт истину при всех одинаковых цифрах.
ingr: не правится :( блин тупанул и скобки нужные убрал. Там так должно было быть if a mod 10 and (a div 10 mod 10) = a div 100 then d := true else d := false;
ingr: ну или в идеале так d := a mod 10 and (a div 10 mod 10) = a div 100;
Похожие вопросы
Предмет: Физика, автор: gg664110
Предмет: Биология, автор: karinadrobik6