Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

9. Ввод и вывод данных в Турбо Паскале

.doc
Скачиваний:
30
Добавлен:
13.04.2015
Размер:
52.22 Кб
Скачать

4

ВВОД И ВЫВОД ДАННЫХ В ТУРБО ПАСКАЛЕ

Любая программа производит обмен информацией между оперативной памятью и внешними устройствами, на которых расположены файлы с данными. В Паскале для ввода и вывода данных используются два текстовых файла с закрепленными именами Input и Output.

Файл ввода имеет имя Input. Он связан с физическим устройством – клавиатурой, то есть в него попадает информация, вводимая с клавиатуры. При этом происходит эхо-повтор, то есть вводимая информация повторяется на экране.

Файл вывода имеет имя Output и связан с физическим устройством - монитором. В этот файл выводится информация, указанная в программе, и сразу попадает на экран.

Ввод данных — это передача информации от внешних устройств в оперативную память. Вводятся, как правило, исходные данные решаемой задачи. Вывод — обратный процесс, когда данные передаются из оперативной памяти на внешние носители (принтер, дисплей, дисковые накопители и т.д.). Результаты решения всякой задачи должны быть выведены на один из этих носителей. Основными устройствами ввода-вывода у персонального компьютера являются клавиатура и дисплей (экран монитора). Именно через эти устройства главным образом осуществляется диалог между человеком и ПК.

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

Для ввода-вывода данных в Паскале используются специальные стандартные процедуры (операторы).

1. Операторы ввода

Ввод исходных данных с клавиатуры производится с помощью двух процедур (операторов): Read (переводится как «читать») и ReadLn (read line — читать строку). Они имеют следующий формат:

Read(<список ввода>)

ReadLn(<список ввода>)

где <список ввода> — это последовательность имен переменных, разделенных запятыми. Например, Read(a,b,c,d).

Переменные в списке ввода могут быть типов integer, real, char, string.

Дойдя до этих операторов в программе, ЭВМ останавливается. Появляется окно вывода результатов, и система ждет ввода данных. На клавиатуре набирают числа, отделяемые друг от друга пробелами, которые отражаются строкой на экране дисплея. После набора чисел нажимают на клавишу ввода Enter (лавишу Enter можно нажимать после каждого вводимого значения). Каждая переменная из списка получает свое значение в порядке следования. Данных с клавиатуры можно вводить больше, чем в списке. Невостребованные данные будут храниться в файле Input.

Между операторами существует различие:

  • оператор read заканчивает свое действие, когда все переменные списка получают свое значение. Те данные, которые были введены через пробел до нажатия клавиши Enter, могут быть использованы следующим оператором read или readln;

  • оператор readln, присвоив значения своим переменным, остальные (лишние введенные)значения пропускает, то есть следующим оператором read или readln они не используются.

В операторе readln список переменных может отсутствовать. В этом случае происходит задержка окна вывода результатов.

2. Операторы вывода

Вывод результатов на экран дисплея производится с помощью процедур Write («писать») и WriteLn (write line — писать в строку). Они имеют следующий формат:

Write(<список вывода>)

WriteLn(<список вывода>)

Здесь элементами списка вывода могут быть выражения различных типов (константы и переменные): integer, real, char, boolean, string. Объекты в списке вывода разделяются запятыми.

Пример:

Write (234); {выводится целая константа}

Write(A+B—2); {выводится результат вычисления выражения}

Write(X,Summa,Argl,Arg2); {выводятся значения переменных}

При выводе на экран нескольких чисел в строку они не отделяются друг от друга пробелами. Программист сам должен позаботиться о таком разделении. Пусть, например, I=1; J=2; К=3. Тогда, написав в программе

Write (I,’ ‘,J,’ ‘,К);

получим на экране строку: 1 2 3 (через пробелы).

Оператор write выводит значения объектов на экран и оставляет курсор на строке, в которой выведено последнее значение. Следующие операторы write или writeln выводят свои значения в этой же строке.

Оператор writeln после вывода последнего в списке значения переводит курсор к началу следующей строки.

Оператор WriteLn, записанный без параметров (то есть без списка вывода), вызывает переход на новую строку.

Форматы вывода. В списке вывода могут присутствовать указатели форматов вывода (форматы). Формат определяет представление выводимого значения на экране. Он отделяется от соответствующего ему элемента двоеточием. Формат имеет вид:

E:m

или

E:m:n,

где E – объект, значение которого нужно вывести на экран,

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

n – количество дробных цифр (количество цифр в дробной части).

Конструкция E:m:n используется только для данных типа real, для остальных – конструкция E:m.

Пример:

Значение переменной

Оператор

Вид на экране

i=3

Write(i)

3

i=3

Write(i:4)

_ _ _ 3

i=15

Write(i:4)

_ _ 15

x=5, y=335

Write(x:5,y:4)

_ _ _ _ 5 _ 335

x=-5, y=-335

Write(x:5,y:4)

_ _ _ -5-335

x=1, y=3, x=4

Write((x:5,y:5,z:5)

_ _ _ _ 1 _ _ _ _ 3 _ _ _ _ 4

Если указатель формата отсутствует, то машина выводит значение по определенному правилу, предусмотренному по умолчанию.

3. Управление символьным выводом на экран

Дополнительные возможности управления выводом на экран дают процедуры и функции модуля CRT.

Для установления связи пользовательской программы с модулем перед разделами описаний должна быть поставлена строка

Uses CRT

Процедура ClrScr производит очистку экрана.

Весьма полезной является функция KeyPressed из модуля CRT. При исполнении этой функции происходит опрос клавиатуры и определяется, не нажата ли какая-нибудь клавиша. В результате функция выдает логическое значение True, если нажата любая клавиша, и значение False в противном случае. Часто эту функцию используют для организации задержки окна результатов на экране (после выполнения программы Турбо Паскаль вызывает на экран окно редактора). Перед концом программы записывается следующий оператор:

Repeat Until KeyPressed;

Это пустой цикл, который «крутится на месте» до нажатия какой-либо клавиши. В это время на экране окно результатов. После нажатия на клавишу значение KeyPressed станет равно True, цикл завершится, будет выполнен переход на метку End и на экран вернется окно редактора. Этот прием можно использовать для задержки выполнения программы в любом ее месте.

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