Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Курс лекций СПбГУАП - информатика #7


Служба Рассылок Subscribe.Ru

Количество подписчиков: 111

+++++++++++++++++++++++++++++++++++++++++++++++++++

==============Объявления============================

Этот выпуск больше, чем раньше были. Но вот с частотой выхода пока
проблемы.

==============Лекция================================

     Как и любом языке (в том числе и естественном), в языке
Паскаль можно выделить пять уровней:
            I.  Основные символы (алфавит);
            II. Слова;
            III.Выражения;
            IV. Предложения;
            V.  Тексты.


                    I. Алфавит

     Представляет собой неделимые конструкции языка. Неделимость
с точки зрения транслятора - каждый элемент алфавита есть один
код. Неделимость с точки зрения написания - составные элементы
алфавита нельзя разрывать пробелами и переносить со строчки на
строчку.
     Алфавит включает

     - буквы (26 букв латинского алфавита, везде, за исключением
строк символов, строчные буквы эквивалентны соответствующим про-
писным):
<буква>::=  A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z  ;

     - цифры (10 арабских цифр):
<цифра>::=   0|1|2|3|4|5|6|7|8|9  ;

     - специальные знаки, представляющие собой
       а) знаки операций (например, + ╕ IN);
       б) скобки (например, ( ╕ ) ╕ begin ╕ end ),
       в) знаки, определяющие вид оператора (например, := ╕ IF
          ╕ FOR );
       г) разделители элементов синтаксических конструкций (например,
          . ╕ ; ╕ THEN ╕ OF ╕ DO ╕ UNTIL ╕ пробел )

<спецзнак>::=     __       ╕ + ╕  -  ╕        ╕       /       ╕
             подчеркивание плюс минус звездочка наклонная черта

  =  ╕    ;  ╕    :    ╕    '   ╕  <   ╕  >   ╕   (   ╕  )   ╕
равно т.запят.двоеточие апостроф меньше больше круглые скобки

  @  ╕   .  ╕  [  ╕  ] ╕      ╕    ^    ╕   <>   ╕       <=       ╕
адрес точка квадратные пробел указатель не равно меньше или равно

   ,   ╕       >=       ╕    :=   ╕    ..   ╕   $  ╕   {   ╕   }   ╕
запятая больше или равно присвоить две точки доллар фигурные скобки

       #        ╕     (  *)    ╕     (.  .)     ╕<cлово-знак>
порядковый номер альтернатива {} альтернатива []


<слово-знак>::= AND╕ ARRAY ╕ BEGIN ╕ CASE ╕  CONST  ╕     DIV
                 и  массив  начало  выбор  константа деление нацело

╕  DO    ╕      DOWTO   ╕ ELSE ╕ END ╕FILE╕FOR╕FORWARD╕FUNCTION╕
выполнять с понижением к иначе  конец файл для  вперед функция

   GOTO    ╕ IF ╕IN╕LABEL╕       MOD       ╕    NIL   ╕NOT╕OF╕OR╕
переход на  если в  метка остаток отделения нет адреса  не из или

  PACKED    ╕PROCEDURE╕ PROGRAM ╕RECORD╕ REPEAT  ╕   SET   ╕THEN╕
упакованный  процедура программа запись повторять множество тогда

TO╕TYPE╕UNTIL╕    VAR   ╕WHILE╕WITH╕
к  тип   до   переменная пока    с

 ABSOLUTE ╕CONSTRUCTOR╕DESTRUCTOR╕EXTERNAL╕IMPLEMENTATION╕
абсолютный конструктор деструктор внешний     реализация

INLINE╕INTERFACE╕ INTERRUPT ╕OBJECT╕   SHL     ╕    SHR     ╕
связь  интерфейс прерывание  объект сдвиг влево сдвиг вправо

STRING╕ UNIT ╕     USES    ╕  VIRTUAL  ╕  XOR
строка модуль использование виртуальный исключающее или

                        II. Слова
     Слово определяется как смысловая синтаксическая конструкция.
В Паскале любое слово имеет значение. Выделяются четыре разно-
видностей слов:
     1. Константы;
     2. Идентификаторы;
     3. Зарезервированные слова (стандартные идентификаторы);
     4. Метки.


                   II.1. Константы

     Строгое определение константы: константа - неизменяемая
в процессе выполнения программы величина, своим изображением
определяющая тип данных и значение.
    В Турбо Паскале вводится понятие типизированной константы.
При использовании она равнозначна переменной с заранее инициа-
лизированным значением, и в программе действия над ней могут
производиться также, как над переменной. В данном разделе мы
не будем рассматривать типизированные константы, так как они
не подпадают под строгое определение константы.
     Константы, соответствующие строгому определению, называ-
ются простыми и подразделяются на:
     1. Численные ;
       1.1. Целые (a. Десятичные; b. Шестнадцатиричные);
       1.2. Вещественные(a. С фиксированной точкой;
                         b. С плавающей точкой);
     2. Логические ;
     3. Литерные ;
     4. Адресные (ссылочные или указатели);
     5. Строковыми (стоками символов).

               1. Численные константы

                1.1. Целые константы

                а). Десятичные константы

     Представляют собой целые десятичные числа со знаком или
без знака, принадлежащие множеству значений хотя бы одного из
целых типов. Например, 5 ╕ +5 ╕ -5  .

               b). Шестнадцатиричные константы

     Представляют собой целые шестнадцатиричные числа без знака
в диапазоне от 0 до FFFF (где FFFF - максимальное четырехразряд-
ное положительное шестнадцатиричное число, ему соответствует
десятичное число 65535). При записи шестнадцатиричного числа
используется шестнадцать цифр
          0╕1╕2╕3╕4╕5╕6╕7╕8╕9╕A╕B╕C╕D╕E╕F ,
которым соответствуют значения
          0╕1╕2╕3╕4╕5╕6╕7╕8╕9╕10╕11╕12╕13╕14╕15 .
Признаком шестнадцатиричного числа является символ $ , стоящий
в начале записи числа. Например, $0 ╕ $A1 ╕ $123 ╕ $FFFF .

             1.2. Вещественные константы

     Вещественные константы записываются в двух формах - деся-
тичная дробь (вещественные числа с фиксированной точкой) и за-
пись в показательной или экспоненциальной форме (вещественные
числа с плавающей точкой).

      a). Вещественные константы с фиксированной точкой

     Записываются по обычным правилам арифметики, только целая
часть от дробной отделяется точкой, а не запятой. Например,
2.0 ╕ -0.0001 ╕ +3.5  .

        b). Вещественные константы с плавающей точкой

    Эти константы представлены в экспоненциальном виде:
                        mEp ,
где m - мантисса (целое десятичное или дробное число с фиксиро-
ванной точкой со знаком или без знака); символ E означает - ум-
ножить на десять в степени p; p -порядок или степень (целое де-
сятичное число со знаком или без знака). Точность представления
мантиссы (количество значащих цифр) и диапазон порядка должны
соответствовать множеству значений одного из возможных вещест-
венных типов данных. Например, 0.1E-21 ╕ -5E+3  .


                   2. Логические константы

     Существуют две логические константы  FALSE ╕ TRUE  .


                   3. Литерные константы

     Литерная константа - любой существующая литера. Она может
задаваться двумя способами:
     - как изображение литеры, заключенное в апострофы. Например,
'F' (литера F)╕ '1' (литера один) ╕ ''' (литера апостроф) ;
     - как литера, определяемая через код литеры. В этом случае
перед целым десятичным числом без знака, находящимся в интервале
от 0 по 255, ставится специальный знак # . Например, #65 (литера
A) ╕ #40 (литера открывающаяся круглая скобка) ╕ #36 (литера $) .


               4. Адресная константа
     (ссылочная константа или константа-указатель)

     Существует одна константа такого вида - NIL . Эта константа
несет значение - не существует адреса или значения ссылки или
указателя.

               5. Cтроки символов

     Строка символов определяется, как последовательность лю-
бых существующих символов, заключенная в апострофы. Эта после-
довательность может быть пустой - не содержать ни одного сим-
вола. Максимальная длина строки - 255 символов. Значением стро-
ки символов являются символы, входящие в строку. В Турбо Паска-
ле строка символов представляет собой строковую константу (лю-
бого типа STRING).

<строка символов>::=''╕'<символ>'╕'<cимволы>'


--      --╛     пустая строка     --╛      -╛
╕Н  ----+'+-T-------------------T-+'+----  К╕
L-      L-- ╕                   ╕ L--      --
            ╕      ------       ╕
            L--T-- cимвол --T----
               ╕   ------   ╕
               L-------------
Строка состоящая из одного символа есть литерная константа. В
Турбо Паскале строка символов представляет собой строковую конс-
танту (любого типа STRING).
     Примера строк символов:
'информатика'╕''╕'alfa centavra'

                   II.2. Идентификаторы

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

<идентификатор>::=<буква>╕<идентификатор><буква>╕
                  <идентификатор><цифра>╕<идентификатор>_
Примеры идентификаторов:
w╕beta╕z1╕primer125_a╕GNOM_IZ_SKAZKI

     Идентификаторы используются в качестве имен
     - текстов на языке Паскаль (программа, подпрограмма, модуль);
     - меток;
     - констант;
     - типов данных;
     - значений в перечисляемых типах;
     - переменных;
     - полей в записях.

     В Турбо Паскале могут использоваться уточняющие идентифи-
каторы (когда используются модули, с совпадающими идентифика-
торами внутри разных модулей и основной программы). Здесь уточ-
няющий идентификатор состоит из двух частей - идентификатор (имя)
модуля и идентификатор внутри модуля, разделенных точкой.

<составной идентификатор>::=<идентификатор модуля>.<идентификатор>

Примеры составных идентификаторов:
System.MemAvail╕Crt.Windows


               II.3. Зарезервированные слова
                 (стандартные идентификаторы)

      По синтаксису зарезервированные слова - идентификаторы.
За этими идентификаторами закреплено строго определенное назна-
чение. Они могут использоваться только в закрепленном за ними
назначении.
     Стандартные идентификаторы включают в себя:
     - имена стандартных типов данных;
     - имена стандартных модулей;
     - имена стандартных процедур и функций;
     - имена значений логических и адресной констант.

Примеры зарезервированных слов:
INTEGER╕SYSTEM╕SIN╕FALSE


               II.4. Метки

     Метки служат для того, чтобы можно было пометить любой
оператор программы. С точки зрения структурного программиро-
вания хорошая (в смысле - структурированная) программа не долж-
насодержать меток. Использовать метки в структурированных прог-
раммах допускается только в двух случаях, о которых мы будем
говорить позднее.
     Метка - любое целое десятичное число без знака в пределах
от 0 по 9999. В Турбо Паскале меткой может быть также любой
идентификатор.
     Правило пометки оператора:
              <метка> : <оператор>
Один оператор может быть помечен только одной меткой. Два раз-
личных оператора не могут быть помечены одной и той же меткой.
Все используемые метки должны быть описаны в разделе описания
используемых меток (требования самодокументации программ на
Паскале).



              III. Выражения

     Выражения - это вычисляемые конструкции языка. По типам
получаемых результатов и составным частям выражений выражения
подразделяются на три вида:
     1. Арифметические выражения;
     2. Выражения отношения;
     3. Логические выражения.

     Порядок вычисления выражений подобен порядку вычисления
математических выражений в арифметике:
     - сначала выполняются действия в скобках;
     - вычисление ведется слева направо;
     - операции имеющие более высокий приоритет (ранг) выпол-
няются вперед (например, умножение выполняется вперед сложения,
если та и другая операция присутствуют в формуле и отсутствуют
скобки).

     В языке Паскаль принята следующая система приоритетов
(рангов) операций (самый высокий ранг 0, самый низкий - 4):
     0 - функции;
     1 - унарные операции. Знаки операций +╕-╕NOT ;
     2 - бинарные мультипликативные операции (операции типа ум-
ножение). Знаки операций *╕/╕DIV╕MOD╕AND╕SHL╕SHR ;
     3 - бинарные аддитивные операции (операции типа сложения).
Знаки операций +╕-╕OR╕XOR ;
     4 - операции сравнения (отношения). Знаки операций  <╕>╕=╕
<>╕<=╕>=╕IN .

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

    Правила записи:
    - при записи выражение не выходит за верхнюю и нижнюю гра-
ницы строки (нет "многоэтажных" формул, как в математике);
    - переносить выражение со строки на строку можно только на
месте знака операции или скобки;
    - при переносе выражений знаки не повторяются.


         III.1. Арифметические выражения

     Арифметические выражения при вычислении дают результат
численного типа (любого целого или вещественного).
     В состав арифметического выражения могут входить:
     - константы любого из численных типов;
     - переменные, любого численного типа;
     - функции, дающие результат любого численного типа;
     - знаки арифметических операций (+╕-╕*╕/╕DIV╕MOD);
     - для целочисленных операндов: знаки поразрядных логичес-
ких операций (NOT╕AND╕OR╕XOR) и знаки операций сдвига (SHL╕SHR);
     - круглые скобки () для изменения порядка выполнения опе-
раций.

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

    Примеры записи арифметических выражений
 ----------------------------T--------------------------╛
 ╕  Математическая запись    ╕   Запись на Паскале      ╕
 +---------------------------+--------------------------+
 ╕        sin 1,57           ╕      SIN(1.57)           ╕
 +---------------------------+--------------------------+
 ╕         5a+b              ╕                          ╕
 ╕         ----              ╕      (5*a+b)/2           ╕
 ╕          2                ╕                          ╕
 L---------------------------+---------------------------

                III.2. Выражения отношения

     Выражение отношения представляет собой отдельную операцию
сравнения (отношения). Результат такого выражения всегда логи-
ческого типа BOOLEAN.
     Таким образом, в состав выражения отношения могут входить
     - один из знаков операций сравнения (отношения) (<╕>╕=╕<>╕
<=╕>=╕IN);
     - два операнда.

     Операндами для операций "меньше", "больше", "равно",
"неравно", "меньше или равно" и "больше или равно" могут
быть:
     - два любых арифметических выражения;
     - две величины (заданные переменными или константами)
ОДНОГО порядкового типа.

     Напоминаем, сравнение выполняется после того, как будут
вычислены значения операндов.


                III.3. Логические выражения

     Результат вычисления логического выражения - значение ло-
гического типа BOOLEAN. Логическое выражение подразумевает вы-
полнение действий над логическими величинами. Поэтому в состав
логического выражения могут входить:
     - константы логического типа BOOLEAN;
     - переменные логического типа BOOLEAN;
     - функции, дающие результат логического типа BOOLEAN;
     - выражения отношения (они всегда имеют результат логичес-
кого типа BOOLEAN);
     - знаки логических операций (NOT╕AND╕OR╕XOR);
     - круглые скобки () для изменения порядка выполнения опе-
раций.

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

     Пример записи логического выражения:

     Задание. Написать логическое выражение, доставляющее зна-
чение TRUE, если точка с координатами X,Y принадлежит заштрихо-
ванной области.
                            Y
                            ^
                            ╕
                            ╕
                            +R
                            ╕
                            ╕
                            ╕
               -R           ╕           R
     -------------+---------+---------+-------------->X
                           0╕
                            ╕
                            ╕
                            ╕
                            + -R
                            ╕
                            ╕

     Построим математическую модель для решаемой задачи. Из ри-
сунка видно, что заштрихованная область состоит из двух незави-
симых областей (обозначим I и II). Таким образом, точка принад-
лежит заштрихованной области, если она принадлежит I ИЛИ II об-
ластям. Рассмотрим по отдельности области. Область на плоскости
с точки зрения математики представляет собой геометрическую
интерпретацию системы неравенств с двумя переменными (в нашем
случае это X и Y). Первая область определяется, как область
лежащая внутри окружности И (одновременно) выше параболы.
Cистема неравенств, определяющая область I:

            X╓ + Y╓ <= R╓
                 Y  >= X╓

Область II определяется, как область лежащая внутри окружности
И (одновременно) ниже прямой Y=X И (одновременно) левее оси Y.
Система неревенств, определяющая эту область, имеет вид:

            X╓ + Y╓ <= R╓
                  Y <= X
                  X <= 0

Решение каждой системы неравенств определяется одновременным вы-
полнением неравенств (условий или соотношений), из которых сост-
оит система.
    Таким образом, план решения будет такой:
    (I)  ИЛИ (II) ;

    ( (X╓ + Y╓ <= R╓) И (Y >= X╓) ) ИЛИ
    ( (X╓ + Y╓ <= R╓) И (Y <= X) И (X <= 0) ) .

Этому на Паскале соответствует следующее выражение:

((SQR(X)+SQR(Y)<=SQR(R))AND(Y>=SQR(X)))OR
((SQR(X)+SQR(Y)<=SQR(R))AND(Y<=X)AND(X<=0))

или упрощенное выражение:

(SQR(X)+SQR(Y)<=SQR(R))AND((Y>=SQR(X))OR((Y<=X)AND(X<=0)))


            IV. Предложения;

     Предложения состоят из двух больших групп - описательные
предложения или декларации и исполнительные предложения или
операторы языка. Cтруктура уровня предложени следующая:

     1. Описательные предложения (декларации);
        1.1. Заголовок текста;
            1.1.1. Заголовок программы;
            1.1.2. Заголовок подпрограммы;
                   (а. Заголовок процедуры;
                    b. Заголовок функции);
            1.1.3. Заголовок модуля;
        1.2. Подключаемые модули;
        1.3. Используемые метки;
        1.4. Поименованные константы;
        1.5. Нестандартные типы;
        1.6. Переменные;
     2. Исполнительные предложения (операторы);
        2.1. Оператор присваивания;
        2.2. Оператор обращения к процедуре;
        2.3. Составной оператор;
        2.4. Пустой оператор;
        2.5. Условный оператор (a. Полный; b. Короткий);
        2.7. Оператор выбора;
        2.8. Оператор цикла с предусловием (оператор цикла пока);
        2.9. Оператор цикла с постусловием (оператор цикла до);
        2.10.Оператор цикла с параметром;
        2.11.Оператор присоединения.

     Изучать предложения в отрыве от текстов очень сложно. По-
этому мы начнем одновременно изучать следующий уровень языка -
тексты.

                      V.  Тексты

     Тексты в Турбо Паскале трех разновидностей:
     1. Текст программы;
     2. Текст подпрограммы;
        2.1. Текст процедуры;
        2.2. Текст функции;
     3. Текст модуля.

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

            V.1. Текст программы

     Текст программы состоит из разделов.

     Раздел 1. Заголовок программы.
     ---------
     Текст программы должен иметь имя. Имя программы должно нес-
ти в себе какую-либо информацию о назначении программы (это тре-
бование культуры программирования). Этот раздел реализуется с
помощью предложения:

             IV.1.1.1. Заголовок программы

Cинтаксис предложения:

--      --------╛       -------------    --╛    -╛
╕Н  ----+PROGRAM+------ имя программы ---+;+--  К╕
L-      L--------       -------------    L--    --


     Например, программу решения квадратного уравнения можно
озаглавить:
                    PROGRAM KVUR;


     Раздел 2. Подключаемые модули.
     ---------
     В частном случае, модуль представляет собой отдельно существую-
щую библиотеку описаний вспомогательных алгоритмов (процедур и функ-
ций). Из этой библиотеки можно использовать готовые процедуры и функ-
ции в своей программе. Для этого нужно осуществить подключение модуля
к программе, что реализуется с помощью предложения:

             IV.1.2. Подключаемые модули

Cинтаксис предложения:

--      -----╛       ------------       --╛     -╛
╕Н  ----+USES+---T--  имя модуля   --T--+;+---  К╕
L-      L-----   ╕   ------------    ╕  L--     --
                 ╕        --╛        ╕
                 L--------+,+---------
                          L--

     Например, к программе подключаются модули управления дисплея в
графическом режиме - модуль GRAPH и модуль, реализующий функции опера-
ционной системы, - модуль DOS :
                    USES GRAPH,DOS;

     Раздел 3. Используемые метки.
     ---------
     Мы уже говорили, что структурированные программы не должны
содержать меток, однако, есть возможность их использовать. В этом
случае все используемые метки должны быть описаны с помощью
предложения:

             IV.1.3. Используемые метки

Cинтаксис предложения:

--      ------╛       -------       --╛     -╛
╕Н  ----+LABEL+---T--  метка  ---T--+;+---  К╕
L-      L------   ╕   -------    ╕  L--     --
                  ╕     --╛      ╕
                  L-----+,+-------
                        L--

Например, если в программе используются метка 4462 и INPUT_DAN, то
раздел меток выглядит следующим образом:
                   LABEL 4462, INPUT_DAN;

     Раздел 4. Поименованные константы.
     ---------
     Одним из примеров использования поименованных констант яв-
ляется случай, когда в программе неудобно использовать изобра-
жение константы. Например, в нескольких местах в программе ис-
пользуется константа -0.35689712348. При написании этой констан-
ты можно легко ошибиться. Лучше дать этой константе имя и затем
в программе пользоваться этим именем.
     Раздел реализуется предложением:

                IV.1.4. Поименованные константы

Cинтаксис предложения:

--      ------╛       -----   --╛   --------   --╛        -╛
╕Н  ----+CONST+---T--  имя  --+=+-- значение --+;+--T---  К╕
L-      L------   ╕   -----   L--   --------   L--  ╕     --
                  ╕                                 ╕
                  L----------------------------------

     Например,    CONST ALFA = -0.35689712348;

     Раздел 5. Нестандартные типы.
     ---------
     Все нестандартные типы, используемые в программе должны
быть определены в этом разделе, что достигается с помощью
предложения:

             IV.1.5. Нестандартные типы

Cинтаксис предложения:

--      -----╛       -----   --╛   -----------   --╛        -╛
╕Н  ----+TYPE+---T--  имя  --+=+-- определение --+;+--T---  К╕
L-      L-----   ╕   -----   L--   -----------   L--  ╕     --
                 ╕                                    ╕
                 L-------------------------------------
Здесь определение представляет собой непосредственное определе-
ние нестандартного типа.

Например,
     TYPE RADUGA=(KR,ORAN,GEL,ZEL,SINI,GOL,FIOL);
          TEP_CV=KR..GEL;

     Допускается не описывать нестандартные типы данных, если
в программе используется только их непосредственное определение.

     Раздел 6. Переменные.
     ---------
     Все переменные, используемые в программе должны быть опи-
саны - должны быть указаны имя и тип для каждой переменной.
По разделу переменных осуществляется статическое распределение
памяти - под каждую переменную выделяется свободный участок
оперативной памяти, размер этого участка  определяется типом
переменной, каждому выделенному участку дается имя, представля-
ющее собой имя переменной.
     Описание переменных реализуется с помощью предложения:

             IV.1.6. Описание переменных

Cинтаксис предложения:

--      ----╛           -----       --╛   -----   --╛        -╛
╕Н  ----+VAR+---T---T--  имя  --T---+:+--  тип  --+;+--T---  К╕
L-      L----   ╕   ╕   -----   ╕   L--   -----   L--  ╕     --
                ╕   ╕    --╛    ╕                      ╕
                ╕   L----+,+-----                      ╕
                ╕        L--                           ╕
                L---------------------------------------
В качестве типа указывается имя типа данных, допускается зада-
вать непосредственное определение типа (но это нежелательно с
точки зрения структурного программирования).
     Пример. Пусть в алгоритме используется три целочисленных
переменных I, J и K. Возможны следующие правильные варианты их
описания:
1) VAR I:INTEGER; J:INTEGER; K:INTEGER;
2) VAR I,J,K:INTEGER;
3) VAR I,J:INTEGER; K:INTEGER;
4) VAR I:INTEGER; J,K:INTEGER;
Вне зависимости от приведенных вариантов описания, в оператив-
ной памяти будет выделено три независимых участка, каждый из
которых достаточен для хранения одной целочисленной величины.
Участкам будут даны имена - имена переменных I,J,K:

                  Оперативная память
             -------------------------------╛
             ╕           .  .  .            ╕
             +------------------------------+
           I ╕        под INTEGER           ╕
             +------------------------------+
             +------------------------------+
           J ╕        под INTEGER           ╕
             +------------------------------+
             +------------------------------+
           K ╕        под INTEGER           ╕
             +------------------------------+
             ╕           .  .  .            ╕
             L-------------------------------
Содержимое памяти после выделения участков останется неопределен-
ным. Содержимое выделенных участков памяти будут формировать ко-
манды - операторы программы. Занятая память освободится после
окончания выполнения программы.

     Раздел 7. Описание собственных процедур и функций.
     ---------
     В этом разделе помещаются тексты подпрограмм - процедур и
функций, которые программист разработал специально для данного
основного алгоритма. О правилах оформления текстов подпрограмм
будем говорить позднее.

     Раздел 8. Раздел операторов.
     ---------
     В этом разделе размещаются описания действий алгоритма -
операторы.
Cинтаксис:

--      ------╛       ----------       ----╛   --╛     -╛
╕Н  ----+BEGIN+---T--  оператор   --T--+END+---+.+---  К╕
L-      L------   ╕   ----------    ╕  L----   L--     --
                  ╕       --╛       ╕
                  L-------+;+--------
                          L--
Точка с запятов в разделе операторов служит для отделения
оператора от оператора (а не заканчивает оператор, как в дру-
гих языках программирования).


     В Паскале порядок следования разделов строго определен.
Некоторые разделы могут отсутствовать из-за ненадобности. Одна-
ко, даже самая простая программа должна содержать первый, шес-
той и восьмой разделы. Разделы со третьего по восьмой включи-
тельно образуют блок.
     В Турбо Паскале допускается произвольное следование разде-
лов блока (с третьего по седьмой). Допускается даже повторение
некоторых разделов. Порядок следования деклараций определяется
следующим правилом: новое описание должно базироваться либо на
стандартных определениях, либо ранее определенных нестандартных.

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


====================================================

Адрес автора рассылки: playnet@mailru.com

+++++++++++++++++++++++++++++++++++++++++++++++++++

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное