Обробка текстів, Детальна інформація

Обробка текстів
Тип документу: Реферат
Сторінок: 14
Предмет: Комп`ютерні науки
Автор: Олексій
Розмір: 30.9
Скачувань: 960
var s : string[80];

k : integer; emp : boolean;

begin

while not eof(f) do

begin

readln(f, s); k:=1; emp:=true;

while (k<= length(s)) and emp do

if s[k]<>' ' then emp:=false

else k:=k+1;

if not emp then writeln(g, s)

end

end;

\xF0E7

6. Посимвольне читання тексту

Приклад 6. У тексті з рядками необмеженої довжини записано слова в латинському алфавіті, довжина яких не перевищує 255. Слова відокремлюються пропусками в довільній кількості та з рядка на рядок не переносяться. Треба визначити кількість повторень першого слова в подальшому тексті.

Для розв’ язання задачі треба

прочитати перше слово (якщо воно взагалі є в тексті), а далі по одному читати слова й порівнювати їх із першим, за рівності збільшуючи значення лічильника.

Слово є лексичною одиницею, або лексемою тексту, тобто такою послідовністю, що має самостійне значення, тому функцію читання слова з тексту назвемо getlex (взяти лексему). Ось її заголовок:

function getlex(var f:text; var lex:string):boolean.

З її виклику повертається ознака наявності слова в частині тексту, прочитаній за її виклику. Слово зберігається як значення параметра-змінної lex (лексема), а коли його в решті тексту немає, значенням стає порожній рядок. Отже, нехай s1, s2 – рядки, nrep – лічильник повторень у такому алгоритмі:

nrep:=0;

if getlex(f, s1) then

begin

while getlex(f, s2) do

if s1=s2 then nrep:=nrep+1;

writeln(nrep)

end

else writeln('у тексті немає слів');

Щоб прочитати слово, треба

від поточного доступного символу прочитати пропуски та кінці рядків, що передують слову, та запам’ ятати його символи в рядковій змінній.

The online video editor trusted by teams to make professional video in minutes