Разработка программного обеспечения

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 

Пояснительная записка 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

№ П/П СОД
ЕРЖАНИЕ
страница
1 ВВедение  
2 Теоретическая часть  
3 Выбор средства программирования  
3.1    
3.2    
4 Разработка  программного обеспечения  
4.1    
5 Заключение  
6 Список  используемой литературы  
 
 
 
 
 
 
 
 
 
 
 
 
 

           1. ВВЕДЕНИЕ 

           Язык Borland Pascal 7.0 - это  один из самых мощных языков для  ЭВМ типа IBM PC/AT, работающий в среде  операционной системы DOS, сочетающий в  себе как мощность низкоуровневых языков программирования, так и структурированность с надежностью, присущих языкам высокого уровня.

           

           Для успешной работы с представленной программой необходим  компьютер IBM 80286 или любой совместимый  с ним. Для реализации данного  алгоритма был выбран язык программирования - TURBO PASCAL, для ЭВМ типа IВМ РС/АТ/ХТ, работающих в среде операционной системы МS DOS.  

           Возможности языка Turbo Pascal 

             - Есть языки программирования, ориентированные  на определённую область применения. Практика показала, что Turbo Pascal в широком смысле универсальный язык

             - Язык программирования должен  в частности, облегчить создание  больших программ, разрабатываемых,  возможно несколькими программистами. Это тоже обеспечивает язык  программирования Pascal.

             - Он реализует возможности декомпозиции  задач на независимые (почти независимые) подзадачи и позволяет поддерживать надёжный интерфейс между ними. Возможность компоновки программ из отдельных компонентов значительно ускоряет процесс создания больших программных комплексов, повышает уровень взаимосвязи и повышает надёжность работы комплекса.

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

        

              - Pascal обеспечивает механизм надёжной передачи параметров в подпрограммы. Полезным свойством языка может выступить рекурсивность обращения к подпрограммам. Поскольку Pascal сильно типизированный язык программирования, то соблюдается строгая дисциплина использования типов.

             - В языке программирования Turbo Pascal имеется возможность создания новых типов данных в широком диапазоне – синонимов уже существующих типов данных до возможности определения внутреннего представления объектов нового типа данных и набора операций, допустимых над объектами, имеющими  этот тип. Так достигается гибкость языка программирования.

             -    В Turbo Pascal также существует иерархия исполнения операций. 

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

           Система программирования Турбо Паскаль, разработанная американской корпорацией Borland, остается одной из самых популярных систем программирования в мире, которой по плечу любые задачи от создания простых программ, предназначенных для решения несложных вычислительных задач, до разработки сложнейших реляционных систем управления базами данных.

           К основным достоинствам языка следует отнести гибкость и надежность, простоту и ясность  конструкций, легкость реализации на ЭВМ, возможность полного контроля правильности программ во время компиляции и выполнения, наличие набора структурных типов  данных (массивов, файлов и записей), возможность построения новых типов данных.

           Версия языка TURBO PASCAL V 7.0. включает в себя возможности: -использование отдельно компилируемых  модулей; -интегрированный отладчик; -интегрированная среда разработчика; -объектно-ориентированную оболочку для создания прикладных программ.

           

           Турбо Паскаль 7.0 оперирует  объектами, присущими типичной ЭВМ: символами, целыми числами и числами  с плавающей запятой. Программисту разрешено управлять размещением  объектов и использовать в программах знания размера объектов и способов их взаимного расположения.  
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     

           2. ОБОБЩЁННАЯ МОДЕЛЬ  ПОСТАВЛЕННОЙ ЗАДАЧИ

         Принципы  анимации

 

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

           Анимация – это  быстрая смена изображений на экране, создающие эффект движения.  Во многих странах этот термин боле известен как мультипликация.

           Способ анимации может быть любой: одни и те же (или  разные) объекты могут накладываться  в одно и то же или в разные места экрана. В результате можно наблюдать как движение объекта по экрану, так и изменение его формы

           Анимации чаще всего  бывают графические, но возможны и текстовые

           

           Традиционное определение  анимации выглядит следующим образом: анимация - это процесс создания множества изображений, демонстрации изменений объекта во времени и воспроизведение этих изображений с такой скоростью, что они сливаются в плавное движение. Странно, но даже фильмы с живым действием подпадают под это определение анимации. Кино- или видеокамера захватывает живые изображения с высокой скоростью с целью их воспроизведения также с высокой скоростью.

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

           Это различие в процессе является причиной того, что в основе дискуссий о времени анимации лежат кадры. Каждое изображение или кадр фильма необходимо нарисовать, обвести и раскрасить вручную. Этот процесс заставляет аниматоров мыслить в кадрах: 
    "Данное действие занимает такое-то количество кадров". 
    "Такое-то должно произойти во время этого кадра".

           

           Представим себе, какой ответ режиссер получит  от актера, если скажет: "Теперь побеги к крыльцу в течение 90 кадров, сделай паузу в 20 кадров, а затем  бросайся открывать дверь". Мыслить  в кадрах неестественно, но так мыслить  нас заставляют ограничения технологии анимации. Было бы гораздо проще, если бы анимацию можно было выполнять в реальном времени:  "Я хочу, чтобы это длилось четыре секунды, а затем через полсекунды я хочу, чтобы произошло это". 
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     

           3. ВЫБОР СРЕДСТВА  ПРОГРАММИРОВАНИЯ 

           Общие сведения о графическом режиме Turbo Pascal

       

           

           Язык программирования Паскаль 7.0 содержит обширный набор  типов, констант и функций для  управления графическим режимом  работы экрана, объединенных в стандартный  библиотечный модуль GRAPH. С помощью  подпрограмм, входящих в данный модуль, можно создавать сложные графические изображения, основанные на использовании разнообразных геометрических фигур. При необходимости замкнутые фигуры могут быть закрашены различными цветами и стилями (образцами) закраски. Для вывода текстовых надписей на графический экран могут быть использованы четыре штриховых и один матричный шрифт.

              Подпрограммы модуля GRAPH могут поддерживать различные  типы аппаратных графических средств. Настройка на конкретные технические  средства осуществляется с помощью специальных программ – драйверов, поставляемых вместе с данным модулем.   

           Установка графического режима работы

            

              Переход в графический  режим в среде Паскаль осуществляется с помощью входящей в модуль GRAPH процедуры InitGraph, служащей для инициализации графического экрана. Данная процедура имеет следующий формат:

         InitGraph(var Driver, Mode:integer; Path:string),

    где переменные Driver и Mode должны содержать  тип графического драйвера и его  режим работы. Допускается указать Driver=0 для автоматического определения данных параметров по результатам тестирования аппаратуры. Параметр Path определяет маршрут поиска файла графического адаптера.

            Графические операторы  языка Паскаль позволяют адресоваться к любому элементу (пикселю) графического окна и управлять светимостью этого элемента. Для указания пикселя используется следующая система координат: начало координат (0,0) располагается в левом верхнем углу экрана; горизонтальная координата Х увеличивается слева направо, вертикальная координата Y увеличивается сверху вниз. При стандартном графическом адаптере VGA (в режиме 640х480) правый нижний угол экрана имеет координаты (639, 479), а центр экрана  - координаты (319, 239).

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

           Пример 1

           program pr1;

                uses Graph;   {Подключение графического модуля  Graph}

                var d, m: Integer;

             begin

             d:=0;

             m:=0;

        InitGraph(d, m,'d:\bp\bgi');   {Переход в графический режим. Строка d:\bp\bgi указывает путь размещения файла Graph.tpu для конкретного компьютера, на котором разрабатывалась данная программа}

        circle(319, 239, 100);   {Рисование круга радиуса  100 с центром в середине экрана}

        readln;  {Оператор ввода, используемый  в данном случае для задержки  изображения на экране вплоть до нажатия на клавишу Enter}

       CloseGraph;  {Выход из графического режима}

        end.  

            

           

            Приведенная выше в  примере 1 программа позволяет нарисовать круг радиуса 100 с центром в точке (319, 239). Т.к. данная программа не использует цветовые возможности графического режима, то рисование будет осуществляться цветами по умолчанию – белый рисунок на черном фоне.   

           Использование цветов  

           Язык программирования Паскаль 7.0 поддерживает 16 основных цветов, обозначаемых соответственно номерами от 0 до 15 (см. таблицу 1). 

            

           Константы цвета  

           Цвет: 0 - (Black) Черный, 8 -  (DarkGray) Темносерый, 1 - (Blue) Синий, 9 - (LightBlue) Яркосиний, 2 - (Green) Зеленый, 10 - (LightGreen) Яркозеленый, 3 - (Cyan) Голубой, 11 - (LightCyan) Яркоголубой, 4 - (Red) Красный, 12 - (LightRed) Розовый, 5 - (Magenta) Фиолетовый, 13 - (LightMagenta) Малиновый, 6 - (Brown) Коричневый, 14 - (Yellow) Желтый, 7 - (LightGray) Светлосерый, 15 - (White) Белый.  

            Основными графическими операторами по работе с цветами  являются процедуры модуля GRAPH под именами SetBkColor (служит для установки цвета фона)  и SetColor (для установки цвета рисования).

        Формат  данных операторов следующий:

           SetBkColor (Color: word);

           SetColor (Color: word),

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

                 Например, операторы SetBkColor (1); SetColor (14) позволяют установить режим рисования желтым цветом по синему фону. 

           Модуль GRAPH 

           GRAPH - представляет  собой библиотеку подпрограмм,  обеспечивающую полное управление графическими режимами для различных адаптеров дисплеев: CGA, EGA, VGA... Содержит 78 процедур и функций (как базовых - рисование точек, линий, окружностей, прямоугольников) , так и расширяющих возможности базовых (многоугольники, сектора, дуги, закрашивание фигур, вывода текста и т.д.) .

           

           Для запуска программы  с использованием модуля GRAPH необходимо, чтобы в рабочем каталоге находились графические драйверы с расширением *. BGI, также должен быть доступен компилятору  модуль GRAPH. TPU.

           В начале программы  модуль GRAPH должен быть подключен USES GRAPH; InitGraph(driver, mode, ’путь к BGI’) ; driver –  определяет тип графического драйвера, mode – переменная, задающая режим  работы графического адаптера; 

           Процедуры и функции модуля GRAPH 

           ClearDevice - Очищает экран  и помещает курсор в точку  (0,0) ; SetViewPort(x1, y1, x2, y2: integer; Clip: boolean) - Устанавливает  текущее окно для графического  вывода. X1, y1 – координата верхнего  левого угла; x2, y2 - координата нижнего  правого угла. Если Clip=true, то все изображения отсекаются на границах вывода; Closegraph – закрывает графический режим ClearViewPort - Очищает текущее окно; GetMaxX: integer - возвращает максимальную горизонтальную координату графического экрана; GetMaxY: integer - возвращает максимальную вертикальную координату графического экрана; GetX: integer - возвращает координату Х текущего указателя в окне; GetY: integer - возвращает координату Y курсора в окне; SetLineStyle(Line, Pattern, Thickness: word) - Устанавливает стиль (0.. 4) , шаблон штриховки (0.. 12) и толщину (1-ноpм, 3-утpоенная) ; SetFillStyle(Pattern, Color: word) - Устанавливает образец штриховки и цвет (0.. 15 и 128-меpцание) ; SetGraphMode(Mode: integer) - Устанавливает новый графический режим и очищает экран; SetColor(Color: word) - Устанавливает основной цвет, которым выполняется рисование (0.. 15) ; SetBkColor(Color: word) - Установка цвета фона.

           

           

           PutPixel(X, Y: integer; Color: word) - Выводит точку цветом Color с координатой  X, Y; LineTO(X, Y: integer) - Рисует линию от текущего указателя к точке с координатой Х, У; LineRel(DX, DY: integer) - Рисует линию от текущего указателя к точке, заданной приращением координат; Line(X1, Y1, X2, Y2: integer) - Рисует линию от точки (X1, Y1) к точке с координатой Х2, У2; MoveTO(X, Y: integer) - Смещает текущий указатель к точке с координатой Х, У; MoveRel(DX, DY: integer) - Смещает текущий указатель к точке, заданной приращением координат; Rectangle(X1, Y1, X2, Y2: integer) - Рисует прямоугольник, используя текущий цвет и тип линии по верхней левой и нижней правой точкам; Bar(X1, Y1, X2, Y2: integer) - Рисует закрашенный прямоугольник, используя установку SetFillStyle; Bar3D(X1, Y1, X2, Y2: integer;Depth: word;Top: Bolean) - Рисует закрашенный паpаллелипипед. Depth - глубина в Pixel (1/4 ширины) . Если Тор=True, то рисуется верхняя грань пеpеллелипипеда; Circle(X, Y: integer;R: word) - Рисует окружность радиуса R, используя X, Y как координаты центра; Fillellipse(X, Y: integer; XR, YR: word) - Рисует защтpихованный эллипс, используя X, Y как центр и XR, YR как горизонтальный и вертикальный радиусы.

           RestorCRTMode - Восстанавливает  текстовый режим работы экрана; OutText(Text: string) - Выводит текстовую  строку на экран. 

           OutTextXY(X, Y: integer; Text: string) - Выводит текст в заданное место экрана. Краткая характеристика графических режимов работы дисплейных адаптеров

           Настройка графических  процедур на работу с конкретным адаптером  достигается за счет подключения  нужного графического драйвера. Драйвер - это специальная программа, осуществляющая управление теми или иными техническими средствами ПК. Графический драйвер, как это не трудно догадаться, управляет дисплейным адаптером в графическом режиме. Графические драйверы разработаны фирмой Borland практически для всех типов адаптеров. Обычно они располагаются на диске в отдельном подкаталоге BGI в виде файлов с расширением BGI (от англ.: Borland Graphics Interface - графический интерфейс фирмы Borland). Например, CGA.BGI - драйвер для CG4-адаптера, EGA VGA.BGI - драйвер для адаптеров EGA и VGA и т.п.

           Выпускаемые в настоящее  время ПК оснащаются адаптерами, разработанными фирмой IBM, или совместимыми с ними. Если не учитывать уже упоминавшийся  в гл.13 монохромный адаптер MDA, все  они имеют возможность работы в графическом режиме. В этом режиме экран дисплея рассматривается как совокупность очень близко расположенных точек - пикселей, светимостью которых можно управлять с помощью программы.

           Графические возможности  конкретного адаптера определяются разрешением экрана, т.е. общим количеством пикселей, а также количеством цветов (оттенков), которыми может светиться любой из них. Кроме того, многие адаптеры могут работать с несколькими графическими страницами. Графической страницей называют область оперативной памяти, используемая для создания «карты» экрана, т.е. содержащая информацию о светимости (цвете) каждого пикселя. Ниже приводится краткая характеристика графических режимов работы наиболее распространенных адаптеров.

           

           Адаптер CGA (Color Graphics Adapter - цветной графический адаптер) имеет 5 графических режимов. Четыре режима соответствуют низкой разрешающей способности экрана (320 пикселей по горизонтали и 200 по вертикали, т.е. 320x200) и отличаются только набором допустимых цветов - палитрой. Каждая палитра состоит из трех цветов, а с учетом черного цвета несветящегося пикселя - из четырех: палитра 0 (светло-зеленый, розовый, желтый), палитра 1 (светло-бирюзовый, малиновый, белый), палитра 2 (зеленый, красный, коричневый) и палитра 3 (бирюзовый, фиолетовый, светло-серый). Пятый режим соответствует высокому разрешению 640x200, но каждый пиксель в этом случае может светиться либо каким-то одним заранее выбранным и одинаковым для всех пикселей цветом, либо не светиться вовсе, т.е. палитра этого режима содержит два цвета. В графическом режиме адаптер CGA использует только одну страницу.

           Адаптер EGA (Enhanced Graphics Adapter - усиленный графический адаптер) может полностью эмулировать графические режимы адаптера CGA. Кроме того, в нем возможны режимы: низкого разрешения (640x200, 16 цветов, 4 страницы) и высокого разрешения (640x350, 16 цветов, 1 страница). В некоторых модификациях используется также монохромный режим (640x350, 1 страница, 2 цвета).

           

           Адаптер MCGA (Multi-Color Graphics Adapter - многоцветный графический адаптер) совместим с CGA и имеет еще один режим - 640x480, 2 цвета, 1 страница. Такими адаптерами оснащались младшие модели серии ПК PS/2 фирмы IBM. Старшие модели этой серии оснащаются более совершенными адаптерами VGA (Video Graphics Array -графический видеомассив. Адаптер VGA эмулирует режимы адаптеров CGA и EGA и дополняет их режимом высокого разрешения (640x480, 16 цветов, 1 страница).

           Не так давно  появились так называемые cynep-VGA адаптеры (SVGA) с разрешением 800x600 и более, использующие 256 и более цветовых оттенков. В  настоящее время эти адаптеры получили повсеместное распространение, однако в библиотеке Graph для них  нет драйверов. Поскольку SVGA совместимы с VGA, для управления современными графическими адаптерами приходится использовать драйвер EGAVGA.BGI и довольствоваться его относительно скромными возможностями.

           Несколько особняком  стоят достаточно популярные адаптеры фирмы Hercules. Адаптер HGC имеет разрешение 720x348, его пиксели могут светиться одним цветом (обычно светло-коричневым) или не светиться вовсе, т.е. это монохромный адаптер. Адаптер HGC+ отличается несущественными усовершенствованиями, а адаптер HIСС (Hercules In Color Card) представляет собой 16-цветный вариант HGC+. 
     
     
     
     

         4. РАЗРАБОТКА И ПРИМЕНЕНИЕ КОМПЬЮТЕРНОЙ

             МОДЕЛИ 

           4.1 Технологическая  цепочка решения  задачи 

    program rere;

    uses crt,graph; {подключение модулей}

    type {раздел описания новых типов}

    mass=array [1..1]of integer;

    pars=^mass;

    mast=array [1..1]of string;

    parr=^mast;

    var title,namefile,y :string; c:char; {блок описания переменных}

    d:pars;

    m:parr;

    procedure ramka(title:string); {процедура вывода рамки на экран}

                var i:integer;

                begin       clrscr;       textcolor(white); {задается цвет самой рамки}

                gotoxy(1,1);

     writeln(‘«                               ’,title,’                                  »’);

    for i:=2 to 22 do begin

    gotoxy(1,i);write('||');

    gotoxy(80,i);write('||');end;

    gotoxy(1,i+1);

    writeln('                                                                                                                  

                                     '); 

    gotoxy(70,1);

    Writeln('‚Выход ESC');

    end; 

    Procedure animaciya;   {процедурв вывода Анимации"Турбо Паскаль" }

    var d,m:integer; {блок описания переменных используемых в процедуре}

        i,x,y,r,j,n,h:integer;

        c:char;

    begin

    d:=detect;  {подключение графического режима}

    initgraph(d,m,'D:\BP\BIN');

    for n:=1 to 5 do begin

    randomize; {подключение функции случайных чисел}

    x:=150;

    x:=150;

    for i:=1 to 50 do begin

    setcolor(1+random(14-1+1));{изменение цвета кругов случайным образом}

    circle(x,200,100); x:=x+7 ;delay(1000);end; {вывод окружностей через каждые 7 пикселей}

    for h:=1 to 5 do begin

    moveto(100,200); {перемещает указатель в эту точку}

    setcolor(15);

    lineto(550,200);{рисует линию белого цвета}

    moveto(100,200);

    setcolor(15);

    lineto(125,250);

    x:=125; y:=250;

    for j:=1 to 4 do begin

    setcolor(15);

    x:=50+x;y:=y-100;  delay(1000);

    lineto(x,y);

    setcolor(15);

    x:=50+x;y:=100+y;  delay(1000);

    lineto(x,y);

    setcolor(15);

    line(550,200,525,250);

    end;

    end;

    {until  keypressed;}

    setcolor(4); {блок программы в которой после запуска на экране выходят буквы различными цветами}

    line(75,25,125,25);delay(3000);

    setcolor(4);

    line(100,25,100,75);delay(3000);

    setcolor(5);

    line(150,25,150,50);delay(3000);

    setcolor(5);

    line(150,50,200,50);delay(3000);

    setcolor(5);

    line(200,25,200,75);delay(3000);

    setcolor(5);

    line(150,75,200,75);delay(3000);