RSS    

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

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

мер:

   type

         Proc = Procedure;

   После объявления процедурного или функционального типа  его  можно

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

функций.

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

имена которых будут передаваться как фактические параметры.  Эти про-

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

ключом {$F+}.

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

                tk

                       2t

             I= S--------------- dt

                   sqrt(1-sin2t)

                tn

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

помощью функции, имя которой передается как параметр.  Значение опре-

деленного интеграла по формуле Симпсона вычисляется по формуле:

      ISimps=2*h/3*(0.5*F(A)+2*F(A+h)+F(A+2*h)+2*F(A+3*h)+...

                                                +2*F(B-h)+0.5*F(B))

где A и B - нижняя и верхняя границы интервала интегрирования,

    N - число разбиений интервала интегрирования,

    h=(B-A)/N, причем N должно быть четным.

Program INTEGRAL;

 type

    Func= function(x: Real): Real;

 var

    I,TN,TK:Real;

    N:Integer;

{$F+}

 Function Q(t: Real): Real;

   begin

     Q:=2*t/Sqrt(1-Sin(2*t));

   end;

{$F-}

 Procedure Simps(F:Func; a,b:Real; N:Integer; var INT:Real);

   var

      sum, h: Real;

      j:Integer;

   begin

     if Odd(N) then N:=N+1;

     h:=(b-a)/N;

     sum:=0.5*(F(a)+F(b));

     for j:=1 to N-1 do

       sum:=sum+(j mod 2+1)*F(a+j*h);

       INT:=2*h*sum/3

   end;

 begin

   WriteLn(' ВВЕДИ TN,TK,N');

   Read(TN,TK,N);

   Simps(Q,TN,TK,N,I);

   WriteLn('I=',I:8:3)

 end.

{}

26.   О П Е Р А Т О Р Ы    В Ы Х О Д А

   Для завершения  работы программ,  процедур и функций без предвари-

тельного перехода по меткам к закрывающему end в TURBO PASCAL введены

процедуры Exit и Halt.

   Вызов Exit завершает работу своего программного блока  и  передает

управление вызывающей программе.  Если Exit выполняется в подпрограм-

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

няться следующий за вызовом этой подпрограммы оператор. Если Exit вы-

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

нормальному завершению.

   Вызов процедуры Halt,  где бы она не находилась,  завершает работу

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

   Процедура Halt имеет структуру Halt(n),  где n - код возврата, ко-

торый может  быть проанализирован операционной системой с помощью ко-

манды IF ERRORLEVEL.  Значение n=0 соответствует нормальному заверше-

нию работы программы. Вызов процедуры Halt без параметра эквивалентен

вызову Halt(0).

27.   М О Д У Л И

   Модуль (UNIT) в TURBO PASCAL - это особым образом оформленная биб-

лиотека подпрограмм.  Модуль в отличие от программы не может быть за-

пущен на выполнение самостоятельно,  он может  только  участвовать  в

построении программ и других модулей.

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

строить программы практически любого размера.

   Модуль в TURBO PASCAL представляет собой отдельно хранимую и неза-

висимо компилируемую программную единицу.

   В общем случае модуль -  это  совокупность  программных  ресурсов,

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

ными ресурсами понимаются любые элементы языка TURBO PASCAL: констан-

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

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

ми единицами.

   Все программные элементы модуля можно разбить на две части:

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

программами или модулями,  такие элементы называют видимыми вне моду-

ля;

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

ля, их называют невидимыми или скрытыми.

   В соответствии с этим модуль, кроме заголовка, содержит две основ-

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

   В общем случае модуль имеет следующую структуру:

   unit <имя модуля>;         {заголовок модуля}

    interface

     { описание видимых программных элементов модуля }

     { описание скрытых программных элементов модуля }

    begin

     { операторы инициализации элементов модуля }

    end.

   В частном случае модуль может не содержать части реализации и час-

ти инициализации, тогда структура модуля будет такой:

   unit <имя модуля>;         {заголовок модуля}

    interface

     { описание видимых программных элементов модуля }

    implementation

    end.

   Использование в модулях процедур и функций имеет свои особенности.

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

зова: имя, перечень и тип параметров, тип результата для функций, эта

информация должна быть доступна для других программ и модулей. С дру-

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

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

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

часть реализации.

   Интерфейсная часть  модуля  содержит только видимые (доступные для

других программ и модулей)  заголовки процедур и функций (без служеб-

ного слова   forward).  Полный текст процедуры или функции помещают в

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

ных параметров.

   Исходный текст модуля должен быть откомпилирован с помощью  дирек-

тивы Make  подменю Compile и записан на диск.  Результатом компиляции

модуля является файл с расширением .TPU (Turbo Pascal Unit). Основное

имя модуля берется из заголовка модуля.

   Для подключения  модуля  к  программе необходимо указать его имя в

разделе описания модулей, например:

           uses  CRT, Graph;

   В том случае,  если имена переменных в интерфейсной части модуля и

в программе,   использующей этот модуль,  совпадают,  обращение будет

происходить к переменной,  описанной в программе. Для обращения к пе-

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

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

   Например, пусть имеется модуль, в котором описана переменная К:

   unit M;

    interface

     var K: Integer;

    implementation

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

    end.

   Пусть программа, использующая этот модуль, также содержит перемен-

ную К:

   Program P;

    uses M;

    var K: Char;

    begin

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

    end.

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

ля M, необходимо задать составное имя M.K.

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

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

   Рекурсивное использование модулей запрещено.

   Если в модуле имеется раздел инициализации,  то операторы из этого

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

используется этот модуль.

28.   М Н О Ж Е С Т В А

   Понятие множества в языке ПАСКАЛЬ основывается  на  математическом

представлении о  множествах:  это ограниченная совокупность различных

элементов. Для построения конкретного множественного типа использует-

ся перечисляемый или интервальный тип данных.  Тип элементов, состав-

ляющих множество, называется базовым типом.

   Множественный тип  описывается  с  помощью  служебных слов Set of,

например:

         type  M= Set of B;

Здесь М - множественный тип, В - базовый тип.

   Пример описания переменной множественного типа:

         type

             M= Set of 'A'..'D';

         var

            MS: M;

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

лена прямо в разделе описания переменных:

         var

            C: Set of 0..7;

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

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

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

         ['A', 'C']    [0, 2, 7]    [3, 7, 11..14].

Константа вида

         [ ]

означает пустое подмножество.

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

ножества данного множества, а также пустое подмножество. Если базовый

тип, на котором строится множество, имеет К элементов, то число подм-

ножеств, входящих в это множество, равно 2 в степени К. Пусть имеется

переменная Р интервального типа:

         var P: 1..3;

   Эта переменная может принимать три различных значения  -  либо  1,

либо 2, либо 3. Переменная Т множественного типа

         var T: Set of 1..3;

может принимать восемь различных значений:

         [ ]        [1,2]

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12


Новости


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

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

Пока нет

Новости в Twitter и Facebook

                   

Новости

© 2010.