IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Паскаль АВС множества., Выполнить операции объединения, разности, пересечения с разными типами
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 17
Пол: Женский

Репутация: -  0  +


Не могу составить программу вариантов ни каких!!! Все что пробовала написать компилирует с кучей ошибок о несовместимости типов. Помогите составить программу, пожайлуста!
Множества букв заполнены следующим образом: множество 1-цифрами; множество 2 – знаками препинания; множество D3 – буквами. Выполнить операции объединения, разности, пересечения.

Сообщение отредактировано: swe-4a -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


> Все что пробовала написать

А ты покажи сюда, мы скажем, как надо сделать, чтобы скомпилировалось.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(swe-4a @ 8.02.2011 13:04) *
Все что пробовала написать кампилирует с кучей ошибок о несовместимости типов.

Показывай.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 17
Пол: Женский

Репутация: -  0  +


Цитата(Lapp @ 8.02.2011 13:17) *
Показывай.
вот этот позор...
program prim;
var
dr:d;
d1: Set of real;// chislo
d2: Set of char;//simvol
d3: Set of string;// bukva
Begin
dr:=[ ];
d1:=[2,4,6,8,1,2,0,9];
d2:=['#',')','(','@','%','!'];
d3:=['a','k','w','g','s'];
dr:=d1+d2;
dr:=dr+d3;
dr:=dr-d2;
dr:=dr*d1;
Writeln ('obedinenie');
readln(dr);
Writeln ('raznost');
readln(dr);
Writeln ('peresechenie');
readln(dr);
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


> d1: Set of real;// chislo
> d2: Set of char;//simvol
> d3: Set of string;// bukva

Ошибка компиляции тут, да?

> Множества букв заполнены следующим образом

Значит надо работать только с множествами букв.

d1, d2, d3: set of char;

Одного типа, иначе объединять и пересекать нельзя.

> множество 1-цифрами; множество 2 – знаками препинания; множество D3 – буквами

d1 := ['0' .. '9'];
d2 := ['.', ',', '''', '"', ';'];
d3 := ['A' .. 'Z', 'a' .. 'z'];

А дальше так же делаешь.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 17
Пол: Женский

Репутация: -  0  +


Цитата(TarasBer @ 8.02.2011 14:28) *

> d1: Set of real;// chislo
> d2: Set of char;//simvol
> d3: Set of string;// bukva

Ошибка компиляции тут, да?

> Множества букв заполнены следующим образом

Значит надо работать только с множествами букв.

d1, d2, d3: set of char;

Одного типа, иначе объединять и пересекать нельзя.

> множество 1-цифрами; множество 2 – знаками препинания; множество D3 – буквами

d1 := ['0' .. '9'];
d2 := ['.', ',', '''', '"', ';'];
d3 := ['A' .. 'Z', 'a' .. 'z'];

А дальше так же делаешь.
все равно не то(((

program prim;

type d=set of char;
var
dr,d1, d2, d3:d;
Begin
d:=[ ];
d1 := ['0' .. '9'];
d2 := ['.', ',', '''', '"', ';'];
d3 := ['A' .. 'Z', 'a' .. 'z'];
dr:=d1+d2;
dr:=dr+d3;
dr:=dr-d2;
dr:=dr*d1;
Writeln ('obedinenie');
readln(dr);
Writeln ('raznost');
readln(dr);
Writeln ('peresechenie');
readln(dr);
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Что "не то"? То, что ты пытаешься зачем--то СЧИТАТЬ dr после того, как его заполнила? Не то, не надо этого делать. Вывести? По одному элементу (от char(0) до char (255)) проверяй на вхождение, сразу множества не выводятся...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Говори хотя бы, на какой строчке ошибка, а то угадывать тяжело.

>Writeln ('obedinenie');
>readln(dr);
>Writeln ('raznost');
>readln(dr);
>Writeln ('peresechenie');
>readln(dr);

Ошибка тут?
Ну хотя бы так сделай:

for c := #0 to #255 do if c in dr then write('''', c, ''', ');


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Новичок
*

Группа: Пользователи
Сообщений: 17
Пол: Женский

Репутация: -  0  +




program prim;

type d=set of char;
var
dr,d1, d2, d3:d;
Begin
d:=[ ];
// первая ошибка здесь, пишет "ожидалась переменная"
d1 := ['0' .. '9'];
d2 := ['.', ',', '''', '"', ';'];
d3 := ['A' .. 'Z', 'a' .. 'z'];
dr:=d1+d2;
dr:=dr+d3;
dr:=dr-d2;
dr:=dr*d1;
Writeln ('obedinenie');
readln(dr);
Writeln ('raznost');
readln(dr);
Writeln ('peresechenie');
readln(dr);
end.



Вывести? По одному элементу (от char(0) до char (255)) проверяй на вхождение, сразу множества не выводятся... А как выводятся? в единственном примере учебного материала вообще вывод не показан((( может есть где в инете рассмотренный подобный пример. Но я не нашла.


Сообщение отредактировано: swe-4a -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


И что ты хочешь сказать это строкой? Зачем она вообще? Убери её вообще.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Новичок
*

Группа: Пользователи
Сообщений: 17
Пол: Женский

Репутация: -  0  +


Цитата(TarasBer @ 8.02.2011 16:32) *
И что ты хочешь сказать это строкой? Зачем она вообще? Убери её вообще.
Я ничего не хочу сказать вот пример из лекций на основании которого я должна научиться понимать как писать программы подобного содержания.

2.Операции над множествами.
Множества чисел заполнены следующим образом: множество D1- четными числами 2, 4, 6, 8; множество D2 – числами 0,1,2,3,5; множество D3 – нечетными числами 1, 3, 5, 7, 9. Выполнить операции объединения, разности, пересечения.
Программа выглядит так:
program prim;
type d=set of 0..20;
var dr,d1,d2,d3:d;
Begin
dr:=[ ];
d1:=[2,4,6,8,10,12,14,16];
d2:=[0,1,2,3,5,7];
d3:=[9,11,13,15,17,19];
dr:=d1+d2; (*объединение d1, d2,*)
dr:=dr+d3; (*объединение dr, d3,*)
dr:=dr-d2; (*разность множеств *)
dr:=dr*d1; (*пересечение множеств *)
end.
и все! как выводить результат??? хорошо убираю эту злостную строку...но как получить ответ?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Гость






Writeln ('obedinenie');
dr:=d1+d2;
dr:=dr+d3;
// Тут вывод. Как показал Тарас
Writeln ('raznost');
dr:=dr-d2;
// Опять вывод
Writeln ('peresechenie');
dr:=dr*d1;
// Снова вывод

, а то ты сначала все действия сделаешь, а потом одно и то же (результат последнего действия) три раза выведешь...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


> вот пример из лекций
> dr:=[ ];

> d:=[ ];// первая ошибка здесь, пишет "ожидалась переменная"

Чувствуешь разницу?


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Новичок
*

Группа: Пользователи
Сообщений: 17
Пол: Женский

Репутация: -  0  +


[quote name='TarasBer' post='152812' date='8.02.2011 16:43']
> вот пример из лекций
> dr:=[ ];

> d:=[ ];// первая ошибка здесь, пишет "ожидалась переменная"

Чувствуешь разницу?
[/quote]
да..

Добавлено через 2 мин.
Ошибка тут?
Ну хотя бы так сделай:

for c := #0 to #255 do if c in dr then write('''', c, ''', ');
[/quote]

откуда берется for c := ??? это дополнительная переменная? зачем? не пойму!!

Сообщение отредактировано: swe-4a -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Да, переменную c тебе надо завести отдельно:
c: char;

Она нужна в качестве счётчика цикла, для того, чтобы перебрать все элементы множества.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Новичок
*

Группа: Пользователи
Сообщений: 17
Пол: Женский

Репутация: -  0  +


ВОТ ТАК РАБОТАЕТ. Это правильно?
program prim;
type d=set of char;
var dr,d1,d2,d3:d;
c: char;
Begin
dr:=[ ];
d1 := ['0' .. '9'];
d2 := ['.', ',', '''', '"', ';'];
d3 := ['A' .. 'Z', 'a' .. 'z'];
Writeln ('obedinenie');
dr:=d1+d2;
dr:=dr+d3;
for c := #0 to #255 do if c in dr then write('''', c, ''', ');
Writeln ('raznost');
dr:=dr-d2;
for c := #0 to #255 do if c in dr then write('''', c, ''', ');
Writeln ('peresechenie');
dr:=dr*d1;
for c := #0 to #255 do if c in dr then write('''', c, ''', ');
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Ну вроде да. Только смысла задания я не пойму, множества же не пересекаются никак.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #18


Новичок
*

Группа: Пользователи
Сообщений: 17
Пол: Женский

Репутация: -  0  +


Цитата(TarasBer @ 8.02.2011 16:58) *

Да, переменную c тебе надо завести отдельно:
c: char;

Она нужна в качестве счётчика цикла, для того, чтобы перебрать все элементы множества.

да! уже до меня дошло! ОНА РАБОТАЕТ! НО откуда знать все эти тонкости простому смертному, начинающему, в двух учебниках которые есть на руках этого нет..или я просто не умею читать.....

Добавлено через 4 мин.
Цитата(TarasBer @ 8.02.2011 17:02) *

Ну вроде да. Только смысла задания я не пойму, множества же не пересекаются никак.

Спасибо огромное всем кто мне помогает! Дистанционное образование не дается мне легко((. Я тоже не поняла зачем искать пересечения в том, где его не может быть. Дальше задания еще страшней....так что я тут не последний раз. Еще раз спасибо!)))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 27.10.2020 22:35
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name