Автор: Пользователь скрыл имя, 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 Графическая часть
Таблица 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 раза пятиугольников по углам экрана.
Создать процедуру вращения этих фигур.
Программа «Шестиугольник»
Основная программа:
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(
poly[i].Y:=y+Round(R*sin(
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(
poly[i].Y:=y+Round((R/2)*sin(
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(
poly[i].Y:=y+Round((R/2)*sin(
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(
poly[i].Y:=y+Round((R/2)*sin(
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(
poly[i].Y:=y+Round((R/2)*sin(
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:=
x3:=x0-round(d*cos(pi/6));y3:=
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);