Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Konspekt_novyy (1).doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
388.1 Кб
Скачать

12. Организация ввода/вывода в языке turbo-pascal

В языке Turbo-Pascal ввод/вывод информации осуществляется через файловые переменные. Перед тем как осуществить ввод-вывод, файловая переменная работающей программы должна быть связана с конкретным внешним файлом на внешнем устройстве. Таким устройством может быть магнитный диск, клавиатура, дисплей, принтер и т.д. Этот файл должен быть открыт для чтения или записи, после этого можно осуществлять организацию ввода/вывода.

В языке Turbo-Pascal имеются две стандартные файловые переменные для текстовых файлов: Input и Output. Переменная input по умолчанию связана с клавиатурой, а переменная output - с экраном дисплея. Эти устройства автоматически открываются при запуске программы и автоматически закрываются после завершения программы.

Первая стандартная процедура ввода данных в программу с клавиатуры компьютера имеет вид:

Read(<список переменных>);

Например,

Read(x);

Read(x,y,z);

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

ReadLn(<список переменных>);

Например,

ReadLn(x);

ReadLn(x,y,z);

Отличие процедуры ReadLn от Read заключается в том, что во в ней непрочитанная часть строки (вместе с признаком конца строки) пропускается.

Первая стандартная процедура вывода результатов данных на экран имеет вид:

Write(<список переменных>);

Например,

Write(x);

Write(x,y,z);

После выполнения этих процедур на экран дисплея (в стандартный файл output) выводятся значения соответствующих переменных. Вторая стандартная процедура вывода результатов данных на экран имеет вид:

WriteLn(<список переменных>);

Например,

WriteLn(x);

WriteLn(x,y,z);

Отличие процедуры WriteLn от Write заключается в том, что после ее выполнения курсор переводится на первую позицию следующей строки. Процедура WriteLn без параметров осуществляет пропуск строки.

При выводе числовых результатов процедуры Write и WriteLn представляют их в бесформатной - экспоненциальной форме, что часто является неудобным, особенно при оформлении отчетов. Для задания формата значения переменной в процедурах вывода следует указать общее число позиций выводимого значения и число позиций, отводимое под его дробную часть. Например,

WriteLn(x:m:n);

Здесь m - число позиций всего числа, n - число позиций его дробной части. Для вывода текста на экран дисплея в процедурах Write и WriteLn используются строковые переменные и константы. Например,

Str:= 'Введите значения массива А';

WriteLn(Str);

Write('Вывод текста на экран дисплея');

В тех случаях, когда необходимо осуществить ввод данных в программу из хранимого на диске файла с именем Data, а вывод данных произвести также на диск во внешний файл с именем Result, то необходимо связать эти файлы с программными файловыми переменными D и R с помощью стандартной процедурой Assing. Например,

Assing(D, 'Data' );

Assing(R,'Result');

После этого процедуры ввода/вывода с внешнего носителя на внешний носитель принимают вид

Read(D,<список переменных>);

ReadLn(D,<список переменных>);

Write(R,<список переменных>);

WriteLn(R,<список переменных>);

При этом файлы D и R должны быть описаны в разделе описаний программы. Перед использованием внешних файлов Data и Result они должны быть открыты с помощью файловых переменных D и R и стандартных процедур: Reset(D) - открытие существующего файла Data и Rewrite(R) - открытие нового файла Result.

После выполнения программы внешние файлы Data и Result должны быть закрыты с помощью файловых переменных D и R и стандартной процедуры

Close(D);

Close(R);

Если D и R являются текстовыми файлами, то они описываются с помощью стандартного типа Text.

Var D, R: Text;

Пример.

Дано 100 действительных чисел a[i] во внешнем файле Mass на диске. Вывести числа a[i] в обратном порядке и записать результат во внешний файл NewMass

Решение:

program revers; var i: integer;

a: array[1..100] of real; f: file of integer; g: text;

begin

assign(f,'mass'); reset(f);

for i:=1 to 100 do read(f,a[i]); assign(g,'newmass');

for i:=100 downto 1 do writeln(g,a[i]);

close(f);

close(g)

end.

Для открытия файла и добавления информации в его конец в Turbo-Pascal существует стандартная процедура Append(f).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]