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

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

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

> множества
Sqrin
сообщение 11.05.2005 0:05
Сообщение #1


Гость






Дана последовательность, содержащая от 2 до 50 слов, в каждом из которых от 1 до 8 строчных латинских букв; между соседними словами – запятая или не менее одного пробела, за последним словом - точка.
Напечатать те слова последовательности, которые отличны от последнего слова и
удовлетворяют следующему свойству:
- в слове гласные чередуются с согласными;
Напечатать те слова последовательности, которые отличны от последнего слова,
предварительно преобразовав каждое из них по следующему правилу:
- если слово нечетной длины, то удалить его среднюю букву.


напишите плиз
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Archon
сообщение 15.06.2005 14:05
Сообщение #2


Профи
****

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

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


1. не 50 символов в строке, а 50 слов. Поставь просто string.
2. создай wrds : array [1..50] of string[8];
3. загоняй слова в массив. Перебирай все символы(при этом wrds[j]:=wrds[j]+Stroka[i], i - счётчик цикла, j - счётчик слов), если символ не в множестве гласных и не в множестве согласных, значит разделитель(j++ :D ).

добавлено:
Начало должно выглядеть так
Код

Uses crt;
Const
 Glas = ['A','E','I','O','U','Y'];
 Sogl = ['A'..'Z'] - Glas;
Var
 S : string;
 words : array [1..50] of string[8];
 I,j : integer;
 old : char;
Begin
 ClrScr;
 Write('Введите строку : ');
 Readln(S);
 old := ' ';   {Тута пробел}
 j := 1;       {Первое слово}
 For i := 1 to length(S) do  {Сканируем строку}
 Begin
   if UpCase(S[i]) in Sogl + Glas then words[j] := words[j] + S[i]{если буква, добавляем к текущему слову}
   else if UpCase(old) in Sogl + Glas then Inc(j);{Если не буква, а предыдущий символ - буква, увеличиваем номер слова}
   old := S[i];  {Сохраняем символ, на следующем шаге он станет предыдущим}
 End;


Сообщение отредактировано: Archon - 15.06.2005 14:41


--------------------
Close the World...txeN eht nepO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Malice
сообщение 16.06.2005 14:03
Сообщение #3


Профи
****

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

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


Если я все правильно понял, то 50 слов * (8 символов +1 разделитель) = 450 символов максимум. Стрингом никак smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Sqrin   множества   11.05.2005 0:05
volvo   Помочь - пожалуйста, но писАть полностью :no: Х...   11.05.2005 0:18
asCOOLs   ето понятно ... вот тока определение согласные или...   17.05.2005 0:28
volvo   const glas = ['a', 'e', 'i...   17.05.2005 0:33
Sqrin   как задатьмножество я понимаю а вот.... Напечатать...   15.06.2005 9:19
volvo   Ну, для этого допустим надо разбивать строку на с...   15.06.2005 9:27
Sqrin   о елки .. оболдеть... что то я запутолся... ксат...   15.06.2005 9:39
Archon   1. не 50 символов в строке, а 50 слов. Поставь про...   15.06.2005 14:05
Malice   Если я все правильно понял, то 50 слов * (8 символ...   16.06.2005 14:03
klem4   что значит ? программа, описаная выше, видишь ? ...   16.06.2005 14:07
Malice   Массив заполняется при вводе ? Нет. Там readln (...   16.06.2005 14:11
Archon   :D :D :D :D :D :D :D Можно S : string; зам...   16.06.2005 14:23
Malice   Зря ты так. Может в этом и суть :) Описано уж бо...   16.06.2005 14:38
volvo   Что именно КОНКРЕТНО описано? Я например виже тол...   16.06.2005 14:55
Guest   Нежнее, volvo, нежнее. Работа программиста приуч...   16.06.2005 22:57
klem4   Можно вводить сразу массив слов : uses crt; cons...   16.06.2005 14:55
Archon   Да ну вас... Мы же с Malice пошутили... :p2: У на...   16.06.2005 14:59
klem4   Не уверен что отрабатывает полностью правильно, та...   16.06.2005 16:35
volvo   Вот этот кусок вызывает сомнения: clrscr; ...   17.06.2005 12:08
klem4   А если так : write('n='); readln(n); ...   17.06.2005 13:05
volvo   klem4, а как тебе вот такой способ решения первого...   17.06.2005 13:58
klem4   ...красиво :D   17.06.2005 14:03
Malice   Раз такая пьянка пошла, чередование так проще пр...   17.06.2005 16:09
Archon   volvo, я твою функцию get_words чуток подправил и ...   17.06.2005 14:36
Archon   volvo, оценил проверку на чередование. Не знал, чт...   17.06.2005 16:00


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

 



- Текстовая версия 20.07.2025 19:41
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"