Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача на множества
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
dog
Задача.

С клавиатуры вводится число. Проверить, участвуют ли в записи числа все цифры. При решении использовать множества.

Есть вариант

PROGRAM PRP4;

VAR

digits: SET OF BYTE;
number:BYTE;

BEGIN
digits:=[0..9];
WRITELN('Введте число');
READLN(number);
IF number IN digits THEN
WRITELN('В записи участвуют все цифры')
ELSE
WRITELN('В записи не участвуют все цифры');
END.



Подскажите как правильно?
Lapp
Цитата(dog @ 18.10.2010 4:43) *
Подскажите как правильно?


примерно так:
const
digits: set of byte = [0..9];

var
number: LongInt;
d: byte;

begin
{ input number }
number:=Abs(number); { just in case }
repeat
d:= number mod 10;
number:= number div 10;
digits:= digits - [d]
until number=0;
if digits=[] then WriteLn('All the digits are in use') else WriteLn('Some digits not used');
ReadLn
end.

Я не проверял.

dog, а чего ты не отвечаешь, когда тебе пишут? грустно как-то слышать молчание..
TarasBer
Lapp, а может проще вводить не число, а строку?
Lapp
Цитата(TarasBer @ 18.10.2010 10:17) *
Lapp, а может проще вводить не число, а строку?
Насчет проще не знаю (чего тут сложного то?? деление что ли?), но лучше безусловно, поскольку числа имеют ограниченный диапазон. Но тогда нужна проверка на то, что строка представляет число (я не говорю, что она сложна). Я просто сделал, что просили..
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.