Найти в Дзене
Никита Решетник

Pascal и программирование [3] - Ввод/вывод данных

В ходе разработки программ нам необходимо не просто хранить информацию, а как-то её вносить и получать результат. Для этого необходимы команды ввода/вывода. 1. Операторы и аргументы Оператор (команда) - это строка в коде, которая подразумевает под собой совершение какого-либо действия. Все операторы в коде разделяются точкой с запятой. Аргумент - это данные, которые мы передаём в оператор (команду). Обычно это делается с помощью указания данных в скобках. Например: writeln('Text'); В строке выше мы дали оператору writeln данные - 'Text'. В ходе выполнения, будет выведено значение аргумента - строка "Text". Также стоит отметить, что допускается написание внутри begin end ещё разделений с помощью begin end.
То есть возможно такое написание кода: begin
begin
//код
end;
begin
//код
end;
end. 2. Вывод информации Для понимания работы стоит отметить, что в консольных приложениях ввод/вывод информации осуществляется с помощью курсора. Курсор перемещается с вводом/выводов текс
Оглавление

В ходе разработки программ нам необходимо не просто хранить информацию, а как-то её вносить и получать результат. Для этого необходимы команды ввода/вывода.

1. Операторы и аргументы

Оператор (команда) - это строка в коде, которая подразумевает под собой совершение какого-либо действия. Все операторы в коде разделяются точкой с запятой.

Аргумент - это данные, которые мы передаём в оператор (команду). Обычно это делается с помощью указания данных в скобках. Например:

writeln('Text');

В строке выше мы дали оператору writeln данные - 'Text'. В ходе выполнения, будет выведено значение аргумента - строка "Text".

Также стоит отметить, что допускается написание внутри begin end ещё разделений с помощью begin end.
То есть возможно такое написание кода:

begin
begin
//код
end;
begin
//код
end;
end.

2. Вывод информации

Для понимания работы стоит отметить, что в консольных приложениях ввод/вывод информации осуществляется с помощью курсора.

Курсор перемещается с вводом/выводов текста, а также переносится на новую строку (например, при нажатии enter).

Существуют операторы вывода write и writeln.
Формат написания следующий:

writeln(<выводимые данные>);


Также можно ввести в оператор несколько аргументов:

writeln(<первые данные>, <вторые данные>); //через запятую

Для понимания различия write и writeln стоит обратить на их действие, а именно:

1. Оператор write(<данные>);
Выводится текст аргумента и курсор после вывода не перенесётся.

2. Оператор writeln(<данные>);
В случае, если мы допишем
"ln" (сокр. "line"), то после вывода аргумента курсор перенесётся, и консоль начнёт выводить следующий текст с новой строки.

Для демонстрации напишем такой код (для наглядности присутствуют комментарии):

write('First '); //Вывели "First "
writeln('string'); //В этой же строке вывели "string" и перенесли курсор
writeln('Second '); //Выводим "Second" в новой строке и перенесли курсор
write('string); //В новой строке вывели "string" и остались тут же

После выполнения мы получим следующее:

Результат выполнения команд
Результат выполнения команд

3. Ввод информации

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

В основном, ввод используется для внесения значений в переменные, для этого используются операторы read и readln, где аргумент - это переменная для заполнения. Например:

readln(<переменная>);


Часть "ln" в названии данного оператора работает аналогично writeln.

read(<переменная>);

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

4. Ограничение для вещественных значений

Необходимо ограничение по количеству символов.
Проблема заключается в следующем: после проведения операции с типом Double -
результат вычисления длинный и не очень удобен.
Можно конечно использовать другой тип, но нам необходимо оставить точность операций и просто изменить вывод, тут как раз помогут - ограничения.

Код без ограничения

program problem;
var
solutionExample : double;
begin
solutionExample := 1.2 * 2;
writeln(solutionExample);
readln();
end.
Результат выполнения
Результат выполнения

Чтобы это исправить необходимо на переменную поставить ограничение. Делается это в следующем формате:

<переменная>:<число знаков целой части>:<число знаков после запятой>

Код, где присутствует ограничение

program problem;
var
solutionExample : double;
begin
solutionExample := 1.2 * 2;
writeln(solutionExample:0:2);
readln();
end.
Результат выполнения
Результат выполнения

Проблема на этом решена.

5. Пример программы с использованием полученных знаний

С использованием полученных знаний можно написать полезную программу.

Задача. Напишите программу для определения площади и периметра прямоугольника. Для расчёта необходимо использовать вещественные числа. Первое вычисление необходимо произвести при выводе, второе в переменную.

program ex2;
var
int1, int2, P : double;
begin
writeln('Program for detect S (A * B) and P (2 * (A + B)');
write('Input real ints A and B: ');
readln(int1, int2); //Ожидание ввода двух вещественных чисел

writeln('S = ', (int1 * int2):0:2); //Вычисление площади и вывод результата

P := 2 * (int1 + int2); //Вычисление периметра
writeln('P = ', P:0:2); //Вывод переменной с результатом

readln();
end.

6. Итоги

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