Ввод информации с клавиатуры. Вывод информации на экран. Интерполированные строки

Как вводить данные с клавиатуры?

В PascalAbc.Net для получения данных от пользователя с клавиатуры используются функции, которые начинаются со слова Read.

Ввод целых чисел

Для ввода одного целого числа с клавиатуры используется функция ReadInteger или функция ReadlnInteger. Пример.

В чем разница между ReadlnInteger и ReadInteger.

Рассмотрим этот вопрос на примере задачи. Нужно попросить пользователя ввести два числа и вывести сумму этих чисел. Мы будем вводить данные по-разному:

  1. Используем ReadInteger. Вводим оба числа через пробел
  2. Используем ReadInteger. Вводим оба числа построчно. То есть запускаю программу, ввожу первое числа, жму на клавишу Enter. Ввожу второе число, жму на клавишу Enter.
  3. Используем ReadlnInteger. Вводим оба числа через пробел и удивляемся =)
  4. Используем ReadlnInteger. Вводим оба числа построчно. То есть запускаю программу, ввожу первое числа, жму на клавишу Enter. Ввожу второе число, жму на клавишу Enter.

Сделаем заготовку для пункта 1.

Теперь попробуйте набрать эту программу и вводить числа сначала через пробел, потом сначала ввести первое число, нажать Enter, затем второе.

Затем замените в этой программе ReadInteger на ReadlnInteger. Обратите внимание, что, если вы через пробел ввели два числа, но использовали функцию ReadlnInteger, то Pascal опять открывает окно ввода. Почему так. Смотрим пример ниже.

Дело в том, что ReadlnInteger «прочитает» только первое число, весь кусок строчки после первого числа будет потерян. Вот и Pascal и просит ввести число ещё раз.

ReadInteger поступает иначе. Эта функция считывает из строчки первое число, а следующий ReadInteger ищет новое число в продолжении строки. Если в оставшейся части строки ещё одного числа нет, то поиск продолжается на новой строчке.

То есть функции Readln — читают всю строку, а сохраняют первую часть.

Проблемы с вводом целых чисел

Самая главная проблема, которая возникает при вводе целых чисел — часто мы пытаемся вместо числа подсунуть что-то иное, получаем ошибку времени выполнения. Вместо того, чтобы ввести 1, я написал «один» и вот что получил. Аналогичная проблема возникнет, если я попытаюсь ввести с клавиатуры дробное число, например, 1.5

Ввод вещественных чисел

Вещественные числа вводятся с клавиатуры при помощи при помощи функций ReadReal/ReadlnReal. Разница между функциями, начинающимися с Read и Readln такая же, как и в предыдущем разделе.

Ввод символов

Вещественные числа вводятся с клавиатуры при помощи при помощи функций ReadChar/ReadlnChar. Разница между функциями, начинающимися с Read и Readln такая же, как и в предыдущем разделе.

Про чтение символов стоит отметить, что тип Char  хранит в прямом смысле слова 1 символ. То есть при попытке в одну строчку ввести слово будет сохранён только 1 символ

Ввод строк

Строки с клавиатуры можно вводить при помощи функций ReadString/ReadlnString. Однако, последняя практически не используется по той причине, что Pascal определяет, что строка закончилась только после того, как пользователь нажимает клавишу Enter.

Как выводить данные на экран?

Вывод данных производится при помощи современных функций print/println или при помощи функций старого паскаля — write/writeln.

Итак, разница между print и println заключается в том, что первая выводит на экран что-то, а следующий вывод начинается на той же строчке, что и предыдущий. Рассмотрим примеры (их неплохо бы набрать и повторить).

Как вы видите, написали две команды print, но текст со слова «вот» был выведен в ту же строку, что и здравствуйте. То есть print не добавляет переход на новую строку. Пробуем изменить print на println.

Теперь вывод будет в 2 строчки

Вывод нескольких аргументов

Рассмотрим пример. Через запятую выведем на экран 5 * 5 = 25

Как мы видим, числа и цифры мы можем написать без кавычек, а символы и строки необходимо писать в одинарных кавычках. Функции print/println в вывод добавляют дополнительные пробелы. Изменить это поведение в функции print нельзя, можно лишь воспользоваться интерполированными строками.

Что произошло. Мы поставили знак доллара, дальше открываем кавычку. Внутри фигурных скобок можно указывать цифры, числа, переменные, даже выражения, которые будут вычисляться (как 5*5). После того, как все выражения в фигурных скобках будут вычислены, то получившаяся строка будет выведена на экран.

Разница в использовании print и write в том, что write не добавляет обязательные пробелы между аргументами.

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *