[МУЗЫКА] Рассмотрим подробнее ввод и вывод данных в языке Paskal. Начнем с операторов вывода. Для вывода в окно вывода мы можем использовать стандартные процедуры write и writeIn. Они могут вызываться как с параметрами так и без параметров. Параметры в списке перечисляются через запятую и должны обязательно иметь простой тип (кроме перечислимого типа, а также интервального типа, который построен на базе перечислимого), а также типом может быть string или указатель. Процедура writeln в отличие от процедуры write, после вывода производит перевод курсора на следующую строку экрана. Например, пусть у нас есть две переменных целого типа a и b. A присвоено значение равное 15; b присвоено значение 123. Я использую два оператора вывода: writeln ('A =,'a); а затем write ('B =,'b). И я получу следующий результат: на первой строке экрана будет выведено A = 15, то есть то сообщение, которое было заключено в апострофы, будет выведено без них. Затем произойдет переход на новую строку экрана, и далее будет выведено значение: B = 123 и курсор останется на той же строке, на которой был выведен последний символ нашего числа. Подчеркивание в данном случае обозначает положение курсора после окончания вывода. Теперь рассмотрим форматный вывод. Форматный вывод позволяет нам управлять количеством символов, которые будут использоваться при выводе данных. В процедурах write и writeln после каждого выводимого значения целого типа можно указывать формат вывода. Формат вывода представляет собой двоеточие, после которого следует либо целое число, либо выражение целого типа. Это выражение или число задает ширину формата, то есть количество позиций, отводимое под выводимое значение. Если длина выводимого значения будет меньше, чем ширина поля вывода, то тогда выводимый текст будет дополнен слева пробелами до нужной ширины. И в результате у нас произойдет выравнивание выводимого значения по правому краю. Если же длина выводимого значения будет больше, чем ширина поля вывода, которую мы указали, то формат будет просто проигнорирован и данные будут выведены так, как будто мы никакого формата и не использовали. Рассмотрим примеры форматного вывода. Например, пусть у меня есть переменные целого типа a и b. И выполняются следующие операторы: a присваивается значение −2437, а b присваивается значение 13 555. Затем я вывожу с переходом на новую строку значение a, используя формат 6; и строку 'Привет!', используя формат 9, и после этого вывожу значение переменной b, используя формат 1, то результат у меня будет следующий: первый оператор вывода выведет мне значение a с использованием формата 6. Мы с вами видим, что в этом числе 4 цифры и еще знак. Это у нас пять позиций, значит еще один пробел будет добавлен в самое начало строки. Далее выводится слово 'Привет!' по формату 9. В слове 'Привет!' семь символов, включая восклицательный знак, и 2 пробела будут добавлены перед началом слова. Для переменной b формат не подходит, потому что количество символов, которое мы указали, у нас меньше, чем количество цифр в этом числе. Следовательно, формат проигнорирован и число выведено так, как мы бы его получили, если бы не использовали никакого формата. Для вещественных значений также можно использовать формат :m:n, где m и n имеют целые значения. Значение m задает ширину поля вывода, то есть сколько всего позиций мы будем использовать при выводе. А значение n показывает количество знаков после десятичной точки. Например, пусть я рассматриваю оператор вывода writeln и для данного числа я использую формат :10:3. В результате, при выводе используется всего 10 позиций и из них 3 будут после точки. И поскольку у нас в числе меньше цифр, чем 10, включая точку и знак, то необходимое количество пробелов у нас добавляется слева перед началом нашего числа. Если я выведу то же самое число, используя формат 10:5, то тогда количество пробелов перед началом слова уменьшится на 2 пробела, а в конец будут дописаны два незначащих нуля. Если я выведу то же самое число, используя формат 10:0, то тогда у меня будет получено число −15, потому что это значение получится при округлении выводимого числа до целого значения. Далее я могу взять комплексное число 0,1 и использовать для вывода этого числа формат :10:1. Я получу всего 10 позиций, и в каждой из частей действительной и мнимой будет выведен один знак после точки. Рассмотрим теперь подробнее ввод данных с клавиатуры. Для ввода данных с клавиатуры мы можем использовать стандартные процедуры read и readln. Они могут вызываться как с параметрами, так и без списка параметров. Параметры в списке перечисляются через запятую, и должны быть переменными простого типа (кроме перечислимого типа, а также интервального типа, который построен на базе перечислимого), а также они могут иметь тип string. Процедура readln после ввода данных пропускает данные до конца строки и переходит к началу следующей строки. Например: пусть у меня имеются две входных строки. В первой находятся числа 1, 2 и 3, а во второй строке находится одно число – 4. Рассмотрим пару операторов ввода: read (a,b); а затем read (c). В результате выполнения этих операторов, наши переменные приобретут значения: a = 1, b = 2 и c = 3. То есть эти значения последовательно будут присвоены переменным, имена которых указаны в списке ввода. Если я рассмотрю другую пару операторов ввода и те же самые исходные данные – я напишу readln (a,b), а затем read (c), то результат у меня будет другим. Переменная a получит значение 1, b = 2, далее оператор readln у меня пропускает все данные до конца строки, то есть тройка будет пропущена, и переменная c имеет значение, равное 4. [МУЗЫКА] [МУЗЫКА] [МУЗЫКА]