задача: сколько слов в тексте имеет 1 слог,2 слога,3 слога и т.д.(кол-во слогов в слове совпадает с кол-ом гласных)
в Фак'е было только про *сколько раз заданное слово встречаетсся в тексте*
и больше я не нашла что бы мне помогло.
const
glas=['А','а','Е','е','О','о','И','и','У','у','Ы','ы','Э','э','Я','я','Ю','ю'];
var
Mas : array [1..20] of integer;
ch:char;
i,k:integer;
s:string;
begin
{инициализация массива}
{цикл по тесту}
...
{получаем в s 1 слово}
k:=0;
for i:=1 to length(s) do
begin
ch:=s[i];
if (ch in glas) then k:=K+1;
end;
a[k]:=a[k]+1;
{конец цикла}
{вывод}
end;
count := 0;(чтобы не мучить себя обработкой конца строки - ты ж уверена, что слова разбиваются ТОЛЬКО пробелами, значит, признака конца строки, например, точки, не будет - к исходной строке допиши справа один пробел)
for i := 1 to length(s) do begin
if s[ i ] in glas then inc(count)
else
if s[ i ] = ' ' then begin
inc(mas[count]);
count := 0;
end
end;
{ mas заполнен, количество слов с I слогами хранится в mas[ i ] }
count := 0;
for i := 1 to length(s) do
begin
if s[ i ] in glas then inc(count)
else
if s[ i ] = ' ' then
begin
inc(mas[count]);
count := 0;
end
if i=length(s) then inc(mas[count]);
end;
array [1..20] of integer;видаст ошибку ...
array [0..20] of integer;
const
size = 20;
glas = ['А', 'а', 'Е', 'е', 'О', 'о', 'И', 'и', 'У', 'у', 'Ы', 'ы', 'Э', 'э', 'Я', 'я', 'Ю', 'ю'];
var
s: string;
i, count: integer;
is_space: boolean;
mas: array[0 .. size] of integer;
begin
s := 'Хм кучаТрупов вопрос на засыпку в этом предложении ';
count := 0; is_space := true;
for i := 1 to length(s) do begin
if s[i] = ' ' then begin
if not is_space then inc(mas[count]);
count := 0; is_space := true;
end
else begin
is_space := false;
if s[i] in glas then inc(count);
end
end;
for i := 0 to size do
if mas[i] > 0 then writeln('Слогов: ', i, ' -> слов: ', mas[i]);
end.
if mas[i] > 0 then ...