Введение в язык паскаль. Общая характеристика языка паскаль, страница 10

Для большего удобства использования этих процедур разрешается использовать процедуру writein и с фактическими параметрами, при этом оператор процедуры вида

writein«список фактических параметров»

эквивалентен двум операторам процедуры:

write«cnncoK Фактических параметров».! writein

Таким образом, программист имеет возможность управлять расположением печатаемых данных по строкам бумаги АЦПУ. На самом деле -путем задания соответствующих фактических параметров процедуры write - программист может управлять и размещением печатаемых данных по позициям строки. Это управление осуществляется следующим образом.

Для изображения (в виде последовательности литер) каждого выводимого значения (или строки литер) отводится очередное поле (группа позиций) в строке бумаги АЦПУ или экрана дисплея. Обычно ширина этого поля (число позиций в нем) для каждого типа значений фиксирована и определяется реализацией языка. Однако программист может для каждого выводимого значения (строки литер) задать желаемую ширину этого поля. В этом случае фактический параметр в операторах процедур write и writein записываются в виде. е : п

где е — выражение, задающее выводимое значение, или выводимая строка, а п - выражение целого типа, положительное значение которого принимается равным ширине поля для изображения выводимого значения. При этом выводимое значение изображается в самых правых позициях этого поля, а остающиеся свободными левые позиции этого поля заполняются литерой "пробел", т.е. будут пустыми. Если указанного числа позиций недостаточно для изображения выводимого значения, то тогда отводится ровно столько позиций, сколько необходимо для изображения этого значения.

Итак, первые два оператора в нашей программе служат для ввода и распечатки заданных исходных данных.

Три последующих оператора присваивания задают вычисление шага h изменения значения переменной х и присваивание переменным х и i исходных значений (до сих пор значения этих переменных, так же, как и значения А и В до выполнения оператора ввода, были не определены).

Символомrepeat начинается оператор цикла: последовательность операторов, заключенная между символамиrepeat и until, будет выполняться многократно, т.е. циклически.

Первые три оператора присваивания этой последовательности задают вычисление значений заданных функций при текущем значении аргумента х (первый раз — при х = А) и их запоминание в качестве значений переменных у 1,у2 и уЗ.

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

Оператор х: =х + h означает увеличение текущего значения переменной х на величину шага h, так что при втором выполнении последовательности операторов, входящих в цикл, будут вычислены значения функций дпях =А+ h, при третьем- для х =А+ 2h и т.д.

Целочисленная переменная i играет роль счетчика числа повторений цикла: после выполнения оператора i :=i +1 значение i равно числу фактически проделанных повторений. Это значение используется для управления числом повторений цикла. Если отношение i = п+ 1, указанное после символа until, еще не справедливо (т.е. значение i еще меньше заданного числа повторений, равного 11), то снова выполняется последовательность операторов, записанных между символамиrepeat и until. Как только при очередном выполнении оператора i :=i +1 будет получено значение! = 11, выполнение оператора цикла завершается. А поскольку это был последний оператор в разделе операторов блока, то тем самым завершается и выполнение программы в целом. Точка, следующая за блоком (после символа end), является признаком конца текста программы.

А теперь мы перейдем к систематическому и более детальному изложению языка.