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.

10<br />

Рекомендации<br />

1. Объявление класса. Для разработки авторского класса ввести в проект новый<br />

модуль (Unit) из библиотеки шаблонов (File.New) и подключить его<br />

(File.Include Unit Hdr…) к форме, а форму – к нему. Объявление класса поместить<br />

в файл заголовка модуля, <strong>на</strong>пример:<br />

class MyClass<br />

{ private:<br />

double vec [256];<br />

int rows, col;<br />

void MyGridToVector ();<br />

void MyVectorToGrid ();<br />

void MyFill ();<br />

public:<br />

MyClass (int gridCol, int fill);<br />

~MyClass ();<br />

// массив<br />

// число строк и столбец<br />

// конструктор<br />

// деструктор<br />

void MyStringOp (MyClass &c1, MyClass &c2); // операция <strong>на</strong>д строкой<br />

double MyMax ();<br />

// максимальный элемент<br />

double MyMin ();<br />

// минимальный элемент<br />

AnsiString MyStatOp ();<br />

// операция <strong>на</strong>д столбцом<br />

void MySort (); };<br />

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

соответствующих функций предыдущей работы. В конструкторе задается<br />

число строк и номер столбца. Здесь же массив может заполняться или<br />

считываться из таблицы в зависимости от з<strong>на</strong>чения параметра fill (1, –1, 0):<br />

col = gridCol;<br />

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

rows = r;<br />

if (fill = = 1) MyFill ();<br />

else if (fill = = –1) MyGridToVector ();<br />

В деструкторе массив возвращается в таблицу вызовом функции<br />

MyVectorToGrid. Функции MyVectorToGrid, MyGridToVector и MyFill не нуждаются<br />

в параметрах, так как работают с массивом vec, <strong>на</strong>пример:<br />

void __fastcall TForm1::MyVectorToGrid ()<br />

{ for (int i=0; iStringGrid1–>Cells [col][i+1] = vec [i]; }<br />

Заданную операцию <strong>на</strong>д элементами строк, <strong>на</strong>пример, их сложение, можно<br />

выполнить в цикле:<br />

for (int i=0; i

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

Saved successfully!

Ooh no, something went wrong!