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

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

edrive.narod.ru
from edrive.narod.ru More from this publisher
24.11.2014 Views

6 Работа 1. Массивы Задание Для знакомства со средствами формирования и отображения массивов данных разработать приложение, форма которого отображает таблицу с тремя столбцами и произвольно изменяемым числом строк. Предоставить пользователю возможность заполнения первых двух столбцов таблицы вручную или с помощью генератора случайных чисел. Третий столбец должен вычисляться как результат заданной в табл. 1 операции над строкой. Рекомендации 1. Создание формы с таблицей. Подготовить проект с формой для отображения и ввода табличных данных. Поместить в нее элемент управления StringGrid с панели визуальных компонентов Additional и задать его свойства ColCount = 3 и RowCount = 10, FixedCols = 0 и FixedRows = 1. В группе Options установить в true свойства goEdition и goAlwaysShowEditor, a goRangeSelect – в false. В конструкторе формы организовать заполнение заголовка таблицы, например, так: StringGrid1–>Rows [0]–>Append (“Vector0”); StringGrid1–>Rows [0]–>Append (“Vector1”); StringGrid1–>Rows [0]–>Append (“Vector2”); Испытать приложение, вводя в ячейки таблицы произвольные числа. 2. Подготовка массивов. В классе формы объявить три вещественных статических массива и целочисленную переменную для хранения числа строк таблицы, например: double myVector0 [256], myVector1 [256], myVector2 [256]; int gridRows; Дополнить класс функцией, передающей содержимое столбца таблицы в массив, и функцией, выполняющей обратное действие, и определить эти функции в файле кода формы, например: void __fastcall TForm1::MyVectorToGrid (double* vec, int col) { for (int i = 0; i < gridRows; ++i) StringGrid1–>Cells [col][i+1] = FloatToStr (vec [i]); } 3. Формирование массивов. Дополнить класс формы функцией, заполняющей массив случайными числами, и определить ее, например, так: void __fastcall TForm1::MyFill (double* vec)

{ for (int i = 0; i < gridRows; ++i) vec [i] = random (100); } 7 Для того, чтобы пользователь мог задавать число строк таблицы и заполнять ее случайными данными, поместить в форму поле и предусмотренную вариантом кнопку управления (см. табл. 1). Функция, обрабатывающая нажатие кнопки – обработчик – может выглядеть так: gridRows = StrToInt (Edit1–>Text); StringGrid1–>RowCount = gridRows + 1; MyFill (myVector0); MyFill (myVector1); MyVectorToGrid (myVector0, 0); MyVectorToGrid (myVector1, 1); 4. Вычисления. Дополнить форму второй кнопкой с обработчиком, выполняющим заданную операцию над строкой. Результат вычисления помещать в третий массив и выводить в третий столбец таблицы. Учитывая, что данные таблицы могут произвольно меняться пользователем, перед выполнением расчета надо передавать их в массивы. Пример реализации построчного сложения элементов массивов может выглядеть так: void __fastcall TForm1::Button2Click (TObject *Sender) { { MyGridToVector (myVector0, 0); MyGridToVector (myVector1, 1); for (int i=0; i

{ for (int i = 0; i < gridRows; ++i) vec [i] = random (100); }<br />

7<br />

Для того, чтобы пользователь мог задавать число строк таблицы и заполнять<br />

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

вариантом кнопку управления (см. табл. 1). Функция, обрабатывающая<br />

<strong>на</strong>жатие кнопки – обработчик – может выглядеть так:<br />

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

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

MyFill (myVector0);<br />

MyFill (myVector1);<br />

MyVectorToGrid (myVector0, 0);<br />

MyVectorToGrid (myVector1, 1);<br />

4. Вычисления. Дополнить форму второй кнопкой с обработчиком, выполняющим<br />

заданную операцию <strong>на</strong>д строкой. Результат вычисления помещать<br />

в третий массив и выводить в третий столбец таблицы. Учитывая, что<br />

данные таблицы могут произвольно меняться пользователем, перед выполнением<br />

расчета <strong>на</strong>до передавать их в массивы. Пример реализации построчного<br />

сложения элементов массивов может выглядеть так:<br />

void __fastcall TForm1::Button2Click (TObject *Sender) {<br />

{ MyGridToVector (myVector0, 0);<br />

MyGridToVector (myVector1, 1);<br />

for (int i=0; i

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

Saved successfully!

Ooh no, something went wrong!