02.04.2021, 14:50
|
Прохожий
|
|
Регистрация: 17.03.2021
Сообщения: 41
Версия Delphi: Delphi 7
Репутация: 10
|
|
вывод падежа слов
Один из вариантов решения. Смотрим на предлог перед проверяемым словом и сравниваем с базой предлогов по падежам
Код:
var padez:array[1..7,1..11] of string;
s:string;
i,j:integer;
s1:string;
s2:string;
b:integer;
f:integer;
flag:boolean;
slovo:array[0..65535] of integer;
a:integer;
begin
s:=' '+s;
s:=s+' ';
a:=0;
for I := 1 to length(s) do if (s[i]=' ')and(s[i+1]<>' ') then begin slovo[a]:=i; a:=a+1; end;
for I := 0 to a do
begin
s1:=copy(s,slovo[i]+1,slovo[i+1]-1);
s2:=copy(s,slovo[i-1]+1,slovo[i]-1);
flag:=false;
for f := 2 to 7 do
for b := 2 to 11 do if padez[f,b]=s2 then begin flag:=true; break; end;
if flag=true then writeln('Падеж слова '+s1+' '+padez[f,1]) else writeln('Падеж слова '+s1+' '+padez[1,1]);
end;
end;
|