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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.04.2010, 20:59   #1
мики
Новичок
Джуниор
 
Регистрация: 14.04.2010
Сообщений: 1
По умолчанию множества

помогите написать программу:
Составить программу печати по одному разу в алфавитном порядке всех строчных русских гласных букв, входящих в заданный текст.
Все программы должны быть решены с использованием множественных типов данных.
мики вне форума Ответить с цитированием
Старый 14.04.2010, 21:26   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Код:
var s : string;
  YouLetters : set of char;
  i : integer;
  ch : char;
begin 
  s := 'тут ВАШ ПрОсТой Текст Для ПРоБы ВЫБорки';
  YouLetters := [];
  for i:=1 to length(s) do
    if s[i] in ['А'..'Я'] then
            include(YouLetters, s[i]);

  {а теперь напечатаем все выбранные буквы}
   for ch:='А' to 'Я' do
     if ch in YouLetters then Write(ch,' ');
   WriteLn;
p.s. писал прямо тут, на форуме, могут быть опечатки/неточности...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.04.2010, 23:59   #3
ROMA2PVT
ТАМБОВСКИЙ ВОЛК.
Участник клуба
 
Аватар для ROMA2PVT
 
Регистрация: 16.03.2010
Сообщений: 1,354
По умолчанию

Код:
Program alf;
Uses crt;
Var i: byte; s:string;
YouLetters : set of char;
ch : char;
Begin
Clrscr;
write('Введите строку: ');
read(s);
YouLetters :=[];
For i:=1 to length(s) do
if s[i] in ['а','е','и','о','у','ы','э','ю','я'] then
include(YouLetters, s[i]);
 Write('Строчные гласные буквы: ');
for ch:='а' to 'я' do
     if ch in YouLetters then Write(ch,' ');
End.
にんじゃ
ROMA2PVT вне форума Ответить с цитированием
Старый 15.04.2010, 06:17   #4
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Ребята, все это хорошо, но только вы применяете не множественные типы данных, а перечислимые (порядковые). Нужны то именно множества...
Set of char - слишком много, аж 255 символов, как нужных, так и не нужных...
Перемешивай дело с бездельем и не сойдешь с ума...

Последний раз редактировалось Grag; 15.04.2010 в 06:23.
Grag вне форума Ответить с цитированием
Старый 15.04.2010, 07:49   #5
ROMA2PVT
ТАМБОВСКИЙ ВОЛК.
Участник клуба
 
Аватар для ROMA2PVT
 
Регистрация: 16.03.2010
Сообщений: 1,354
По умолчанию

Код:
Program alf;
Uses crt;
Const
glasn=['а','е','и','о','у','ы','э','ю','я'];
type kl=set of 'а'..'я';
Var i: byte;
s:string;
YouLetters: kl;
ch : char;
Begin
Clrscr;
write('Введите строку: ');
read(s);
YouLetters :=[];
For i:=1 to length(s) do
if s[i] in  glasn then
include(YouLetters, s[i]);
 Write('Строчные гласные буквы: ');
for ch:='а' to 'я' do
     if ch in YouLetters then Write(ch,' ');
End.
Тогда вот так.Честно говоря мы даж не проходили множества.Grag если не трудно объясните самому интересно.Щас верно или нет?
にんじゃ
ROMA2PVT вне форума Ответить с цитированием
Старый 15.04.2010, 08:00   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Grag если не трудно объясните самому интересно.
Я признаться тоже не очень понял что автор назвал "множественным типом"
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.04.2010, 08:03   #7
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Да вроде верно...
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 15.04.2010, 08:06   #8
ROMA2PVT
ТАМБОВСКИЙ ВОЛК.
Участник клуба
 
Аватар для ROMA2PVT
 
Регистрация: 16.03.2010
Сообщений: 1,354
Радость

Спасибо. Ато я думал затуплю щас и не сделаю прогу.Вот теперь буду знать как с множествами делать.

Цитата:
Я признаться тоже не очень понял что автор назвал "множественным типом"
Да частенько бывает трудно понять что автор имеет ввиду.Просто нужно пояснять и пример давать.
にんじゃ

Последний раз редактировалось Stilet; 15.04.2010 в 08:16.
ROMA2PVT вне форума Ответить с цитированием
Старый 15.04.2010, 08:22   #9
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Я признаться тоже не очень понял что автор назвал "множественным типом"
Есть несколько типов данных:
-простые
-структурированные
-указатели
-строки
-процедурные
-объекты.

Простые: порядковые и вещественные. Порядковые еще делятся на целые, логические, символьные, перечислимые, тип-диапазон.
Структурированные: массивы, записи, множества и файлы
Вот именно эти самые множества из структурированных типов и имелись ввиду, а не порядковые или перечислимые или диапазон...
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 15.04.2010, 09:10   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Grag, Вы и правы и неправы одновременно!

Правы в определении, что же такое множество в Pascal
неправы в том, что называете вышеуказанные программы "порядковые или перечислимые или диапазон... "

если где-то в программе set of ... — то это и есть множественный тип данных!

основное отличие от порядковых, перечисляемых типов:
множество может быть максимум 255 элементов.
Элементы множества НЕ ИМЕЮТ порядковых номеров (т.е. к ним недопустимы операции ORD() PRED() и т.д.
Для множеств определены операции включения (INCLUDE) и исключения (Exclude) элементов.
опеределеная операция проверки вхождения элемента в множество. ( элемент IN множество )


вот, цитирую из курса лекций по Pascal
(c) Интернет-Университет Информационных Технологий
(текст не полный, цитата оборвана, дальше там тоже про множества...)
Цитата:
Множества
Еще один структурированный тип данных - это множество (set). В нем может содержаться не более 256 элементов.

Важное отличие множества от остальных структурированных типов состоит в том, что его элементы не являются упорядоченными.

Описание множеств
В разделе var множества описываются следующим образом:

var <имя_множества>: set of <тип_элементов_множества>;
Элементы могут принадлежать к любому порядковому типу, размер которого не превышает 1 байт (256 элементов). Например:

var s1: set of char; {множество из 256-ти элементов}
s2: set of 'a'..'z','A'..'Z'; {множество из 52-х элементов}
s3: set of 0..10; {множество из 11-ти элементов}
s4: set of boolean; {множество из 2-х элементов}
Множество-константа
Неименованная константа
Множество можно задать неименованной константой прямо в тексте программы. Для этого необходимо заключить список элементов создаваемого множества в квадратные скобки:

[<список_элементов>]
Список элементов может быть задан перечислением элементов нового множества через запятую, интервалом или объединением этих двух способов. Элементы и границы интервалов могут быть переменными, константами и выражениями. Если левая граница интервала окажется больше правой, результатом будет пустое множество.

Примеры конструирования и использования различных множеств:

if c in ['a','e','i','o','u']
then writeln('Гласная буква');
if set1 < [k*2+1..n,13] then set1:=[];
....


вот

Последний раз редактировалось Serge_Bliznykov; 15.04.2010 в 09:13.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Множества Asira Помощь студентам 0 12.12.2009 18:34
Множества Бедная студентка) Помощь студентам 0 29.06.2009 19:59
множества конфетка12 Паскаль, Turbo Pascal, PascalABC.NET 0 22.04.2009 20:51