24.11.2014 Views

Программирование на С++ - eDrive

Программирование на С++ - eDrive

Программирование на С++ - eDrive

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

11<br />

Для статистических операций удобно использовать функции из Math.hpp:<br />

AnsiString MyClass::MyStatOp ()<br />

{ return FloatToStrF (Mean (vec, rows–1), ffFixed, 5, 2); }<br />

Не отличается новизной и функция сортировки:<br />

qsort ((void*) vec, rows, sizeof (double), MySortFunc);<br />

3. Использование класса. Объекты класса создаются в обработчиках соответствующих<br />

кнопок. В частности, <strong>на</strong>жатие первой кнопки ведет к созданию<br />

первых двух массивов:<br />

int r = StrToInt (Edit1–>Text);<br />

StringGrid1–>RowCount = r + 1;<br />

MyClass myVector0 (0, 1), myVector1 (1, 1);<br />

Обработчик второй кнопкой управляет уже тремя массивами:<br />

MyClass myVector0 (0, –1), myVector1 (1, –1), myVector2 (2, 0);<br />

myVector2.MyStringOp (myVector0, myVector1);<br />

Label1–>Caption = "Максимум " + FloatToStr (myVector2.MyMax ());<br />

Label2–>Caption = "Минимум " + FloatToStr (myVector2.MyMin ());<br />

Label3–>Caption = "Операция " + myVector2.MyStatOp ();<br />

В свою очередь, сортировке подлежит только расчетный массив:<br />

MyClass myVector2 (2, –1);<br />

MyVector2.MySort ();<br />

Задачи<br />

1. Заменить статический массив vec ди<strong>на</strong>мическим, внеся соответствующие<br />

изменения в конструктор и деструктор класса.<br />

2. В классе по мере возможности использовать константные функции.<br />

3. Временно включив в конструктор и деструктор функцию ShowMessage,<br />

демонстрировать их вызовы и объяснить их причину.<br />

Работа 4. Перегрузка<br />

Задание<br />

Для овладения техникой перегрузки операторов и функций создать проект с<br />

формой, поддерживающей интерфейс пользователя и все операции предыдущей<br />

работы. Операцию <strong>на</strong>д строкой выполнить с помощью заданного в<br />

табл. 1 перегруженного для этой цели двухместного оператора, а операцию<br />

<strong>на</strong>д расчетным столбцом – с помощью заданного в табл. 1 перегруженного

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!