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 строчных латинских букв; между соседними словами – запятая или не менее одного пробела, за последним словом - точка.
Напечатать те слова последовательности, которые отличны от последнего слова и
удовлетворяют следующему свойству:
- в слове гласные чередуются с согласными;
Напечатать те слова последовательности, которые отличны от последнего слова,
предварительно преобразовав каждое из них по следующему правилу:
- если слово нечетной длины, то удалить его среднюю букву.


напишите плиз
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
klem4
сообщение 16.06.2005 16:35
Сообщение #2


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


Не уверен что отрабатывает полностью правильно, так что не бейте , здесь вариант с фиксированным числом записей, взгляните :

uses crt;
const
limits=[' ',',','.'];
glasn=['q','e','y','u','i','o','a'];
sogl=['a'..'z']-glasn;
var
s,ss:string;
ch:char;
posl:array[1..50] of string[8];
i,j,k,n:integer;
flag:boolean;

Begin
clrscr;

write('n='); readln(n);

j:=0;
repeat
s:='';
i:=0;
repeat
inc(i);
ch:=readkey;
write(ch);
if not (ch in limits) then
s:=s+ch;
until (ch in limits)or(i=8);
inc(j);
posl[j]:=s;
until j=n;

writeln;

for i:=1 to n do
if (posl[i]<>posl[n])or(n=1) then begin
ss:=posl[i];
if odd(length(ss)) then
delete(ss,length(ss) div 2 + 1,1);

flag:=true;

k:=1;

case ss[k] in glasn of
True : begin

while(k<=length(ss))and(flag) do
if not((ss[k] in glasn)and(ss[k+1] in sogl)) then
flag:=false
else inc(k,2);

if flag then
writeln('YES : ',posl[i]);
end;

False : begin
while(k<=length(ss))and(flag) do
if not((ss[k] in sogl)and(ss[k+1] in glasn)) then
flag:=false
else inc(k,2);

if flag then
writeln('YES : ',posl[i]);
end;
end;
end;

readln;
end.



если надо, можно сделать такойже ввод, только без фиксированного числа последовательностей

Сообщение отредактировано: klem4 - 16.06.2005 19:08


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  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:47
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"