Строки

За вознаграждение или нахаляву (если повезёт)

Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill

BBB
Сообщения: 1298
Зарегистрирован: 27 дек 2005, 13:37

Бабочка писал(а):Как написать,что гласные и согласные?
Перечислить гласные (т.е. их меньше). Остальные будут согласные. В строке или с помощью же множества.
В русском 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
// гласные
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

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

А если надо выводить согласные в таком же порядке, как они в тексте?
Бабочка
Сообщения: 23
Зарегистрирован: 09 янв 2008, 13:39

Не надо,просто согласные, в любом порядке
Бабочка
Сообщения: 23
Зарегистрирован: 09 янв 2008, 13:39

Люди добрые!! Напишите,пожалуйста, кому не трудно, код, у меня он даже не компилируется, а завтра сдавать!!
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

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

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

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

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