скачать рефераты
  RSS    

Меню

Быстрый поиск

скачать рефераты

скачать рефератыРеферат: VAX и Berceley Pascal

зывается идентификатором.  Из рассмотренных примеров видно, что

идентификатор не  обязательно  представляет  собой  переменную:

sin, сos и т.д.  - это не переменные,  а имена функций. В прог-

раммах встречаются и другие виды идентификаторов.

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

нято называть операторами.

     Оператор присваивания состоит из имени,  идентифицирующего

переменную, символа присваивания и выражения.  В области описа-

ния функции  должен быть по крайней мере один оператор присваи-

вания, в котором именем,  идентифицирующим переменную, является

идентификатор функции.

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

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

переменной, идентифицированный именем, стоящим слева от символа

присваивания. В случае рассмотренного выше присвоения, происхо-

дящего в области описания функции,  осуществляется  определение

.

результата функции,  т.е. величины, возвращаемой в месте вызова

функции.

     Необходимо, чтобы тип выражения и тип переменной соответс-

твовали друг другу. Это соответствие обеспечивается, если пере-

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

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

Синтаксис

     оператор-присваивания:

       переменная:=выражение

Примеры

        i:=i+1;

        select:=true;

     Оператор процедуры  состоит  из  идентификатора процедуры,

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

список параметров  вызова.  Оператор  процедуры  без параметров

состоит только из идентификатора процедуры.

     Выполнение оператора процедуры приводит к выполнению дейс-

твий, перечисленных в описании этой процедуры. Прежде всего чем

это произойдет, происходит идентификация переменных, являющихся

параметрами вызова процедуры, и определение значений выражений.

Синтаксис

     оператор-процедуры:

       название-процедуры(список параметров)

       название- процедуры

     название-процедуры:

       идентификатор

Примеры

        Insert(InputFile)

        ColLin(inputstr,col)

        Exit

.

     Оператор перехода  состоит из ключевого слова goto,  после

которого следует ссылка на метку.

     Выполнение оператора перехода приводит к выполнению после-

довательности операторов, начинающихся с оператора, отмеченного

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

лах блока,  в котором определена метка,  указанная в операторе.

Недопустимо, чтобы   оператор   перехода  передавал  управление

внутрь сложного оператора или программы.

Синтаксис

     оператор-перехода:

       goto метка

     метка:

       идентификатор

Примеры

        goto 345

        goto finish

     Составной оператор состоит из ключевого слова begin, после

которого идет последовательность операторов  и  ключевое  слово

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

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

последовательности операторов.

     Выполнение составного оператора приводит к выполнению зак-

люченной в нем последовательности операторов.

Синтаксис

     составной-оператор:

       begin последовательность-операторов end

Примеры

        begin

         i:=1;

         j:=0;

.

        end;

        begin

         Writeln(out);

         read(in);

        end;

     Условный оператор состоит из ключевого слова if, после ко-

торого идет логическое выражение,  ключевое слово then и опера-

тор. После оператора может следовать ключевое слово else и сно-

ва оператор.

     Выполнение условного оператора  заключается  в  вычислении

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

на со значением true,  в выполнении  оператора,  идущего  после

ключевого слова then. Если результатом будет величина со значе-

нием false, а условный оператор не содержит ключевого слова el-

se, то  выполнение оператора заканчивается.  Если есть ключевое

слово else, то выполняется следующий после него оператор.

     Если оператор,  заключенный в условном операторе if, также

является условным, то в нем должно быть ключевое слово else.

Синтаксис

     Условный-оператор

       if логическое-выражение then оператор;

       if логическое-выражение then оператор

                               else оператор;

Примеры

        if a=b then a:=5 else a:=6;

        if a=b then begin

           a:=6;

           b:=6

        end;

        if a=b then

.

           if a=5 then

              b:=6

           else

             a:=1

        else

          a:=10;

Оператор варианта состоит из ключевого слова case,после которо-

го идет индекс варианта,  ключевое слово of,  список операторов

выбора, каждому  из которых предшествует метка выбора,  а после

него ключевое слово end.

     Список меток выбора состоит из списка констант,  после ко-

торого следует двоеточие. Каждая из констант этого списка долж-

на быть  одного типа с индексом варианта.  Если некоторая часть

списка констант является последовательностью элементов перечис-

ляемого типа, она может заменяться конструкцией :

     первый..последний

выделяющей первый   и  последний  элементы  последовательности.

Вместо меток выбора перед последним оператором выбора может ис-

пользоваться ключевое слово else. После такой "метки" двоеточие

не ставится.

Синтаксис

     оператор-варианта:

       case индекс-варианта of

            последовательность-операторов-выбора end

     Выполнение оператора выбора заключается в определении зна-

чения индекса варианта и выполнении того оператора, перед кото-

рым стоит  метка  выбора со значением,  равным значению индекса

варианта. Если такого оператора нет,  то  выполняется  оператор

после ключевого слова else, если и такого оператора нет, то вы-

полняется пустой оператор.

.

Примеры

        case a=b of

          false: i:=1;

          true:  j:=2

        end;

        case a=b of

          false: i:=1

        else j:=2

        end;

     ЦИКЛИЧЕСКИЕ ОПЕРАТОРЫ.

     Оператор for  состоит  из ключевого слова for,  за которым

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

ражение, определяющее начальное значение параметра цикла,  клю-

чевое слово to или downto,  ключевое слово  do  и  произвольный

оператор.

     Параметр цикла и оба выражения должны быть одинакового пе-

речисляемого типа.

Синтаксис

     оператор-for:

       for переменная:=выражение 4a 0 to выражение 4b 0 do оператор

Выполнение оператора  for приводит к выполнению содержащегося в

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

дятся в диапазоне значений выражение 4a 0  и выражение 4b 0.

Примеры

        for i:=1 to 4 do writeln(i);

     Оператор while состоит из ключевого слова while, посте ко-

торого идут  логическое  выражение,  ключевое  слово do и любой

оператор.

Синтаксис

     оператор-while:

.

       while выражение do оператор

     Оператор while выполняется по следующему алгоритму:

1. Определяется значение выражения.

2. Если это значение false,  то выполнение оператора  считается

оконченным.

3. Если получено значение true, то выполняется оператор, следу-

ющий после ключевого слова do,  а потом описанные действия пов-

торяются сначала.

Пример

        while i<>0 do begin

              i:=i-1;

              writeln(i)

        end;

     Оператор repeat состоит из ключевого слова repeat и идущих

за ним  произвольного оператора,  ключевого слова until и логи-

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

Синтаксис

     оператор-repeat:

       repeat оператор until выражение

     Оператор repeat выполняется по следующему алгоритму:

1. Выполняются операторы, идущие после ключевого слова repeat.

2. Вычисляется значение выражения после ключевого слова until.

3. Если получено значение true,  то выполнение оператора счита-

ется оконченным.

4. Если получено значение false, то описанные действия повторя-

ются сначала.

Пример

       i:=10;

       repeat

           writeln(i);

.

           i:=i-1;

      until i=0;

Стандартные типы Паскаля

     Понятие тип связано с фиксированным  набором  данных.  Переменная

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

надлежащие к набору определяющему этот тип.  В языке Паскаль необходи-

мое явное определение типа каждой из переменных в программе.

     Связь имени переменной с выбранным типом происходит при  описании

переменной. Типы переменных делятся на простые и составные.  К простым

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

- строковый,  массивовый,  записной,  множественный и файловый.  Среди

упомянутых типов можно выделить следующие  стандартные  типы:  integer

(целый), byte (байтовый), char (символьный), boolean (логический), re-

al (вещественный). Первые четыре называются порядковыми. Они характер-

ны не  только  тем,  что  элементы их упорядочены,  они также образуют

счетное множество.

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

лять их не надо. Их неявное определение действительно во всей програм-

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

Массивовый тип

    Массивовый тип является составным типом данных.  Массив состоит из

определенного количества компонентов одинакового типа. Доступ к компо-

нентам (элементам)  массива,  осуществляется с помощью индексирования.

Индексом может быть произвольное выражение порядкового типа, заключен-

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

описании массива.

     Описание массивового типа состоит из ключевого слова array, после

которого следует заключенное в квадратные скобки описание типа  индек-

сов, ключевое слово of, а после него описание типа элементов.

Синтаксис:

.

     описание-массива:

       array[тип-индексов] of тип-элементов

     тип-индексов:

       описание-порядкового-типа

     тип-элементов:

       описание-типа

Пирмеры:

        type

             str = array [1..250] of char;

        var

            inputstr: str;

Множественный тип

     Множественный тип  является  составным типом.  Множество -

это переменная,  которой может быть присвоено выбранное подмно-

жество множества всех подмножеств. Базовым множеством последне-

го может быть произвольное множество элементов порядкового  ти-

па. Каждый  элемент рассматриваемого типа является одним из та-

ких элементов.

     Два множества равны тогда и только тогда, если они состоят

из одинаковых элементов. Если все элементы одного множества яв-

ляются элементами другого, то говорят, что первое множество со-

держится во втором.

     Описание множественного  типа  состоит  из ключевого слова

set, после которого идет ключевое слово of и описание  базового

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

вого, содержал не более 256 элементов и чтобы результат функции

ord для каждого элемента находился в интервале [0;255].

Синтаксис

        описание-множественного-типа

           set of базовый-тип

.

        основной-тип:

           порядковый-тип

Примеры

        type

           Mnojestvo=set of char;

Функции и процедуры языка Паскаль

     Функции и процедуры являются объектами, описывающими опре-

деленные фрагменты алгоритма,  реализуемого программой, поэтому

они называются подпрограммами.

     В отличие от других сложных объектов,  например  оператора

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

в зависимости от ситуации: после использования оператора проце-

дуры или вызова функции.  Оператор процедуры может находиться в

любом месте программы,  в котором может использоваться,  напри-

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

только в выражении в виде обозначения функции.

     Подпрограммы, как и переменные,  должны быть описаны. Опи-

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

ка. Описание подпрограммы, называемое иногда определением, сос-

тоит из заголовка и блока,  являющегося телом подпрограммы. За-

головок процедуры состоит из ключевого слова procedure,  за ко-

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

чень параметров и точка с запятой. Заголовок функции состоит из

ключевого слова function,  за  которым  следует  заключенный  в

круглые скобки перечень параметров функции,  двоеточие, опреде-

ление типа результата функции и точка с запятой.  Если перечень

параметров под  программы  пустой,  то  он опускается вместе со

скобками.

     Необходимо, чтобы при выполнении функции был выполнен опе-

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

.

находится имя функции, а справа выражение, соответствующее типу

результата функции. Могут измениться некоторые параметры вызова.

Синтаксис

         описание-подпрограммы:

             описание-процедуры

             описание-функции

         описание-процедуры:

             procedure имя-процедуры (перечень-параметров);

             procedure имя-процедуры;

         описание-функции:

             function имя-процедуры (перечень-параметров):

                                         тип-результата;

             function имя-процедуры: тип-результата;

        имя-процедуры:

             идентификатор

        тип-результата:

             идентификатор-простого-типа

        идентификатор-простого-типа:

             идентификатор

     Элементы перечня параметров подпрограммы разделяются  точ-

кой с запятой. Каждый элемент перечня содержит список идентифи-

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

тор типа параметров данного списка.

     При обращении к подпрограмме происходит согласование  фор-

мальных параметров  подпрограммы  с фактическими параметрами её

вызова. Количество фактических параметров должно быть равно ко-

личеству формальных параметров.  Значения параметров передаются

в порядке появления их в заголовке подпрограммы и в обращении к

ней.

     Связь формальных и фактических параметров  может  осущест-

.

вляться по значению и по ссылке. В первом случае формальный па-

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

которой в  момент её выполнения (для данного вызова подпрограм-

мы) присвоено значение фактического параметра.  В втором случае

формальный параметр как бы замещает фактический.  Для использо-

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

ред списком  идентификаторов  параметров  должно  быть ключевое

слово var&

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

и фактического параметров,  когда последний представляет  собой

имя подпрограммы.  Одно из ограничений языка Паскаль по отноше-

нию к стандартному Паскалю состоит в том, что такого рода связь

отсутствует.

Синтаксис

         элемент-перечня-параметров:

            список-имён-параметров: обозначение-типа

            var список-имён-параметров: обозначение-типа

            var список-имен-параметров

         обозначение-типа:

            идентификатор-типа

         идентификатор-типа:

            идентификатор

         имя-параметра:

            идентификатор

     И в заключении отмечу, что Berkeley Pascal имеет в отличие

от стандартного Паскаля свои нестандартные функции и процедуры

(argc:integer; возвращает число аргументов в командной строке;

Random(0..1):real; датчик случайных чисел;

argv(integer,string); получение  аргумента  командной строки по

номеру и т.д.), что значительно облегчает разработку программ и

возможности этого языка.


Страницы: 1, 2


Новости

Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

Обратная связь

Поиск
Обратная связь
Реклама и размещение статей на сайте
© 2010.