Цели:

  1. Научиться осуществлять ввод и вывод данных;
  2. Познакомиться с форматами команд ввода и вывода данных;
  3. Самостоятельно написать несколько простых программ.

Операторы ввода и вывода информации

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

write()

writeln()

В скобках необходимо записывать данные, которые будут выведены на экран при выполнении программы.

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

read()

readln()

В скобках необходимо записывать данные, которые мы хотим вводить при работе программы.

Рассмотрим несколько примеров:

|| Составим программу, вычисляющую s = а / b и p = a * b


                program zadacha2_1a;                     //название программы
                var
                    a, b, s, p: real;                    //описание переменных
                Begin                                    //начало
                    writeln('введите число a: ');        //вывод сообщения
                    readln(a);                           //ввод a
                    writeln('введите число b: ');        //вывод сообщения
                    readln(b);                           //ввод b
                    s := a / b;                          //вычисление s
                    p := a * b;                          //вычисление p
                    writeln('а / b = ', s);              //вывод s
                    writeln('а * b = ', p);              //вывод p
                End.                                     //конец
            

В данном примере ввод и вывод данных для каждой переменной осуществляется отдельно. А можно было записать и так:


                program zadacha2_1b;                         //название программы
                var
                    a, b, s: real;                           //описание переменных
                Begin                                        //начало
                    writeln('введите числа a и b: ');        //вывод сообщения
                    readln(a, b);                            //ввод данных
                    s := a / b;                              //вычисление s
                    p := a * b;                              //вычисление p
                    writeln('а / b = ',s,' а * b = ', p);    //вывод результатов
                End.                                         //конец
            

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

2.5670000000Е+02 следует понимать 2.567 * 102

3.4906710000Е-03 следует понимать 3.490671 * 10-3

Если мы хотим при выводе на экран реальных чисел указать определённое число знаков после запятой, то можно воспользоваться форматом вывода writeln(a:n1:n2).

Где

n1 - количество знакомест, выделенных под всё число;

n2 - количество знакомест, выделенных под дробную часть числа.

Например, команда writeln(pi) выведет строку: 3.1415926536E+00, а команда writeln(pi:9:3) выведет строку: 3.142, пропустив перед выводимым числом четыре пробела и выровняв 3.142 (всего 5 знаков) по правому краю девяти знакомест.

|| Составим программу, выводящую на экран число π


                program zadacha2_2;    //название программы
                Begin                  //начало
                    writeln(pi:9:3);   //вывод pi
                End.                   //конец
            

Изменяя числа в формате вывода (:9:3, :9:2, :17:3, :17:7, :3:7 и т.д.) просмотрите и проанализируйте полученные результаты.

|| Задана сторона куба. Вычислить объем куба и площадь боковой поверхности


                program zadacha2_3;                                                 //название программы
                var
                    a, v, s: real;                                                  //описание переменных
                Begin                                                               //начало
                    writeln('Введите сторону куба: ');                              //вывод сообщения
                    read(a);                                                        //ввод данных
                    v := a * a * a;                                                 //вычисление объёма
                    s := 6 * a * a;                                                 //вычисление площади поверхности
                    writeln('Объём = ', v:8:3,' Площадь поверхности = ', s:8:3);    //вывод результатов
                End.                                                                //конец
            

В записанной выше программе использованы поясняющие комментарии. Однострочный комментарий пишется после //.

Вопросы для повторения:

  1. Какая команда служит для ввода данных? Для вывода данных?
  2. Чем отличается вывод информации на экран компьютера оператором write() от вывода оператором writeln()?
  3. Как вывести на экран текст?
  4. Можно ли вывести на экран несколько переменных или текстов одним оператором writeln()?
  5. Что означает число 7 в команде writeln(pi:7:5)? А что означает число 5?
  6. Сколько знаков после запятой будет выведено при записи команды:
    a) writeln(pi:7:5);
    b) writeln(pi:5:7)?
  7. Какие символы используются для размещения комментариев в программе?

Задания для самостоятельной работы:

  1. Имеются два числа:
    1. Вычислите сумму и разность этих чисел, используя два оператора readln.
    2. Перепишите программу так, чтобы использовался один оператор readln.
    3. Добавьте комментарии к программе.
  2. Имеются три числа. Вычислите их произведение.
  3. По заданным сторонам прямоугольника a и b вычислите его периметр и площадь.
  4. Человеку сегодня исполнилось R лет. Сколько ему дней? Часов? Минут? Секунд? (Високосные годы не учитывать).
  5. После начала некоторого эксперимента прошло t часов m минут и k секунд. Сколько всего секунд длится эксперимент?
  6. Задано расстояние между городами в вёрстах. Переведите это расстояние в километры (точность: три знака после запятой) используя данные: 1 верста = 500 саженям; 1 сажень = 3 аршина; 1 аршин = 0.7112 метра.