Программирование на С++ - eDrive
Программирование на С++ - eDrive Программирование на С++ - eDrive
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
- Page 1 and 2: Федеральное агентс
- Page 3 and 4: Содержание Общие т
- Page 5: Кнопка управления
- Page 9 and 10: 9 void MySwap (double &a, double &b
- Page 11 and 12: 11 Для статистическ
- Page 13 and 14: 13 Задачи 1. Заменить
- Page 15 and 16: double stat = *max_element (myVecto
- Page 17 and 18: 17 подготовленным п
- Page 19 and 20: 19 for (int i=0; iColCount; ++i) f
- Page 21 and 22: 21 ADO панели визуаль
- Page 23 and 24: 23 В этом фрагменте
- Page 25 and 26: TImage *im; TSearchRec sr; 25 Ин
- Page 27 and 28: 27 Работа 11. Програм
- Page 29 and 30: 29 Series1->Assign (myForm1->Series
- Page 31 and 32: 31 а в деструкторе у
- Page 33 and 34: 33 ка. Методы Lock и Unloc
- Page 35 and 36: 35 Рекомендации 1. Ст
- Page 37 and 38: 37 10. Подключение сп
- Page 39 and 40: 39 требуемый заголо
{ 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