Обробка текстів, Детальна інформація
Обробка текстів
Для визначення, чи є символ латинською літерою, скористаємося функцією isletter:
function isletter(c : char) : boolean;
begin
isletter := ('a'
end;
Запишемо функцію getlex. Коли під час її виклику завершується виконання першого циклу, можуть бути істинними обидві умови, eof(f) та isletter(ch). Це можливо, якщо останній символ тексту є водночас першою літерою слова. У цьому разі символ дописується до порожнього слова.
function getlex(var f : text; var lex : string) : boolean;
var ch : char; isl : boolean;
begin
ch:=' '; lex:=''; getlex:=false;
while not eof(f) and not isletter(ch) do
read(f, ch);
{eof(f) or isletter(ch)}
if isletter(ch) then
begin {створення рядка-лексеми}
getlex:=true; lex:=lex+ch; isl:=true;
while not eof(f) and isl do
begin
read(f,ch);
if isletter(ch) then lex:=lex+ch
else isl:=false
end;
{eof(f) or not isl}
end;
end;
Тіло складеного оператора, що задає створення рядка-лексеми й виконується після того, як умова isletter(ch) стає істинною, можна записати за допомогою оператора repeat-until:
getlex:=true; isl:=true;
repeat
lex:=lex+ch;
if not eof(f) then
function isletter(c : char) : boolean;
begin
isletter := ('a'
end;
Запишемо функцію getlex. Коли під час її виклику завершується виконання першого циклу, можуть бути істинними обидві умови, eof(f) та isletter(ch). Це можливо, якщо останній символ тексту є водночас першою літерою слова. У цьому разі символ дописується до порожнього слова.
function getlex(var f : text; var lex : string) : boolean;
var ch : char; isl : boolean;
begin
ch:=' '; lex:=''; getlex:=false;
while not eof(f) and not isletter(ch) do
read(f, ch);
{eof(f) or isletter(ch)}
if isletter(ch) then
begin {створення рядка-лексеми}
getlex:=true; lex:=lex+ch; isl:=true;
while not eof(f) and isl do
begin
read(f,ch);
if isletter(ch) then lex:=lex+ch
else isl:=false
end;
{eof(f) or not isl}
end;
end;
Тіло складеного оператора, що задає створення рядка-лексеми й виконується після того, як умова isletter(ch) стає істинною, можна записати за допомогою оператора repeat-until:
getlex:=true; isl:=true;
repeat
lex:=lex+ch;
if not eof(f) then
The online video editor trusted by teams to make professional video in
minutes
© Referats, Inc · All rights reserved 2021