IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Задача( сделать множеством), Дано число N вывести числа...
CormiX
сообщение 9.03.2010 15:42
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 42
Пол: Мужской

Репутация: -  0  +


Здравствуйте! Необходима помощь в решении задачки:
Дано некоторое число N, вывести на экран числа из которих оно состоит.

Думаю нужно задать множество чисел от 0 до 9, и както проверять числа из которых состоит N, проверив принадлежность числа к N копировать его и вывести на экран и так с каждым пока не дойдеш до конца...Но легче сказать чем сделать. Помогите пожалуйста.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Client
сообщение 9.03.2010 17:06
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


Цитата
числа из которих оно состоит
Или все-таки цифры?
Цитата
Но легче сказать чем сделать
Свои наработки?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
CormiX
сообщение 9.03.2010 17:33
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 42
Пол: Мужской

Репутация: -  0  +


Ой да простите цифры.
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 ... а вот дальше не понимаю.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Client
сообщение 9.03.2010 17:48
Сообщение #4


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


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.
Тут я удаляю из множества, хотя можно сделать добавлением в множество

Сообщение отредактировано: Client - 9.03.2010 17:49
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
CormiX
сообщение 9.03.2010 18:27
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 42
Пол: Мужской

Репутация: -  0  +


Спасибо большое очень помогли!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 10.03.2010 1:33
Сообщение #6


Гость






Цитата
Тут я удаляю из множества, хотя можно сделать добавлением в множество
А, простите, что оно мне ничего при введении 0 не показывает? Или 0 - это не число? smile.gif

Client, понимаешь в чем дело... Программа чаще всего валится на граничных значениях. Их надо тестировать в первую очередь.
 К началу страницы 
+ Ответить 
Client
сообщение 10.03.2010 13:50
Сообщение #7


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


косячок smile.gif (на самом деле было так задумано lol.gif )
От volvo ничего не скроешь smile.gif +1
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 10.03.2010 13:57
Сообщение #8


Гость






Мне вот больше интересно, как ты этот косячок исправлять будешь smile.gif Есть варианты, хочется посмотреть, какой из них ты выберешь...
 К началу страницы 
+ Ответить 
Client
сообщение 10.03.2010 14:15
Сообщение #9


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


Само просто сделать проверку на 0, но... что-то смайлик заствил засомневаться smile.gif
repeat
i:=c mod 10;
a:=a-[i];
c:=c div 10;
until c=0;
Исправил так smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 10.03.2010 14:19
Сообщение #10


Гость






     a := [0 .. 9] - [c mod 10];
сделать не догадался? smile.gif
 К началу страницы 
+ Ответить 
Client
сообщение 10.03.2010 14:30
Сообщение #11


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


no1.gif
4.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 27.04.2024 21:10
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"