Страница 2 из 2

Re: Строки

Добавлено: 17 янв 2008, 12:44
BBB
Бабочка писал(а):Как написать,что гласные и согласные?
Перечислить гласные (т.е. их меньше). Остальные будут согласные. В строке или с помощью же множества.
В русском 10 гласных (аеёиоуюэюя), в английском - 6 (aeiouy).

Вариант с множеством:
gl_set : set of char = ['А', 'Е', 'Ё', 'И', 'О', 'У', 'Ю', 'Э', 'Ю', 'Я', 'а', 'е', 'ё', 'и', 'о', 'у', 'ю', 'э', 'ю', 'я', 'A', 'E', 'I', 'O', 'U', 'a', 'e', 'i', 'o', 'u']

Проверка:
char ch;
if (ch in gl_set) then
// гласные

Вариант со строкой:
st_gl : string = 'АЕЁИОУЮЭЮЯаеёиоуюэюяAEIOUYaeiouy';

Проверка:
char ch;
if (Pos (ch in st_gl) then
// гласные

Re: Строки

Добавлено: 17 янв 2008, 12:45
Хыиуду
Тупо перечислить. Я еще не встречал языка программирования, который умеет отличать одно от другого
drummer писал(а):заведи строку, где будешь хранить те символы, которые уже вывел. Если нашел согласную, то проверил входит ли она в эту строку. Если да, то вывел согласную и добавил в строку, если нет, то ищешь дальше
Зачем такие сложности? Нам совсем не обязательно бегать по всему тексту и проверять каждую букву. Вполне достаточно проверить каждую согласную - их явно меньше, чем букв в тексте. Если в тексте есть хоть одна буква "В" - ее выводим и забываем о ней, больше нас она не интересует ни разу

Re: Строки

Добавлено: 17 янв 2008, 13:55
drummer
А если надо выводить согласные в таком же порядке, как они в тексте?

Re: Строки

Добавлено: 17 янв 2008, 19:17
Бабочка
Не надо,просто согласные, в любом порядке

Re: Строки

Добавлено: 17 янв 2008, 19:35
Бабочка
Люди добрые!! Напишите,пожалуйста, кому не трудно, код, у меня он даже не компилируется, а завтра сдавать!!

Re: Строки

Добавлено: 18 янв 2008, 11:40
Хыиуду
BBB писал(а):Перечислить гласные (т.е. их меньше). Остальные будут согласные.
Неа. Текст-то произвольный, так что там будут еще пробелы, знаки препинания и прочая чушь

Не знаю, как на Си, а на Паскале это выглядит так:

Код: Выделить всё

sogl:='BCDFGHJKLMNPQRSTVWXZbcdfghjklmnpqrstvwxzБВГДЖЗКЛМНПРСТФХЦЧШЩбвгджзклмнпрстфхцчшщ';
for i:=1 to length(s) do
   if pos(sogl[i], text)>0 then write(sogl[i]);