Главная » Файлы » Для учня/студента » Інформатика [ Добавить материал ]

Процедура введення інформації науковий
14.07.2010, 16:28
Щоб ввести інформацію, необхідно викликати процедуру введення за допомогою такого оператора:

Read ( [ f : text ; ] v1 [, v2,...,vn ] );

Ввести ( [ f : ТекстовийФайл ; ] v1 [, v2,...,vn ] );

Параметр f (якщо він наявний) є файловою змінною, яка відповідає відкритому для читання текстовому файлу. Коли він пропущений, то процедура очікує введення даних з клавіатури. Кожний параметр v є змінною символьного, рядкового, цілого або дійсного типу. Повинна бути хоча б одна змінна, значення якої треба ввести.
У випадку символьного типу процедура Rеаd зчитує із файлу один символ і присвоює його змінній. Вказівник файлу переміщується на наступну позицію. Символ "кінець рядка" (Chr(13)) зчитується як звичайний символ. Коли поточна позиція у файлі вказує на символ "кінець файлу" або якщо файл не містить ніяких елементів, то видається повідомлення про помилку.
У випадку змінної цілого або дійсного типу процедура Rеаd зчитує з файлу послідовність символів, що утворять число, відповідно до синтаксису запису чисел. Вказівник файлу встановлюється на перший символ після числа. Якщо числовий рядок не відповідає синтаксису, то виводиться повідомлення про помилку. У протилежному випадку змінній присвоюється значення прочитаного числа.
У випадку змінної текстового типу процедура Rеаd зчитує усі символи, аж до мітки кінця рядка (але не включаючи її), або до кінця файлу. Змінній присвоюється прочитаний текстовий рядок. Якщо довжина цього рядка перевищує 255, то рядок урізається. Вказівник файлу залишається на мітці кінця рядка. Тому для зчитування послідовності рядків не можна використовувати послідовного звертання до процедури Rеаd, оскільки при цьому неможливо перейти далі першого рядка. Після першого звертання до процедури Rеаd наступні операції Rеаd будуть виявляти мітку кінця рядка і повертати рядок нульової довжини. Тому для зчитування послідовності рядків використовують процедуру RеаdLn, звертання до якої має вигляд:

ReadLn ( [ f : text ; ] v1 [, v2,...,vn ] );

ВвестиРяд ( [ f : ТекстовийФайл ; ] v1 [, v2,...,vn ] );

Процедура виконується аналогічно до Read, але після присвоєння значень всім елементам списку змінних встановлює вказівник файлу на початок наступного рядка, пропускаючи всю інформацію до кінця поточного рядка.
Виклик функції ReadLn(f) без списку змінних приводить до переміщення поточної позиції файлу на початок наступного рядка, якщо він є. У протилежному випадку відбувається перехід до кінця файлу. Запис ReadLn без параметрів очищує буфер введення з клавіатури, якщо в ньому були символи, або очікує натискання клавіші Enter.
Коли для роботи програми потрібно вводити багато інформації, то доцільно створити текстовий файл і вводити інформацію з нього, а не з клавіатури. Для відлагодження програми її доведеться виконувати багато разів і, коли нема файлу, щоразу вводити дані.
Наведемо приклад фрагменту програми, яка ілюструє ввід з текстового файлу:

Program апроксимація;
Var
ПочІнт, КінІнт : real;
КількТочок, ПорПолін, K : integer;
X, Y : array [1:10] of real;
Дані : text;
Begin
Assign( Дані, 'apr.dat' );
Reset( Дані );
ReadLn( Дані, ПочІнт );
ReadLn( Дані, КінІнт );
ReadLn( Дані, КількТочок );
ReadLn( Дані, ПорПолін );
for K:=1 to КількТочок do
ReadLn( Дані, X[K], Y[K] );
...........................

Для її роботи потрібно підготувати файл apr.dat, текст якого може бути, наприклад, таким:

0.5 початок інтервалу
7.35 кінець інтервалу
7 кількість точок
5 порядок поліному
0.83 7.28 значення X,Y
1.33 5.07
2.28 10.25
4.27 1.25e-3
4.83 -3.85
5.01 -2.57
7.07 1.586

Зверніть увагу, що процедура ReadLn ігнорує залишок рядка після вводу параметрів, які є у її списку. Ми використали це, щоб написати коментарі до чисел.

Категория: Інформатика | Добавил: Zet
Просмотров: 224 | Загрузок: 0 | Рейтинг: 0.0/0