
Для выполнения различных задач в паскале нам понадобится выводить определенную информацию на экран.
Информация , которую мы будем выводить может быть абсолютно разной. Она может быть текстом , переменной и даже выражением вроде ( a + b ).
В языке программирования паскаль предусмотрен тот случай , когда нам нужно вывести на экран какую либо информацию , например результат работы программы или значение какой-либо переменной. Вывод в паскале можно осуществить за счет двух операторов вывода : write и writeln , прочитать о которых вы можете ниже.
Writeln
Первый оператор вывода — это writeln ( write — писать , ln — сокр. линия ). Благодаря нему и осуществляется вывод информации на экран. Давайте разберем это на примере :
Допустим , мы хотим вывести приветствие на экран в формате «Привет друг !» Код такой программы выглядит так :
1 2 3 4 5 6 |
program mypascal; begin writeln('Привет друг !'); end. |
Давайте разберем данную программу. После выполнения кода , на экран будет выведено сообщение — «Привет друг !» как раз то , что мы хотели.
Оператор вывода writeln выводит то , что находится в круглых скобках и одинарных кавычках. Запомните ! Чтобы выводить текст на экран , его следует заключать в кавычки.
Для вывода чисел на экран можно пользоваться кавычками , а можно и не пользоваться.
В обоих случаях на экран будет выведено число 17 , поэтому можно утверждать , что вывод чисел на экран не зависит от кавычек.
А теперь о том , почему нельзя выводить тест на экран без кавычек. Почему нельзя выводить текст на экран в паскале без кавычек ? Это сделано специально для того , чтобы программа могла различать текст от переменной.
Если вы имеете познания в языке паскаль , то наверняка понимаете что такое переменные , если нет , то вам сюда.
Если в операторе вывода writeln() в круглых скобках будет стоять слово hello без кавычек , то программа выведет на экран значение переменной hello ( если она существует ).
Но иногда нам нужно вывести на экран и текст и переменную. Чтобы вывести на экран сообщение — «Привет Марина !» , где текст «Марина» содержится в переменной Name ( имя ) , нам потребуется изменить оператор writeln() так :
1 2 3 4 5 6 7 8 9 |
program mypascal; var name:string; begin name:= 'Марина'; writeln('Привет ',name,' !'); end. |
Как видно , для того , чтобы выводить переменную и текст в одном операторе , нужно ставить «,». Проще говоря , мы выводим текст «Привет» и к нему прикрепляем значение переменной Name ,а после ( также через запятую ) выводим знак восклицания в кавычках , ведь он тоже является текстом.
Пример вывода имени и фамилии :
1 2 3 4 5 6 7 8 9 10 |
program mypascal; var name,lname:string; begin name:= 'Марина'; lname:= 'Петрова'; writeln('Привет ',lname,name); end. |
В результате выполнения этой программы , на экран будет выведено сообщение «Привет ПетроваМарина». Да , именно так , потому что между переменными name и lname нет пробела. Чтобы исправить это ( имя и фамилия выводились через пробел ), код должен быть таким :
1 2 3 4 5 6 7 8 9 10 |
program mypascal; var name,lname:string; begin name:= 'Марина'; lname:= 'Петрова'; writeln('Привет ',lname,' ',name); end. |
Write
Второй оператор вывода — write ( писать ). Он практически ничем не отличается от оператора вывода writeln , вернее ничем не отличается ( он также осуществляет вывод на экран ). Однако одно отличие все же есть , но совсем небольшое. Возможно вы уже поняли его ( исходя из название ).
Информация , которую оператор writeln() выводит на экран занимает всю строку.А значит после того , как оператор выведет последний элемент , программа переведется на следующую строку.
Два этих оператора выведут оба слова на разных строках:
1 2 |
Привет Андрей |
В отличии от write , который после завершения работы не переходит на следующую строку.
В данном случае результат будет такой :
1 2 |
Привет Андрей Как дела ? |
И если после writeln(‘Как дела ?’) мы бы выводили ещё какой-либо текст , то он появился бы на следующей строке.
Прочитать про оформление текста на экране в паскаль можно здесь
Как очистить экран в паскале
Некоторые программы могут быть настолько сложными , что выводимой информации будет очень много. Поэтому некоторый ненужный текст можно стереть. Для этого в паскале предусмотрен оператор clrscr.
Чтобы очистить экран в паскале используйте такой оператор clrscr; Однако злоупотреблять им не стоит. Так же следует помнить , что оператор clrscr работает только в модуле crt , который подключается так :
1 2 3 4 5 6 7 8 |
program mypascal; uses crt; begin clrscr; end. |
Расширенный ввод и вывод
Как уже упоминалось, в языке Паскаль есть две функции для ввода: read и readln. Разница между ними заключается прежде всего в том, что read читает символы, которые нужно ввести (например, если вводится целое число — цифры), пока не встретит «неправильный» символ, а остальные оставляет для последующего ввода; readln же читает символы до конца строки и выбрасывает «лишние». Так, фрагмент кода (переменные a и b — целые)
1 2 3 |
readln(a); readln(b); writeln(a,' ',b); |
на ввод
1 2↵ Enter
3 4↵ Enter
выведет «1 марта»; а фрагмент
1 2 3 |
read(a); read(b); writeln(a,' ',b); |
на тот же ввод выведет «1 2»!
Заметим, что второй код эквивалентен кода
1 2 |
read(a, b); writeln(a,' ',b); |
Расширенный вывод
Мы уже знаем, что процедуры write и writeln выводят свои параметры, причем writeln добавляет знак новой строки в конце. Но остается одно неудобство — действительные числа выводятся не так, как нам бы хотелось. Чтобы указать, как именно должны выводиться числа, используются отметки форматирования, которые ставятся через двоеточие после параметра. Так, строка
1 |
writeln('x = ',2.0:5:2); |
выведет x = 2.00 Вторая отметка — число 2, как вы могли догадаться, означает «2 знака после десятичной запятой»; а первая отметка — минимальную общее количество знаков в выводе (обратите внимание на два пробела между = и 2! Число 2.00 должно занять 5 знаков, но имеет только 4, и поэтому дополняется пробелом). Вторая отметка может использоваться только с действительными числами.Отметки могут быть любыми выражениями с целым значением.
Кроме процедур вывода, есть еще одна, использующий отметки форматирования — процедура Str (n, s) превращает число n на строку s. К числу можно добавлять метки.
Названные процедуры в Паскале несколько отличаются от других — в них может быть произвольное количество параметров и отметки форматирования, чего не бывает в «обычных» функций и процедур.Это особенность этих и только этих процедур, других таких процедур создавать нельзя.