Так как понятие "гласная", "согласная" и пр. не являются формализованными понятиями, то есть их нельзя вычислить алгоритмически, их нужно задавать таблично, константами, а так как их много, то лучше всего подойдут массивы.
Так как не указан язык программирования, в котором нужно реализовать текст, напишу на некоем псевдоязыке, текст которого легко переводится на известный тебе язык.
В общем, программа будет такой
// объявления массивов
гласная(), согласная(), знак()
// заполнение массивов
гласная(1)="А";
гласная(2)="а";
гласная(3)="Е";
гласная(4)="е";
согласная(1)="Б";
согласная(2)="б";
согласная(3)="В";
согласная(4)="в";
знак(1)=".";
знак(2)=".",;
знак(3)="!";
знак(4)="?";
// Функции
функция фГласная(буква)
Для ц=1 по кг Цикл
Если буква=гласная(ц) тогда
Возврат(1);
КонецЦикла;
КонецЦикла;
Возврат(0);
КонецФункции
функция фСогласная(буква)
КонецФункции
функция фзнак(буква)
КонецФункции
// текст основной программы
Ввод(буква);
Если фГласная(буква) = 1 тогда
Сообщить(буква+" гласная");
ИначеЕсли фСогласная(буква)=1
тогда Сообщить(буква+" согласная");
ИначеЕсли фЗнак(буква)=1 тогда
Сообщить(буква+" разделительный знак");
Иначе Сообщить(буква+" не квалифицирована");
КонецЕсли;
Вот собственно и всё.
Замечание1
Если язык требует при объявлении массива его размерность- её нужно указать. многие языки имеют встроенную функцию определения размерности, некоторые языки имеют встроенные функции поиска в массиве, тогда нужно воспользоваться ими, а не писать свои функции.
Замечание2
Если ИначеЕсли... как правило реализуется операторами Case
Замечание3
Основная программа, как правило тоже обрамляется циклом с выходом по условию, которое либо системное либо некий хитрый символ(или клавиша), который ты определяешь концом ввода данных.
Замечание4
Вместо массив можно использовать строки, содержащие подряд буквы, например, гласная="АаЕеИи". в этом случае для поиска нужно пользоваться соответствующими встроенными строковыми функциями.
В общем, смысл должен быть тебе понятен, а дальше - творчество.
Успехов!
Почему-то при записи убежал возврат каретки, попробовал восстановить. :)
Program A; var a,b,c,s:integer; begin write('введите кол-во чисел в последовательности:'); readln(a); for c:=1 to a do begin write('введите число:'); readln(b); if (b mod 10=3) then s:=s+b; write(b,' '); end; writeln('сумма чисел, оканчивающихся на 3=',s); end. с клавиатуры вводится кол-во чисел в последовательности и каждое число послед-ти на экран выводится последовательность чисел через пробел и сумму чисел, оканчивающихся на 3
program B; var a,b,s:integer; begin write('введите кол-во чисел в последовательности:'); readln(a); for c:=1 to a do b:=random(300)+1; if (b mod 10=3) then s:=s+b; write(b,' '); end; writeln('сумма чисел, оканчивающихся на 3=',s); end. с клавиатуры вводится только кол-во чисел в последовательности а каждое число послед-ти вводится само рандомно. на экран выводится последовательность чисел через пробел и сумму чисел, оканчивающихся на 3
Так как понятие "гласная", "согласная" и пр. не являются формализованными понятиями, то есть их нельзя вычислить алгоритмически, их нужно задавать таблично, константами, а так как их много, то лучше всего подойдут массивы.
Так как не указан язык программирования, в котором нужно реализовать текст, напишу на некоем псевдоязыке, текст которого легко переводится на известный тебе язык.
В общем, программа будет такой
// объявления массивов
гласная(), согласная(), знак()
// заполнение массивов
гласная(1)="А";
гласная(2)="а";
гласная(3)="Е";
гласная(4)="е";
согласная(1)="Б";
согласная(2)="б";
согласная(3)="В";
согласная(4)="в";
знак(1)=".";
знак(2)=".",;
знак(3)="!";
знак(4)="?";
// Функции
функция фГласная(буква)
Для ц=1 по кг Цикл
Если буква=гласная(ц) тогда
Возврат(1);
КонецЦикла;
КонецЦикла;
Возврат(0);
КонецФункции
функция фСогласная(буква)
КонецФункции
функция фзнак(буква)
КонецФункции
// текст основной программы
Ввод(буква);
Если фГласная(буква) = 1 тогда
Сообщить(буква+" гласная");
ИначеЕсли фСогласная(буква)=1
тогда Сообщить(буква+" согласная");
ИначеЕсли фЗнак(буква)=1 тогда
Сообщить(буква+" разделительный знак");
Иначе Сообщить(буква+" не квалифицирована");
КонецЕсли;
Вот собственно и всё.
Замечание1
Если язык требует при объявлении массива его размерность- её нужно указать. многие языки имеют встроенную функцию определения размерности, некоторые языки имеют встроенные функции поиска в массиве, тогда нужно воспользоваться ими, а не писать свои функции.
Замечание2
Если ИначеЕсли... как правило реализуется операторами Case
Замечание3
Основная программа, как правило тоже обрамляется циклом с выходом по условию, которое либо системное либо некий хитрый символ(или клавиша), который ты определяешь концом ввода данных.
Замечание4
Вместо массив можно использовать строки, содержащие подряд буквы, например, гласная="АаЕеИи". в этом случае для поиска нужно пользоваться соответствующими встроенными строковыми функциями.
В общем, смысл должен быть тебе понятен, а дальше - творчество.
Успехов!
Почему-то при записи убежал возврат каретки, попробовал восстановить. :)
var a,b,c,s:integer;
begin
write('введите кол-во чисел в последовательности:');
readln(a);
for c:=1 to a do
begin
write('введите число:');
readln(b);
if (b mod 10=3) then
s:=s+b;
write(b,' ');
end;
writeln('сумма чисел, оканчивающихся на 3=',s);
end.
с клавиатуры вводится кол-во чисел в последовательности и каждое число послед-ти на экран выводится последовательность чисел через пробел и сумму чисел, оканчивающихся на 3
program B;
var a,b,s:integer;
begin
write('введите кол-во чисел в последовательности:');
readln(a);
for c:=1 to a do
b:=random(300)+1;
if (b mod 10=3) then
s:=s+b;
write(b,' ');
end;
writeln('сумма чисел, оканчивающихся на 3=',s);
end.
с клавиатуры вводится только кол-во чисел в последовательности а каждое число послед-ти вводится само рандомно. на экран выводится последовательность чисел через пробел и сумму чисел, оканчивающихся на 3