МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Модули и объекты в языке Турбо Паскаль 7.0

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

    1.5 Инициирующая часть

    В некоторых случаях перед обращением к модулю следует провести его

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

    помощью процедуры Assign, инициализировать какие-то переменные и т.д.).

    Необходимые действия можно выполнить в секции инициализации модуля. Эта

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

    а затем помещается слово end. (с точкой), например:

    begin

    Assign (F1, ‘ FILE1.DAT ‘);

    end.

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

    некоторый фрагмент программы. Эти операторы исполняются до передачи

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

    работы. Например, в них могут инициироваться переменные, открываться нужные

    файлы, устанавливаться связи с другими ПК по коммуникационным каналам и

    т.п.:

    Unit FileText;

    Interface

    Procedure Prlnt (t : string);

    Implementation

    var f: Text;

    const

    name = ' OUTPUT. TXT ';

    Procedure Print;

    begin

    WriteLn (f, s);

    end;

    {Начало инициирующей части:}

    begin

    Assign (f, name);

    Rewrite (f);

    {Конец инициирующей части:}

    end.

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

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

    Если инициализация модуля не нужна, то в секции помещается лишь

    слово end.

    1.6 Компиляция модулей

    В среде Турбо Паскаля имеются средства, управляющие способом

    компиляции модулей и облегчающие разработку крупных программных проектов. В

    частности, определены три режима компиляции: COMPILE, МАКЕ и BUILD. Режимы

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

    программы с другими модулями, объявленными в предложении USES.

    При компиляции модуля или основной программы в режиме COMPILE все

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

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

    расширением .TPU. Например, если в программе (модуле) имеется предложение

    Uses Global;

    то на диске в каталоге, объявленном опцией UNIT DIRECTORIES, уже должен

    находиться файл GLOBAL.TPU. Файл с расширением TPU (от англ. Turbo Pascal

    Unit) создается в результате компиляции модуля.

    В режиме МАКЕ компилятор проверяет наличие TPU-файлов для каждого

    объявленного модуля. Если какой-либо из файлов не обнаружен, система

    пытается отыскать одноименный файл с расширением .PAS, т.е. файл с исходным

    текстом модуля, и, если .PAS-файл найден, приступает к его компиляции.

    Кроме того, в этом режиме система следит за возможными изменениями

    исходного текста любого используемого модуля. Если в PAS-файл (исходный

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

    уже в каталоге соответствующий TPU-файл или нет, система осуществляет его

    компиляцию перед компиляцией основной программы. Более того, если изменения

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

    другие модули, обращающиеся к нему. Режим МАКЕ, таким образом, существенно

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

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

    существующих TPU-файлов их исходному тексту, так как система делает это

    автоматически.

    В режиме BUILD существующие TPU-файлы игнорируются, и система

    пытается отыскать (и компилировать) соответствующий PAS-файл для каждого

    объявленного в предложении USES модуля. После компиляции в режиме BUILD

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

    в любом из модулей.

    Подключение модулей к основной программе и их возможная компиляция

    осуществляются в порядке их объявления в предложении USES. При переходе к

    очередному модулю система предварительно отыскивает все модули, на которые

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

    структуру любой сложности, однако запрещается явное или косвенное обращение

    модуля к самому себе. Например, недопустимы следующие объявления:

    Unit A; Unit B;

    Interface Interface

    Uses S; Uses A;

    Implementation Implementation

    end.

    end.

    Это ограничение можно обойти, если «спрятать» предложение USES в

    исполняемые части зависимых модулей:

    Unit A; Unit B;

    Interface Interface

    Implementation Implementation

    Uses B; Uses A;

    end.

    end.

    Дело в том, что Турбо Паскаль разрешает ссылки на частично

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

    описанию подпрограммы. Если интерфейсные части любых двух модулей

    независимы (это непременное условие!), Турбо Паскаль сможет

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

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

    1.7 Доступ к объявленным в модуле объектам

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

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

    ни в Турбо Паскале не предусмотрена). К сожалению, в Турбо Паскале нельзя

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

    (запись, например), поэтому арифметика комплексных чисел реализуется

    четырьмя процедурами:

    {UNIT Cmplx};

    INTERFACE

    {.............................................}

    type

    complex = record;

    re, Im : real;

    end

    Procedure AddC (x, у : complex: var z:

    complex);

    Procedure SubC (x, у : complex; var z:

    complex);

    Procedure MulC (x, у : complex; var z:

    complex);

    Procedure DIvC (x, у : complex; var z:

    complex);

    const

    с : complex = (re : 0.1; Im : -1);

    IMPLEMENTATION

    {..........— . — .......... — -- — ——...... }

    PROCEDURE AddC;

    begin

    z.re := x.re + y.re;

    z. Im := x . im + у. Im;

    end {AddC};

    PROCEDURE SubC;

    begin

    z .re := x.re - y.re;

    z . im := x.Im - y. Im;

    end {SubC};

    PROCEDURE MulC;

    begin

    z.re := x.re * y.re - x.im *

    y.im;

    z.lm := x.re * y.im + x.im *

    y.re;

    end {MulC};

    PROCEDURE DivC;

    var zz : real;

    begin

    zz :=sqr(y.re) + sqr(y.im);

    z.re := (x.re * y.re + x.im *

    y.im) / zz;

    z.lm := (x.re * y.im - x.lm *

    y.re) / zz;

    end {DIvC}:

    END.

    Текст этого модуля следует поместить в файл CMPLX.PAS. Его можно

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

    процедуры из новой библиотеки.

    1.8 Стандартные модули

    В Турбо Паскале имеется восемь стандартных модулей, в которых

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

    Этими модулями являются SYSTEM, DOS, CRT, PRINTER, GRAPH, OVERLAY, TURBO3 и

    GRAPHS. Модули GRAPH, TURBOS и GRAPHS содержатся в одноименных ТPU-файлах,

    остальные входят в состав библиотечного файла TURBO.TPL. Лишь один модуль

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

    становятся доступны только после указания их имен в списке, следующем за

    словом USES. Ниже приводится краткая характеристика стандартных модулей.

    Модуль SYSTEM ( в него входят все процедуры и функции стандартного Паскаля,

    а также встроенные процедуры и функции Турбо Паскаля, которые не вошли в

    другие стандартные модули (например, INC, DEC, GETDIR и т.п.). Как уже

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

    того, объявлен ли он в предложении USES или нет, поэтому его глобальные

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

    Модуль PRINTER делает доступным вывод текстов на матричный принтер. В нем

    определяется файловая переменная LST типа TEXT, которая связывается с

    логическим устройством PRN. После подключения модуля может быть выполнена,

    например, такая программа:

    Uses Printer;

    begin

    WriteLn (LST, 'Турбо Паскаль');

    end.

    Модуль CRT. В нем сосредоточены процедуры и функции, обеспечивающие

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

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

    выводимых символов и окружающего их фона, создавать окна. Кроме того, в

    модуль включены также процедуры «слепого» чтения клавиатуры и управления

    звуком. Модуль GRAPH содержит обширный набор типов, констант, процедур и

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

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

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

    или разработанными программистом шрифтами. Подпрограммы модуля GRAPH после

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

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

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

    драйверами, которые не входят в библиотечный файл GRAPH.TPU, но

    поставляются вместе с ним. Модуль DOS. В модуле собраны процедуры и

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

    системы MS DOS. Модуль OVERLAY. Он необходим при разработке громоздких

    программ с перекрытиями. Как уже говорилось, Турбо Паскаль обеспечивает

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

    памятью ПК. Для большинства IBM-совместимых ПК доступная программе память

    составляет около 580 Кбайт (без инструментальных оболочек типа Norton

    Commander и без самой системы Турбо Паскаль). Память такого размера

    достаточна для большинства применений, тем не менее, использование программ

    с перекрытиями снимает это ограничение. Два библиотечных модуля TURBO3 и

    GRAPH3 введены для совместимости с ранней версией 3.0 системы Турбо

    Паскаль.

    2 Объекты

    Базовым в объектно-ориентированном программировании является понятие

    объекта. Объект имеет определённые свойства. Состояние объекта задаётся

    значениями его признаков. Объект «знает», как решить определённые задачи,

    то есть располагает методами решения. Программа, написанная с

    использованием ООП, состоит из объектов, которые могут взаимодействовать

    между собой.

    Ранее отмечалось, что программная реализация объекта представляет

    собой объединение данных и процедур их обработки. В Турбо Паскале имеется

    тип object, который можно считать обобщением структурного типа record.

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

    уточнение – экземпляр лишь формально можно назвать переменной. Его описание

    даётся в предложении описания переменных, но в действительности экземпляр –

    нечто большее, чем обычная переменная.

    В отличии от типа «запись», объектный тип содержит не только поля,

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

    содержатся в описании объекта. Эти процедуры и функции называются методами.

    В описании объекта фактически содержатся лишь шаблоны обращений к методам,

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

    параметров и их типов при обращении к методам. Вот пример описания объекта:

    type

    Location = object

    X, Y: Integer;

    procedure Init (InitX, Inity: Integer);

    function GetX: Integer;

    function GetY: Integer;

    end;

    Здесь описывается объект, который может использоваться в дальнейшем,

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

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

    с помощью зарезервированных слов object…end, между которыми находятся

    описания полей и методов. В нашем примере объект содержит два поля для

    хранения значений графических координат, а также описания процедуры и двух

    функций – это методы данного объекта. Процедура предназначена для задания

    первоначального положения объекта, а функции – для считывания его

    координат.

    Зарезервированное слово private позволяет ограничить доступ к полям

    объекта. В следующем примере доступ к переменным X и Y возможен только

    через методы объектного типа Location:

    type

    Location = object

    procedure Init (InitX, Inity: Integer);

    function GetX: Integer;

    function GetY: Integer;

    private

    X, Y: integer;

    end;

    В секции private могут находится и методы объекта.

    Полное описание методов, то есть описание их реализации, должно

    находится после описания объекта. Имена методов составные и складываются из

    имени объекта и имени метода, разделённых точкой:

    procedure Location. Init (InitX, Inity: Integer);

    begin

    X : = InitX;

    Y : = InitY;

    end;

    fuction Location. GetX: Integer;

    begin

    GetX : = X;

    end;

    fuction Location. GetY: Integer;

    begin

    GetY : = Y;

    end;

    После того как объект описан, в программе можно использовать его

    экземпляры, то есть переменные указанного объектного типа:

    var

    GrMarket : Location;

    2.1 Основные принципы ООП

    Элементы объектно-ориентированного программирования появились в

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

    настоящее время ООП принадлежит к числу ведущих технологий

    программирования. В Турбо Паскале поддержка этой технологии появилась,

    начиная с версии 5.5 (1989 год).

    Основная цель ООП, как и большинства других подходов к

    программированию, - повышение эффективности разработки программ. Идеи ООП

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

    программирования, но и в других областях Computer Science, например, в

    области разработки операционных систем.

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

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

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

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

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

    изменение данных или правил и методов их обработки часто приводило к

    необходимости значительного изменения программ. Всякое существенное

    изменение программы – это большая неприятность для программиста, так как

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

    время, необходимое для «доводки» программы. Использование ООП позволяет

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

    модификацию программы к её расширению и дополнению. Сразу замечу, что ООП

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

    передовой технологии программирования несомненна. Изучение идей и методов

    объектно-ориентированного программирования – не очень простая задача,

    однако освоение ООП может существенно упростить разработку и отладку

    сложных программ.

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

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

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

    было важным шагом на пути к увеличению эффективности программирования.

    Подпрограмма может иметь формальные параметры, которые при обращении к ней

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

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

    её аварийному завершению при выполнении. Поэтому естественным обобщением

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


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.