
- •4. Составной Оператор. Понятия функции и процедуры. Пользовательский интерфейс, Структура программ на языке Паскаль
- •4.1. Составной оператор, понятия функции и процедуры в языке Паскаль
- •4.2. Понятие интерфейса пользователя. Средства создания текстового пользовательского интерфейса в Паскале
- •4.3. Реализация базовых функций интерфейса по вводу и выводу данных в Паскале
- •4.4. Использование библиотеки crt для создания текстового пользовательского интерфейса
- •Рассмотрим выполнение отдельных функций по работе с текстовым экраном при помощи подпрограмм из библиотеки crt.
- •Процедуры работы со звуком.
- •Процедура ожидания.
- •4.5. Общая структура программы на Паскале. Комментарии
- •4.6. Содержание подразделов в разделе описаний
- •4.7. Простейшие программы на языке Паскаль для обработки данных простых типов. Основная задача программы и ее интерфейс
- •III. Тело алгоритма.
- •5. ОРганизация ветвлений
- •5.1. Полный и сокращенный оператор if
- •If условие then оператор 1 else оператор 2;
- •If условие then оператор 1;
- •5.2. Полный и сокращенный оператор case
- •5.3. Оператор безусловного перехода goto. Пример программы с использованием ветвления
- •Календарный план семинаров (18 семинаров - 36 час)
- •Указатели в Паскале. Динамическая память на языке Паскаль
- •Ссылочные типы. Указатели в Паскале
- •Операции с указателями
- •Процедуры и функции для работы с указателями и адресами в Паскале
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”.