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

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

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

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

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

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

всё.

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

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

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

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

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

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

В Паскале есть 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 в 12:58.
Utkin вне форума   Ответить с цитированием
Старый 20.02.2013, 13:37   #9
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 26,083
Репутация: 5656
По умолчанию

Цитата:
В Паскале есть 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, 14:52   #10
Utkin
Профессионал
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Адрес: DuckBurg
Сообщений: 18,305
Репутация: 3917
По умолчанию

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


04:15.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.