Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

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

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 20.02.2013, 10:16   #1
MElvira
Новичок
Джуниор
 
Регистрация: 20.02.2013
Сообщений: 4
Сообщение Множество.Верно ли, что в записи первого числа используються только цифры, содержащиеся во втором числе?

Данны два числа.Верно ли, что в записи первого числа используются только цифры, содержащиеся во втором числе? Например, 1246 и 5112648 - верно, 1246 и 54141 - неверно.
MElvira вне форума Ответить с цитированием
Старый 20.02.2013, 10:49   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,260
По умолчанию

задача очень простая.
берём второе число.
шаг 1. все его цифры (по одной) помещаем в множество (изначальное оно пустое).

шаг 2. потом перебираем по цифрам первое число, каждую цифру проверяем, если данная цифра в заполненном на шаге 1 множестве. Если есть и дошли до конца цикла - сообщение "Верно", если какой-то цифры нет в множестве - сообщение "Неверно" и выход из цикла.

всё.

что не получается?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.02.2013, 10:52   #3
MElvira
Новичок
Джуниор
 
Регистрация: 20.02.2013
Сообщений: 4
По умолчанию

Это я все понимаю, у меня не получаеться ввести само множество с клавиатуры.
MElvira вне форума Ответить с цитированием
Старый 20.02.2013, 11:11   #4
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 18,305
По умолчанию

Так ты вводи число и проверяй его цифры. Зачем вводить множество?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 20.02.2013, 11:27   #5
MElvira
Новичок
Джуниор
 
Регистрация: 20.02.2013
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
Так ты вводи число и проверяй его цифры. Зачем вводить множество?
у меня ведь тема множество поэтому мне надо делать через множество все..или я что то не понимаю?
MElvira вне форума Ответить с цитированием
Старый 20.02.2013, 11:36   #6
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 18,305
По умолчанию

У тебя будет сначала пустое множество. Потом в числе нужно смотреть цифры. Я точно не помню, но вроде как проверку отдельных цифр в числе лучше делать через строки/символы и соответственно я бы завел символьное множество. Куда просто в цикле пропихивал бы цифры из числа. Поскольку это множество, то лишние цифры все равно туда не влезут.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 20.02.2013, 11:41   #7
MElvira
Новичок
Джуниор
 
Регистрация: 20.02.2013
Сообщений: 4
По умолчанию

Может покажешь на примере??
MElvira вне форума Ответить с цитированием
Старый 20.02.2013, 11:53   #8
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 18,305
По умолчанию

В Паскале есть str
Цитата:
Str(x, S) преобразует число x в строковый формат. Здесь x – любое числовое выражение, S – строковая переменная. В процедуре есть возможность задавать формат числа x. Например, str(x: 8: 3, S), где 8 – общее число знаков в числе x, а 3 – число знаков после запятой
Преобразуем так число в строку, допустим s.
Теперь имеем множество a: set of char; и a:=[];. Теперь чтобы добавить туда символ из s:
Include(a, s[i]);
Цитата:
Процедура Include
procedure Include(var S: set of T; I: T);
Добавляет к множеству S подмножество I.
S - переменная типа-множества любого допустимого базового типа Т;
I - выражение типа Т.
естественно i в нашем примере переменная цикла, так как цифр в числе может быть много.
Ну а вторая часть должны быть понятна.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 20.02.2013 в 11:58.
Utkin вне форума Ответить с цитированием
Старый 20.02.2013, 12:37   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,260
По умолчанию

Цитата:
В Паскале есть str
число "разбирать" на отдельные числа лучше (скажем так - "честнее") с помощью операции целочисленного деления.

вот так, например, можно заполнить начальное множество:
Код:
var
  N: LongInt;
  OneDigit: byte;
  AllDigits : set of byte;
begin
  WriteLn('Введите натуральное число N:');
  Readln(N);

  if N < 0 then begin
    WriteLn('натуральное - это положительное! А Вы ввели отрицательное! Прощайте...');
    readln;
    Halt(1);
  end;

  AllDigits := []; {иницилизируем множество ПУСТЫМ множеством}

  { перебираем цифры и заносим их в наше множество }
  repeat
    OneDigit := N mod 10;
    Include(AllDigits, OneDigit);

    N := N div 10; {отбрасываем правую цифру, как отработанную}
  until N = 0;  {повторяем, пока число не станет равным нулю}

  WriteLn('Готово. А теперь нужно проверить, можно ли другое число составить...');

  ТУТ ВАШ КОД по проверке первого числа

  Readln;

end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.02.2013, 13:52   #10
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 18,305
По умолчанию

Цитата:
скажем так - "честнее"
Верно, но мой вариант наглядней и понятней
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++ Получить все четырехзначные числа, в записи которых встречаются только цифры 0,2,3,7. Anya She Помощь студентам 1 18.12.2012 20:14
регвыр, что в записи только числа и пробелы pray_driver PHP 3 01.11.2011 15:27
Множество, содержащее натуральные числа из первой сотни. Сформировать новое множество из простых чисел первого множества Aimet Паскаль, Turbo Pascal, PascalABC.NET 3 16.06.2011 19:50
Дано натуральное число. Верно ли, что в этом числе нет цифры А. А задается с клавиатуры. Женечка92 Помощь студентам 9 03.04.2010 15:06


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS