Смекни!
smekni.com

Основы языка Паскаль (стр. 2 из 4)

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

Оператор writeln без параметров просто переведет курсор на следующую строку.

Например: Write (x, y) – выведет значения переменных x, y.

Write (x+y, x-y) – выведет результат вычисления выражений x+y, x-y.

Write (‘Привет’) – выведет строку символов “привет”, текст заключается в апострофы.

Форматный вывод данных

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

Например: Writeln (x:7:2);

В данном примере указывается, что на экран должно быть выведено содержимое переменной x. Выводимое на экран число должно занимать 7 позиций с двумя знаками после запятой. Для вывода целой части отводится 4 позиции, т.к. одну позицию занимает десятичная точка.

Если для вывода числа 7 будет выделено 3 позиции, то на экран монитора будет выведено 7, а не 007.

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

Использование форматного вывода позволяет решить проблему корректного оформления различного рода таблиц.

Линейный вычислительный процесс

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

Пример: Вычислить среднее арифметическое и среднее геометрическое для двух действительных положительных чисел.


PROGRAM SREDNIE;

Var

a, b : real;

SR : real;

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>0

f(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 при каждом следующем исполнении оператора.