S
spezzA
В тексте все слова, начинающиеся с гласной буквы, переписать в обратном порядке.
Из слов с нечетным количеством букв удалить среднюю букву. Определить количество предложений в тексте.
объясните пожалуйста что такое f и как она работает в задаче.
Из слов с нечетным количеством букв удалить среднюю букву. Определить количество предложений в тексте.
объясните пожалуйста что такое f и как она работает в задаче.
Код:
uses
crt;
var
text: string;
delim: set of char;
glas: set of char;
SenDelim: set of char;
i, j: integer;
f: boolean;
start: integer;
kol: integer;
c: char;
sentence: integer;
begin
clrscr;
SenDelim:= ['.', '!', '?'];
delim:= [',', ' ', '"', ':', '-', '_']+SenDelim;
glas:= ['A', 'E', 'Y', 'U', 'I', 'O', 'a', 'e', 'y', 'u', 'i', 'o'];
writeln('Vvedite text:');
readln(text);
writeln(text);
writeln;
text:= text+'.';
f:= false;
sentence:= 0;
start:= 0;
kol:= 0;
i:= 1;
while i<= length(text) do
begin
if text[i] in SenDelim then
sentence:= sentence+1;
if not (text[i] in delim) then
begin
if f then
begin
kol:= kol+1;
end else
begin
kol:= 1;
start:= i;
f:= true;
end;
end else
begin
if f then
begin
f:= false;
if text[start] in glas then
begin
for j:= start to (kol+2*start)div 2 -1 do
begin
c:= text[j];
text[j]:= text[2*start+kol-j-1];
text[2*start+kol-j-1]:= c;
end;
end;
if odd(kol) then
begin
delete(text, (kol+2*start) div 2, 1);
i:= i-1;
end;
end;
end;
i:= i+1;
end;
delete(text, length(text), 1);
writeln('Kol-vo predlojeni: ', sentence);
writeln(text);
readkey;
end.