Процедуры ввода-вывода.

Для выполнения операций ввода-вывода служат четыре процедуры: READ, READLN, WRITE, WRITELN. Примеры использования этих процедур приведены в этой главе и в ранее рассмотренных примерах 6, 7, 9,11.

Очистка экрана осуществляется командой CLRSCR и может выполняться только в текстовом режиме работы экрана.

Процедура чтения READ обеспечивает ввод числовых данных, символов, строк и т.д. для последующей их обработки программой и имеет формат:

READ([имя-файла,] переменная1, переменная2,…переменнаяN);

Здесь переменные – переменные допустимых типов данных, значения этих переменных набираются минимум через один пробел на клавиатуре и высвечиваются на экране. Набираемые значения должны соответствовать типам переменных. После набора данных для процедуры READ нажимается клавиша ENTER. Имя-файла – имя файла, откуда будет выполнятся чтение. Число переменных в списке может быть любым, разделяются переменные запятыми.

Процедура чтения READLN аналогична процедуре READ, имеет такой же формат, но после считывания последнего в списке значения для одной процедуры READLN данные для следующей процедуры будут считываться с начала новой строки.

Пример 12.При выполнении приведенных ниже операторов, после набора на клавиатуре значений А и В курсор автоматически перейдет на новую строку, где набирают значение переменной NOMER.

READLN(A,B);

READLN(NOMER);

Процедура записи WRITE производит вывод числовых данных, символов, строк и булевских значений и имеет формат:

WRITE([имя-файла,]переменная1, переменная2,…переменнаяN);

Имя-файла – имя файла, куда производится вывод. Для вывода на принтер имя-файла – LST, при выводе на экран дисплея этот параметр в команде отсутствует. Переменная – переменная типа INTEGER, BYTE, REAL, CHAR, BOOLEAN и т.д.

Процедура записи WRITELN производит вывод данных, но после последнего в списке значения для текущей процедуры WRITELN происходит перевод курсора к началу следующей строки. Процедура имеет формат аналогичный формату процедуры WRITE. Процедура WRITELN, записанная без параметров, вызывает перевод строки.

В процедурах WRITE и WRITELN имеется возможность записи выражения, определяющего ширину поля вывода. Переменные в процедурах WRITE или WRITELN могут записываться в одной из следующих форм:

1) имя-переменной

- если переменная целочисленного, символьного, строкового или булевского типа – выводится значение переменной, начиная с позиции расположения курсора, переменная вещественного типа выводится в десятичном представлении в поле шириной 18 символов в формате с плавающей точкой;

2) имя-переменной:m

- если переменная целочисленного, символьного, строкового или булевского типа – выводится значение переменной в крайние правые позиции поля шириной m символов, переменная вещественного типа выводится в десятичном представлении в крайние правые позиции поля шириной m символов в формате с плавающей точкой;

3) имя-переменной:m:n

- этот формат используется только для переменных вещественного типа, переменная выводится в крайние правые позиции поля шириной m символов в десятичном представлении в формате с фиксированной точкой, причем после десятичной точки выводится n цифр дробной части числа.

При задании формата вывода необходимо учитывать, что точка и знак – (минус) в случае отрицательного значения переменной занимают по одной позиции в записи переменной.

Примеры применения процедуры вывода с использованием форматов приведены в таблице 2.3.

 

 

Таблица 2.3. Примеры форматов вывода.

Значение переменной V Тип переменной Процедура вывода Результат
целочисленная WRITE(V)
целочисленная WRITE(V:5) __134
715.43 вещественная WRITE(V) __7.1543000000E+02
715.43 вещественная WRITE(V:11) 7.15430E+02
715.43 вещественная WRITE(V:6:2) 715.43
‘mashina’ символьная WRITE(V) mashina
‘mashina’ символьная WRITE(V:11) ____machina
‘day n’ строковая WRITE(V) day n
‘day n’ строковая WRITE(V:6) _day n
true булевская WRITE(V) true
true булевская WRITE(V:6) __true

Пример 13. Печать матрицы.

FOR I:=1 TO 6 DO BEGIN

FOR J:=1 TO 6 DO BEGIN

{задание и печать элемента матрицы}

A[I,J]:=RANDOM(50);

WRITE(A[I,J]:6);

END;

WRITELN; {перевод курсора на следующую строку}

END;

 

Работа с файлами.

Как уже говорилось выше в пособии рассматривается работа только с текстовыми файлами. Для организации текстового файла прежде всего необходимо в разделе описаний объявить соответствующую файловую переменную оператором:

VAR имя файловой переменной: TEXT;

Далее в программе надо осуществить связывание файловой переменной с именем файла на диске процедурой ASSIGN:

ASSIGN (имя файловой переменной, имя файла на диске);

Далее файл необходимо открыть одной из следующих процедур:

REWRITE(имя файловой переменной);

RESET(имя файловой переменной);

APPEND(имя файловой переменной);

Процедура REWRITE открывает файл для чтения из него данных, RESET – для записи данных в файл, APPEND для дозаписи данных в файл.

Для обработки текстовых файлов используются процедура READ, READLN и WRITE, WRITELN, обеспечивающие соответственно чтение и запись величин в текстовый файл. Общий формат этих процедур при работе с текстовым файлом:

READ(имя файловой переменной; переменная1, переменная2,…переменнаяN);

WRITE(имя файловой переменной; переменная1, переменная2,…переменнаяN);

Процедура READ обеспечивает ввод данных общим потоком из одной строки, а READLN приводит к обязательному переходу к следующей строке текстового файла. Все вышесказанное в равной мере относится и к операциям записи с помощью процедур WRITE и WRITELN.

После работы с файлом его необходимо закрыть командой:

CLOSE(имя файловой переменной);

В Паскале для обработки признака конце файла используется логическая функция EOF, аргументом которой является имя файловой переменной и которая принимает значение истина тогда, когда достигнут конец файла.

Созданный файл с данными можно открыть в какой-либо программе, например в Excel, и работать там с ним.

Пример 14. Программа расчета функции y=sin(2x)/x и вывода значений х и y в файл REZULT.DAT на диске D: и на экран монитора.

PROGRAM RASCHET;

USES CRT;

VAR I:INTEGER;

Y,X:REAL;

FF:TEXT;

BEGIN

{установка связи файловой переменной FF с дисковым именем файла REZULT.DAT}

ASSIGN(FF,'D:\REZULT.DAT');

{открытие файла для записи в него данных}

REWRITE(FF);

CLRSCR;

X:=0.3;

FOR I:=1 TO 20 DO BEGIN

Y:=SIN(2*X)/X;

{вывод результатов в файл}

WRITELN(FF,' ',X:4:2,Y:8:3);

{вывод результатов на экран}

WRITE(' ',X:4:2,' ',Y:6:2);

X:=X+0.05;

END;

{закрытие файла}

CLOSE (FF);

END.








Дата добавления: 2017-01-29; просмотров: 1345;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.011 сек.