18.09.2008, 10:00
общий
это ответ
Здравствуйте, Николаев Денис Игоревич!
В приложении простейший (без наворотов) код, решающий Вашу задачу.
Можно сделать поинтереснее, эффективнее - через анализ цифр.
Можно перевести с помощью STR в строку и анализировать символы строки.
--
ЗЫ: здесь анализируются именно 4 цифры, даже если введено двухзначное число. Если не так нужно, то есть, нужно анализировать только введенные цифры, то напишите - переделать несложно
Приложение:
uses CRT;
const
n : Word = 1123;
var
m : Array[1..4] of Byte; {Сюда положим цифры}
i : Byte; {количество значащих}
ch: Char;
BEGIN
WriteLn(n);
repeat
for i:=1 to 4 do begin
m[i] := n mod 10;
n := n div 10;
end;
WriteLn('Верно ли, что все цифры различны?: ',
(m[1] <> m[2]) and (m[1] <> m[3]) and (m[1] <> m[4])
and (m[2] <> m[3]) and (m[2] <> m[4])
and (m[3] <> m[4]));
Write('Повторить? (Y/N)');
ch := ReadKey;
if not ((ch = 'Y') or (ch = 'y')) then Break; {Немедленный выход из цикла}
WriteLn;
Write('Введите целое число не больше 9999: ');
ReadLn(n);
if n > 9999 then begin
WriteLn('Неправильный ввод. Работа программы завершится после'+
'нажатия любой клавиши');
ReadKey;
Halt(1); {Завершение работы программы}
end;
until FALSE;
{repeat ... until FALSE; - бесконечный цикл.
Выход по Break или Halt}
END.