Урок #3 -- Ввод/Вывод данных в Pascal - Write(). Writeln(), Read(), Readln() -- отличия, примеры использования

ВИДЕО: https://youtu.be/4UydW2YdyDk

В этом уроке мы рассмотрим инструкции (стандартные процедуры ввода/вывода):

read(a, b, g);  // получает данные от пользователя, пишет в переменные лишнее оставляет
readln(f, h, y); // то же самое, но лишнее удаляет
write(g, '  __ ', b); // выводит все аргументы (и переменные и литералы)
writeln(g); // как и предыдущее, но после вывод переводит курсор на новую строку

//

Read и Readln

Read

Инструкция read предназначена для ввода с клавиатуры значений переменных (исходных данных). В общем виде инструкция выглядит следующим образом:

read (Переменная1, Переменная2, ... ПеременнаяN);

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

Приведем примеры записи инструкции read:

read(a); 
read(Cena,Kol);

При выполнении инструкции read происходит следующее:

  1. Программа приостанавливает свою работу и ждет, пока на клавиатуре будут набраны нужные данные и нажата клавиша Enter.
  2. После нажатия клавиши Enter введенное значение присваивается переменной, имя которой указано в инструкции.

Например, в результате выполнения инструкции

read(Temperat);

и ввода с клавиатуры строки 21, значением переменной Temperat будет число 21.

Одна инструкция read позволяет получить значения нескольких переменных. При этом вводимые числа должны быть набраны в одной строке и разделены пробелами. Например, если тип переменных а, b и с — real, то в результате выполнения инструкции

read(a,b,c);

и ввода с клавиатуры строки:

4.5 23 0.17

переменные будут иметь следующие значения:

а = 4,5; b = 23,0; с = 0,17.

Если в строке набрано больше чисел, чем задано переменных в инструкции read, то оставшаяся часть строки будет обработана следующей инструкцией read. Например, в результате выполнения инструкций

read(А,В); read(С);

и ввода с клавиатуры строки

10 25 18

переменные получат следующие значения:

А=10, B = 25

. Инструкция read (С); присвоит переменной с значение 18.

Readln

Инструкция readln отличается от инструкции read тем, что после выделения очередного числа из введенной с клавиатуры строки и присваивания его последней переменной из списка инструкции readln, оставшаяся часть строки теряется, и следующая инструкция read или readln будет требовать нового ввода.

Например, в результате выполнения инструкции

readln(А,В); read(С);

и вводе с клавиатуры строки

10 25 18

перемнные получат следующие значения:

А=10, B = 25

После чего программа будет ожидать ввода нового числа, чтобы присвоить его переменной с.

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

Write и Writeln

  • Write() -- выводит на экран все переданные значения (аргументы передаются через запятую -- это могут быть переменные или литералы разных типов).

    Например:

    write(a); // просто вывод переменной
    write('a---> ', a); // литерал и переменная
    write(a, ' --- ', b); // переменная, затем литерал, затем опять переменная
    write(a, ' --- ', a); // как и в предыдущем, но с одной и той же переменной
    write(a, b, c); // вывод последовательно трёх переменных
     
  • Writeln() -- выводит на экран все переданные значения и переводит курсор на новую строку.

Пример кода


program IO;
var a, b, c, d: integer;
  s, s2:string;
  ch, ch2, ch3: char;
  t: boolean;
begin


// чтение и вывод символьного типа
  writeln('Введите строку: '); 
  readln(ch, ch2, ch3);
  writeln('ch= ',  ch);
  writeln('ch= ',  ch2);
  writeln('ch= ',  ch3);


//read и readln на примере целых чисел
  writeln('Введите значения: ');
  read(a, b, c);

  write('a1=', a); // вывод значения переменной с комментарием
  write(' b1=', b);
  write(' c1=', b);
  
  readln(c, d);
  
  write(' c2=', c); // вывод значения переменной с комментарием
  write(' d1=', d);


// write и writeln -- демонстрация работы (переменные-строки и строковые литералы)
  s := 'Привееет'; 
  s2 := 'Привет, 1-я группа!';

  write(s,  '__', s2); // выводит на экран переданные значения
  writeln();
  writeln(); // просто переводит курсор на новую строку
  writeln(' СПО!', '__', s2); // выводит на переданные значения и переводит курсор на новую строку
  write('_');
  
  
  readln(); // задержка программы -- ждет нажатия клавиши Enter для продолжения выполнения

end.

Источники: