Давайте теперь научимся писать программы, которые получают информацию из вне. Ведь какой смысл в программе, с которой не может взаимодействовать пользователь.
Давайте напишем программу, которая позволит ввести число (пусть это будет просто целое число). Далее программа будет выводить это число умноженное на два и поделенное на 2.
Итак, с чего начнём. Нам нужно присвоить переменной число, которое пользователь ввёл с клавиатуры. Это функция readinteger. Далее нам нужно вывести (как выводить информацию смотрим пост) это число, число, умноженное на два и поделённое на 2.
Символ умножения — это звёздочка, символ деления — косая черта. Итак, вооружившись этими знаниями напишем код и запустим. Результат на скриншоте ниже.
При запуске программы появляется окошко, куда вам предлагается ввести число. Если вы введёте что-то, что не является целым числом, то программа завершится с ошибкой.
Введём в это окно 4, нажмём Enter и видим.
Какие вывод мы делаем. Текст, который вы вводите, отображается в окне вывода.
Ввод двух чисел
Теперь давайте перейдём к вопросу, как считать 2 числа. Тут есть принципиально важный вопрос: как эти числа указаны в задаче. Если в строчку, то пользуйтесь функцией ReadlnInteger, если в строчку, то только ReadInteger.
В базовом варианте вам нужно объявить две переменные и дважды присвоить им результат работы функции чтения с клавиатуры
Рассмотрим сначала пример, где мы хотим считать два числа с клавиатуры и вывести их разность на экран.
Обращаем внимание, что тут две переменные, а в окно ввода я пишу числа через пробел.
Если вы поменяете Read на Readln, то, попытавшись ввести два числа через пробел, вы не получите ошибку, но результат вас несколько удивит. Получается ReadlnInteger читает строчку полностью, первое число сохраняет в переменную, а дальше второе число читает в следующей строчке (следующем окне ввода)
В переменную x сохраняется 1, в переменную y — 3. Их разность выводится на экран.
Отсюда главный вывод. Функция, начинающаяся с readln читает всю строку, а read — только часть строки.
Ввод вещественных чисел
Попробуйте запустить предыдущую программу и ввести вместо целых чисел дробные. И тут вы получаете ошибку. На первом скриншоте ниже видно, что я вводил, на втором — сообщение об ошибке после нажатии клавиши Enter.
Так происходит потому что мы предупредили PascalAbc.Net, что будем вводить целые, а ввели дробные числа. Стало быть нам нужна функция, которая позволяет считывать вещественные числа. Это функция называется ReadReal, которая точно также, как и ReadInteger, существует ещё и в версии ReadLnReal. Разница между readln и read точно такая же, как и было описано раньше.
Ввод символов
Кроме целых и вещественных чисел мы можем с вами вводить с клавиатуры отдельные символы. Для чтения отдельных символов используйте ReadChar. Он позволяет считать один символ. Вот тут будьте внимательны. Если вы при вводе символов ничего не введёте, но просто нажмёте Enter, то в переменную будет сохранён символ перехода на новую строку.
Функция ReadLnChar прочтёт из строчки первый символ, а дальше все, что в этой строке будет потеряно. Это показано на примере ниже
Ввод строки
Ввод строки с клавиатуры осуществляется при помощи функции ReadString. Если для всех предыдущих случаев существовала разница в поведении функций, начинающихся с Read и с Readln, то при чтении строк этой разницы нет. Почему так? Когда происходит чтение строки, то необходим формальный признак того, что вот тут вот конец строки. Для этого существует специальный символ конца строки. Когда вы нажимаете Enter, то тем самым вводите этот символ и компьютер понимает, что вот тут вот строка закончилась