Графика в Borland Pascal

Автор: Пользователь скрыл имя, 21 Ноября 2011 в 18:11, курсовая работа

Описание работы

Процесс решения задачи на ПК – это совместная деятельность человека и машины. Его условно можно разделить на несколько этапов. Человеку отводятся шаги, связанные с творческой деятельностью (постановкой, алгоритмизацией, программированием задачи и анализом результатов), на долю компьютера – этапы обработки информации в соответствии с разработанным алгоритмом. При этом говорят, что компьютер выполняет программу, реализующую данный алгоритм.

Содержание

Введение 3
Общая часть 4
Алгоритм. Свойства алгоритмов. Виды алгоритмов 4
Среда программирования ИИО Borland Pascal 6
Алфавит языка Borland Pascal 7
Структура программы 9
Типы данных 10
Операторы ввода- вывода 11
Операции. Стандартные функции 13
Условный оператор 17
Операторы цикла 17
Оператор выбора 20
Одномерные и двумерные массивы 21
Строки. Процедуры и функции для работы со строками 23
Подпрограммы 26
Множества 26
Записи 27
Файлы 27
Динамическая и статистическая память 30
Динамические типы данных 31
Модуль Graph 34
Модуль Crt 35
Модули и модульное программирование 36
2 Постановка задачи 39
3 Описание входных и выходных переменных, процедур и функций 40
4 Проект решения задания 44
5 Текст программы 45
6 Листинг результатов 63
7 Список использованных источников 68
8 Графическая часть

Работа содержит 1 файл

Отчёт (NIKITA).doc

— 408.50 Кб (Скачать)

                    Таблица 14 -  Данные процедуры penta3 

Наименование Тип Описание Назначение
X,y integer Входная переменная Координаты  центра фигур
n const Входная переменная Построение  фигур
i integer Дополнительная  переменная Построение  фигур
poly pointtype Входная переменная Построение  фигур
s string Дополнительная  перем. Вывод надписи
 

              Таблица 15   Данные процедуры  penta4 

Наименование Тип Описание Назначение
X,y integer Входная переменная Координаты  центра фигур
n const Входная переменная Построение  фигур
i integer Дополнительная  переменная Построение  фигур
poly pointtype Входная переменная Построение  фигур
s string Дополнительная  переменная Вывод надписи
 
 
 
 
 
 
 

           4 Проект решения задания 

1)   Создать процедуру для изображения квадрата в центре экрана. Создать процедуру рисующую шестиугольники, центры которых находятся на вершинах квадрата. Создать 4 разные процедуры с помощью которых шестиугольники будут вращаться.

2)   Создать процедуру изображения равносторонних треугольников, которые находятся на одинаковом расстоянии в центре экрана. Создать процедуру вращения этих треугольников которые будут вращаться вокруг своей вершины.

3)   Создать процедуру изображения пятиугольника. Создать процедуру изображения уменьшенных в 2 раза пятиугольников по углам экрана. Создать процедуру вращения этих фигур. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

      
    1. Текст программы
 

Программа «Шестиугольник»

Основная программа:

    uses crt,delaydsl,graph;

    var

    r,driver,mode:integer;

    alpha:real;

    begin

    InitGraph (driver,mode, 'C:\bp\bgi');

    r:=100;

    alpha:=0;

    driver:=detect;

    if GraphResult<>GroK then halt(1);

    clearviewPort;

    repeat

    penta;

    penta2;

    penta3;

    penta4;

    penta5;

    until KeyPressed;

    closeGraph;

     end. 

Модуль программы: 

    unit delaydsl;

    interface

    procedure penta;

    procedure penta2;

    procedure penta3;

    procedure penta4;

    procedure penta5;

          implementation

    uses graph, crt;

    const n=5;

    var poly:array[1..n+1] of pointtype;

    r,x,y,i,driver,mode:integer;

    alpha:real;

    s:string;

    procedure penta;

    begin

    x:=GetMaxX shr 1;

    y:=GetMaxY shr 1;

    for i:=1 to n +1 do begin

    poly[i].X:=x+round(r*Cos(alpha+(i-1)*2*pi/n));

    poly[i].Y:=y+Round(R*sin(alpha+(i-1)*2*pi/n));

    end;

    SetColor(10);

    DrawPoly(n+1,poly);

    delay(2000);

    setcolor(0);

    DrawPoly(n+1,poly);

      end;

    procedure penta2;

    begin 

    x:=GetMaxX-50;

    y:=GetMaxY-50;

    for i:=1 to n +1 do begin

    poly[i].X:=x+round((R/2)*Cos(alpha+(i-1)*2*pi/n));

    poly[i].Y:=y+Round((R/2)*sin(alpha+(i-1)*2*pi/n));

    end;

    SetColor(10);

    DrawPoly(n+1,poly);

    delay(1000);

    setcolor(0);

    DrawPoly(n+1,poly);

      end;

       procedure penta3;

    begin 

    x:=50;

    y:=50;

    for i:=1 to n +1 do begin

    poly[i].X:=x+round((R/2)*Cos(alpha+(i-1)*2*pi/n));

    poly[i].Y:=y+Round((R/2)*sin(alpha+(i-1)*2*pi/n));

    end;

    SetColor(10);

    DrawPoly(n+1,poly);

    delay(800);

    setcolor(0);

    DrawPoly(n+1,poly);

      end; 

       procedure penta4;

    begin 

    x:=GetMaxX-50;

    y:=50;

    for i:=1 to n +1 do begin

    poly[i].X:=x+round((R/2)*Cos(alpha+(i-1)*2*pi/n));

    poly[i].Y:=y+Round((R/2)*sin(alpha+(i-1)*2*pi/n));

    end;

    SetColor(10);

    DrawPoly(n+1,poly);

    delay(500);

    setcolor(0);

    DrawPoly(n+1,poly);

      end; 

               procedure penta5;

    begin 

    x:=50;

    y:=GetMaxY-50;

    for i:=1 to n +1 do begin

    poly[i].X:=x+round((R/2)*Cos(alpha+(i-1)*2*pi/n));

    poly[i].Y:=y+Round((R/2)*sin(alpha+(i-1)*2*pi/n));

    end;

    SetColor(10);

    DrawPoly(n+1,poly);

    alpha:= alpha+pi/180;

    delay(700);

    setcolor(0);

     DrawPoly(n+1,poly);

      end;

    end. 

    Программа «Треугольник»

Основная  программа: 

    uses crt,prog,graph;

    var gd,gm:integer;

        ch:char;

        x0,y0:integer;

        d:integer;

        x1,y1,ax1,ay1,bx1,by1:integer;

        x2,y2,ax2,ay2,bx2,by2:integer;

        x3,y3,ax3,ay3,bx3,by3:integer;

        aa,ab:real; 

    begin

    clrscr;

    gd:=0;

    initgraph(gd,gm,'');

    x0:=getmaxX div 2;y0:=getmaxY div 2;

    d:=100;

    x1:=x0;y1:=y0+d;

    x2:=x0+round(d*cos(pi/6));y2:=y0-round(d*sin(pi/6));

    x3:=x0-round(d*cos(pi/6));y3:=y0-round(d*sin(pi/6));

    aa:=60;ab:=120;

    ax1:=x1+round(d*cos(pi*aa/180));

    ay1:=y1-round(d*sin(pi*aa/180));

    bx1:=x1+round(d*cos(pi*ab/180));

    by1:=y1-round(d*sin(pi*ab/180));

    ax2:=x2+round(d*cos(pi*aa/180));

    ay2:=y2-round(d*sin(pi*aa/180));

    bx2:=x2+round(d*cos(pi*ab/180));

    by2:=y2-round(d*sin(pi*ab/180));

    ax3:=x3+round(d*cos(pi*aa/180));

    ay3:=y3-round(d*sin(pi*aa/180));

    bx3:=x3+round(d*cos(pi*ab/180));

    by3:=y3-round(d*sin(pi*ab/180));

    setlinestyle(0,0,3);

    Setcolor(12);

    line(x1,y1,ax1,ay1);

    line(ax1,ay1,bx1,by1);

    line(x1,y1,bx1,by1);

    Setcolor(10);

    line(x2,y2,ax2,ay2);

    line(ax2,ay2,bx2,by2);

    line(x2,y2,bx2,by2);

    Setcolor(11);

    line(x3,y3,ax3,ay3);

    line(ax3,ay3,bx3,by3);

    line(x3,y3,bx3,by3);

    repeat

    delay(500);

    setcolor(0);

    setlinestyle(0,0,3);

    line(x1,y1,ax1,ay1);

    line(ax1,ay1,bx1,by1);

    line(x1,y1,bx1,by1);

    line(x2,y2,ax2,ay2);

    line(ax2,ay2,bx2,by2);

    line(x2,y2,bx2,by2);

    line(x3,y3,ax3,ay3);

    line(ax3,ay3,bx3,by3);

    line(x3,y3,bx3,by3); 

    Vrash(aa,ax1,ay1,x1,y1,d);

    Vrash(ab,bx1,by1,x1,y1,d);

    Vrash(aa,ax2,ay2,x2,y2,d);

    Vrash(ab,bx2,by2,x2,y2,d);

    Vrash(aa,ax3,ay3,x3,y3,d);

    Vrash(ab,bx3,by3,x3,y3,d); 

    setlinestyle(0,0,3);

    Setcolor(12);

    line(x1,y1,ax1,ay1);

    line(ax1,ay1,bx1,by1);

    line(x1,y1,bx1,by1);

    Setcolor(10);

    line(x2,y2,ax2,ay2);

    line(ax2,ay2,bx2,by2);

    line(x2,y2,bx2,by2);

    Setcolor(11);

Информация о работе Графика в Borland Pascal