Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.11.2011, 19:31   #1
Viwwna
Пользователь
 
Аватар для Viwwna
 
Регистрация: 18.11.2011
Сообщений: 33
Восклицание Напечатать все натуральные числа. МНОЖЕСТВА )))

Напечатать все натуральные числа от 10 до 32767, в десятич-ной записи которых нет одинаковых цифр.
Указание: решение задачи простое, если вы будете использо-вать множества. Необходимо для каждого числа создавать множество, состоящее из цифр числа. При этом проверять: если очередная цифра числа есть уже во множестве, то такое число не надо выводить на экран.


Предложите пожалуйста варианты решения.... ((( СПАСИБО ЗАРАНЕЕ
Тех, кто презирает программистов, программисты презирают сильнее, чем те, кто презирает программистов, презирающих программистов, которые презирают тех, кто их презирает.
Viwwna вне форума Ответить с цитированием
Старый 18.11.2011, 19:44   #2
IT-man
АльTRUEи$т
Форумчанин
 
Аватар для IT-man
 
Регистрация: 19.03.2009
Сообщений: 784
По умолчанию

Код:
var i,k:integer;
ch:set of byte;
f:boolean;
begin
for i:=10 to 32767 do
begin
f:=true;ch:=[];k:=i;
while (f) and (k>0) do
if  not((k mod 10) in ch) then begin ch:=ch+[k mod 10];k:=k div 10;end
else f:=false;
if f then write(i,' ');
end;
readln;
end.
Цитата:
«Никто не войдет в Рай, имея хотя бы крупицу гордыни в своем сердце». «Аллах Красив и любит красоту. Гордыня означает отказ от истины и высокомерие»

Последний раз редактировалось IT-man; 18.11.2011 в 21:07.
IT-man вне форума Ответить с цитированием
Старый 18.11.2011, 20:32   #3
Viwwna
Пользователь
 
Аватар для Viwwna
 
Регистрация: 18.11.2011
Сообщений: 33
По умолчанию

Код:
uses crt;
var i,j,k,c,p:integer;
    m:set of byte;
begin
clrscr;
writeln('Числа, в которых нет повторяющихся цифр:');
p:=0;
for i:=10 to 32767 do
 begin
  j:=i;
  m:=[];
  k:=0;
  while j>0 do
   begin
    c:=j mod 10;
    if not(c in m) then include(m,c)
    else k:=k+1;
    j:=j div 10;
   end;
  if k=0 then
   begin
    p:=p+1;
    write(i:8);
    if p mod 200=0 then readkey
   end
 end;
readln
end.

ЭТО СИЛЬНО НАКРУЧЕНО, да? Ваш вариант более лучше? (я имею ввиду стиль написания)


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.
Тех, кто презирает программистов, программисты презирают сильнее, чем те, кто презирает программистов, презирающих программистов, которые презирают тех, кто их презирает.

Последний раз редактировалось Serge_Bliznykov; 19.11.2011 в 11:00.
Viwwna вне форума Ответить с цитированием
Старый 19.11.2011, 10:52   #4
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Накручено, да ).
Совершенно неясно, зачем ты переделал/ла проверку с помощью логической переменной в целую. Ну, это еще ладно, в конце концов тут логических выражений нет. Но зачем делать k:=k+1 вместо простого k:=1 ??

И если уж речь зашла о стиле, то форматировать код тоже не помешало бы. К ITman это, впрочем, тоже относится..

И ставить теги - что за неуважение к собеседникам, ведь сделать два клика всего!
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 19.11.2011, 11:03   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от TinMan
И ставить теги - что за неуважение к собеседникам, ведь сделать два клика всего!
Золотые слова!
Так мало того, что это элементарное неуважение к тем, кого ты просишь о помощи, мало того, что некоторые сочетания парсер форума распознает как смайлики, например, мало того, что тот же парсер в длинные строчки кода вставляет пробелы (прямо посередине имени может попасть),
так это ещё и НАРУШЕНИЕ ПРАВИЛ ФОРУМА!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.11.2011, 15:25   #6
IT-man
АльTRUEи$т
Форумчанин
 
Аватар для IT-man
 
Регистрация: 19.03.2009
Сообщений: 784
По умолчанию

Цитата:
ITman это, впрочем, тоже относится..
It-manу пофиг на форматирование! не ему в этом коде разбираться!
Цитата:
«Никто не войдет в Рай, имея хотя бы крупицу гордыни в своем сердце». «Аллах Красив и любит красоту. Гордыня означает отказ от истины и высокомерие»
IT-man вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Напечатать все кратные тринадцати натуральные числа by_sergo Помощь студентам 1 04.06.2011 07:42
Получить все меньшие натуральные числа, квадрат суммы цифр которых равен m (C) VIKA1829 Помощь студентам 0 05.04.2011 19:59
найти все натуральные числа,не превосходящие заданного n fredperry1661 Помощь студентам 1 02.02.2010 17:10
вводим два числа, получить все меньшие n натуральные числа, квадрат суммы цифр которых равен m Sparky Помощь студентам 2 22.11.2009 21:59
Напечатать все числа Пифагора меньше N Санячос Помощь студентам 5 18.01.2008 18:21