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

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

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

 
 Ответить  Открыть новую тему 
> задачка на строки надо изменить
сообщение
Сообщение #1


Гость






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


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



Прикрепленные файлы
Прикрепленный файл  STROK_14.PAS ( 1.46 килобайт ) Кол-во скачиваний: 123
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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.
(с кириллицей не тестировал, проверял алгоритм на латинском алфавите)
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Пасиб большое!!!!!!
Только она оставляет в строке нужные слова и разделатели, маленькие буквы... А не подскажешь как и их убрать?
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 28.09.2020 17:03
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name