ПАСКАЛЬ: ОБРОБКА ТЕКСТІВ
Зауважимо, що сума чисел у тексті може бути непредставною навіть у типі real, хоча їх середнє не більше максимального з них. Середнє арифметичне варто обчислювати інакше.
Отже, замість оператора A:=A+x у циклі напишемо оператор
A:=(n-1)/n*A+x/n,
що виконується за n>0, і вилучимо оператор if n>0 then A:=A/n.
Задачі
3.* Яких значень набудуть дійсні змінні a, b, c, d і який символ стане доступним після виконання викликів
а) read(f, a, b, c, d),
б) readln(f, a, b); read(f, c, d),
в) readln(f, a, b); readln(f, c); readln(f, d),
якщо з доступного символу в тексті починається послідовність
1[13][10] -2.9 +13[13][10]2000 777[13][10][26]
4.* Написати програму підрахунку кількості рядків у тексті.
5.* Результат лижника в перегонах задається трійкою цілих у одному рядку тексту: його стартовим номером та кількістю хвилин і секунд. Кількість рядків із результатами необмежена. Після кожного результату треба вивести на екран поточну десятку найкращих (якщо результатів менше, то подати наявні).
6. Є два тексти, у кожному рядку яких записано натуральне число, і послідовності цих чисел неспадні. Записати в третій текст неспадну послідовність чисел, що є результатом злиття двох заданих. Числа у вихідному тексті вивести по 10 на рядок (останній рядок може бути неповним). Наприклад, за заданих послідовностей (2, 2, 4, 6), (1, 3, 6, 7) у текстах створюється послідовність (1, 2, 2, 3, 4, 6, 6, 7).
4. Особливості читання символів і рядків із тексту
При виконанні виклику read(f, X) за змінної X типу char їй присвоюється доступний символ тексту, яким би він не був, а доступним стає наступний за ним. Виключенням є випадок, коли доступний кінець файла: значенням X стає символ chr(26), і він же залишається доступним. Отже, при читанні символів пропуски, табуляції та кінці рядків обробляються так само, як і всі інші символи.
Приклад. Розглянемо виконання такої програми:
program eofad;
const eo=chr(26);
var f : text; ch : char;
begin
assign(f, 'eofad.dat'); rewrite(f);