Дан массив символов, образующий несколько слов. Вывести на экран слово с максимальным количеством гласных букв. Основной код я сделал и он правильный, осталось только найти максимальное кол-во гласных букв в слове и вывести это слово
код:
program lab_14;
const n=30; {максимальная размерность массива}
var a: array[1..n] of char; {объявление одномерного символьного массива}
kol: integer; {переменная для нахождения количества введенных слов}
k: integer; {вс переменная для хранения количества введенных
символов}
i: integer; {счетчик цикла}
begin
{Ввод с клавиатуры длины исходной строки}
writeln('Укажите суммарную длину вводимой строки, включая пробелы. Строка
не должна превышать', n , 'символов.');
k:=0;
repeat {Вводим ограничение на вводимое значение k}
readln(k)
until (k>1) and (k<30);
writeln('Введите строку и в конце нажмите клавишу Enter. Максимальная длина
введенной строки', k , 'символов, включая пробелы.');
{Ввод исходной строки}
for i:=1 to k do
read(a[i]);
{Первоначально предполагаем, что пользователь не ввел ни одного слова}
kol:=0;
{Вывод на экран введенной строки}
writeln('Исходная строка:');
for i:=1 to k do
write(a[i]);
writeln;
// PascalABC.NET 3.1, сборка 1200 от 13.03.2016
function IsPrime(n:integer):boolean;
begin
if n<4 then Result:=True
else begin
var found:= (n mod 2 = 0);
var p:=3;
while (not found) and (sqr(p)<=n) do
begin
found:=(n mod p = 0);
p+=2
end;
Result:=not found
end
end;
begin
Writeln('k=',ArrRandom(ReadInteger('n='),1,999).Println.
Where(x->IsPrime(x)).Count)
end.
Тестовое решение:
n= 10
401 828 780 444 694 965 23 341 673 875
k=3
2. А вот так это пишется с процедурой
// PascalABC.NET 3.1, сборка 1200 от 13.03.2016
procedure IsPrime(n:integer; var res:boolean);
begin
if n<4 then res:=True
else begin
var found:= (n mod 2 = 0);
var p:=3;
while (not found) and (sqr(p)<=n) do
begin
found:=(n mod p = 0);
p+=2
end;
res:=not found
end
end;
begin
var a:=ArrRandom(ReadInteger('n='),1,999); a.Println;
var k:=0;
var prime:boolean;
foreach var e in a do begin
IsPrime(e,prime);
if Prime then Inc(k)
end;
Writeln('k=',k)
end.
Тестовое решение:
n= 12
199 43 71 365 417 904 170 212 694 103 161 689
k=4