Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача( сделать множеством)
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
CormiX
Здравствуйте! Необходима помощь в решении задачки:
Дано некоторое число N, вывести на экран числа из которих оно состоит.

Думаю нужно задать множество чисел от 0 до 9, и както проверять числа из которых состоит N, проверив принадлежность числа к N копировать его и вывести на экран и так с каждым пока не дойдеш до конца...Но легче сказать чем сделать. Помогите пожалуйста.
Client
Цитата
числа из которих оно состоит
Или все-таки цифры?
Цитата
Но легче сказать чем сделать
Свои наработки?
CormiX
Ой да простите цифры.
program laboratornaja2;
uses crt;
var mnogestvo: set of 0..9; a,b,c:integer;
begin
clrscr;
writeln('Vvedite 4yslo');
readln(a);
for a:=0 to b do
begin
copy('a',1) if b in mnogestvo then
readln;
else writeln('4yslo ne podxodit);


ну это не очень...синтаксис языка не знаю нормально. Не знаю как задать чтоб копировало пока не достигнет конца цифр в числе N. Там чтото вроде repeat until ... а вот дальше не понимаю.
Client
uses crt;
var
a:set of 0..9;
b,c:longint;
i:byte;
begin
clrscr;
a:=[0..9];
readln(b);
c:=abs(b);
while c>0 do begin
i:=c mod 10;
a:=a-[i];
c:=c div 10;
end;
for i:=0 to 9 do if not (i in a) then writeln(i);
readkey;
end.
Тут я удаляю из множества, хотя можно сделать добавлением в множество
CormiX
Спасибо большое очень помогли!
volvo
Цитата
Тут я удаляю из множества, хотя можно сделать добавлением в множество
А, простите, что оно мне ничего при введении 0 не показывает? Или 0 - это не число? smile.gif

Client, понимаешь в чем дело... Программа чаще всего валится на граничных значениях. Их надо тестировать в первую очередь.
Client
косячок smile.gif (на самом деле было так задумано lol.gif )
От volvo ничего не скроешь smile.gif +1
volvo
Мне вот больше интересно, как ты этот косячок исправлять будешь smile.gif Есть варианты, хочется посмотреть, какой из них ты выберешь...
Client
Само просто сделать проверку на 0, но... что-то смайлик заствил засомневаться smile.gif
repeat
i:=c mod 10;
a:=a-[i];
c:=c div 10;
until c=0;
Исправил так smile.gif
volvo
     a := [0 .. 9] - [c mod 10];
сделать не догадался? smile.gif
Client
no1.gif
4.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.