Объектно-ориентированное программирование на С++ - eDrive
Объектно-ориентированное программирование на С++ - eDrive Объектно-ориентированное программирование на С++ - eDrive
void _ _fastcall TForm1::FormMouseMove (TObject *Sender, TShiftState Shift, int X, int Y) { if (drawing) Canvas–>LineTo (X, Y); } 34 Еще одна функция показывает работу методов Delete (удаление букв) и Length (длина строки) класса AnsiString в операции сцепления первой буквы слова a, точки и слова b: void Ifs3 () { AnsiString a = MyForm–>Edit1–>Text; AnsiString b = MyForm–>Edit2–>Text; AnsiString c = a.Delete (2, a.Length () – 1); if (a > b) MyForm–>Label1–>Caption = c + '.' + b + '\n' + a; else MyForm–>Label1–>Caption = a + '\n' + c + '.' + b; } Составные операторы могут иметь любую глубину вложенности. Но «вложенный набор операторов if...else иногда напоминает водопровод старого дома: система работает, но трудно понять, какая труба куда ведет» [9]. Оператор выбора Оператор выбора служит для организации хода вычислительного процесса в зависимости от значения выражения или переменной: switch (порядковаяПеременная) { case Константа : Выражение… ... [default : Выражение…] } После выполнения каждого выражения действие передается следующему выражению. Для прерывания этой последовательности обработку каждой константы в операторе выбора завершают оператором break. Выражения, открываемые лексемой default, рассчитаны на обработку незапланированных значений логического выражения. Пример: void Cases () { AnsiString day; int n = StrToInt (MyForm–>Edit1–>Text); switch (n) { case 1: day = "Понедельник"; break; case 2: day = "Вторник"; break; case 3: day = "Среда"; break;
} 35 case 4: day = "Четверг"; break; case 5: day = "Пятница"; break; case 6: day = "Суббота"; break; case 7: day = "Воскресенье"; break; default: day = "Ошибка ввода"; } MyForm–>Label1–>Caption = day; Следующий пример посвящен работе с формой, в классе которой есть параметр. Для передачи форме значения параметра newArg класс формы дополнен вторым конструктором: class TLocalForm : public TForm { __published: TLabel *Label1; public: __fastcall TLocalForm (TComponent* Owner); __fastcall TLocalForm (int newArg, TComponent* Owner); }; __fastcall TLocalForm::TLocalForm (int newArg, TComponent* Owner): TForm (Owner) { switch (newArg) { case 1: Label1–>Caption = "Обычная форма"; break; case 2: Label1–>Caption = "Форма с параметром"; break; } } Оператор цикла Оператор цикла организует повторяющийся вычислительный процесс в заданном диапазоне изменения переменной-счетчика цикла: for ([ выражениеИнициализации ]; [ выражениеУсловия ]; [ выражениеИтерации ]) Выражение… Выражения цикла, условия и итерации строятся с использованием переменной-счетчика цикла, который относится к одному из порядковых типов. Выражение итерации может быть как увеличивающимся, так и уменьшающимся, например, a++, b–=2 или c– –. По завершении цикла значение переменной-счетчика остается неопределенным. Далее приведен простой пример с оператором цикла – вывод алфавита в заголовок формы:
- 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: Условный оператор 3
- Page 37 and 38: 37 void Whiles1 () { int temp = 10,
- Page 39 and 40: 39 В следующем приме
- Page 41 and 42: 41 Число байтов, выд
- Page 43 and 44: Перестановки и сор
- 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 Контрольные вопр
}<br />
35<br />
case 4: day = "Четверг"; break;<br />
case 5: day = "Пятница"; break;<br />
case 6: day = "Суббота"; break;<br />
case 7: day = "Воскресенье"; break;<br />
default: day = "Ошибка ввода";<br />
} MyForm–>Label1–>Caption = day;<br />
Следующий пример посвящен работе с формой, в классе которой есть<br />
параметр. Для передачи форме з<strong>на</strong>чения параметра newArg класс формы дополнен<br />
вторым конструктором:<br />
class TLocalForm : public TForm {<br />
__published: TLabel *Label1;<br />
public:<br />
__fastcall TLocalForm (TComponent* Owner);<br />
__fastcall TLocalForm (int newArg, TComponent* Owner);<br />
};<br />
__fastcall TLocalForm::TLocalForm (int newArg, TComponent* Owner):<br />
TForm (Owner) {<br />
switch (newArg) {<br />
case 1: Label1–>Caption = "Обыч<strong>на</strong>я форма"; break;<br />
case 2: Label1–>Caption = "Форма с параметром"; break;<br />
}<br />
}<br />
Оператор цикла<br />
Оператор цикла организует повторяющийся вычислительный процесс в<br />
заданном диапазоне изменения переменной-счетчика цикла:<br />
for ([ выражениеИнициализации ];<br />
[ выражениеУсловия ];<br />
[ выражениеИтерации ]) Выражение…<br />
Выражения цикла, условия и итерации строятся с использованием переменной-счетчика<br />
цикла, который относится к одному из порядковых типов.<br />
Выражение итерации может быть как увеличивающимся, так и уменьшающимся,<br />
<strong>на</strong>пример, a++, b–=2 или c– –. По завершении цикла з<strong>на</strong>чение переменной-счетчика<br />
остается неопределенным.<br />
Далее приведен простой пример с оператором цикла – вывод алфавита<br />
в заголовок формы: