Pascal: Занятие №1. Часть 2: Операторы WriteLn и Readln в Pascal

На занятии происходит знакомство с операторами readln и writeln в pascal; разбираются решенные задачи по работе с операторами ввода и вывода на языке Паскаль

Вывод данных: Оператор write или writeln в Pascal

Оператор writeln (от англ. write line — написать строку) или write (от англ. write — написать) — оператор вывода в Паскале, т.е. служит для вывода на экран каких-либо данных (просто текста, результатов выполнения программы, значений переменных и т.п.).

  • Выводимый текст заключается в одиночные кавычки.
  • Для вывода значений переменных кавычки использовать нельзя, указывается просто идентификатор (имени переменной).
  • Если необходимо после вывода перейти на другую строку, то используется оператор writeln ().
    оператор write и writeln
    Результат:

    2+2=?
    Ответ: 4

    Рассмотрим примеры задач с использованием вывода Writeln в Pascal:

    1
    
    Write('Сумма 5 + 6 = ',5+6);

    Результат: Сумма 5 + 6 = 11

    1
    
    Write('Привет');

    Результат: Привет

    1
    
    Write('A'); Write('B');

    Результат: AB

    1
    
    Writeln('A'); Write('B');

    Результат:
    A
    B


    Print — это оператор, позволяющий выводить результаты на монитор. При выводе текста нужно заключать его в апострофы (одинарные кавычки). Похожий оператор PrintLn — после вывода автоматически переходит на следующую строку.
    1 способ:

    begin
      var n:integer;
      n := 5;
      n := n * n;
      print('n =',n); // n = 25
    end.

    2 способ (форматный вывод):

    begin
      var a:=1.2;
      var b:=4;
      var c:=a+b;
      WritelnFormat ('f({0}, {1}) = {2}', a, b, c); 
    end.

    Результат:

    f(1.2, 4) = 5.2
    
    Первый параметр в кавычках — это шаблон того, как будет выглядеть выводимое выражение. В фигурных скобках цифры будут замещены на значения переменных, в том порядке, в котором они следуют.

    3 способ:

    var x := 5;
    var y := 6;
    var res := x + y;
    Print($'Сумма {x} + {y} = {res}'); // Сумма 5 + 6 = 11

    Задача 1. Написать программу, которая выводит на экран ваши ФИО, каждое слово – с новой строки.

    [Название файла: L1task1.pas]


    В среде Pascal можно использовать так называемые сниппеты (snippets): — фрагменты названий функций для быстрого их добавления в код:

  • Так, для быстрой записи оператора print, достаточно просто напечатать латинскую букву p и щелкнуть [shift]+[пробел] — появится строка кода Print();
  • Для быстрой записи операторных скобок begin..end, достаточно напечатать сочетание be и щелкнуть [shift]+[пробел].
  • Оператор присваивания и оператор Readln в Pascal

    Оператор присваивания

    Обычно программе для решения какой-либо задачи требуются данные. Данные хранятся в переменных, которые имеют свои идентификаторы (имена), например, идентификаторы X или Y, или более длинные идентификаторы переменных — number1, counter и т.п.

    Важно: Идентификаторы состоят из буквы, за которой могут следовать буквы, цифры или символ подчеркивания

    Чтобы задать переменной какое-либо значение используется оператор присваивания. Оператор присваивания в Паскале обозначается как :=, выполняет правую часть выражения и присваивает результат переменной, расположенной в левой части выражения:

    оператор присваивания
    Пример:

    1
    2
    
    a:=2;
    writeln('квадрат ',a,'=',a*a);

    1 способ:

    begin
      var n:integer; // объявление переменной
      n:=1; // присваивание

    2 method (канонический):

    begin
      var n:=1; // объявление переменной и присваивание значения  => инициализация
  • Если программный код достаточно большой, то такой вариант инициализации переменных весьма неудобен. В Pascalabc.net переменные могут описываться внутри тела программы — между begin и end и инициализироваться при описании.
  • В этом состоит принцип локальности: переменная описывается непосредственно перед началом своего использования.

  • Ввод данных

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

    Пример использования readln в Pascal:

    1
    2
    3
    
    Writeln('Введите число');
    readln(a);
    writeln('квадрат ',a,'=',a*a);

    то же самое, что и read:
    Пример использования read в Pascal:

    1
    2
    3
    
    Writeln('Введите число');
    read(a);
    writeln('квадрат ',a,'=',a*a);

    Если запрашиваются две переменные, то можно перечислять их через запятую:

    1
    2
    3
    
    Writeln('Введите два числа');
    read(a,b);
    writeln('сумма чисел = ',a+b);
    Пример: Запросить для ввода два целых числа и вывести на экран их сумму.

    1


    1 способ:

    begin
      var n:integer; // n  - целочисленная переменная
      read(n); // ввод значения и сохранение его в переменной n
    begin
      var n:real; // n  - переменная вещественного типа
      read(n);// ввод значения и сохранение его в переменной n

    2 способ:

    // n  - целочисленная переменная и мы вводим значение и сохранением его в переменной n
    var n:=ReadInteger(); 
    // х  - переменная вещественного типа и мы вводим значение и сохранением его в переменной х
    var x:=ReadReal();

    3 способ (кортежное присваивание):

    var n1, n2: integer; // объявление двух переменных
    (n1, n2) := (1, 2); // 1 присваивается переменной n1, 2 присваивается переменной n2
    // Кортежное присваивание позволяет коротко записать обмен двух переменных значениями:
    (n1, n2) := (n2, n1); // n1 = 2; n2 = 1

    4 способ:

    // n1 и n2 - целочисленные переменные и мы вводим для них два значения
    var(n1, n2) := readInteger2;

    Обычно перед вводом выводится поясняющее сообщение о том, какие данные должны быть введены:

    var x := ReadInteger('Введите x:');
    var y := ReadInteger('Введите y:');
    var res := x + y;

    Кроме того, оператор ReadInteger или ReadReal может быть использован непосредственно в процедуре Print, т.е. в выводе. Например, так можно посчитать площадь прямоугольника:

    Print(ReadInteger * ReadInteger);

    Задача 2. Даны две переменные. Выполнить основные арифметические действия с переменными (+ - * /) и вывести результат на экран.
    [Название файла: L1task2.pas]
    Задача 3. Пользователь вводит сторону квадрата. Найдите периметр и площадь квадрата.

    [Название файла: L1task3.pas]

    Задача 4. Даны две переменных с некоторыми значениями. Поменять местами значения этих переменных.

    [Название файла: L1task4.pas]

    Список сниппетов

    Список основных сниппетов (при наборе использовать shift + пробел):

    a     → (лямбда-выражение)
    ar    array of ;
    b     begin
        
          end;
    be    begin
            
          end.
    bo    boolean
    c     case  of
            : ;
            : ;
          end;
    cl    type  = class
            
          end;      
    f     for var i:=1 to 10 do
    fb    for var i:=1 to 10 do
          begin
            
          end;
    fo    foreach var x in a do
    fu    function (): ;
          begin
            
          end;
    i     integer
    if    if  then
    ifb   if  then
          begin
            
          end;
    l     loop 10 do
    lb    loop 10 do
          begin
            
          end;
          
    p     Print();
    pr    procedure ();
          begin
      
          end;
    r     repeat
            
          until ;
    s     string
    t     try
            
          except
            
          end;
    u     unit Program1;
          
          interface
            
          implementation
           
          begin
            
          end.
    w     while  do
    wb    while  do
          begin
            
          end;