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

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

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


Еще из раздела Информатика, программирование:


 Это интересно
 Реклама
 Поиск рефератов
 
 Афоризм
По сути - мужчина всего лишь экспериментальная модель. Но женщина, по сути, всего лишь деталька от этой модели.
 Гороскоп
Гороскопы
 Счётчики
bigmir)net TOP 100