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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2011, 16:18   #1
Марийка92
Пользователь
 
Регистрация: 02.03.2011
Сообщений: 10
По умолчанию Дано множество А, напечатать четные элементы, входящие в другое множество (Паскаль)

Код:
type mn=set of 0..100;
var    A:mn;
       i,k,n:0..100;
procedure poisk (var letters: mn; var A:mn);
begin
A:=[];
write('Введите колличество');
read(k);
for i:= 1 to k do
begin
write ('Введите элемент<=100');
read(n);
A:=A+[n];
end;
 letters:=[0..100];
 for i:= 100 downto 0 do
 if (i in A) and (i mod 2=0) and letters then
 write(i, ' ');
  end;
end.
Пусть задано множество А, напечатать в порядке убывания все четные элементы этого множества, входящих в множество letters=[0..100].

что было упущенно в написание программы?


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

Последний раз редактировалось Serge_Bliznykov; 03.04.2011 в 17:20.
Марийка92 вне форума Ответить с цитированием
Старый 03.04.2011, 16:46   #2
Fissa
Пользователь
 
Регистрация: 23.05.2010
Сообщений: 19
По умолчанию

Переформатировала всё, иначе ничего не пойму.
Вот готовая прога:

Код:
uses crt;
type
    mn=set of 0..100;
var
   A, letters: mn;
   i, k, n: 0..100;

begin
     A:=[];
     write('Введите колличество: ');
     readln(k);
     for i:= 1 to k do
         begin
              write ('Введите элемент (<=100): ');
              readln(n);
              A:=A+[n];
         end;
         letters:=[0..100];
         for i:= 100 downto 0 do
             if (i in A) and (i mod 2=0) and (i in letters) then
                write(i, ' ');
     readln();
end.

Последний раз редактировалось Fissa; 03.04.2011 в 18:32.
Fissa вне форума Ответить с цитированием
Старый 03.04.2011, 16:52   #3
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Одна из ошибок кроется здесь:
Код:
if (i in A) and (i mod 2=0) and letters then
при этом
Код:
letters:=[0..100];
То есть у вас получается: Если <Логическое выражение> И <Логическое выражение> И <множество>
Ошибка: несоответствие типов
Вадим Мошев вне форума Ответить с цитированием
Старый 03.04.2011, 17:29   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Вадим Мошев, +1

а исправить очень легко:
Код:
 if (i in A) and (i mod 2=0) and (i in letters) then

кстати, при такой постановке вопроса:
Цитата:
Код:
type mn=set of 0..100;
проверка на вхождение в множество letters =[0..100] вообще бессмысленна!
У этих множеств полностью совпадает диапазоны - поэтому в A нельзя ввести число, которое не входило бы в множество letters
сделайте, хотя бы, множесто mn = set 0..220, что ли...
ну и последнее.

в коде в качестве границ множества ГОРАЗДО лучше (и нагляднее, и надежнее, и гибче) писать не 100 и 0, а High(Множество) и Low(Множество)
например:
Код:
 for i:= High(A) downto Low(A) do

Последний раз редактировалось Serge_Bliznykov; 03.04.2011 в 17:37.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.04.2011, 17:38   #5
Марийка92
Пользователь
 
Регистрация: 02.03.2011
Сообщений: 10
По умолчанию

спасибо всем, учту все в следующей программе.
Марийка92 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задано некоторое множество М и множество Т того же типа dark999 Помощь студентам 5 01.04.2011 14:17
Напечатать множество слов,которые встречаются в каждом из двух заданных предложений. masjanja55 Помощь студентам 2 08.02.2011 12:38
Получить и напечатать множество из встречающихся в последовательности гласных букв amba011 Помощь студентам 3 29.06.2010 22:29
Сформировать и напечатать множество всех четных чисел , не входящих в массив. Makcumqa Помощь студентам 1 18.03.2010 05:59