Обробка текстів, Детальна інформація
Обробка текстів
while not eof(f) do
begin
read(f, v);
обробка значення змінної v
end.
З виклику eof(f) повертається значення true, якщо доступним є кінець файла. За такої організації читання слід забезпечити, щоб між останньою числовою сталою та кінцем файла не було порожніх символів. Якщо цього не зробити, то в системі Турбо Паскаль буде прочитано зайве нульове значення.
Якщо файл порожній, то перше ж виконання виклику eof(f) породжує true, і тіло циклу не виконується жодного разу. Змінна v залишається зі старим значенням. А якщо значення їй не було присвоєно, то можливі непередбачувані помилки.
Звернімо увагу, що читання в циклі відбувається після того, як із виклику функції eof повернулося значення false, тобто кожному читанню передує перевірка, чи не є файл прочитаним. Ми радимо завжди записувати програми так, що при їх виконанні спочатку перевіряється, що з файла можна читати, і лише тоді читається.
Приклад 3. У тексті записано дійсні числа, розділені порожніми символами. Обчислити їх середнє арифметичне.
Кількість чисел нічим не обмежена, тому скористаємося циклом із перевіркою ознаки кінця тексту. За порожнього тексту друкується 0:
n:=0; A:=0;
while not eof(f) do
begin
read(f, x); n:=n+1;
A:=A+x; {}
end;
if n>0 then A:=A/n;
writeln(A).
Зауважимо, що сума чисел у тексті може бути непредставною навіть у типі real, хоча їх середнє не більше максимального з них. Середнє арифметичне варто обчислювати інакше. Помітимо, що
Отже, замість оператора A:=A+x у циклі напишемо оператор
A:=(n-1)/n*A+x/n,
що виконується за n>0, і вилучимо оператор if n>0 then A:=A/n.\xF0E7
4. Особливості читання символів і рядків із тексту
При виконанні виклику read(f, X) за змінної X типу char їй присвоюється доступний символ тексту, яким би він не був, а доступним стає наступний за ним. Виключенням є випадок, коли доступний кінець файла: значенням X стає символ chr(26), і він же залишається доступним. Отже, при читанні символів пропуски, табуляції та кінці рядків обробляються так само, як і всі інші символи.
Приклад. Розглянемо виконання такої програми:
program eofad;
const eo=chr(26);
var f : text; ch : char;
begin
begin
read(f, v);
обробка значення змінної v
end.
З виклику eof(f) повертається значення true, якщо доступним є кінець файла. За такої організації читання слід забезпечити, щоб між останньою числовою сталою та кінцем файла не було порожніх символів. Якщо цього не зробити, то в системі Турбо Паскаль буде прочитано зайве нульове значення.
Якщо файл порожній, то перше ж виконання виклику eof(f) породжує true, і тіло циклу не виконується жодного разу. Змінна v залишається зі старим значенням. А якщо значення їй не було присвоєно, то можливі непередбачувані помилки.
Звернімо увагу, що читання в циклі відбувається після того, як із виклику функції eof повернулося значення false, тобто кожному читанню передує перевірка, чи не є файл прочитаним. Ми радимо завжди записувати програми так, що при їх виконанні спочатку перевіряється, що з файла можна читати, і лише тоді читається.
Приклад 3. У тексті записано дійсні числа, розділені порожніми символами. Обчислити їх середнє арифметичне.
Кількість чисел нічим не обмежена, тому скористаємося циклом із перевіркою ознаки кінця тексту. За порожнього тексту друкується 0:
n:=0; A:=0;
while not eof(f) do
begin
read(f, x); n:=n+1;
A:=A+x; {}
end;
if n>0 then A:=A/n;
writeln(A).
Зауважимо, що сума чисел у тексті може бути непредставною навіть у типі real, хоча їх середнє не більше максимального з них. Середнє арифметичне варто обчислювати інакше. Помітимо, що
Отже, замість оператора A:=A+x у циклі напишемо оператор
A:=(n-1)/n*A+x/n,
що виконується за n>0, і вилучимо оператор if n>0 then A:=A/n.\xF0E7
4. Особливості читання символів і рядків із тексту
При виконанні виклику read(f, X) за змінної X типу char їй присвоюється доступний символ тексту, яким би він не був, а доступним стає наступний за ним. Виключенням є випадок, коли доступний кінець файла: значенням X стає символ chr(26), і він же залишається доступним. Отже, при читанні символів пропуски, табуляції та кінці рядків обробляються так само, як і всі інші символи.
Приклад. Розглянемо виконання такої програми:
program eofad;
const eo=chr(26);
var f : text; ch : char;
begin
The online video editor trusted by teams to make professional video in
minutes
© Referats, Inc · All rights reserved 2021