Информатика и ИКТ
9 класс

       

§ 4.2. Организация ввода и вывода данных

Ключевые слова:

  • оператор вывода writer
  • формат вывода
  • оператор ввода read

4.2.1. Вывод данных

В предыдущем параграфе мы познакомились со структурой программы на языке Паскаль, научились описывать данные, рассмотрели оператор присваивания. Этого достаточно для того, чтобы записать программу преобразования данных. Но результат этих преобразований нам виден не будет.

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

Здесь в круглых скобках помещается список вывода — список выражений, значения которых выводятся на печать. Это могут быть числовые, символьные и логические выражения, в том числе переменные и константы.

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

Пример. Оператор write ('s=' , s) выполняется так:

  1. на экран выводятся символы, заключенные в апострофы: s=
  2. на экран выводится значение переменной, хранящееся в ячейке оперативной памяти с именем s.

Если значение переменной s равно 15 и она имеет целочисленный тип, то на экране появится: s=15.

Если значение переменной s равно 15, но она имеет вещественный тип, то на экране появится: s=l.5Е+01.

При выполнении оператора вывода все элементы списка вывода печатаются непосредственно друг за другом. Так, в результате работы оператора write (1, 20, 300) на экран будет выведена последовательность цифр 120300, которая будет восприниматься нами как число 120300, а не как три отдельные числовые константы. Сделать выводимые данные более доступными для восприятия можно разными способами:

Формат вывода — это указываемое после двоеточия целое число, определяющее, сколько позиций на экране должна занимать выводимая величина. Если цифр в числе меньше, чем зарезервированных под него позиций на экране, то свободные позиции дополняются пробелами слева от числа. Если указанное в формате вывода после двоеточия число меньше, чем необходимо, то оно автоматически будет увеличено до минимально необходимого.

Для вывода вещественного числа в формате с фиксированной запятой в списке вывода для каждого выражения указывается два параметра:

  1. общее количество позиций, отводимых под число;
  2. количество позиций в дробной части числа.

При выполнение нового оператора write вывод продолжается в той же строке. Чтобы осуществить переход к новой строке, используется оператор writeln. Других различий между операторами write и writeln нет.

4.2.2. Первая программа на языке Паскаль

Пользуясь рассмотренными операторами, составим программу, вычисляющую длину окружности и площадь круга радиуса 5,4 см.

Исходными данными в этой задаче является радиус: r — 5,4 см. Результатом работы программы должны быть величины С — длина окружности и S — площадь круга. С, S и r — величины вещественного типа.

Исходные данные и результаты связаны соотношениями, известными из курса математики: С = 2πr, S = πr+. Программа, реализующая вычисления по этим формулам, будет иметь вид:

Эта программа верна и решает поставленную задачу. Запустив её на выполнение, вы получите следующий результат:

И всё-таки составленная нами программа имеет существенный недостаток: она находит длину окружности и площадь круга для единственного значения радиуса (5,4 см).

Для того чтобы вычислить длину окружности и площадь круга для другого значения радиуса, потребуется вносить изменения непосредственно в текст программы, а именно изменять оператор присваивания. Внесение изменений в существующую программу, по меньшей мере, не всегда удобно (например, когда программа большая и операторов присваивания много). Ниже вы познакомитесь с оператором, позволяющим вводить исходные данные в процессе работы программы, не прибегая к изменению текста программы.

4.2.3. Ввод данных с клавиатуры

Для ввода в оперативную память значений переменных используется оператор ввода read:

При выполнении оператора read компьютер переходит в режим ожидания данных: пользователь должен ввести данные с клавиатуры и нажать клавишу Enter. Несколько значений переменных числовых типов могут вводиться через пробел или через запятую. При вводе символьных переменных пробел и запятая воспринимаются как символы, поэтому ставить их нельзя.

Первое введённое пользователем значение переменной помещается в ячейку памяти, имя которой расположено первым в списке ввода, и т. д. Поэтому типы вводимых значений (входного потока) должны соответствовать типам переменных, указанных в разделе описания переменных.

Пример. Пусть

var i, j: integer; x: real; a: char;

Присвоим переменным i, j, x, а значения 1, 0, 2.5 и 'А'. Для этого воспользуемся оператором read (i, j, x, a) и организуем входной поток одним из следующих способов:

Здесь мы не только использовали различные разделители (пробел, запятая), но и входной поток представляли в виде одной, двух и четырёх строк.

Для ввода данных с клавиатуры можно также использовать оператор readln, который отличается от оператора read только тем, что после его выполнения курсор переходит на новую строку.

Усовершенствуем программу n_1, организовав в ней ввод данных с помощью оператора read. А чтобы пользователь знал, для чего предназначена программа, и понимал, какое именно действие ожидает от него компьютер, выведем соответствующие текстовые сообщения с помощью оператора writeln:

Результат работы усовершенствованной программы:

Теперь наша программа может вычислить длину окружности и площадь круга для любого значения r. Иначе говоря, она решает не единичную задачу, а целый класс задач. Кроме того, в программе понятно и удобно организован ввод исходных данных и вывод получаемых результатов. Это обеспечивает дружественность пользовательского интерфейса.

Самое главное

Для ввода в оперативную память значений переменных используются операторы ввода read и readln.

Для вывода данных из оперативной памяти на экран монитора используются операторы вывода write и writeln.

Ввод исходных данных и вывод результатов должны быть организованы понятно и удобно; это обеспечивает дружественность пользовательского интерфейса.

Вопросы и задания

  1. Запишите оператор, обеспечивающий во время работы программы ввод значения переменной summa.
  2. Целочисленным переменным i, у, k нужно присвоить соответственно значения 10, 20 и 30. Запишите оператор ввода, соответствующий входному потоку:
      а) 20 10 30
      б) 30 20 10
      в) 10 30 20
  3. Опишите переменные, необходимые для вычисления площади треугольника по его трём сторонам, и запишите оператор, обеспечивающий ввод необходимых исходных данных.
  4. Что является результатом выполнения оператора?
      а) write (а)
      б) write ( 1 а ' )
      в) write (1 а=1, а)
  5. Какой тип имеет переменная f, если после выполнения оператора write (f) на экран было выведено следующее число?
      а) 125
      б) 1.25Е+2
  6. Каким образом можно вывести на экран вещественное число в формате с фиксированной запятой?
  7. Запишите операторы ввода двух чисел и вывода их в обратном порядке.
  8. Дан фрагмент программы:

    read (a); read (b); c:=a+b; write (a, b); write (с)

    Упростите его, сократив число операторов ввода и вывода.

  9. Дан фрагмент программы:

    а:=10; b:=a+l: a:=b-a; write (а, Ь)

    Какие числа будут выведены на экран компьютера?

  10. Напишите программу, которая вычисляет площадь и периметр прямоугольника по двум его сторонам.

Рейтинг@Mail.ru