Реферат: Основные понятия алгоритмического языка
Программа на языке ПАСКАЛЬ состоит из заголовка, разделов описаний
и раздела операторов.
Заголовок программы содержит имя программы, например:
Program PRIM;
Описания могут включать в себя раздел подключаемых библиотек (мо-
дулей), раздел описания меток, раздел описания констант, раздел опи-
сания типов, раздел описания переменных, раздел описания процедур и
функций.
Раздел описания модулей определяется служебным словом USES и со-
держит имена подключаемых модулей (библиотек) как входящих в состав
системы TURBO PASCAL, так и написанных пользователем. Раздел описания
модулей должен быть первым среди разделов описаний. Имена модулей от-
деляются друг от друга запятыми:
uses CRT, Graph;
Любой оператор в программе может быть помечен меткой. В качестве
метки используются произвольные целые без знака, содержащие не более
четырех цифр, либо имена. Метка ставится перед оператором и отделяет-
ся от него двоеточием. Все метки, используемые в программе, должны
быть перечислены в разделе описания меток, например:
label 3, 471, 29, Quit;
Описание констант позволяет использовать имена как синонимы конс-
тант, их необходимо определить в разделе описаний констант:
const K= 1024; MAX= 16384;
В разделе описания переменных необходимо определить тип всех пере-
менных, используемых в программе:
var P,Q,R: Integer;
A,B: Char;
F1,F2: Boolean;
Описание типов, прцедур и функций будет рассмотрено ниже. Отдель-
ные разделы описаний могут отсутствовать, но следует помнить, что в
ПАСКАЛЬ - программе должны быть обязательно описаны все компоненты
программы.
Раздел операторов представляет собой составной оператор, который
содержит между служебными словами
begin.......end
последовательность операторов. Операторы отделяются друг от друга
символом ;.
Текст программы заканчивается символом точка.
Кроме описаний и операторов ПАСКАЛЬ - программа может содержать
комментарии, которые представляют собой произвольную последователь-
ность символов, расположенную между открывающей скобкой комментариев
{ и закрывающей скобкой комментариев }.
Текст ПАСКАЛЬ - программы может содержать ключи компиляции, кото-
рые позволяют управлять режимом компиляции. Синтаксически ключи ком-
пиляции записываются как комментарии. Ключ компиляции содержит символ
$ и букву-ключ с последующим знаком + (включить режим) или - (выклю-
чить режим). Например:
{$E+} - эмулировать математический сопроцессор;
{$F+} - формировать дальний тип вызова процедур и функций;
{$N+} - использовать математический сопроцессор;
{$R+} - проверять выход за границы диапазонов.
Некоторые ключи компиляции могут содержать параметр, например:
{$I имя файла} - включить в текст компилируемой программы назван-
ный файл.
Пример записи простой программы:
Program TRIANG;
var A, B, C, S, P: Real;
begin
Read(A,B,C);
WriteLn(A,B,C);
P:=(A+B+C)/2;
S:=Sqrt(P*(P-A)*(P-B)*(P-C));
WriteLn('S=',S:8:3)
end.
12. Б И Т О В А Я А Р И Ф М Е Т И К А
Битовая или поразрядная арифметика введена в TURBO PASCAL для
обеспечения возможности работы с двоичными разрядами (битами). Опера-
ции битовой арифметики применимы только к целым типам.
Первая группа операций - логические операции not, and, or и xor.
Операция not является одноместной, она изменяет каждый бит целого
числа на обратный.
Операции and, or и xor - двуместные, операнды этих операций - целые
величины одинаковой длины. Операции выполняются попарно над всеми
двоичными разрядами операндов.
Вторая группа операций - это операции сдвига влево shl и сдвига
вправо shr:
I shl N
I shr N.
Эти операции сдвигают двоичную последовательность значения I влево
или вправо на N двоичных разрядов. При этом биты, уходящие за пределы
разрядной сетки, теряются, а освободившиеся двоичные разряды заполня-
ются нулями. При сдвиге вправо отрицательных значений освободившиеся
разряды заполняются единицами.
13. О П Е Р А Т О Р П Е Р Е Х О Д А
Обычно операторы в программе выполняются в том порядке, в каком
они записаны. Оператор перехода прерывает естественный порядок выпол-
нения программы и указывает, что дальнйшее выполнение должно продол-
жаться, начиная с оператора, помеченного меткой, указанной в операто-
ре перехода. Пример записи оператора перехода:
goto 218;
14. Э Л Е М Е Н Т Ы С Т Р У К Т У Р Н О Г О
П Р О Г Р А М М И Р О В А Н И Я
Структуризованная программа (или подпрограмма) - это программа,
составленная из фиксированного множества базовых конструкций. Расс-
мотрим основные определения и способы образования этих конструкций в
схемах алгоритмов.
{}
Из операций, развилок и слияний строятся базовые конструкции: сле-
дование, ветвление, цикл. Применяя только эти три конструкции, можно
реализовать алгоритм решения любой задачи.
Конструкция, представляющая собой последовательное выполнение двух
или более операций, называется следованием.
Конструкция, состоящая из развилки, двух операций и слияния, назы-
вается ветвлением. Одна из операций может отсутствовать.
Конструкция, имеющая линии управления, ведущие к предидущим опера-
циям или развилкам, называется циклом.
Конструкции следование, ветвление и цикл можно представить как
операции, так как они имеют единственный вход и единственный выход.
Произвольную последовательность операций можно представить как одну
операцию.
Операция может быть реализована любым оператором языка ПАСКАЛЬ
(простым или составным), либо группой операторов, за исключением опе-
ратора перехода GOTO.
В языке ПАСКАЛЬ количество базовых конструкций увеличено до шести,
это:
-следование;
-ветвление;
-цикл с предусловием;
-цикл с постусловием;
-цикл с параметром;
-вариант.
Далее рассмотрим, как эти базовые конструкции реализуются в языке
ПАСКАЛЬ.
15. У С Л О В Н Ы Й О П Е Р А Т О Р
{}
Условный оператор в короткой форме работает по правилу: если бу-
левское выражение B истинно, то выполняется оператор ОР1, далее вы-
полняется оператор, следующий за условным. Если булевское выражение B
ложно, то будет выполняться оператор, следующий за этим условным опе-
ратором.
16. Ц И К Л С П Р Е Д У С Л О В И Е М{}
17. Ц И К Л С П О С Т У С Л О В И Е М{}
18. Ц И К Л С П А Р А М Е Т Р О М{}
19. О П Е Р А Т О Р Ы З А В Е Р Ш Е Н И Я Ц И К Л А
Для всех операторов цикла выход из цикла осуществляется как
вследствие естественного окончания оператора цикла, так и с
помощью операторов перехода и выхода.
В версии ТУРБО ПАСКАЛЬ 7.0 определены стандартные процедуры Break и
Continue. Процедура Break выполняет безусловный выход из цикла. Проце-
дура Continue обеспечивает переход к началу новой итерации цикла.
20. О П Е Р А Т О Р В А Р И А Н Т А{}
21. П Е Р Е Ч И С Л Я Е М Ы Й Т И П Д А Н Н Ы Х
Перечисляемый тип представляет собой ограниченную упорядоченную
последовательность скалярных констант, составляющих данный тип. Зна-
чение каждой константы задается ее именем. Имена отдельных констант
отделяются друг от друга запятыми, а вся совокупность констант, сос-
тавляющих данный перечисляемый тип, заключается в круглые скобки.
Программист объединяет в одну группу в соответствии с каким - либо
признаком всю совокупность значений, составляющих перечисляемый тип.
Например, перечисляемый тип Rainbow(РАДУГА) объединяет скалярные значения
RED, ORANGE, YELLOW, GREEN, LIGHT_BLUE, BLUE, VIOLET (КРАСНЫЙ,
ОРАНЖЕВЫЙ, ЖЕЛТЫЙ, ЗЕЛЕНЫЙ, ГОЛУБОЙ, СИНИЙ, ФИОЛЕТОВЫЙ). Пе-
речисляемый тип Traffic_Light (СВЕТОФОР) объединяет скалярные
значения RED, YELLOW, GREEN (КРАСНЫЙ, ЖЕЛТЫЙ, ЗЕЛЕНЫЙ).
Перечисляемый тип описывается в разделе описания типов, который
начинается со служебного слова type, например:
type
Rainbow = (RED, ORANGE, YELLOW, GREEN, LIGHT_BLUE, BLUE, VIOLET);
Каждое значение является константой своего типа и может принадле-
жать только одному из перечисляемых типов, заданных в программе. Нап-
ример, перечисляемый тип Traffic_Light не может быть определен в одной
программе с типом Rainbow, так как оба типа содержат одинаковые конс-
танты.
Описание переменных, принадлежащих к скалярным типам, которые объ-
явлены в разделе описания типов, производится с помощью имен типов.
Например:
type Traffic_Light= (RED, YELLOW, GREEN);
var Section: Traffic_Light;
Это означает, что переменная Section может принимать значения RED,
YELLOW или GREEN.
Переменные перечисляемого типа могут быть описаны в разделе описа-
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12