Реферат: VAX и Berceley Pascal

                        РЕФЕРАТ

                VAX  И BERCELEY PASCAL

     КомпьютерVAX фирмы DEC  (Digital  Equipment  Corporation)

принадлежит  к семейству мини-ЭВМ.  Система VAX похожа налюбую

другую компьютерную систему. Аппаратное и программноеобеспече-

ние,  работая вместе, образуют высокоэффективную ивысокопроиз-

водительную систему.  Обобщенная структура системы VAX-11пока-

зана на рис.1.

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

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

ции его средств и изменения системных параметров.Загрузка сис-

темных программ выполняется посредством подсоединенной кмашине

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

ках.  Связь центрального процессора VAX с оперативнойпамятью и

внешними устройствами (за исключением  консоли) осуществляется

через  так  называемое синхронное межсоединение. Физически оно

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

дули на печатных схемах.

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

го  доступа (RAM — Random Access Memory),  как и вперсональных

компьютерах. В оперативной памяти находятся данные ипрограммы,

выполняемые  центральным  процессором.  Содержимое  этойпамяти

постоянно изменяется;  она очищается в момент выключениякомпь-

ютера.

     Устройство центрального процессора — это мозг компьютера.

Центральный  процессор  выполняет  команды программ иуправляет

другими компонентами системы.В состав  центрального процессора

VAX  входит логическое устройство,  управляющееизвлечением ко-

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

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

центрального процессора входит также ряд  регистров. Некоторые

.

из  них предоставляются в распоряжение пользователей,  адругие

предназначены исключительно для работы центральногопроцессора.

Пользователи  могут  работать с 16 регистрамицентрального про-

цессора размером 32 двоичных разряда каждый.  Двенадцатьиз них

(R0-R11)  являются регистрами общего назначения.  Спомощью ре-

гистров R0-R11 можно формировать адреса операндов. Оставшимися

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

раммисты, понимающие особую роль этих регистров всистеме.

     В состав  центрального процессора VAX входит такжерегистр

из 32 двоичных разрядов,  называемый длинным  словом состояния

процессора.  Его старшие 16 двоичных разрядов содержатинформа-

цию о состоянии процессора. Изменение этой информацииразрешено

только  привилегированным  системным  программампользователей.

Младшие 16 двоичных разрядов этого регистра образуют так назы-

ваемое «слово состояния программы». В этомслове содержится ин-

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

     Но что  такое  компьютер без соответствующегопрограммного

обеспечения ?! Машину без программного обеспечения иногданазы-

вают  «голой».  Первые машины на самом делебыли «голыми».  Они

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

этом режиме и вызвала появление операционных систем.

     Одной из них и явилась операционная система  UNIX. Первая

версия ОС UNIX была разработана в 1969 г.  К.Томпсоном иД.Рит-

чи.  А уже потом она стала интенсивно развиваться  и адаптиро-

ваться  различными  фирмами  для  разных ЭВМ.  Вчастности была

спроектирована ОС UNIX BSD 4.3 для компьютеров серии VAX.

     Система UNIX проектировалась в первую очередь как инстру-

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

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

успели.  Прежде всего они учли все то лучшее,  чтоимелось в то

.

время в уже существующих операционных системах. Создатели UNIX

смогли  реализовать  принципиально  новую ОС на базенескольких

новых и плодотворных идей.  Положенные в  основу системы  идеи

позволили  применять  UNIX  на  компьютерах с разнойархитекту-

рой.Следовательно,  применение  этой  ОС  позволяет переносить

программы,  работающие под ее управлением,  с одного типамашин

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

них.  Это  дает возможность разработчикам создаватьпрограммы в

виде законченного продукта, которому гарантирован широкийрынок

сбыта.

     Она включает в себя множество средств,  удобных длясозда-

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

 7: 0 Иерархическую файловую систему ;

 7: 0 Совместимые по вводу/выводу файлы,устройства и процессы;

 7: 0 Асинхронную обработку;

 7: 0 Интерпретатор командного языка;

 7: 0 Свыше 100 системных и вспомогательныхкоманд;

 7: 0 Ряд языков программирования, включаяПаскаль, Бейсик и Си.

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

системами UNIX имеет два недостатка. Она очень эффективнав тех

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

решении нескольких одинаковых задач  ее  эффективность падает.

Второй недостаток ОС UNIX — слабая приспособленность кработе в

режиме реального времени.  Но не стоит терять из внимания  то,

что существует возможность адаптирования UNIX для решениятако-

го рода задач,  но следует учитывать,  что существуют и другие

ОС, в большей степени приспособленные для решения такихзадач.

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

попробую описать основные положения при работе с ней.

     Работа с системой UNIX начинается с входа в  нее, т.е.  с

.

процедуры входа. Эта процедура обеспечивает возможностьрегист-

рировать имена пользователей,  время входа, использованное ма-

шинное время, а также идентифицировать владельцев файлов,опре-

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

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

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

число абонентов. При входе в систему вы получитесообщение «lo-

gin:».  Вы должны будете ввести ваше регистрационноеимя. Далее

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

это слово,  которое держится в секрете и  вводится  в качестве

подтверждения идентификатора пользователя. Вводитепароль.

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

ется на экране.  Исключение сделано только для пароля,вводимые

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

ного  внимания,  поскольку ошибка при этом приведет кнеобходи-

мости повторения всей процедуры входа.

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

цедура входа продолжается.  По окончании процедуры входа  UNIX

выдауе на экран некоторое сообщение. После этого на экранвыво-

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

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

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

формационных команд.

.

┌─────────────────────────────────────────┬───────────────────┐

│                КОМАНДА                  │     ЗНАЧЕНИЕ     │

├─────────────────────────────────────────┼───────────────────┤

│ ps                                      │выводит информацию│

│                                         │ отекущем  состоя-│

│                                         │нии сети.         │

│ who                                     │вывод списка рабо-│

│                                         │тающих  в  данный │

│                                         │момент пользовате-│

│                                         │лей.              │

│ echo [набор символов]                   │вывод набора  сим-│

│                                         │ волов.           │

│ data                                    │вывод текущей даты│

│                                         │ ивремени.        │

│ man [имя команды]                       │выводит информацию│

│                                         │ оуказанной коман-│

│                                         │де.               │

│ pwd                                     │вывод  абсолютного│

│                                         │имени текущего ка-│

│                                         │талога.           │

│ ls                                      │вывод  содержимого│

│                                         │текущего каталога.│

│ cd [путь\имя директории]                │осуществляет пере-│

│                                         │ход   в  указанную│

│                                         │директорию.       │

│ сat [путь\имя файла]                    │вывод  содержимого│

│                                         │содержимого  файла│

│                                         │на экран.         │

│ mkdir [путь\имя директории]             │создание  директо-│

.

│                                         │рии.              │

│ cp [путь1\имя файла1] [путь2\имя файла1]│копирование файла1│

│                                         │из одной  директо-│

│                                         │рии     в   другую│

│                                         │(сначала  указыва-│

│                                         │ется откуда  потом│

│                                         │куда)             │

│ mv [путь1\имя файла1] [путь1\имя файла2]│переименовка  фай-│

│                                         │ла1 в файл2.      │

│ mv [путь1\имя файла1] [путь2\имя файла1]│перемещение файла1│

│                                         │из одной  директо-│

│                                         │рии в другую (сна-│

│                                         │чала   указывается│

│                                         │откуда потом куда)│

│ rm [путь\имя файла]                     │удаление файла.   │

│ rmdir [путь\имя каталога]               │удаление   пустого│

│                                         │каталога.         │

└─────────────────────────────────────────┴───────────────────┘

     После работы с системой необходимо обязательно изнее вый-

ти.  Выход из системы намного проще, чем вход в нее.Нужно наб-

рать logout и терминал будет отключен от операционной системы,

на этом ваша работа закончится.

     В университете Berkeley (штат Колифорния, США) быларазра-

ботана система программирования Berkeley Pascal. Система  была

написана для ОС UNIX 4.X, разработанная в том жеуниверситете.

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

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

арабские цифры, знаки препинания, знаки операций. Дляобозначе-

ния исходных  данных и результатов вычисленийупотребляются пе-

ременные, которыми могут быть не только любые буквы — a,b,D,U и

.

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

a1,b32,word и т.д., которые состоят из букв и цифр иначинаются

с буквы. Соответствующее исходное данное или результатвычисле-

ния называется значением переменной.  Числа в программезаписы-

ваются в  десятичной системе счисления,  вместо запятойпишется

точка: 0,-1,0.242 и т.д. Количество цифр в числе неможет быть

слишком большим; число не должно превышать максимально допусти-

мого в машине числа. Это относится и к количеству букв ицифр в

переменной.

     Переменные и числа — простейшие частные случаи выражения.

Более сложные  выражения  строятся  из чисел и переменныхс по-

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

Эти знаки суть +,  -,  *,/.  Кроме того, в выражениимогут быть

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

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

диционно записываются с выходом из строки: в паскалепишут a/b,

c/17, (a*x+b)/(c+d)  и  т.д,  Знак  операции умножения *нельзя

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

текста выражение 0,5(x+7) 77 0(x+2) 77 0(x-3)в паскале должно быть за-

писано в виде 0,5*(x+7)*(x+2)*(x-3). Знак — (минус) можетупот-

ребляться и  для изображения величины,  противоположнойданной:

-x, -(a*b+y) и т.д.  Нельзя размещать два знака операцийрядом;

последовательности символов 3*-2,  x1/-x2-это невыражения, вы-

ражениями будут 3*(-2),x1/(-x2).

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

sin(E) — синус Е,

cos(E) — косинус E,

ln(E) — натуральный логарифм Е;

exp(E) — показательная функция Е, т.е. e 5Е 0;

abs(E) — f,cjk.nyfz dtkbxbyf (модуль) Е,т.е. 72 0Е 72 0;

.

sqr(E) — квадрат (вторая степень) Е, т.е _. .Е 52 0;

sqrt(E) — квадратный корень из Е, т.е.  7? 0Е ;

выражение, задающее аргумент, всегда заключается вскобки. Так,

например, мы пишем sqrt(sgr(b)-4*a*c).

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

ний. При вычислении действуют обычные правиластаршинства  опе-

раций: старшие  операции  -  умножение и деление, следующие по

старшинству — сложение и вычитание. Из двух операций одинаково-

го старшинства первой выполняется та,  знак которой ввыражении

встречается раньше.  Круглые скобки изменяют этот естественный

порядок: значением  выражения (x+y)/2 будет половинасуммы зна-

чений переменных x и y, в то же время значением выраженияx+y/2

будет сумма значения x и половины значения y.

     Последовательность букв и цифр,  начинающаяся сбуквы, на-

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

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

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] ofchar;

        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); получение  аргумента  команднойстроки по

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

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

еще рефераты
Еще работы по информатике, программированию