Во введенном предложении, словом текста является последовательность больших букв криллицы. Найти и вывести все слова, в которых есть гласные буквы, причем любая гласная встречаеться ровно один раз. Пример: МУЗЫКА.
Тут короче я решила, правдо коряво, но решила Мне нужна ваша помочь... У меня разделителем является пробел, а препод сказал чтоб разделителем были еще и маленькие буквы. Я чето не могу понять как сделать. Помогите пожалуйста!
volvo
27.03.2007 15:24
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 16:53
Пасиб большое!!!!!! Только она оставляет в строке нужные слова и разделатели, маленькие буквы... А не подскажешь как и их убрать?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.