Сельдеобра́зные (лат. Clupeiformes) — отряд лучепёрых рыб. Это примитивные костистые рыбы. Плавательный пузырь у них соединён каналом с пищеводом и имеет отростки, которые входят впереди в полость черепа (в слуховые капсулы)[1].
Сжатое с боков тело покрытое циклоидной чешуей. Обычно имеется боковая линия. Грудные плавники расположены ближе к брюху, брюшные плавники находятся в средней части брюха (абдоминальные). Хвостовой плавник гомоцеркальный. На середине тела или немного ближе к хвостовому отделу (но не за анальным плавником) расположен спинной плавник. Жировой плавник отсутствует. Нет зубов на parasphenoideum. Parietale отделено от supraoccipitale[1]. Лучи плавников мягкие, членистые, чешуя циклоидная. Боковая линия очень слабо выражена, замаскирована. Питаются зоопланктоном, поэтому рот открывается чуть вверх. Сельдеобразные считаются относительно примитивной группой со сравнительно слабо окостеневшим черепом и легко спадающей чешуёй. Некоторые виды совершают циклические миграции на дальние расстояния. Представители — салака (пресноводный подвид сельди), анчоусы, шпроты, каспийская килька, сельди, сардины и т. д[2].
В большинстве типичные пелагические рыбы. Есть как пресноводные, так и морские[1].
так как понятие "гласная", "согласная" и пр. не являются формализованными понятиями, то есть их нельзя вычислить алгоритмически, их нужно задавать таблично, константами, а так как их много, то лучше всего подойдут массивы.
так как не указан язык программирования, в котором нужно реализовать текст, напишу на некоем псевдоязыке, текст которого легко переводится на известный тебе язык.
в общем, программа будет такой
// объявления массивов
знак()
// заполнение массивов
гласная(1)="а";
гласная(2)="а";
гласная(3)="е";
гласная(4)="е";
согласная(1)="б";
согласная(2)="б";
согласная(3)="в";
согласная(4)="в";
знак(1)=".";
знак(2)=".",;
знак(3)="! ";
знак(4)="? ";
// функции
функция фгласная(буква)
для ц=1 по кг цикл
если буква=гласная(ц) тогда
возврат(1);
конеццикла;
конеццикла;
возврат(0);
конецфункции
функция фсогласная(буква)
конецфункции
функция фзнак(буква)
конецфункции
// текст основной программы
ввод(буква);
если фгласная(буква) = 1 тогда
сообщить(буква+" гласная");
иначеесли фсогласная(буква)=1
тогда сообщить(буква+" согласная");
иначеесли фзнак(буква)=1 тогда
сообщить(буква+" разделительный знак");
иначе сообщить(буква+" не квалифицирована");
конецесли;
вот собственно и всё.
замечание1
если язык требует при объявлении массива его размерность- её нужно указать. многие языки имеют встроенную функцию определения размерности, некоторые языки имеют встроенные функции поиска в массиве, тогда нужно воспользоваться ими, а не писать свои функции.
замечание2
если как правило реализуется операторами case
замечание3
основная программа, как правило тоже обрамляется циклом с выходом по условию, которое либо системное либо некий хитрый символ(или клавиша), который ты определяешь концом ввода данных.
замечание4
вместо массив можно использовать строки, содержащие подряд буквы, например, гласная="". в этом случае для поиска нужно пользоваться соответствующими встроенными строковыми функциями.
в общем, смысл должен быть тебе понятен, а дальше - творчество.
успехов!
почему-то при записи убежал возврат каретки, попробовал восстановить. : )