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

4.3. Реализация базовых функций интерфейса по вводу и выводу данных в Паскале

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

В каждом языке для выполнения этих действий есть отдельные процедуры. В Паскале это операторы read и readln (ввод данных) и write и writeln (вывод). Окончание ln в них означает, что после выполнения их действий происходит перевод указателя на новую строку. Без него все действия продолжаются в текущей строке.

Ввод данных. Данные в программу можно ввести с клавиатуры или файла. Стандартным устройством ввода (по умолчанию) является клавиатура. В MS-DOS реализуется асинхронный буферизованный ввод с клавиатуры, при котором вначале. коды всех клавиш, нажимаемых пользователем, попадают в накопитель, называемый буфером клавиатуры. Стандартная его длина рассчитана на хранение до 16 кодов символов и если программа долго не производит выборку из него, а пользователь нажимает клавиши, буфер может оказаться переполненным, что приводит к потере «лишних» кодов.

Чтение из буфера обеспечивается процедурами read и readln, а также функцией ReadKey из библиотеки CRT. Оператор ReadLn(A1,A2,...AK)производит считывание К значений исходных данных (список ввода), вводимых с клавиатуры и отображаемых на экране монитора (это называют эхо-повтором). Компиллятор присваивает эти значения переменным А1, А2, ..., АК, переводя их из внешней формы представления во внутреннюю, определяемую типом переменных (который должен быть определен в программе заранее).

Процедура ввода при помощи операторов read и readln может быть использована для ввода одиночных величин следующих типов:

- целый,

- вещественный,

- символьный.

Чтение исходных данных логического типа в языке Паскаль недопустимо.

Значения исходных данных могут отделяться друг от друга пробелами и нажатием клавиш табуляции и Enter. Разделение вводимых чисел запятыми не допускается.

Вывод данных. Вывести данные можно на экран монитора, в файл, на принтер. По умолчанию вывод производится на монитор. Оператор WriteLn(A1,A2,...AK)производит вывод значений параметров А1, А2,...,АК, составляющих список вывода, в строку экрана посимвольно, начиная с текущей позиции курсора с последующим переходом к началу следующей экранной строки. При выводе значения величин переводятся из внутреннего представления во внешнее, предназначенное для пользователя. Если процедура WriteLn используется без параметров, то она просто выполняет переход к началу следующей строки.

В качестве параметров списка вывода А1, А2,...,АК могут выступать все стандартные типы одиночных величин (целые, логические, символьные, вещественные), а также строки и выражения. Строка выдается в виде последовательности подряд стоящих символов. В выражение подставляются значения всех входящих констант и переменных и выводится получаемый результат.

Форма представления значений в поле вывода соответствует типу переменных и выражений: величины целого типа выводятся как целые десятичные числа, действительного типа - как действительные десятичные числа с десятичным порядком, символьного типа и строки - в виде символов, логического типа - в виде логических констант TRUE и FALSE.

Операторы вывода позволяют задать ширину поля вывода для каждого элемента его списка (форматированный вывод). В этом случае элемент списка вывода имеет вид А:К, где А - выражение или строка, К - выражение либо константа целого типа. Если выводимое значение занимает в поле вывода меньше позиций, чем К, то перед этим значением располагаются пробелы. Для величин действительного типа элемент списка вывода может иметь вид А:К:М, где А - переменная или выражение действительного типа, К - ширина поля вывода, М - число цифр дробной части выводимого значения. К и М - выражения или константы целого типа. В этом случае действительные значения выводятся в форме десятичного числа с фиксированной точкой. Увеличение размеров полей для выводимых величин обычно используется для повышения их точности, уменьшение - для более компактного представления величин в одной строке.

Вывод вспомогательных строковых величин обычно используется для пояснения смысла вводимых величин. Рассмотрим примеры записи операторов ввода и вывода для одиночных величин:

var A, B: Real;

n, i:Integer;

R, S: Boolean;

chT, chV, chU, chW: Char;

begin

Write("Vvedite chislo elementov n="); ReadLn(n);

Write("Vvedite znachenie peremennoi A="); ReadLn(A);

chT="Znachenie index i=";

WriteLn(chT, i:8);

WriteLn("Znachenie A= ",A," Znachenie B= ", B:10:2);

WriteLn(R, S:8);

end.

Ввод и вывод структурированных величин будет рассмотрен отдельно.

Вопросы для проверки знаний.

1. Назовите операторы ввода в языке Паскаль.

2. Назовите операторы вывода в языке Паскаль.

3. В чем отличие пар операторов read, readln и write, writeln?

4. В чем заключается асинхронный буферизованный ввод с клавиатуры ?

5. Что называют эхо-повтором при вводе с клавиатуры ?

6. Можно ли с помощью оператора readln ввести с клавиатуры величину:

а) символьную, б) целую, в) логическую?

7. Можно ли с помощью оператора write вывести на экран величину:

а) символьную, б) целую, в) логическую?

8. В чем заключается форматированный вывод и в каких случаях его применяют ?

Практические задания.

1. Разработать список вывода, обеспечивающий при использовании оператора Write вывод на экран для двух любых чисел a и b сообщения смешанного вида (содержащего числа и строковые величины): ”a x b = a b. Например, для заданных чисел 4 и 7 должно быть получено сообщение 4 x 7 = 28.

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