Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
kursovoy / пояснительная записка.docx
Скачиваний:
17
Добавлен:
03.03.2016
Размер:
405.5 Кб
Скачать

2.3 Код программы

#include<stdio.h>

#include<stdlib.h>

#include<conio.h>

void formmatr(float *matr,int n,int m)

{ int i,j;

for(i=0;i<n;i++)

for(j=0;j<m;j++)

{

*(matr+i*m+j)=0.0001*rand();

}}

void pechat(float *matr,int n,int m)

{ int i,j;

for(i=0;i<n;i++)

{ for(j=0;j<m;j++)

{

printf("%6.2f ",*(matr+i*m+j));}

printf("\n"); }}

float maximum(float *matr,int n, int m)

{

int i,j,t=0;

float max;

max=*matr;

for(i=0;i<n;i++)

{ for(j=0;j<m;j++)

{ if(*(matr+i*m+j)>max)

{

max=*(matr+i*m+j);

t=i; }}}

printf("\nnom stroki=%d max=%f\n\n",t,max);

return t;}

void udal(float *matr,int *n,int m,int t)

{

int i,j;

if(t!=*n-1)

{

for(i=t;i<*n-1;i++)

{

for(j=0;j<m;j++)

{

*(matr+i*m+j)=*(matr+(i+1)*m+j);

}}}

*n=*n-1;}

void main()

{

float a[6][10];

int i,n,m,t;

clrscr();

printf("vvedite kol strok:");

scanf("%d",&n);

printf("vvedite kol stolbcov:");

scanf("%d",&m);

formmatr(&a[0][0],n,m);

pechat(&a[0][0],n,m);

for(i=0;i<2;i++)

{

t=maximum(&a[0][0],n,m);

udal(&a[0][0],&n,m,t);

pechat(&a[0][0],n,m);

}

getch();

}

2.4.Запуск программы

Рисунок 2.6 – Выбор количества строк и столбцов.

Рисунок 2.7 – Результат. Исходная матрица, максимум и номер его строки, матрица после первого удаления, второй по величине максимум и его ноиер строки, матрица после второго удаления.

3.Работа с графическими фигурами

Условие: круг, вписанный в квадрат, движутся по окружности с центром в середине экрана, изменяя свои цвета.

Требования:

  • Хотя бы одна фигура должна иметь заливку, которая согласно условию меняет свои параметры;

  • Завершение движения происходит по нажатию любой клавиши Esc;

  • По нажатию клавиши С должен изменяться цвет фона.

3.1. Алгоритм решения задачи

Решение организовано следующим образом: выполняется начальная заливка вона, далее в цикле с задержкой в 25мс фигуры перерисовываются согласно траектории меняя свои цвета, когда координата х траектории движения кратна 10.

Упрощенная блок-схема выглядит так:

Рисунок 3.1 – Блок-схема

Начало

заливка фона

рисование фигур

смена цвета

пересчет коорд.траект.

конец

3.2. Описание программы

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

Использованы следующие функции:

- getch() – задержка ;

используются функции для работы с графикой:

- cleardevice();

Функция очищает активную страницу.

- setbkcolor(int color);

Функция устанавливает цвет фона, параметр color задаёт номер цвета из текущей палитры. Изменения вступают в действия на экране немедленно.

- circle(int x, int y, int radius);

Функция circle() рисует окружность. Параметры x и y задают центр окружности.

- rectangle(int left, int top, int right, int bottom);

Функция рисует прямоугольник, координаты левой верхней (left, top) и правой нижней (right, bottom) вершин передаются в качестве параметров.

- setfillstyle(int pattern, int color);

Функция устанавливает шаблон и цвет закрашиваемых контуров. Параметр color определяет цвет закраски, параметр pattern определяет стиль закрашивания и может принимать одно из значений перечислимого типа fill_patterns.

- bar(int left, int top, int right, int bottom);

Функция рисует закрашенный прямоугольник, координаты левой верхней (left, top) и правой нижней (right, bottom) вершин передаются в качестве параметров.

-floodfill(х,y,CYAN) – выполнить заливку с центром в точке с координатами (х,у), выбранным далее цветом;

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

delay(30) – задержка следующего действия, в скобках время в миллисекундах;

Программа работает следующим образом: сразу после запуска начинается движение фигур по окружности с центром в середине экрана с изменением цвета, при нажатии клавиш 1 или 2 происходит изменение цвета заднего фона, при нажатии любой клавиши происходит остановка фигур.

Соседние файлы в папке kursovoy