Сторінка
2
1 | . | 1 | 2 | 4 | 1 | . | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 0 | 0 | 0 | 0 | 0 | E | - | 0 | 0 | 0 | 1 |
1 | 2 | 3 | - | 1 | . | 2 | E | + | 0 | 0 | 0 | 4 | [13] | [10] |
program creatext ( input, output ); var f:text; s: string;
begin assign(f, 'myfile.txt'); rewrite(f); writeln ( 'Наберіть символи рядка й натисніть Enter:' );
while not eof ( input ) do begin
readln( s ); writeln (f, s ); writeln ( ' Наберіть символи рядка й натисніть Enter:' );
end;
close(f)
end. Для задання кінця тексту на клавіатурі треба замість набирання чергового рядка натиснути на Ctrl-Z. І не забути про Enter. Зазначимо, що при закриванні тексту за процедурою close до нього додається символ кінця chr(26). Задачі 1. Переробити програму з прикладу 14.2 так, щоб спочатку з клавіатури задавалося ім’ я створюваного файла. 2. Створити текст із табличкою степенів числа 2 від 1 до а) 30 (скористатися змінними типу Longint); б) 63 (скористатися змінними типу Compound).
3. Читання числових сталих із тексту Тут ми розглянемо читання з тексту лише числових сталих, оскільки символи та рядки читаються зовсім інакше. Для читання числових сталих зручно скористатися процедурою READ – її виконання в разі читання текстів цілком відрізняється від читання типізованих файлів. Її виклик, як і для читання типізованих файлів, має вигляд read(f, список-імен-змінних), де f – ім’ я тексту, а змінні мають числові типи. Для безпомилкового виконання виклику файл повинен містити послідовність сталих, типи яких відповідають типам змінних списку. Ціла стала – це послідовність цифр, можливо, зі знаком '+' чи '-' на початку, яка задає ціле число з носія відповідного цілого типу, причому між знаком та першою цифрою в тексті не може бути пропусків. Дійсна стала – це послідовність цифр та інших символів із структурою сталих мови Паскаль, наприклад, 1.1, 2., .99, 1e-3, -2.73E+02. Кожна ціла стала також може розглядатися як дійсна. Числові сталі в текстах відокремлюються пропусками в довільній кількості. Символи табуляції та кінця рядка також будемо називати пропусками. Виклик read(f, X) за цілого чи дійсного x виконується так. З тексту читаються пропуски, а за ними символи сталої до найближчого пропуска. Доступним після читання сталої буде перший пропуск за нею. Якщо символи справді утворюють сталу відповідного типу, то за ними обчислюється значення й присвоюється змінній. За дійсного X у тексті може бути й ціла стала – за нею обчислюється відповідне дійсне значення. Наприклад, за цілою сталою 99 дійсне значення 99.0. Символи можуть не утворювати сталої відповідного типу – тоді виникає помилкова ситуація й виконання програми аварійно завершується. Наприклад, помилковими є послідовності символів - 2 (тут пропуск між знаком і цифрою), 12345m або 123- (присутні нецифрові символи там, де їх не може бути), або 13., коли читається значення цілої змінної. Зазначимо, що системи програмування забезпечують засоби обробки помилкових ситуацій та запобігання аварійного закінчення. Але ми цього тут не висвітлюємо. Система програмування Турбо Паскаль має таку особливість. Якщо доступний кінець файла, то спроба читати число не завершується аварійно, а відповідна змінна набуває значення 0! Читання сталих базових типів за процедурою READLN аналогічне процедурі read. Відмінність її в тім, що після читання останньої сталої всі символи тексту, що залишилися до найближчого eol, пропускаються разом із ним. Доступним стає перший символ наступного рядка тексту. Список імен змінних може бути порожнім; у такому разі виклик readln(f) задає пропуск, тобто читання без зберігання, поточного рядка тексту. Приклад. У тексті записано такі символи:
1 | 2 | 3 | [13] | [10] | ||
5 | 5 | [26] |