42 Примером массива является свойство Cells компонента StringGrid, которым задается содержание ячейки, адресуемой индексами. Массивами описывают также отдельные панели строки состояния и строки списков. void Arrays4 () { MyForm–>StringGrid1–>Cols[1]–>Add (“0-ая ячейка 1-го столбца”); MyForm–>StringGrid1–>Cols[1]–>Add (“1-ая ячейка 1-го столбца”); MyForm–>StringGrid1–>Cols[1]–>Append (“2-ая ячейка 1-го столбца”); MyForm–>StringGrid1–>Cells[2][3] = “Ячейка 2-го столбца 3-ей строки”; MyForm–>StatusBar1–>Panels–>Items[0]–>Text = "Левая панель"; MyForm–>ListBox1–>Items–>Strings[0] = "Нулевая строка списка"; } Массивы эффективно используются в графике, <strong>на</strong>пример, для рисования геометрических фигур по канве формы: void __fastcall TForm1::FormPaint (TObject *Sender) { TPoint v[5]; int cw = ClientWidth, ch = ClientHeight; v[0] = Point (0, cw/10); v[1] = Point (cw/4, cw/10); v[2] = Point (cw/2, cw/4); v[3] = Point (cw/4, cw/4); v[4] = Point (0, cw/10); Canvas–>Polyline (v, 4); v[0] = Point (cw/2, ch/2); v[1] = Point (cw/2, ch); v[2] = Point (cw,ch); Canvas–>Polygon (v,2); Canvas–>Rectangle (0, ch/2, cw/2, ch); Canvas–>RoundRect (0, ch/2, cw/2, ch, cw/10, ch/10); Canvas–>Ellipse (0, ch/2, cw/2, ch); } Свойство Pixels типа TColor у компонентов Canvas можно использовать как двухмерный массив цвета точки, коорди<strong>на</strong>ты которой отсчитываются от левого верхнего угла изображения. void _ _fastcall TForm1::FormMouseDown (TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { Label1–>Caption = X; Label2–>Caption = Y; Label3–>Caption = Canvas–>Pixels[X][Y]; Canvas–>Pixels[X][Y] = clWhite; }
Перестановки и сортировки 43 Простым алгоритмом описывается широко распространен<strong>на</strong>я в программировании операция перестановки (swap) данных местами. Пример перестановки пары переменных выглядит так: void Swap (int &a, int &b) { int x = a; a = b; b = x; } void SwapVar () { int x = 2, y = 1; Swap (x, y); ShowMessage (x >y “x > y” : “x < y”); } Следующий пример иллюстрирует перестановку членов массива: void Swap (AnsiString a[], int n) { int i, j; for (i=0, j=n–1; i
- Page 1 and 2: Федеральное агентс
- Page 3 and 4: Оглавление Предисл
- Page 5 and 6: 5 Предисловие Напра
- Page 7 and 8: 7 Введение в процед
- Page 9 and 10: 9 которые использую
- Page 11 and 12: 11 [Модификатор] [тип
- Page 13 and 14: 13 В ответ на вызов к
- Page 15 and 16: 15 Данные в определе
- Page 17 and 18: 17 Здесь при выборе
- Page 19 and 20: 19 void _ _fastcall TForm1::MyClick
- Page 21 and 22: 21 фигурные скобки.
- Page 23 and 24: 23 Типы указываются
- Page 25 and 26: 25 Простые оператор
- Page 27 and 28: Метод IsDelimiter (AnsiString&
- Page 29 and 30: 29 Variant v = Edit3->Text; Label3-
- Page 31 and 32: 31 6. Как передаются
- Page 33 and 34: Условный оператор 3
- Page 35 and 36: } 35 case 4: day = "Четверг"
- Page 37 and 38: 37 void Whiles1 () { int temp = 10,
- Page 39 and 40: 39 В следующем приме
- Page 41: 41 Число байтов, выд
- Page 45 and 46: } 45 for (int i=1; i=0 + 1; - -j) i
- Page 47 and 48: 47 нять, создавать с
- Page 49 and 50: lb->LoadFromFile (“1.txt”); Sho
- Page 51 and 52: 51 При передаче в фу
- Page 53 and 54: 53 } // 0 1 Иванов 2 Петр
- Page 55 and 56: 55 void Info (TList *vl) { AnsiStri
- Page 57 and 58: Allocate (k[0], k[1], book1); Alloc
- Page 59 and 60: 59 else ShowMessage ("Такой ч
- Page 61 and 62: 61 for (rj=n.rbegin (); rj!=n.rend
- Page 63 and 64: int i, d[] = { 5, 2, 3, 8, 3, 1, 3
- Page 65 and 66: 22. Каков принцип де
- Page 67 and 68: StringGrid1->Cells[0][j] = myS[j].a
- Page 69 and 70: void Files2 () { AnsiString from =
- Page 71 and 72: void _ _fastcall TForm1::DelFromFil
- Page 73 and 74: 73 Фрагмент обработ
- Page 75 and 76: 75 отказ в доступе, EM
- Page 77 and 78: 77 //myApplication.cpp #include "my
- Page 79 and 80: 79 Для подключения н
- Page 81 and 82: 81 Управление созда
- Page 83 and 84: 83 Контрольные вопр
- Page 85 and 86: 85 для построения ма
- Page 87 and 88: 87 В C++Builder все подкл
- Page 89 and 90: 89 ODBC в папке Панель
- Page 91 and 92: void _ _fastcall TDBForm1::ConnectC
- Page 93 and 94:
93 Для подключения з
- Page 95 and 96:
95 Контрольные вопр
- Page 97 and 98:
class VPC { private: int type; Ansi
- Page 99 and 100:
99 AnsiString result; VDeque *curso
- Page 101 and 102:
} 101 VList a (3); // констр
- Page 103 and 104:
}; VStackAndQueue (AnsiString str);
- Page 105 and 106:
}; 105 public: VSecond (AnsiString
- Page 107 and 108:
} ShowMessage ("Старое вре
- Page 109 and 110:
} 109 AnsiString temp; for (i=0; i
- Page 111 and 112:
111 }; int VPrice::operator > (cons
- Page 113 and 114:
113 void MainVVector () { VVector
- Page 115 and 116:
115 void MainVEqu() { // x + 4y = 9
- Page 117 and 118:
117 Виртуальные функ
- Page 119 and 120:
119 virtual Тип имяФункц
- Page 121 and 122:
121 7. В чем заключает
- Page 123 and 124:
123 • руководство си
- Page 125 and 126:
125 Предметный указа
- Page 127:
5 Валерий Михайлови