• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Множества, Паскаль

gabriela

Новые
Регистрация
10 Май 2012
Сообщения
20
Реакции
0
Баллы
0
Множества, Паскаль

дана последовательность из n натуральных чисел.написать программу,которая выводит в возрастающем порядке все цифры,которые не входят ни в одно число,кратные заданному числу k
 
А чему могут быть кратны цифры? Только 2, 3 или 4. То есть k - один из этих делителей? Или может быть, не "кратные", а "кратное"?
 
описалась)))кратное
 
описалась)))кратное
Ну тогда-то что...
Код:
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.
 
?почему она какие-то странные числа выводит?
 

Вложения

  • Снимок.webp
    Снимок.webp
    16.1 KB · Просмотры: 273
?почему она какие-то странные числа выводит?
Ну... видимо я не так понял задание. Вообще-то четче формулировать надо! Читаем:
дана последовательность из n натуральных чисел.написать программу,которая выводит в возрастающем порядке все цифры,которые не входят ни в одно число, кратное заданному числу k
В Вашем примере к числам, кратным k=3, относятся 12 и 9, вот 1, 2 и 9 и не вошли в перечень. Или надо было понимать так, что цифры надо вывести не вообще любые, а только те, что входят во вводимые числа? Тогда так и надо писать! А у Вас, замечу, сказано ВСЕ цифры.
 
это такое условие в задачнике......как тогда исправить чтобы выводились цифры только те, что входят во вводимые числа?
 
это такое условие в задачнике......как тогда исправить чтобы выводились цифры только те, что входят во вводимые числа?
А вот так:
Код:
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.
 
sf_in-это исходное множество,sf_out-множество цифр,которые есть в исходных числах?и еще каким образом происходит сортировка по возрастанию?
 
sf_in-это исходное множество,sf_out-множество цифр,которые есть в исходных числах?
Угу. Точнее так. В процедуру запускается некое исходное множество цифр и анализируемое число. Дальше это множество дополняется теми цифрами, которое оно не содержит, но которые имеются в числе. Выдается такое вот "расширенное" множество.
и еще каким образом происходит сортировка по возрастанию?
Да просто перебираются 10 цифр от 0 до 9, и если цифра есть в числах, не делящихся на k, и ее нет в числах, делящихся на k, то она выводится на экран.
 
Назад
Сверху