Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
NelliRomans
1 / 1 / 0
Регистрация: 25.09.2014
Сообщений: 53
#1

Этот код написан на С++ или Delphi? - C++

08.11.2015, 20:32. Просмотров 226. Ответов 9
Метки нет (Все метки)

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
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Main.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "CSPIN"
#pragma resource "*.dfm"
TForm1 *Form1;
byte MatrSmeg [100][100]; // матрица смежности вершин
int Col_Verh = 3;  // Колличество вершин
TColor ColorArray[15];
TPoint Verh [100];  // Координаты вершин на поле
TColor VerhC [100];
int select = -1;  // номер выделеннолй вершины
 
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void PaintVerh()  // раскраска графа
{
 bool okrV = true;
 int Vindex = 0;
 int colorIndex = 0;
 while (okrV)
 {
  if (VerhC[Vindex] == clGreen)
  {
   VerhC[Vindex] = ColorArray[colorIndex];
   for (int i =0; i<Col_Verh; i++)
    if (MatrSmeg[Vindex][i] == 0)
     if (Vindex  < i)
      {
         bool r =true;
         for (int k =0; k<Col_Verh; k++)
            if ((MatrSmeg[i][k] == 1)&&(VerhC[k] == ColorArray[colorIndex]))
              r = false;
 
          if (r)
           VerhC[i] = ColorArray[colorIndex];
      }
     colorIndex++;
    }
    else
      Vindex++;
 
  okrV = false;
  for (int i = 0; i<Col_Verh; i++)
     if (VerhC[i] == clGreen)
         okrV =true;
  }
  ShowMessage("Потребовалось "+IntToStr(colorIndex)+" цветов");
}
//---------------------------------------------------------------------------
void Random_Generate_V()   // подпрограмма в случайном порядке определяет
{                          // координаты вершин
  Randomize;
  for (int i = 0; i<Col_Verh; i++)
  {
    int x = 50 + random(Form1->PaintBox1->Width - 50);   // генерация координат
    int y = 50 + random(Form1->PaintBox1->Height - 50);
     Verh[i].x = x;      // присвоение координат
     Verh[i].y = y;
  }
}
//---------------------------------------------------------------------------
void Random_Generate()  // Подпрограмма генерирует матрицу смежности вершин графа
{
 Randomize;
 Randomize;
 Randomize;
 int CountR = random(Col_Verh*(Col_Verh/3)); // генерация колличества ребер
 
 for (int i = 0; i<CountR; i++)
   {
      int x = random(Col_Verh);  // генерация позиции ребра
      int y = random(Col_Verh);
      if (x != y)
      {
      MatrSmeg[x][y] = 1;       // занесение ребра в матрицу смежности
      MatrSmeg[y][x] = 1;
      Form1->StringGrid1->Cells[x][y] = "1";
      Form1->StringGrid1->Cells[y][x] = "1";
      }
   }
}
//---------------------------------------------------------------------------
void PaintGraf()  //Подпрограмма прорисовывает граф на форме
{
Form1->PaintBox1->Canvas->Brush->Color =clCream;
Form1->PaintBox1->Canvas->Rectangle(0,0,Form1->PaintBox1->Width,Form1->PaintBox1->Height);
  for (int i =0; i< Col_Verh; i++)
   for (int j =0; j< Col_Verh; j++)
     if (MatrSmeg[i][j] == 1)
     {
        Form1->PaintBox1->Canvas->MoveTo(Verh[i].x,Verh[i].y);
        Form1->PaintBox1->Canvas->LineTo(Verh[j].x,Verh[j].y);
     }
 
 Form1->PaintBox1->Canvas->Pen->Width = 1;
 Form1->PaintBox1->Canvas->Pen->Color = clBlack;    
 
 Form1->PaintBox1->Canvas->Brush->Color = clGreen;
 
 for (int i =0; i< Col_Verh; i++)
 {
    Form1->PaintBox1->Canvas->Brush->Color = VerhC[i];
    Form1->PaintBox1->Canvas->Ellipse(Verh[i].x-10,Verh[i].y-10,Verh[i].x+10,Verh[i].y+10);
    if(i<10) Form1->PaintBox1->Canvas->TextOutA(Verh[i].x-4,Verh[i].y-7,IntToStr(i+1));
    else Form1->PaintBox1->Canvas->TextOutA(Verh[i].x-6,Verh[i].y-7,IntToStr(i+1));
 }
    if (select != -1)
      {
         Form1->PaintBox1->Canvas->Brush->Color = clYellow;
         Form1->PaintBox1->Canvas->Ellipse(Verh[select].x-10,Verh[select].y-10,Verh[select].x+10,Verh[select].y+10);
      }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::PaintBox1Paint(TObject *Sender)
{
   PaintGraf();
}
//---------------------------------------------------------------------------
// обработка нажатия клавиши мыши, изменение позиции вершин
void __fastcall TForm1::PaintBox1MouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
if (select == -1)  // если нет выделенных вершин и произведен щелчек
{
   for (int i =0; i<Col_Verh; i++)  // по координатам курсора во время щелчка определяем
    if ((Verh[i].x-10 < X)&&(Verh[i].y-10 < Y)&&  //надо ли  выделять вершину
    (Verh[i].x+10 > X)&&(Verh[i].y+10 > Y))
     {
        select = i;              //если да то выделяем вершину
     }
} else {
  Verh[select].x = X;     // если вершина выделенна и произведен щелчек
  Verh[select].y = Y;     // перемещаем на эту вершину на то место на форме геде был произведен щелчек
  select = -1;
}
PaintGraf();
}
//---------------------------------------------------------------------------
// изменение размеров формы
void __fastcall TForm1::FormResize(TObject *Sender)
{
 Random_Generate_V();  
}
//---------------------------------------------------------------------------
// кнопка «Генерация»
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  Random_Generate();
  PaintGraf();
}
//---------------------------------------------------------------------------
// определяет количество вершин
void __fastcall TForm1::CSpinEdit1Change(TObject *Sender)
{
  Col_Verh = CSpinEdit1->Value;
  StringGrid1->RowCount = Col_Verh;
  StringGrid1->ColCount = Col_Verh;
   Random_Generate_V();
  for (int  i = 0; i<Col_Verh; i++)
  for (int  j = 0; j<Col_Verh; j++)
  {
     StringGrid1->Cells[i][j] = "0";
     MatrSmeg[i][j] = 0;
  }
  for (int  i =0;i<Col_Verh; i++)
     VerhC[i] = clGreen;
  PaintGraf();
}
//---------------------------------------------------------------------------
// добавление/удаление ребер в StringGrid
void __fastcall TForm1::StringGrid1SelectCell(TObject *Sender, int ACol,
      int ARow, bool &CanSelect)
{
  if (ACol == ARow)
     return;
 
   if (StringGrid1->Cells[ACol][ARow] == "0")
   {
       StringGrid1->Cells[ACol][ARow] = "1";
       StringGrid1->Cells[ARow][ACol] = "1";
       MatrSmeg[ACol][ARow] = 1;
       MatrSmeg[ARow][ACol] = 1;
   }
   else
   {
    StringGrid1->Cells[ACol][ARow] = "0";
    StringGrid1->Cells[ARow][ACol] = "0";
    MatrSmeg[ACol][ARow] = 0;
    MatrSmeg[ARow][ACol] = 0;
    }
 
   PaintGraf();
}
//---------------------------------------------------------------------------
//создание формы
void __fastcall TForm1::FormCreate(TObject *Sender)
{
    for (int  i =0;i<Col_Verh; i++)
     VerhC[i] = clGreen;
//заносим цвета в массив
     ColorArray[0] = clRed;
     ColorArray[1] = clBlue;
     ColorArray[2] = clLime;
     ColorArray[3] = clPurple;
     ColorArray[4] = clTeal;
     ColorArray[5] = clOlive;
     ColorArray[6] = clNavy;
     ColorArray[7] = clMoneyGreen;
     ColorArray[8] = clMaroon;
     ColorArray[9] = clAqua;
     ColorArray[10] = clSilver;
     ColorArray[11] = clFuchsia;
     ColorArray[12] = clSkyBlue;
     ColorArray[13] = clSkyBlue;
     ColorArray[14] = clWhite;
}
//---------------------------------------------------------------------------
//   кнопка «раскрасить»
void __fastcall TForm1::Button2Click(TObject *Sender)
{
for (int  i =0;i<Col_Verh; i++)
     VerhC[i] = clGreen;
PaintVerh();
PaintGraf();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.11.2015, 20:32
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Этот код написан на С++ или Delphi? (C++):

Код написан в Dev C. Не работает в Visual. Как нужно переделать код? - C++
Здравствуйте. Столкнулась с такой проблемой: код был написан в Dev C, но в Visual он выдаёт ошибку. ...

Неправильно написан код - C++
Функция должна находить простые числа в заданном массиве. Выходит что-то вроде 003С100 .. void f1 (int*mas) { int size =...

Правильно ли написан код - C++
Извините, подправьте плиз, всем заранее огромное спасибо #include&lt;iostream.h&gt; #include&lt;conio.h&gt; #include&lt;string.h&gt; ...

На чем написан код? - C++
Подскажите в какой среде писался вот этот код??? Приложение #include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &lt;math.h&gt; #include...

правильно ли написан код в с++? - C++
#include &lt;iostream&gt; #include &lt;map&gt; #include &lt;fstream&gt; using namespace std; int main() { map &lt;char,int&gt; chars; ...

Насколько плохо написан код? - C++
написал программу с горем да пополам, но появился вопрос о ее качестве. насколько плохо она написана? стояла такая задача: программа...

9
_Valera_
489 / 371 / 94
Регистрация: 27.01.2015
Сообщений: 1,588
08.11.2015, 20:33 #2
с++
Если даже в вики глянуть, то сразу видно что синтаксис даже не подобен
0
Новичок
Модератор
1466 / 931 / 225
Регистрация: 17.07.2012
Сообщений: 4,842
Завершенные тесты: 3
08.11.2015, 20:34 #3
C++, написано в C++Builder.
0
NelliRomans
1 / 1 / 0
Регистрация: 25.09.2014
Сообщений: 53
08.11.2015, 20:50  [ТС] #4
А может ли кто-нибудь проверить работает ли эта программа?
0
zss
Модератор
Эксперт С++
6863 / 6425 / 2146
Регистрация: 18.12.2011
Сообщений: 16,875
Завершенные тесты: 1
08.11.2015, 20:51 #5
Меня смущает вот это:
Цитата Сообщение от NelliRomans Посмотреть сообщение
Randomize;
Randomize;
Randomize;
Оно не соответствует синтаксису Си

Добавлено через 1 минуту
Цитата Сообщение от NelliRomans Посмотреть сообщение
#include <vcl.h>
Это Borland
0
gru74ik
Модератор
Эксперт CЭксперт С++
4344 / 1920 / 206
Регистрация: 20.02.2013
Сообщений: 5,103
Записей в блоге: 22
08.11.2015, 20:54 #6
Цитата Сообщение от zss Посмотреть сообщение
Это Borland
То есть, диалект С++, который в некоторых моментах отличается от стандартного С++. Про него лучше вопросы задавать в профильном разделе.
0
Tulosba
:)
Эксперт С++
4705 / 3240 / 297
Регистрация: 19.02.2013
Сообщений: 9,046
08.11.2015, 20:54 #7
Цитата Сообщение от NelliRomans Посмотреть сообщение
А может ли кто-нибудь проверить работает ли эта программа?
Чтобы это проверять надо проект, а не нарезку из файлов.
0
Новичок
Модератор
1466 / 931 / 225
Регистрация: 17.07.2012
Сообщений: 4,842
Завершенные тесты: 3
08.11.2015, 21:49 #8
Цитата Сообщение от zss Посмотреть сообщение
Меня смущает вот это:
С++Builder это по сути смесь Delphi и C++. А в Delphi для инициализации генератора случайных чисел используется процедура Randomize.
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25278 / 16926 / 5343
Регистрация: 22.10.2011
Сообщений: 29,945
Записей в блоге: 6
08.11.2015, 21:54 #9
Новичок, Все равно, этот код компилироваться в Билдере не будет. Смесь смесью, но и у Дельфи и у С++ есть свой синтаксис.
0
Новичок
Модератор
1466 / 931 / 225
Регистрация: 17.07.2012
Сообщений: 4,842
Завершенные тесты: 3
08.11.2015, 21:59 #10
volvo, а ну да, как-то я не подумал, правильно Randomize().
0
08.11.2015, 21:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.11.2015, 21:59
Привет! Вот еще темы с ответами:

Правильно ли написан код .cpp? - C++
Вот сам код #define _CRT_SECURE_NO_WARNINGS #include &lt;Windows.h&gt; #include &lt;HCNetSDK.h&gt; #include &lt;memory&gt; #include &lt;cstdio&gt; ...

Код написан,нужна небольшая корректировка.Массивы - C++
Здравствуйте,задание:: Задана матрица размером NxM. Получить массив B, присвоив его k-му элементу значение 0, если сумма элементов k-го...

Найти сумму ряда (правильно ли написан код?) - C++
#include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; int main() { int i,s,res=(i)*(i); for (int i=1; i&lt;=39; i+=2) { ...

Код написан,нужна небольшая корректировка.Массивы - C++
Задана матрица размером N×M, N,M&lt;50. Получить массив B, присвоив его k-му элементу значение 1, если элементы k–й строки матрицы ...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

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