Ввод данных — это передача информации от внешних устройств в оперативную память. Вводятся, как правило, исходные данные решаемой задачи. Вывод — обратный процесс, когда данные передаются из оперативной памяти на внешние носители (принтер, дисплей, магнитные устройства и т.д.). Результаты решения всякой задачи должны быть выведены на один из этих носителей.
Основными устройствами ввода-вывода у персонального компьютера являются клавиатура и дисплей (экран монитора). Именно через эти устройства главным образом осуществляется диалог между человеком и ПК.
Процедура ввода с клавиатуры имеет следующий формат:
Read(<список ввода>)
где <список ввода> — это последовательность имен переменных, разделенных запятыми. Слово read переводится как читать. (Точнее говоря, Read — это оператор обращения к стандартной процедуре ввода.)
Например,
Read(a,b,c,d)
При выполнении этого оператора происходит прерывание работы компьютера, после чего пользователь должен набрать на клавиатуре значения переменных а, Ь, с, d, отделяя их друг от друга пробелами. При этом вводимые значения высвечиваются на экране. В конце нажимают клавишу Enter. Значения должны вводиться в строгом соответствии с синтаксисом Паскаля.
Пример:
Var T: Real;
J: Integer;
К: Char; Begin
Read(T,J,К);
Набираем на клавиатуре:
253.98 100 G (Enter)
Если в программе имеется несколько операторов Read, то данные для них вводятся потоком, т. е. после считывания значений переменных для одного оператора Read данные для следующего оператора читаются из той же строки на экране, что и для предыдущего до окончания строки, затем происходит переход на следующую строку.
Пример:
Var А,В: Integer;
C,D: Real; Begin
Read(А,В);
Read(С,D);
Набираем на клавиатуре:
18758 34 (Enter) 2.62E-02 1.54E+01 (Enter)
Другой вариант оператора ввода с клавиатуры имеет вид:
ReadLn(<список ввода>)
Здесь слово ReadLn означает read line — читать строку. Этот оператор отличается от Read только тем, что после считывания последнего в списке значения для одного оператора ReadLn данные для следующего оператора будут считываться с начала новой строки. Если в предыдущем примере заменить операторы Read на ReadLn:
ReadLn(А,В);
ReadLn(C,D);
то ввод значений будет происходить из двух строк:
18758 34 (Enter) 2.62E-02 1.54E+01 (Enter)
Оператор вывода на экран (обращение к стандартной процедуре вывода) имеет следующий формат:
Write(<список вывода>)
Здесь элементами списка вывода могут быть выражения различных типов (в частности, константы и переменные).
Пример:
Write (234); {выводится целая константа}
Write(A+B—2); {выводится результат вычисления выражения}
Write(X,Summa,Argl,Arg2); {выводятся значения переменных}
При выводе на экран нескольких чисел в строку они не отделяются друг от друга пробелами. Программист сам должен позаботиться о таком разделении. Пусть, например, / = 1; /= 2; К= 3. Тогда, написав в программе
Write(I,'',J,'',К);
получим на экране строку: 12 3. После вывода последнего символа курсор остается в той же строке. Следующий вывод на экран будет начинаться с этой позиции курсора. Второй вариант процедуры вывода на экран:
WriteLn(<список вывода>)
Слово WriteLn — write line — означает писать строку. Его действие отличается от оператора Write тем, что после вывода последнего в списке значения происходит перевод курсора к началу следующей строки. Оператор WriteLn, записанный без параметров, вызывает перевод строки.
Форматы вывода. В списке вывода могут присутствовать указатели форматов вывода (форматы). Формат определяет представление выводимого значения на экране. Он отделяется от соответствующего ему элемента двоеточием. Если указатель формата отсутствует, то машина выводит значение по определенному правилу, предусмотренному по умолчанию.
Ниже кратко, в справочной форме, приводятся правила и примеры бесформатного и форматированного вывода величин различных типов. Для представления списка вывода здесь будут использованы следующие обозначения:
/, Р, Q — целочисленные выражения;
R — выражение вещественного типа;
В — выражение булевского типа;
Ch — символьная величина;
S — строковое выражение;
# — цифра;
— знак «+» или «—»;
— пробел.