Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 19.05.2012, 20:59   #1 (permalink)
gabriela
Member
 
Регистрация: 10.05.2012
Сообщений: 20
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Множества, Паскаль

дана последовательность из n натуральных чисел.написать программу,которая выводит в возрастающем порядке все цифры,которые не входят ни в одно число,кратные заданному числу k
gabriela вне форума   Ответить с цитированием

Старый 19.05.2012, 20:59
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

На форуме так же найдены темы которые имеют сходства с вашей

Задача по Паскалю на множества
Множества С++
Множества С++
Множества,Паскаль
Pascal,множества
Множества

Старый 19.05.2012, 21:08   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

А чему могут быть кратны цифры? Только 2, 3 или 4. То есть k - один из этих делителей? Или может быть, не "кратные", а "кратное"?
Vladimir_S вне форума   Ответить с цитированием
Старый 20.05.2012, 11:05   #3 (permalink)
gabriela
Member
 
Регистрация: 10.05.2012
Сообщений: 20
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

описалась)))кратное
gabriela вне форума   Ответить с цитированием
Старый 20.05.2012, 16:49   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от gabriela Посмотреть сообщение
описалась)))кратное
Ну тогда-то что...
Код:
Var
 n,i:Byte;
 x,k:LongInt;
 S:Set of Byte;

Procedure Figur(V:LongInt);
var
 fig:Byte;
begin
 repeat
  fig:=V mod 10;
  If Not(fig in S) then S:=S+[fig];
  V:=V div 10;
 until V=0;
end;

Begin
 Write('n = ');
 Readln(n);
 Write('k = ');
 Readln(k);
 Writeln('Enter ',n,' numbers:');
 For i:=1 to n do
  begin
   Write(i:3,'   ');
   Readln(x);
   If (x mod k)=0 then Figur(x);
  end;
 For i:=0 to 9 do
  If Not(i in S) then write(i:2);
 Readln
End.
Vladimir_S вне форума   Ответить с цитированием
Старый 28.05.2012, 19:45   #5 (permalink)
gabriela
Member
 
Регистрация: 10.05.2012
Сообщений: 20
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

?почему она какие-то странные числа выводит?
Миниатюры
nieiie.png  
gabriela вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 28.05.2012, 20:28   #6 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от gabriela Посмотреть сообщение
?почему она какие-то странные числа выводит?
Ну... видимо я не так понял задание. Вообще-то четче формулировать надо! Читаем:
Цитата:
Сообщение от gabriela Посмотреть сообщение
дана последовательность из n натуральных чисел.написать программу,которая выводит в возрастающем порядке все цифры,которые не входят ни в одно число, кратное заданному числу k
В Вашем примере к числам, кратным k=3, относятся 12 и 9, вот 1, 2 и 9 и не вошли в перечень. Или надо было понимать так, что цифры надо вывести не вообще любые, а только те, что входят во вводимые числа? Тогда так и надо писать! А у Вас, замечу, сказано ВСЕ цифры.
Vladimir_S вне форума   Ответить с цитированием
Старый 28.05.2012, 20:40   #7 (permalink)
gabriela
Member
 
Регистрация: 10.05.2012
Сообщений: 20
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

это такое условие в задачнике......как тогда исправить чтобы выводились цифры только те, что входят во вводимые числа?
gabriela вне форума   Ответить с цитированием
Старый 28.05.2012, 21:03   #8 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от gabriela Посмотреть сообщение
это такое условие в задачнике......как тогда исправить чтобы выводились цифры только те, что входят во вводимые числа?
А вот так:
Код:
Type
 St=Set of Byte;
Var
 n,i:Byte;
 x,k:LongInt;
 S,S1:St;

Procedure Figur(V:LongInt; Sf_in:St; var Sf_out:St);
var
 fig:Byte;
 Sf:St;
begin
 Sf:=Sf_in;
 repeat
  fig:=V mod 10;
  If Not(fig in Sf) then Sf:=Sf+[fig];
  V:=V div 10;
 until V=0;
 Sf_out:=Sf;
end;

Begin
 S:=[];
 S1:=[];
 Write('n = ');
 Readln(n);
 Write('k = ');
 Readln(k);
 Writeln('Enter ',n,' numbers:');
 For i:=1 to n do
  begin
   Write(i:3,'   ');
   Readln(x);
   If (x mod k)=0 then Figur(x,S,S) else Figur(x,S1,S1);
  end;
 For i:=0 to 9 do
  If Not(i in S) and (i in S1) then write(i:2);
 Readln
End.
Vladimir_S вне форума   Ответить с цитированием
Старый 28.05.2012, 21:38   #9 (permalink)
gabriela
Member
 
Регистрация: 10.05.2012
Сообщений: 20
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

sf_in-это исходное множество,sf_out-множество цифр,которые есть в исходных числах?и еще каким образом происходит сортировка по возрастанию?
gabriela вне форума   Ответить с цитированием
Старый 29.05.2012, 09:47   #10 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от gabriela Посмотреть сообщение
sf_in-это исходное множество,sf_out-множество цифр,которые есть в исходных числах?
Угу. Точнее так. В процедуру запускается некое исходное множество цифр и анализируемое число. Дальше это множество дополняется теми цифрами, которое оно не содержит, но которые имеются в числе. Выдается такое вот "расширенное" множество.
Цитата:
Сообщение от gabriela Посмотреть сообщение
и еще каким образом происходит сортировка по возрастанию?
Да просто перебираются 10 цифр от 0 до 9, и если цифра есть в числах, не делящихся на k, и ее нет в числах, делящихся на k, то она выводится на экран.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


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

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




Часовой пояс GMT +4, время: 05:53.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.