Программа:
var
a:integer;
Begin
Writeln ('Введите четырёхзначное число');
Readln(a);
If (a div 1000) = (a div 100 mod 10) or
(a div 1000)=(a mod 10) or
(a div 1000)=(a mod 100 div 10) or
(a div 100 mod 10)=(a div 1000) or
(a div 100 mod 10)=(a mod 100 div 10) or
(a div 100 mod 10)=(a mod 10) or
(a mod 100 div 10)=(a div 1000) or
(a mod 100 div 10)=(a mod 10) or
(a mod 100 div 10)=(a div 100 mod 10) or
(a mod 10)=(a div 1000) or
(a mod 10)=(a div 100 mod 10) or
(a mod 10)=(a mod 100 div 10)
Then Writeln('В числе совпадает две цифры')
Else
Writeln('Ошибка');
End.
Другие языки программирования и технологии
Вопрос по программированию на паскале Выдаёт ошибку Program1.pas(6) Операция = не применима к типам boolean и integer
var
a:integer;
Begin
Writeln ('Введите четырёхзначное число');
Readln(a);
If (a div 1000 = a div 100 mod 10) or
(a div 1000=a mod 10) or
(a div 1000=a mod 100 div 10) or
(a div 100 mod 10=a div 1000) or
(a div 100 mod 10=a mod 100 div 10) or
(a div 100 mod 10=a mod 10) or
(a mod 100 div 10=a div 1000) or
(a mod 100 div 10=a mod 10) or
(a mod 100 div 10=a div 100 mod 10) or
(a mod 10=a div 1000) or
(a mod 10=a div 100 mod 10) or
(a mod 10=a mod 100 div 10)
Then Writeln('В числе совпадает две цифры')
Else
Writeln('Ошибка');
End.
a:integer;
Begin
Writeln ('Введите четырёхзначное число');
Readln(a);
If (a div 1000 = a div 100 mod 10) or
(a div 1000=a mod 10) or
(a div 1000=a mod 100 div 10) or
(a div 100 mod 10=a div 1000) or
(a div 100 mod 10=a mod 100 div 10) or
(a div 100 mod 10=a mod 10) or
(a mod 100 div 10=a div 1000) or
(a mod 100 div 10=a mod 10) or
(a mod 100 div 10=a div 100 mod 10) or
(a mod 10=a div 1000) or
(a mod 10=a div 100 mod 10) or
(a mod 10=a mod 100 div 10)
Then Writeln('В числе совпадает две цифры')
Else
Writeln('Ошибка');
End.
Серёга Зекий
То есть нужно было убрать лишние скобки?)
Зачем столько лишних действий? Отдели сначала все цифры, потом сравнивай, или конвертируй в строку.
Серёга Зекий
Это как, извините?
Просто расставьте скобки.
Приоритет операторов в Pascal.
or имеет больший приоритет, чем =, поэтому a=b or c=d будет вычислено как (a=(b or c))=d.
Компилятор ругается на то, что выражение в скобках - булево сравнивается с целым.
Вам же надо писать (a=b) or (c=d)
ЗЫ
Этот код может даже работать правильно, но читать его невозможно.
Заведите хотя бы 4 переменные для цифр, а потом сравнивайте их
Приоритет операторов в Pascal.
or имеет больший приоритет, чем =, поэтому a=b or c=d будет вычислено как (a=(b or c))=d.
Компилятор ругается на то, что выражение в скобках - булево сравнивается с целым.
Вам же надо писать (a=b) or (c=d)
ЗЫ
Этот код может даже работать правильно, но читать его невозможно.
Заведите хотя бы 4 переменные для цифр, а потом сравнивайте их
Ужас. Делается все проще и в меньше действий. А если будет 6 ти значное число? ☺
Похожие вопросы
- помогите пожалуйста как исправить ошибку попытка присвоить переменной integer выражения типа boolean
- Есть вопрос: Паскаль ругается и выдает ошибку в программе что делать
- Помощь по информатике. 9 класс. Программирование .Язык Паскаль. Ветвление
- Подскажите! как на паскале можно сделать проверку, если вводишь символ то выдает ошибку об этом
- Информатика, программирование на Паскале
- Программирование на Паскале Помогите, пожалуйста , написать программу на паскале
- 3d max выдаёт ошибку...
- Синий экран смерти выдает ошибку 0х0000008е
- Комп при включении выдаёт ошибку . Что то за ошибка и как её исправить _посмотрите пож_ста скрин .
- выдает ошибку неверная вещественная операция при выполнении действия: s:=round(s/n);