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

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

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

 
 Ответить  Открыть новую тему 
> Множества. Русский текст.
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 23
Пол: Мужской

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


Помогите пжлст решить задачку: дан текст на русском языке. Напечатать в обратном алфавитном порядке все согласные буквы, которые входят хотя бы в одно слово, и все гласные, которые входят в каждое слово.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

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


Поможет поиск по ключевым словам: "гласные", "согласные"
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 6
Пол: Женский

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


Тебе надо задать множество согласных: sogl:=['б','в','г'.....и т.д.] {это в теле программы можно сделать так}!!!
И в цикле от 1 до length(stroka) каждый символ проверять if stroka[i] in sogl then.....тут вносишь эти согласные в пустое множество!!!


--------------------
Shutka
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 23
Пол: Мужской

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


Вот сделал, но нашел ошибку : введем для примера "не пришла ". Он должен выдать пустое множество, так как нет гласной, которая входит в каждое слово, но вместо этого выдает гласную "е". Помогите пожалуйста найти ошибку, и может быть это задание можно сделать другим способом ?
вот код программы :



uses crt;
const glas: set of char= ['а','е', 'и', 'о', 'у', 'ы' ,'э' ,'ю' ,'я'];
soglas =['б', 'в', 'г', 'д','ж' ,'з' ,'к', 'л', 'м', 'н', 'п', 'р', 'с','т', 'ф', 'ч', 'ц', 'ч', 'щ' ];
word_ch: set of char = [];
var text2,text: string;
s,i,j,k:byte;
in_all,found,found2: set of char;
mn2,z,gl,sogl: char;


begin
clrscr;
textcolor(15);
in_all:=glas;
writeln('Введите текст на русском языке');
readln(text);
text2:=text;
k:=length(text);
for i:=1 to k do
if text[i] in glas then found:=found+[text[i]] else
if text[i] in soglas then found2:=found2+[text[i]];

write('Все гласные, которые входят в каждое слово : ');
textcolor(10);
for i:=1 to k do
begin
if text[i] in [' '] then
begin
in_all:=in_all*word_ch;
word_ch:=[];
end
else
if text[i] in glas then word_ch:=word_ch+[text[i]];
end;
for i:=1 to k do
if text[i] in in_all then write (text[i]:3);



textcolor(15);
writeln;
write('Все согласные, которые входят хотя бы в одно слово : ');
writeln;
textcolor(12);
for sogl:= 'я' downto 'а' do if sogl in found2 then write(' ',sogl,'');
textcolor(15);

readln;



end.


 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






У тебя последнее слово не обрабатывается по очень простой причине: перемножение множеств ты делаешь только тогда, когда очередная буква = пробелу, т.е., когда закончили читать еще одно слово... А когда достигнут конец строки? Пробела-то нет, вот последнее слово и не у дел...

Самый простой (но не совсем правильный) способ исправить -
writeln('Введите текст на русском языке');
readln(text);

{
осторожно! если будет введена длинная строка -
на этот пробел может не хватить места...
}
text := text + ' ';


Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 

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

 





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