Во введенном предложении, словом текста является последовательность больших букв криллицы.
Найти и вывести все слова, в которых есть гласные буквы, причем любая гласная встречаеться ровно один раз.
Пример: МУЗЫКА.
Тут короче я решила, правдо коряво, но решила Мне нужна ваша помочь... У меня разделителем является пробел, а препод сказал чтоб разделителем были еще и маленькие буквы. Я чето не могу понять как сделать. Помогите пожалуйста!
Прикрепленные файлы
STROK_14.PAS ( 1.46 килобайт )
Кол-во скачиваний: 231
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.
Пасиб большое!!!!!!
Только она оставляет в строке нужные слова и разделатели, маленькие буквы... А не подскажешь как и их убрать?