так как понятие "гласная", "согласная" и пр. не являются формализованными понятиями, то есть их нельзя вычислить алгоритмически, их нужно задавать таблично, константами, а так как их много, то лучше всего подойдут массивы.
так как не указан язык программирования, в котором нужно реализовать текст, напишу на некоем псевдоязыке, текст которого легко переводится на известный тебе язык.
в общем, программа будет такой
// объявления массивов
знак()
// заполнение массивов
гласная(1)="а";
гласная(2)="а";
гласная(3)="е";
гласная(4)="е";
согласная(1)="б";
согласная(2)="б";
согласная(3)="в";
согласная(4)="в";
знак(1)=".";
знак(2)=".",;
знак(3)="! ";
знак(4)="? ";
// функции
функция фгласная(буква)
для ц=1 по кг цикл
если буква=гласная(ц) тогда
возврат(1);
конеццикла;
конеццикла;
возврат(0);
конецфункции
функция фсогласная(буква)
конецфункции
функция фзнак(буква)
конецфункции
// текст основной программы
ввод(буква);
если фгласная(буква) = 1 тогда
сообщить(буква+" гласная");
иначеесли фсогласная(буква)=1
тогда сообщить(буква+" согласная");
иначеесли фзнак(буква)=1 тогда
сообщить(буква+" разделительный знак");
иначе сообщить(буква+" не квалифицирована");
конецесли;
вот собственно и всё.
замечание1
если язык требует при объявлении массива его размерность- её нужно указать. многие языки имеют встроенную функцию определения размерности, некоторые языки имеют встроенные функции поиска в массиве, тогда нужно воспользоваться ими, а не писать свои функции.
замечание2
если как правило реализуется операторами case
замечание3
основная программа, как правило тоже обрамляется циклом с выходом по условию, которое либо системное либо некий хитрый символ(или клавиша), который ты определяешь концом ввода данных.
замечание4
вместо массив можно использовать строки, содержащие подряд буквы, например, гласная="". в этом случае для поиска нужно пользоваться соответствующими встроенными строковыми функциями.
в общем, смысл должен быть тебе понятен, а дальше - творчество.
успехов!
почему-то при записи убежал возврат каретки, попробовал восстановить. : )
Сейчас объясню так, как понимаю я. Жил например динозавр, вот умер, дальше произошло процес гниения и остались одни только кости, а их уже засыпало сверху песком(землёй, камнями и т.д.) на слое почвы начинает произрастать трава, деревья и т.д. И так с каждым днём, месяцем, годом, десятилетием и веком всё образуется новый слой почвы, новые растения, а кости нашего динозавра не могут гнить, для процесса гниения нужен воздух, а маленько что было, то своими корнями "выдышала " трава и деревья. Потом приходят археологи раскапывают данный участок суши и находят кости. :)
так как понятие "гласная", "согласная" и пр. не являются формализованными понятиями, то есть их нельзя вычислить алгоритмически, их нужно задавать таблично, константами, а так как их много, то лучше всего подойдут массивы.
так как не указан язык программирования, в котором нужно реализовать текст, напишу на некоем псевдоязыке, текст которого легко переводится на известный тебе язык.
в общем, программа будет такой
// объявления массивов
знак()
// заполнение массивов
гласная(1)="а";
гласная(2)="а";
гласная(3)="е";
гласная(4)="е";
согласная(1)="б";
согласная(2)="б";
согласная(3)="в";
согласная(4)="в";
знак(1)=".";
знак(2)=".",;
знак(3)="! ";
знак(4)="? ";
// функции
функция фгласная(буква)
для ц=1 по кг цикл
если буква=гласная(ц) тогда
возврат(1);
конеццикла;
конеццикла;
возврат(0);
конецфункции
функция фсогласная(буква)
конецфункции
функция фзнак(буква)
конецфункции
// текст основной программы
ввод(буква);
если фгласная(буква) = 1 тогда
сообщить(буква+" гласная");
иначеесли фсогласная(буква)=1
тогда сообщить(буква+" согласная");
иначеесли фзнак(буква)=1 тогда
сообщить(буква+" разделительный знак");
иначе сообщить(буква+" не квалифицирована");
конецесли;
вот собственно и всё.
замечание1
если язык требует при объявлении массива его размерность- её нужно указать. многие языки имеют встроенную функцию определения размерности, некоторые языки имеют встроенные функции поиска в массиве, тогда нужно воспользоваться ими, а не писать свои функции.
замечание2
если как правило реализуется операторами case
замечание3
основная программа, как правило тоже обрамляется циклом с выходом по условию, которое либо системное либо некий хитрый символ(или клавиша), который ты определяешь концом ввода данных.
замечание4
вместо массив можно использовать строки, содержащие подряд буквы, например, гласная="". в этом случае для поиска нужно пользоваться соответствующими встроенными строковыми функциями.
в общем, смысл должен быть тебе понятен, а дальше - творчество.
успехов!
почему-то при записи убежал возврат каретки, попробовал восстановить. : )