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

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

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

 
 Ответить  Открыть новую тему 
> Использование множеств
сообщение
Сообщение #1


__
*

Группа: Пользователи
Сообщений: 11
Пол: Мужской
Реальное имя: ______

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



Ужасно не могу решить такую лёгкую задачу (((
Помогите пожалуйста.

Даны 3 множества. Первое множество А заполнить символами латинского алфавита в интервале от a до g, второе множество В заполнить в интервале от c до m. Третье множество заполнить применив операцию пересечения двух множеств, т. е. A*B. Необходимо проверить в какое из множеств входит введенный с клавиатуры символ, а также узнать порядковый номер символа в таблице ASCII.


Теоретически понятно а вот с кодом что то туплю (((
Заполняем А
Заполняем B
Пересечение A*B
Проверяем символ, номер символа ASC II

Вот только могу символ вывести:

uses crt;
var n:integer;
x:char;
begin
clrscr;
writeln('Введите символ ->');
readln(x);
write(x);n:=ord(x); writeln('->',n);
readln(n);x:=chr(n);writeln('->',x);
end.

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


Человек
*****

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

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


у меня получилось так:
type
TL = set of 'a'..'z';

var
A, B, C : Tl;
i : integer;
ch : char;
begin
A := [];
B := [];
for i := ord('a') to ord('g') do
A := A + [chr(i)];

for i := ord('c') to ord('m') do
B := B+[chr(i)];

C := A*B;
{ print }
for i :=ord('a') to ord('z') do
if chr(i) in A then write(chr(i):3);
writeln;
for i := ord('a') to ord('z') do
if chr(i) in B then write(chr(i):3);
writeln;
for i := ord('a') to ord('z') do
if chr(i) in C then write(chr(i):3);
writeln;
{ /print }

readln(ch);
if ch in C then writeln('ch in A, B, C') else
if ch in A then writeln('ch in A') else
if ch in B then writeln('ch in B') else
writeln('ch doesn''t found');
end.
разбирайся..
ps
print добавлено для наглядности..


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


__
*

Группа: Пользователи
Сообщений: 11
Пол: Мужской
Реальное имя: ______

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


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


Гость






compiler,
не совсем корректно получается... Символ может присутствовать и в двух множествах одновременно, и даже во всех трех (скажем, символ 'd'), может не присутствовать ни в одном, а ты почему-то ограничиваешь его местонахождение каким-то множеством... Добавить бы "не присутствует нигде" надо...

Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Человек
*****

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

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


Цитата(volvo @ 19.05.2008 14:13) *

compiler,
не совсем корректно получается... Символ может присутствовать и в двух множествах одновременно, и даже во всех трех (скажем, символ 'd'), может не присутствовать ни в одном, а ты почему-то ограничиваешь его местонахождение каким-то множеством... Добавить бы "не присутствует нигде" надо...

данное разветление для данной программы...
если символ есть в С, значит он есть и в А и В
если же его там нет значит он встречается только в А или только в В или же нигде не встречается
проверели А, если его там нет значит он либо в B либо его нет
проверели В, если же его и там нет то в множествах элемент не значится...
не нашел тестов для ДАННОЙ программы которые показали не корректность, хотя могу ошибаться... В общем случае метод, конечно же неприемлим..

Сообщение отредактировано: compiler -


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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