Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
truhin_evgeniy
3 / 3 / 0
Регистрация: 23.01.2014
Сообщений: 47
#1

Опишите код - какая функция за что отвечает? - C++

05.02.2014, 23:32. Просмотров 555. Ответов 3
Метки нет (Все метки)

опишите плиз код какая функция за что отвечает?


код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
#include <stdlib.h>
#include <time.h>
#include <grx20.h>
#include <grxkeys.h>
#include <stdio.h>
 
//описание класса Точка
struct TPoint{
 int x,y,vx,vy,vt;
 int color;
 
//конструктор объекта Точка
 TPoint(int ix,int iy,int icolor);
 virtual ~TPoint();
 virtual void Draw(int icolor);
 void Show();//функция отображения
 void Hide();//функция скрытия
 void MoveXY(int ix, int iy);
};
//описание класса Прямоугольник на основании наследования структуры объекта Точка
struct TBox: public TPoint{
 int w,h;
 
//конструктор объекта Прямоугольник
 TBox(int ix,int iy,int icolor,int iw,int ih);
 virtual ~TBox();
 virtual void Draw(int icolor);
};
 
//описание класса Окружность на основании наследования структуры объекта Точка
struct TCircle: public TPoint{
    int r;
 
    TCircle(int ix,int iy,int icolor,int ir);
    virtual ~TCircle();
    virtual void Draw(int icolor);
};
 
TPoint::TPoint(int ix,int iy,int icolor)
{
 x=ix; y=iy;
 color=icolor;
 vx=rand()%17-8;
 vy=rand()%17-8;
 vt=rand()%46+5;}
TPoint::~TPoint()
{
 Hide();}
 
//функция рисования объекта Точка
void TPoint::Draw(int icolor)
{
 GrPlot(x,y,icolor);
 GrPlot(x,y+1,icolor);
 GrPlot(x+1,y,icolor);
 GrPlot(x+1,y+1,icolor);}
 
//функция отображения
void TPoint::Show()
{
 Draw(color);}
void TPoint::Hide()
{
 Draw(0);}
 
//функция перемещения точки
void TPoint::MoveXY(int ix,int iy)
{
 Hide();
 if((rand()%100)==50)
    {
        vx=rand()%17-8;
        vy=rand()%17-8;
    }
 if(ix>GrMaxX())//если координата по x заходит за правый край экрана
    {
        ix=ix-GrMaxX()-1;//x устанавливается в нулевое значение
    }
 if(ix<0)//если координата по x заходит за левый край экрана
    {
        ix=ix+GrMaxX()+1;//x устанавливается в правый край экрана
    }
    if(iy>GrMaxY())//если координата по y заходит за нижний край экрана
    {
        iy=iy-GrMaxY()-1;//y устанавливается в нулевое значение
    }
    if(iy<0)//если координата по y заходит за верхний край экрана
    {
        iy=iy+GrMaxY()+1;//y устанавливается в нижний край экрана
    }
    x=ix;//задаем новые координаты по x и y
    y=iy;
    Show();//функция отображения
}
TBox::TBox(int ix,int iy,int icolor,int iw,int ih):
 TPoint(ix,iy,icolor)
{
 w=iw; h=ih;}
 
TBox::~TBox()
{
 Hide();}
 
//функция рисования объекта Прямоугольник
void TBox::Draw(int icolor)
{
 GrBox(x-w/2,y-h/2,x+(w-w/2),y+(h-h/2),icolor);}
 
TCircle::TCircle(int ix,int iy,int icolor,int ir):
 TPoint(ix,iy,icolor)
{
 r=ir;}
 
TCircle::~TCircle()
{
 Hide();}
 
//функция рисования объекта Окружность
void TCircle::Draw(int icolor)
{
 GrCircle(x,y,r,icolor);}
 
//Объявление константы для максимального количества объектов
#define M 10000
main()
{int N=1;
 
//Создание массива объектов класса Точка с максимальным количеством объектов
 TPoint *obj[M];
 GrSetMode(GR_width_height_graphics,1024,768);
  srand(time(0));
 
int i;
int count;
i=0;
 
//в нулевой элемент массива заносится ведущий объект Окружность с радиусом 2 и цветом   10
 obj[i]=new TCircle(rand()%(GrMaxX()+1),rand()%(GrMaxY()+1),10,2);
 
//цикл создания ведомых объектов
for(i=1;i<N;i++){
     count=rand()%3;
     switch(count)//Проверка полученного числа
     {case 1://если 1
     obj[i]=new TBox(rand()%(GrMaxX()+1),rand()%(GrMaxY()+1),15,rand()%10,rand()%10);
     //в текущую позицию массива заносится объект Прямоугольник
     break;//завершение ветвления
 
      case 2://если 2
      obj[i]=new TCircle(rand()%(GrMaxX()+1),rand()%(GrMaxY()+1),15,rand()%20);
       //в текущую позицию массива заносится объект Окружность
      break;//завершение ветвления
 
      default://иное значение
      obj[i]=new TPoint(rand()%(GrMaxX()+1),rand()%(GrMaxY()+1),15);};
      //в текущую позицию массива заносится объект Точка
  obj[i]->Show();//отображение объекта
 }
 
  GrKeyType key;//переменная для чтения нажатой клавиши
  int s;//переменная для генерирования случайного числа
 
do{
    while (!GrKeyPressed()){//цикл работы с клавиатурой
    GrSleep(30);//формирование задержки в миллисекундах
    for(i=0;i<N;i++){//цикл случайного изменения вектора    скоростей
 
s=rand()%100;//формирование случайного числа
if (s=50)//если генератор случайных чисел выдал 50
{
obj[i]->MoveXY(obj[i]->x+obj[i]->vx,obj[i]->y+obj[i]->vy);
}//выполняем случайное изменение вектора скоростей}
 
   //цикл присвоения каждому ведомому объекту приближения на "свое" расстояние к ведущему объекту
   for (i=1;i<N;i++){
       obj[i]->vx=((obj[0]->x-obj[i]->x)/obj[i]->vt+rand()%7-3);
       obj[i]->vy=((obj[0]->y-obj[i]->y)/obj[i]->vt+rand()%7-3);    }  };
 
  key=GrKeyRead();//считывание нажатой клавиши
    switch(key){
   case GrKey_Insert://если Insert
 
    //если количество объектов меньше    максимального
    if (N<M){
//цикл добавления объектов
        for(i=0;i<N;i++){
        count=rand()%3;//получение случайного числа
        switch(count)//проверка полученного значения
            {case 1://если 1
obj[N]=new TBox(rand()%(GrMaxX()+1),rand()%(GrMaxY()+1),15,rand()%10,rand()%10);
            //добавление объекта Прямоугольник
            break;//завершение ветвления
             case 2://если 2
obj[N]=new TCircle(rand()%(GrMaxX()+1),rand()%(GrMaxY()+1),15,rand()%20);
            //добавление объекта Окружность
            break;//завершение ветвления
 
default://иное значение
obj[N]=new TPoint(rand()%(GrMaxX()+1),rand()%(GrMaxY()+1),15);};
            //добавление объекта Точка
 
obj[i]->Show();//показать добавленный объект
 }
     N++;//количество объектов увеличивается на 1    }
    break;//завершение проверки выбора клавиши
 
   case GrKey_Delete://если Delete
    if (N>1){//если количество объектов больше 1
     delete obj[N-1];
     N--;//количество объектов уменьшается на 1    }
    break;//завершение проверки выбора клавиши  }
 }while(key!=GrKey_Escape);//продолжать цикл пока не нажат Escape
 
  for(i=0;i<N;i++){//цикл удаления объектов из памяти
  delete obj[i]; }}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.02.2014, 23:32     Опишите код - какая функция за что отвечает?
Посмотрите здесь:

Какая функция отвечает за очистку экрана? - C++
собственно вопросы в 120 142 170 178 183 208 строках написаны какая функция отвечает за очистку экрана(только не clrscr из conio.h)? ...

мужики , какая функция отвечает за "глюк" раб.стола? - C++
скинул себе программу &quot;прикол&quot;, а там есть такая менюшка глюк экрана, поле установки которой текст становится неразборчив. ну вот как...

Какая фигура в блок-схеме отвечает за вывод в файл? - C++
Ребята,какая фигура применяется в языке си плюс плюс,которая выводит результат в текстовый файл,или подойдет параллелепипед?

Какая библиотека отвечает за использования математических функций в VS 2005? - C++
Какая библиотека отвечает за использования математических функций в VS 2005??

Как разобраться ,что в этом коде за что отвечает? - C++
#include &lt;iostream&gt; #include &lt;ctime&gt; using namespace std; int main () { srand(time(NULL)); unsigned const int n=4,...

За что отвечает каждая из библиотек? - C++
за что отвечает каждая из библиотек? #include &lt;conio.h&gt; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ded_Vasilij
231 / 213 / 15
Регистрация: 01.09.2012
Сообщений: 2,103
06.02.2014, 08:13     Опишите код - какая функция за что отвечает? #2
truhin_evgeniy, так тут же все прокомментировано самым подробнейшим образом, А чтобы понять за что отвечает каждая функция - не проще ли отладчиком пройтись?
ValeryS
Модератор
6551 / 5017 / 463
Регистрация: 14.02.2011
Сообщений: 16,738
06.02.2014, 08:24     Опишите код - какая функция за что отвечает? #3
Цитата Сообщение от Ded_Vasilij Посмотреть сообщение
так тут же все прокомментировано самым подробнейшим образом,
ага только что означают свойства точки
Цитата Сообщение от truhin_evgeniy Посмотреть сообщение
int x,y,vx,vy,vt;
*int color;
ну x,y я так понимаю это координаты
color это цвет
а vx,vy,vt; это что????
скорость? смешение?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.02.2014, 09:31     Опишите код - какая функция за что отвечает?
Еще ссылки по теме:

Опишите пожалуйста,что делает эта программа - C++
#include &lt;iostream&gt; #include &lt;string&gt; using namespace std; struct STUDENT { string FIO; int Number; int...

опишите подробно что тут происходит (int*) - C++
char p; int *y=(int*)(p+8); //Можно ли считать y массивом в приведенной ниже программе. Если да, то каков //диапазон его индексов?

Опишите каждую строчку в программе,что она означает - C++
#include &lt;iostream.h&gt; #include &lt;stdlib.h&gt; #include &lt;conio.h&gt; class B{ int a; public: B() { }; B(int x) { a=x; } void...

Опишите функцию extern в Си, её аргументы, назначение и что возвращае - C++
Опишите пожалуйста функцию extern в Си, её аргументы, назначение и что возвращает. Не могу найти информацию((

Когда какая функция вызывается? - C++
Вот две функции const Item &amp;figure::operator (int i) const { cout &lt;&lt; &quot;const&quot; &lt;&lt; endl; return massiv; } Item...

Какая функция сравнивает строку s2 со строкой s1? - C++
Какая функция сравнивает строку s2 со строкой s1?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
ВАСИЛЕВС
555 / 478 / 60
Регистрация: 14.02.2012
Сообщений: 1,561
06.02.2014, 09:31     Опишите код - какая функция за что отвечает? #4
Цитата Сообщение от truhin_evgeniy Посмотреть сообщение
C++
1
2
obj[i]->MoveXY(obj[i]->x+obj[i]->vx,obj[i]->y+obj[i]->vy);
}//выполняем случайное изменение вектора скоростей}
ValeryS, наверно скорость.
Yandex
Объявления
06.02.2014, 09:31     Опишите код - какая функция за что отвечает?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru