Для этой цели используется оператор write, после которого в скобках указывается список выводимых переменных или оператор writeln, который после вывода результата на экран, осуществляет переход на следующую строку.
Оператор writeln без параметров просто переведет курсор на следующую строку.
Например: Write (x, y) – выведет значения переменных x, y.
Write (x+y, x-y) – выведет результат вычисления выражений x+y, x-y.
Write (‘Привет’) – выведет строку символов “привет”, текст заключается в апострофы.
Паскаль дает возможность установить необходимый формат для вывода числовой информации с помощью операторов write, writeln.
В данном примере указывается, что на экран должно быть выведено содержимое переменной x. Выводимое на экран число должно занимать 7 позиций с двумя знаками после запятой. Для вывода целой части отводится 4 позиции, т.к. одну позицию занимает десятичная точка.
Если для вывода числа 7 будет выделено 3 позиции, то на экран монитора будет выведено 7, а не 007.
Если при выводе значения некоторой переменной выводимое число не будет помещаться в указанный формат, то вопреки указанному формату часть значения переменной, расположенной перед десятичной точкой, будет выведена на экран полностью. При этом число позиций справа от десятичной точки остается равным указанной в формате величине, а дробная часть, не укладывающаяся в заданный формат, округляется. Округление не изменяет самого значения переменной, а касается только процесса вывода этого значения.
Использование форматного вывода позволяет решить проблему корректного оформления различного рода таблиц.
Линейным процессом – называется такой процесс, где каждое действие выполняется последовательно, одно за другим. Любой линейный процесс состоит из следующих действий: ввода данных, вычисления по одной или нескольким формулам, печати результата.
Пример: Вычислить среднее арифметическое и среднее геометрическое для двух действительных положительных чисел.
SG : real;BEGIN
writeln (‘введите значения переменных’);
readln (a, b);
SR : = (a + b)/2;
SG: = sqrt(a*b);
writeln (‘среднее арифметическое равно’, SR:8:2);
writeln (‘среднее геометрическое равно’, SG:8:2);
END.
Операторные скобки
В Паскале под «операторными скобками» понимают два служебных слова: Begin (открывающаяся скобка) и End (закрывающаяся скобка).
Составной оператор
Составной оператор – это последовательность произвольных операторов программы заключенная в операторные скобки.
На характер операторов, входящих в составной оператор, не накладывается никаких ограничений. Среди них могут быть и другие составные операторы языка, допускается произвольная глубина вложения составных операторов. Фактически весь раздел операторов представляет собой один составной оператор.
BEGIN{начало раздела операторов}
Begin
Begin
End
End
End. {конец программы}
Во избежание ошибок каждую пару “Begin – End” обычно пишут с одной позиции.
Разветвляющиеся вычислительные процессы
Разветвляющийся процесс – это такой процесс, где после проверки некоторого логического условия, вычисление идет либо по ветви «да» либо по ветви «нет».
Пример: Вычислить
f = 3sin2x + a, x>0 3a2 + bx, x<0
a = -2,25
b = 4,8.
PROGRAM RAZVETV;
Var
a, b, x : real;
f : real;
BEGIN
a : = -2.25;
b : = 4.8;
write (‘введите значение переменной x’);
readln (x);
IF x>0 THEN F : = 3*SQR (sin(x)) + A
ELSE
F : = 3*A*A + B*X;
witeln (‘F =’,F:7:2);
END.
Условный оператор
Для реализации проверки условия необходим оператор, который выберет то или иное действие. Такой оператор называется оператором условного перехода и его можно записать следующими способами.
1. Полная форма оператора.
IF <условие> THEN <оператор “да”>
ELSE <оператор “нет”>;
Каждое слово ELSE пишется под своим словом IF. Для большей наглядности текста программы операторы, следующие за словами THEN и ELSE можно писать на следующей строке.
Перед словом ELSE нельзя ставить точку с запятой.
2. Краткая форма оператора.
Допускает опускать служебное слово ELSE . Оператор в этом случае выглядит следующим образом:
IF <условие> THEN
<оператор1>;
<оператор2>;
<оператор 3>;
В данном варианте, если условие истинно, то программа уходит на оператор 1, а затем продолжает выполнять последовательности операторов 2,3 и т.д.
Если условие ложно, сразу выполняется оператор 2, затем 3 и т.д.
Например: Вычислить значение функции
x2, если x>0f(x) = 0, если x=0
-x2, если x<0
Фрагмент решения этой задачи можно записать как:
IF x>0 THEN
y = x*x;
IF x = 0 THEN
y = 0;
IF x<0 THEN
y = -(x*x);
При решении различных задач очень часто необходимо выполнять группу операторов либо за оператором THEN, либо за оператором ELSE, либо и в том и в другом случае.
Для того, чтобы записать группу действий необходимо использовать составной оператор begin – end (операторные скобки).
1. IF <условие> THEN
BEGIN
оператор 1;
оператор 2;
…………..
оператор n;
END
ELSE
оператор;
2. IF <условие> THEN оператор
ELSE
BEGIN
оператор 1;
оператор 2;
…………..
оператор n;
END;
3. IF <условие> THEN
BEGIN
оператор 1;
оператор 2;
…………...
оператор n;
END
ELSE
BEGIN
оператор 1;
оператор 2;
………….
оператор n;
END;
Между словами BEGIN и END стоят операторы отделенные между собой точкой с запятой.
Перед словом ELSE точки с запятой быть не должно, так как это один оператор
IF…THEN…ELSE.
Вложенные операторы IF
Рассмотрим пример:
Определить, попадает ли число x в интервал от 7 до 21.
В данном примере необходимо проверить два условия и дать положительный ответ в том случае, когда они оба будут выполнены. Это можно записать следующим образом:
IF x>7 THEN
IF x<21 THEN
writeln (‘x попадает в интервал’)
ELSE writeln (‘x>=21’)
ELSE writeln (‘x<=7’);
Вложенность операторов IF не ограничена.
Ветвление по многим направлениям
Для замены конструкций из вложенных операторов IF…THEN в Паскаль-программах часто используются операторы
CASE…OF.
Данная конструкция является идеальной для обработки ситуаций с несколькими исходами, когда условие может принимать более двух значений. Примером может служить система учета успеваемости студентов в ВУЗе. Здесь имеется по крайней мере шесть альтернатив (1, 2, …, 5, нет отметки).
Фрагмент программы с использованием данной конструкции может выглядеть следующим образом:
CASE<порядковая переменная>OF
1: BEGIN
оператор 1;
………….
оператор n;
END;
2: BEGIN
оператор 1;
………….
оператор n;
END;
…………………
n: BEGIN
оператор 1;
………….
оператор n;
END;
ELSE
BEGIN
оператор 1;
………….
оператор n;
END;
В тексте одного фрагмента программы перед ELSE стоит точка с запятой, т.к. конструкция CASE…OF подразумевает, что за ней стоит символ (;).
Значение <порядковой переменной>, которая при выполнении программы определяет ветвь в операторе CASE…OF, подлежащую выполнению, должна иметь некоторый тип. Она может принадлежать любому из целочисленных типов, каждый из которых позволяет организовать перечисления некоторых объектов. Действительные типы переменных не относятся к классу порядковых.
Наряду с возможностью отличать каждую отдельную ветвь определенным значением <порядковой переменной> в конструкции CASE…OF имеется возможность объединять ветви. При объединении ветвь помечается списком значений. Значения в списке могут перечисляться через запятую, либо, если они идут подряд, можно указать два крайних значения, разделив их двумя точками.
CASE<порядковая переменная> OF
1, 2, 5: оператор 1;
3..17: оператор 2;
END;
В конструкции CASE…OF может присутствовать ELSE-часть. Она, как и любая ветвь, содержит последовательность операторов, ограниченных парой BEGIN-END.
Циклический вычислительный процесс
Циклом называется такой процесс, когда одно или ряд действий выполняется несколько раз подряд.
В иных задачах количество повторений некоторого действия или группы действий известно. В этих случаях цикл называется арифметическим или циклом с параметром (счетчиком), или перечисляемым циклом.
В том случае, когда количество повторений указанных действий не известно, а зависит от некоторых условий, говорят о цикле с условием выхода или итерационном цикле.
Перечисляемые циклы (циклы со счетчиком)
Конструкция, позволяющая реализовать данный цикл, имеет вид:
FOR…TO (downto)…DO
В этом операторе обязательно указываются следующие параметры:
- имя переменной цикла или счетчика цикла;
- некоторое начальное значение для переменной цикла, которое она получает при первом выполнении цикла;
- некоторое конечное значение цикла, достигнув которое повторение цикла прекращается.
Если записать конструкцию цикла, как
FORi : = nTOkDO
оператор;
то счетчик изменяется на 1 при каждом следующем исполнении оператора.