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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2012, 21:03   #1
mimit
Пользователь
 
Регистрация: 18.10.2012
Сообщений: 49
По умолчанию Множества

С клавиатуры считать элементы двух множеств. Первое состоит из трех чисел, лежащих на промежутке от 0 до 10, второе - из пяти чисел лежащих на промежутке от 2 до 15. Сформировать новое множество, состоящее из общих элементов двух множеств, кратных трем. Вывести полученное множество на экран.
Код:
var m1: set of 0..10;
    m2: set of 2..15;
    m3: set of 0..15;
    i,x,j,y:integer;
begin
    m1:=[];
    m2:=[];
    i:=0;
    writeln('vvedite m1');
    repeat
    readln(x);
    if (x>=0) and (x<=10)
    then
    begin
    m1:=m1+[x];
    inc(i);
    end
    else
    writeln('ne vepnoe 4islo');
    until (i=3);
    j:=0;
    writeln('vvedite m2');
    repeat
    readln(y);
    if (y>=2) and (y<=15)
    then
    begin
    m2:=m2+[y];
    inc(j);
    end
    else
    writeln('ne vepnoe 4islo');
    until (j=5);
    m3:=m1*m2;
    write('[');
    for i:=0 to 15 do
    if i in m3 then write(i,' '); write(']');  end
    readln;
end.
нужно добавить условие кратны 3, не могу сделать.
mimit вне форума Ответить с цитированием
Старый 05.12.2012, 21:14   #2
whatever
a.k.a. Skull
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 963
По умолчанию

Код:
var m1: set of 0..10;
    m2: set of 2..15;
    m3: set of 0..15;
    i,x,j,y:integer;
begin
    m1:=[];
    m2:=[];
    i:=0;
    writeln('vvedite m1');
    repeat
    readln(x);
    if (x>=0) and (x<=10)
    then
    begin
    m1:=m1+[x];
    inc(i);
    end
    else
    writeln('ne vepnoe 4islo');
    until (i=3);
    j:=0;
    writeln('vvedite m2');
    repeat
    readln(y);
    if (y>=2) and (y<=15)
    then
    begin
    m2:=m2+[y];
    inc(j);
    end
    else
    writeln('ne vepnoe 4islo');
    until (j=5);
//    m3:=m1*m2;
    m3:=[];
    write('[');
    for i:=0 to 15 do
    if (i in m2)and(i in m1)and((i mod 3)=0) then
    begin
      m3:=m3+i;
      write(i,' ');
    end
    write(']');
    readln;
end.
Все тривиальное просто

Последний раз редактировалось whatever; 05.12.2012 в 21:18.
whatever вне форума Ответить с цитированием
Старый 05.12.2012, 21:26   #3
mimit
Пользователь
 
Регистрация: 18.10.2012
Сообщений: 49
По умолчанию

Цитата:
Сообщение от whatever Посмотреть сообщение
Код:
var m1: set of 0..10;
    m2: set of 2..15;
    m3: set of 0..15;
    i,x,j,y:integer;
begin
    m1:=[];
    m2:=[];
    i:=0;
    writeln('vvedite m1');
    repeat
    readln(x);
    if (x>=0) and (x<=10)
    then
    begin
    m1:=m1+[x];
    inc(i);
    end
    else
    writeln('ne vepnoe 4islo');
    until (i=3);
    j:=0;
    writeln('vvedite m2');
    repeat
    readln(y);
    if (y>=2) and (y<=15)
    then
    begin
    m2:=m2+[y];
    inc(j);
    end
    else
    writeln('ne vepnoe 4islo');
    until (j=5);
//    m3:=m1*m2;
    m3:=[];
    write('[');
    for i:=0 to 15 do
    if (i in m2)and(i in m1)and((i mod 3)=0) then
    begin
      m3:=m3+i;
      write(i,' ');
    end
    write(']');
    readln;
end.
Выдает ошибку в строчке m3:=m3+i;
mimit вне форума Ответить с цитированием
Старый 05.12.2012, 21:37   #4
whatever
a.k.a. Skull
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 963
По умолчанию

Цитата:
Сообщение от mimit Посмотреть сообщение
Выдает ошибку в строчке m3:=m3+i;
Ну это я опечатался. Домашнее задание тебе будет. Еще я ";" в одном месте пропустил. Поправь и будет работать.

Sciv, все проще . Но, сдается мне, начало автор не сам писал.
Все тривиальное просто
whatever вне форума Ответить с цитированием
Старый 05.12.2012, 21:38   #5
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Попробуйте include(m3,i); использовать

UPDATE
Whatever, сорри, что вмешался в учебный процесс Но думаю, для ТС полезно будет выучить не только операции с множествами, но и процедуры
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 05.12.2012, 22:28   #6
mimit
Пользователь
 
Регистрация: 18.10.2012
Сообщений: 49
По умолчанию

Цитата:
Сообщение от whatever Посмотреть сообщение
Ну это я опечатался. Домашнее задание тебе будет. Еще я ";" в одном месте пропустил. Поправь и будет работать.

Sciv, все проще . Но, сдается мне, начало автор не сам писал.
я знаю где ты не написал ; после end нет начала я сам писал просто я не знаю как сделать чтобы он выводил числа кратные 3
mimit вне форума Ответить с цитированием
Старый 05.12.2012, 23:26   #7
mimit
Пользователь
 
Регистрация: 18.10.2012
Сообщений: 49
По умолчанию

Все равно не могу додуматься в чем ошибка в строчке m3:=m3+i;
mimit вне форума Ответить с цитированием
Старый 05.12.2012, 23:47   #8
whatever
a.k.a. Skull
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 963
По умолчанию

Цитата:
Сообщение от mimit Посмотреть сообщение
Все равно не могу додуматься в чем ошибка в строчке m3:=m3+i;
Что и требовалось доказать. Значит спроси у того, кто тебе изначально писал.
Все тривиальное просто
whatever вне форума Ответить с цитированием
Старый 06.12.2012, 06:36   #9
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
Все равно не могу додуматься в чем ошибка в строчке m3:=m3+i;
Подсказка: смотри выше

Цитата:
Что и требовалось доказать.
Эт точно
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 06.12.2012, 07:06   #10
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

не проще?
Код:
var m1,m2,m3:set of byte;
i,k:byte;
begin
m1:=[];m2:=[];m3:=[];
for i:=1 to 3 do
begin
repeat
readln(k)
until (k<=10) and(k>=0);
m1:=m1+[k];end;
for i:=1 to 5 do
begin
repeat
readln(k)
until (k<=15) and(k>=2);
m2:=m2+[k];end;
for i:=0 to 15 do
if (i mod 3 = 0) and (i in m1) and (i in m2)
then begin m3:=m3+[i];
write(i,' ');
end;
end.
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сравнить мощность множества, состоящего из чисел от 1 до N с мощностью множества, состоящего из отрицательных элементов вектора В MaSS93 Паскаль, Turbo Pascal, PascalABC.NET 5 24.05.2012 20:04
множества hartman Паскаль, Turbo Pascal, PascalABC.NET 0 10.12.2011 19:14
Множества student22 Паскаль, Turbo Pascal, PascalABC.NET 0 05.12.2011 18:25
Через множества заданы сорта роз,выращиваемых цветоводами. Ввод множества с клавиатуры,сравнение множеств BAMbarBIO Паскаль, Turbo Pascal, PascalABC.NET 5 31.05.2011 13:17
множества любаша Помощь студентам 5 24.10.2010 18:05