Программирование на С++ - eDrive
Программирование на С++ - eDrive Программирование на С++ - eDrive
double *myVector0; gridRows = StrToInt (Edit1–>Text); myVector0 = new double [gridRows]; delete [] gridRows; 8 6. Запретить пользователю редактирование расчетного массива в третьем столбце таблицы, для чего воспользоваться обработкой событий компонента StringGrid. Работа 2. Групповая обработка данных Задание Для освоения приемов групповой обработки и сортировки массивов взять за основу предыдущую работу (например, сохранив проект и форму под новыми именами в новой папке, File.Save Project As…, File.Save As…). Добавить в форму три надписи для отображения результатов групповой обработки расчетного массива: поиска максимального и минимального значений и выполнения заданной в табл. 1 статистической операции. Организовать сортировку расчетного массива. Рекомендации 1. Групповые вычисления. К вычислениям предыдущей работы добавить поиск и вывод в форму максимального и минимального значений расчетного массива, например: #include … double stat = MaxValue (myVector2, gridRows–1); Label1–>Caption = "Максимум " + FloatToStr (stat); Разработать, также, функцию для выполнения заданной статистической операции над расчетным массивом с выводом ее результата в форму. 2. Сортировка массива методом «пузырька». Дополнить форму третьей кнопкой с обработчиком, выполняющим сортировку методом «пузырька» по возрастанию данных расчетного массива. Алгоритм метода использует два цикла: внешний цикл с инкрементом и внутренний с декрементом: for (int i = 0; i < gridRows–1; ++i) for (int j= gridRows–1; j>i; – –j) if (myVector2 [j] < myVector2 [j–1]) Перестановка Перестановку элементов в функции сортировки целесообразно проводить, передавая данные в отдельную функцию вида
9 void MySwap (double &a, double &b) 3. Сортировка строк методом «пузырька». Реорганизовать сортировку расчетного массива в сортировку строк, в ходе которой элементы первого и второго массивов следуют за соответствующими элементами расчетного массива. Для этого функция перестановки вызывается трижды, и при каждом вызове ей передаются данные следующего массива. 4. Быстрая сортировка массива. Дополнить форму четвертой кнопкой с обработчиком, выполняющим сортировку расчетного массива в убывающем порядке с использованием библиотечной функции qsort: qsort ((void*) myVector2, gridRows, sizeof (double), MySortFunc); Текст функции сравнения элементов массива, предусмотренный синтаксисом qsort, может быть, например, таким: int MySortFunc( const void *a, const void *b) { return *(double*) a > *(double*) b ? –1 : 1; } Задачи 1. Разработать функцию сортировки методом «пузырька» по убыванию значений массива. 2. Разработать функцию сортировки qsort по возрастанию значений массива. 3. Разработать функцию сортировки qsort произвольно выбираемого пользователем массива. 4. Разработать функцию сравнения элементов массива qsort, возвращающую один из трех результатов: 1 при a > b, –1 при a < b, 0 при a = b. 5. Разработать функции поиска минимального и максимального элементов массива без использования файла заголовка Math.hpp. Работа 3. Классы Задание Чтобы научиться создавать и использовать авторский класс, разработать проект с формой, аналогичной предыдущей работе. В этом проекте все действия над массивами – их формирование, выполнение групповых операций и сортировка с использованием функции qsort – должны выполняться средствами авторского класса.
- Page 1 and 2: Федеральное агентс
- Page 3 and 4: Содержание Общие т
- Page 5 and 6: Кнопка управления
- Page 7: { for (int i = 0; i < gridRows; ++i
- 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 требуемый заголо
double *myVector0;<br />
gridRows = StrToInt (Edit1–>Text);<br />
myVector0 = new double [gridRows];<br />
delete [] gridRows;<br />
8<br />
6. Запретить пользователю редактирование расчетного массива в третьем<br />
столбце таблицы, для чего воспользоваться обработкой событий компонента<br />
StringGrid.<br />
Работа 2. Групповая обработка данных<br />
Задание<br />
Для освоения приемов групповой обработки и сортировки массивов взять за<br />
основу предыдущую работу (<strong>на</strong>пример, сохранив проект и форму под новыми<br />
име<strong>на</strong>ми в новой папке, File.Save Project As…, File.Save As…). Добавить<br />
в форму три <strong>на</strong>дписи для отображения результатов групповой обработки<br />
расчетного массива: поиска максимального и минимального з<strong>на</strong>чений и выполнения<br />
заданной в табл. 1 статистической операции. Организовать сортировку<br />
расчетного массива.<br />
Рекомендации<br />
1. Групповые вычисления. К вычислениям предыдущей работы добавить поиск<br />
и вывод в форму максимального и минимального з<strong>на</strong>чений расчетного<br />
массива, <strong>на</strong>пример:<br />
#include <br />
…<br />
double stat = MaxValue (myVector2, gridRows–1);<br />
Label1–>Caption = "Максимум " + FloatToStr (stat);<br />
Разработать, также, функцию для выполнения заданной статистической<br />
операции <strong>на</strong>д расчетным массивом с выводом ее результата в форму.<br />
2. Сортировка массива методом «пузырька». Дополнить форму третьей<br />
кнопкой с обработчиком, выполняющим сортировку методом «пузырька»<br />
по возрастанию данных расчетного массива. Алгоритм метода использует<br />
два цикла: внешний цикл с инкрементом и внутренний с декрементом:<br />
for (int i = 0; i < gridRows–1; ++i) for (int j= gridRows–1; j>i; – –j)<br />
if (myVector2 [j] < myVector2 [j–1]) Перестановка<br />
Перестановку элементов в функции сортировки целесообразно проводить,<br />
передавая данные в отдельную функцию вида