что такое F (turbo Pascal)

  • Автор темы spezzA
  • Дата начала
S

spezzA

#1
В тексте все слова, начинающиеся с гласной буквы, переписать в обратном порядке.
Из слов с нечетным количеством букв удалить среднюю букву. Определить количество предложений в тексте.


объясните пожалуйста что такое 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.
 

nayke

Well-known member
04.08.2010
310
0
#2
В тексте все слова, начинающиеся с гласной буквы, переписать в обратном порядке.
Из слов с нечетным количеством букв удалить среднюю букву. Определить количество предложений в тексте.


объясните пожалуйста что такое f и как она работает в задаче.
Насколько я понимаю F указывает на начало нового слова, после нахождения разделителя выставляется в true после обработки первой буквы в false - в итоге буквы не являющиеся первыми в слове на гласность не проверяются. Вроде так.