О с н о в н ы е п о н я т и я ал г о р и т м и ч е с к о г о я з ы к а

Автор: Пользователь скрыл имя, 27 Марта 2013 в 11:59, лекция

Краткое описание

СОСТАВ ЯЗЫКА. Обычный разговорный язык состоит из четырех основных
элементов: символов, слов, словосочетаний и предложений. Алгоритми-
ческий язык содержит подобные элементы, только слова называют элемен-
тарными конструкциями, словосочетания-выражениями, предложения-опера-
торами.

Файлы: 1 файл

Лекции по Паскалю.doc

— 405.00 Кб (Скачать)

Если выводимое значение занимает в поле вывода меньше позиций, чем  К,

то перед этим значением располагаются  пробелы.  Если выводимое значе-

ние не помещается в ширину поля К,  то для этого значения будет отве-

дено необходимое количество позиций. Для величин действительного  типа

элемент списка вывода может иметь  вид А:К:М, где А - переменная или  выраже-

ние действительного типа,  К - ширина поля вывода,  М  -  число  цифр

дробной части   выводимого значения.  К и М - выражения или константы

целого  типа.  В этом случае действительные значения выводятся в форме

десятичного числа с фиксированной точкой.

    Пример записи операторов вывода:

        . . . . . . . . . . . .

        var rA, rB: Real;       iP,iQ:Integer;

            bR, bS: Boolean;    chT, chV, chU, chW: Char;

        . . . . . . . . . . . .

        WriteLn(rA, rB:10:2);

        WriteLn(iP, iQ:8);

        WriteLn(bR, bS:8);

        WriteLn(chT, chV, chU, chW);

 

 

11.   С Т Р У К Т У Р А   П Р О Г Р А М М Ы

 

   Программа на языке ПАСКАЛЬ  состоит из заголовка, разделов  описаний

и раздела операторов.

   Заголовок программы содержит  имя программы, например:

 

      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.

   Переменные перечисляемого типа могут быть описаны в разделе описа-

ния переменных, например:

 

        var  Section: (RED, YELLOW, GREEN);

 

   При этом имена типов  отсутствуют,  а переменные определяются  сово-

купностью значений, составляющих данный перечисляемый тип.

  К переменным перечисляемого  типа  может быть  применим  оператор

присваивания:

 

          Section:= YELLOW;

 

   Упорядоченная последовательность  значений, составляющих перечисля-

емый тип, автоматически нумеруется, начиная с нуля и далее через  еди-

ницу. Отсюда следует, что к перечисляемым переменным и константам мо-

гут быть применены операции отношения  и  стандартные  функции  Pred,

Succ, Ord.

   Переменные и константы  перечисляемого типа не могут  быть элемента-

ми списка ввода или вывода.

 

22.   И Н Т Е Р В А Л Ь Н Ы Й   Т И П   Д А Н Н Ы Х

 

   Отрезок любого порядкового  типа

может   быть определен как  интервальный или ограниченный

тип. Отрезок  задается диапазоном от  минимального  до  максимального

значения констант, разделенных  двумя точками. В качестве констант мо-

гут быть использованы константы, принадлежащие  к целому, символьному,

логическому или перечисляемому типам. Скалярный тип, на котором стро-

ится отрезок, называется базовым  типом.

   Минимальное и  максимальное  значения констант называются нижней и

верхней границами отрезка,  определяющего  интервальный  тип.   Нижняя

граница должна быть меньше верхней.

{}

   Над переменными,  относящимися  к интервальному типу,  могут  выпол-

няться  все операции и применяться все  стандартные  функции,   которые

допустимы для соответствующего базового типа.

   При  использовании в программах интервальных  типов данных может  осущест-

вляться контроль   за  тем,  чтобы значения переменных не выходили за

границы, введенные  для этих переменных в описании интервального типа.

23.   М  А С С И В Ы

 

   Массивы  представляют собой ограниченную  упорядоченную совокупность

однотипных  величин.  Каждая отдельная величина называется компонентой

массива. Тип   компонент может быть любым,  принятым в языке ПАСКАЛЬ,

кроме файлового типа. Тип компонент называется базовым типом.

   Вся  совокупность компонент определяется  одним именем.  Для обозна-

чения отдельных  компонент используется конструкция,  называемая пере-

менной  с индексом или с индексами:

 

          A[5]     S[k+1]     B[3,5].

 

   В качестве индекса может  быть использовано выражение.  Тип индексов

может быть только интервальным или  перечисляемым.   Действительный  и

целый типы недопустимы.  Индексы  интервального типа, для которого ба-

зовым является целый тип,  могут принимать отрицательные,  нулевое и

положительные значения.{}

  В операторной части

программы один массив может быть присвоен другому, если их типы иден-

тичны, например:

 

         R1:=Z.

 

   Для ввода  или вывода  массива в список ввода или  вывода помещается

переменная  с индексом,  а операторы ввода  или  вывода  выполняются  в

Информация о работе О с н о в н ы е п о н я т и я ал г о р и т м и ч е с к о г о я з ы к а