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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ В конец каждой строки через пробел добавляется число, которое равно количеству символов в самом длинном слове данной строки http://www.cyberforum.ru/cpp-beginners/thread1090343.html
помогите с описанием кода какая функция за что отвечает? Следует разработать программу, которая преобразует любой текстовый файл в другой текстовый файл по правилу: В конец каждой строки через пробел добавляется число, которое равно количеству символов в самом длинном слове данной строки код: #include <stdio.h> #include <stdlib.h> #include <ctype.h> #include <assert.h> ...
C++ Хак препроцессора, объясните как работает Уже кучу времени сижу как баран и питаюсь понять, как же это работает: #define BOOK_PP_CAT_IMPL(a, b) a ## b #define BOOK_PP_CAT(a, b) BOOK_PP_CAT_IMPL(a, b) #define BOOK_ID(identifier) BOOK_PP_CAT(auroraDetail_, identifier) #define BOOK_LINE_ID(identifier) BOOK_PP_CAT(BOOK_ID(identifier), __LINE__) #define FOREACH(declaration, container) \ if (bool... http://www.cyberforum.ru/cpp-beginners/thread1090337.html
C++ Задано массив строк произвольной длины. Отформатировать данный массив по ширине поля.
Задано массив строк произвольной длины. Отформатировать данный массив по ширине поля.
C++ Умные указатели
Пишу класс дерево поиска:template<typename T, typename Compare> class AvlTree { private: struct Node { T key; size_t height; std::unique_ptr<Node> leftChild; std::unique_ptr<Node> rightChild; explicit Node(const T &key) : key(key), height(1), leftChild(nullptr),
C++ Определите по данным, сколько банок не прострелил Гарри и сколько банок не прострелил Ларри. http://www.cyberforum.ru/cpp-beginners/thread1090285.html
Бандиты Гарри и Ларри отдыхали на природе. Решив пострелять, они выставили на бревно несколько банок из-под кока-колы (не больше 10). Гарри начал простреливать банки по порядку, начиная с самой левой, Ларри — с самой правой. В какой-то момент получилось так, что они одновременно прострелили одну и ту же последнюю банку. Гарри возмутился и сказал, что Ларри должен ему кучу денег за то, что тот...
C++ Перевести код из языка Pascal в C++ Помогите пожалуйста перевести код программы из языка Pascal в C++. А то у меня не совсем нормально получается. program pas; const N = 10; var i, t, k, G: integer; подробнее

Показать сообщение отдельно
truhin_evgeniy
3 / 3 / 0
Регистрация: 23.01.2014
Сообщений: 47
05.02.2014, 23:32     Опишите код - какая функция за что отвечает?
опишите плиз код какая функция за что отвечает?


код:

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]; }}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru