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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Рекурсия. Умножение чисел путём сложения/вычитания http://www.cyberforum.ru/cpp-beginners/thread1575239.html
Код: // b должен быть больше нуля, чтобы не получилось бесконечной рекурсии int mystery(int a, int b) { if(b == 1) return a; else return a + mystery(a, b - 1); } Задание: переделать, сделать так, чтобы b могло быть отрицательным. Т.е. чтобы можно было умножать на отрицательное число.
C++ Упорядочить столбцы матрицы по неубыванию последних элементов Дана действительная матрица порядка n× m. Обращение к элементам массива выполнить через указатели. Упорядочить столбцы по неубыванию последних элементов. http://www.cyberforum.ru/cpp-beginners/thread1575218.html
C++ Из двух массивов, упорядоченных по возрастанию, получить третий
Из двух массивов A(N) и B(M), упорядоченных по возрастанию, получить за один просмотр массив С(К), также упорядоченный по возрастанию, в который включить пересечение элементов двух исходных массивов.
Распечатать построчно содержимое файла C++
Привет, форумчане! Тяжёлые времена настигли меня, поэтому вынужден попросить вас о помощи :cry: Мне выдали такую задачу: Написать программу, которая работает в одном из двух режимов. Если в текущем каталоге имеется текстовый файл “tabl.txt”, то распечатать построчно его содержимое. В противном случае создать файл с таким именем и записать туда таблицу умножения для чисел от 2 до 9. Моих...
C++ Освобождение участка памяти http://www.cyberforum.ru/cpp-beginners/thread1575165.html
Добрый вечер. Подскажите, пожалуйста, где здесь ошибка. В разделе "После освобождения памяти" программа ничего не выдает. #include <iostream> using namespace std; #include<locale> int main() { setlocale(LC_ALL, "Russian");
C++ Как присвоить значению массива знак пробел Именно к целочисленному массиву, присвоить знак пробела, ну или чтоб данный элемент просто не светился на консоли)) Есть конструкция: setlocale(0, ""); // поддержка кириллицы int N; cout << "Ввести размер массива: ";cin >> N; int *A = new int; // динамический массив /// ..... подробнее

Показать сообщение отдельно
NelliRomans
1 / 1 / 0
Регистрация: 25.09.2014
Сообщений: 36

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

08.11.2015, 20:32. Просмотров 203. Ответов 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();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru