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

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

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

> задачка на строки надо изменить
-Анютка-
сообщение 27.03.2007 10:52
Сообщение #1


Гость






Во введенном предложении, словом текста является последовательность больших букв криллицы.
Найти и вывести все слова, в которых есть гласные буквы, причем любая гласная встречаеться ровно один раз.
Пример: МУЗЫКА.


Тут короче я решила, правдо коряво, но решила smile.gif Мне нужна ваша помочь... wink.gif У меня разделителем является пробел, а препод сказал чтоб разделителем были еще и маленькие буквы. mad.gif Я чето не могу понять как сделать. blink.gif Помогите пожалуйста!



Прикрепленные файлы
Прикрепленный файл  STROK_14.PAS ( 1.46 килобайт ) Кол-во скачиваний: 144
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 27.03.2007 11:24
Сообщение #2


Гость






PROGRAM stroki;
USES
crt;
CONST
big_letters = ['А' .. 'Я']; { множество ЗАГЛАВНЫХ русских букв неразрывно }
glas = ['А', 'Е', 'Ё', 'И', 'Й', 'У', 'О', 'Ы', 'Э', 'Ю', 'Я'];

VAR
sub_set: set of char;
error: boolean;

st, stnew:string;
i,j,p:integer;
BEGIN
clrscr;
writeln('Программа удаляет из строки слова, в которых повторяется гласная.');
writeln('Введите строку:');
readln(st);

i := length(st);
while i > 0 begin

while (i > 0) and (not (st[i] in big_letters)) do dec(i);
p := i;
while (i > 0) and (st[i] in big_letters) do dec(i);

stnew := copy(st, i + 1, p - i);
writeln('checking: ', stnew);
error := false;
sub_set := [];
for j := 1 to length(stnew) do
if (stnew[j] in glas) then begin
error := (stnew[j] in sub_set);
if not error then include(sub_set, stnew[j]);
end;
if error then delete(st, i + 1, p - i);
dec(i);
end;
writeln(st);

readln;
END.
(с кириллицей не тестировал, проверял алгоритм на латинском алфавите)
 К началу страницы 
+ Ответить 

Сообщений в этой теме
-Анютка-   задачка на строки надо изменить   27.03.2007 10:52
volvo   PROGRAM stroki; USES crt; CONST big_letters = ...   27.03.2007 11:24
-Анютка-   Пасиб большое!!!!!! Только...   27.03.2007 12:53


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

 



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