Обробка текстів, Детальна інформація
Обробка текстів
out: case ch of
'(': q:=bgn
else write(g, ch)
end;
bgn: case ch of
'(': write(g, '(');
'*': q:=incm
else
begin
write(g, '(', ch); q:=out
end;
end;
incm: case ch of
'*': q:=bgend
end;
bgend: case ch of
'*': ;
')': q:=out
else q:=incm
end;
end; {case q of}
end; {while not eof(f) }
Як бачимо, виконання наведеного циклу відповідає описаній вище імітації діаграми. Оформлення програми залишаємо вправою.\xF0E7
7. Використання рядків для виведення в текст
Приклад 9. Редактор Word символом chr(13) задає розбиття текстів не на рядки, а на абзаци. З точки зору редактора ДОС або Турбо Паскаль такий абзац є рядком, причому, як правило, дуже довгим, і читати його незручно. Напишемо програму копіювання тексту з довгими рядками в текст із рядками довжини не більше ніж, наприклад, 80.
Уточнення. Пропуски, кінці рядків і символи табуляції будемо називати пропусками. Можна вважати, що послідовності символів, відмінних від пропусків, у тексті, тобто слова, мають довжину не більше 80. Слова в тексті відокремлюються пропусками в довільній кількості. У новому тексті між словами рядка повинен бути один пропуск, тобто текст має ущільнюватися.
У загальному вигляді розв’ язання задачі полягає в тім, що з тексту по одному "витягуються слова" й записуються в новий текст.
Якщо читання слова задати функцією getlex, яка повертає ознаку наявності слова, а запис слова – процедурою putlex, то головним у програмі буде цикл вигляду
while getlex do putlex.
Отже, прочитане слово треба записати в новий текст. Але замість цього запишемо його в допоміжний рядок довжини 80, який назвемо "рядок слів".
'(': q:=bgn
else write(g, ch)
end;
bgn: case ch of
'(': write(g, '(');
'*': q:=incm
else
begin
write(g, '(', ch); q:=out
end;
end;
incm: case ch of
'*': q:=bgend
end;
bgend: case ch of
'*': ;
')': q:=out
else q:=incm
end;
end; {case q of}
end; {while not eof(f) }
Як бачимо, виконання наведеного циклу відповідає описаній вище імітації діаграми. Оформлення програми залишаємо вправою.\xF0E7
7. Використання рядків для виведення в текст
Приклад 9. Редактор Word символом chr(13) задає розбиття текстів не на рядки, а на абзаци. З точки зору редактора ДОС або Турбо Паскаль такий абзац є рядком, причому, як правило, дуже довгим, і читати його незручно. Напишемо програму копіювання тексту з довгими рядками в текст із рядками довжини не більше ніж, наприклад, 80.
Уточнення. Пропуски, кінці рядків і символи табуляції будемо називати пропусками. Можна вважати, що послідовності символів, відмінних від пропусків, у тексті, тобто слова, мають довжину не більше 80. Слова в тексті відокремлюються пропусками в довільній кількості. У новому тексті між словами рядка повинен бути один пропуск, тобто текст має ущільнюватися.
У загальному вигляді розв’ язання задачі полягає в тім, що з тексту по одному "витягуються слова" й записуються в новий текст.
Якщо читання слова задати функцією getlex, яка повертає ознаку наявності слова, а запис слова – процедурою putlex, то головним у програмі буде цикл вигляду
while getlex do putlex.
Отже, прочитане слово треба записати в новий текст. Але замість цього запишемо його в допоміжний рядок довжини 80, який назвемо "рядок слів".
The online video editor trusted by teams to make professional video in
minutes
© Referats, Inc · All rights reserved 2021