Программирование на С++ - eDrive
Программирование на С++ - eDrive Программирование на С++ - eDrive
14 вать дополнительную операцию – поиск информации с использованием библиотеки STL. Рекомендации 1. Подключение библиотеки STL. Создать форму в соответствии с заданием, аналогичную предыдущим работам. Включить в файл кода формы заголовочные файлы библиотеки STL для работы с контейнером vector и с алгоритмами, а также определить пространство имен std: #include #include using namespace std; 2. Создание векторов. В классе формы объявить три вещественных вектора и итератор, функцию заполнения вектора данными и функции передачи данных из вектора в таблицу и обратно, например: vector myVector0, myVector1, myVector2; vector ::iterator vi; void __fastcall MyFill (vector &vec); void __fastcall MyVectorToGrid (vector &vec, int col); void __fastcall MyGridToVector (vector &vec, int col,); Задать размер вектора можно следующим образом: int size = StrToInt (Edit1–>Text); StringGrid1–>RowCount = size + 1; myVector0.resize (size); Заполнение вектора случайными числами и вывод его в таблицу проводят с помощью итератора: int i=0; for (vi=vec.begin (); vi!=vec.end (); ++vi) StringGrid1–>Cells [col][++i] = FloatToStr (*vi);. С этой же целью в функции может использоваться обычный цикл со счетчиком: for (unsigned i = 0; i < vec.size (); i++) vec [i] = random (100); 3. Вычисления. Предусмотренная заданием математическая операция над векторами размером myVector2.size () выполняется аналогично прежним работам. Групповые операции удобно проводить с помощью итератора и соответствующих алгоритмов STL, например так:
double stat = *max_element (myVector2.begin (), myVector2.end ()); Label1–>Caption = "Максимум " + FloatToStr (stat); stat = *min_element (myVector2.begin (), myVector2.end ()); Label2–>Caption = "Минимум " + FloatToStr (stat); for (vi=myVector2.begin (), stat = 0; vi!=myVector2.end (); ++vi) stat += *vi; Label3–>Caption = "Операция " + FloatToStr (stat); 15 4. Сортировка. Для сортировки по возрастанию данных расчетного вектора применить алгоритм sort библиотеки STL. 5. Поиск информации. Добавить в форму элементы ввода и отображения результата и кнопку с обработчиком, выполняющим поиск данных в расчетном векторе, например, следующим образом: double what = StrToFloat (Edit1–>Text); vi = find (myVector2.begin (), myVector2.end (), what); if (vi != myVector2.end ()) Label1–>Caption = "Найден " + FloatToStr (*vi); Задачи 1. Выполнить сортировку по убыванию данных расчетного вектора. 2. Выполнить сортировку вектора, произвольно выбираемого пользователем. 3. Создать вариант программы, в котором вместо контейнера vector используется контейнер valarray, и для математических операций использовать встроенные возможности этого контейнера. Работа 6. Библиотеки LIB и DLL Задание Для освоения статической и динамической компоновки разработать две библиотеки. В первой библиотеке сохранить три функции: функцию, заполняющую массив случайными числами, функцию, передающую содержимое столбца таблицы в массив, и функцию, выполняющую обратное действие. Использовать эту библиотеку для статической компоновки в новом проекте, отвечающем заданию первой работы. Для второй библиотеки разработать форму «О программе», содержащую сведения о названии и авторе работы: фамилию, группу, вариант, текущую дату и логотип. Использовать эту библиотеку в качестве библиотеки динамической компоновки в том же проекте. Рекомендации 1. Разработка библиотеки с функциями. Создать проект библиотеки командой меню File.New из шаблона DLLWizard на языке С++ с использованием
- Page 1 and 2: Федеральное агентс
- Page 3 and 4: Содержание Общие т
- Page 5 and 6: Кнопка управления
- Page 7 and 8: { for (int i = 0; i < gridRows; ++i
- Page 9 and 10: 9 void MySwap (double &a, double &b
- Page 11 and 12: 11 Для статистическ
- Page 13: 13 Задачи 1. Заменить
- 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 stat = *max_element (myVector2.begin (), myVector2.end ());<br />
Label1–>Caption = "Максимум " + FloatToStr (stat);<br />
stat = *min_element (myVector2.begin (), myVector2.end ());<br />
Label2–>Caption = "Минимум " + FloatToStr (stat);<br />
for (vi=myVector2.begin (), stat = 0; vi!=myVector2.end (); ++vi) stat += *vi;<br />
Label3–>Caption = "Операция " + FloatToStr (stat);<br />
15<br />
4. Сортировка. Для сортировки по возрастанию данных расчетного вектора<br />
применить алгоритм sort библиотеки STL.<br />
5. Поиск информации. Добавить в форму элементы ввода и отображения результата<br />
и кнопку с обработчиком, выполняющим поиск данных в расчетном<br />
векторе, <strong>на</strong>пример, следующим образом:<br />
double what = StrToFloat (Edit1–>Text);<br />
vi = find (myVector2.begin (), myVector2.end (), what);<br />
if (vi != myVector2.end ()) Label1–>Caption = "Найден " + FloatToStr (*vi);<br />
Задачи<br />
1. Выполнить сортировку по убыванию данных расчетного вектора.<br />
2. Выполнить сортировку вектора, произвольно выбираемого пользователем.<br />
3. Создать вариант программы, в котором вместо контейнера vector используется<br />
контейнер valarray, и для математических операций использовать<br />
встроенные возможности этого контейнера.<br />
Работа 6. Библиотеки LIB и DLL<br />
Задание<br />
Для освоения статической и ди<strong>на</strong>мической компоновки разработать две библиотеки.<br />
В первой библиотеке сохранить три функции: функцию, заполняющую<br />
массив случайными числами, функцию, передающую содержимое<br />
столбца таблицы в массив, и функцию, выполняющую обратное действие.<br />
Использовать эту библиотеку для статической компоновки в новом проекте,<br />
отвечающем заданию первой работы. Для второй библиотеки разработать<br />
форму «О программе», содержащую сведения о <strong>на</strong>звании и авторе работы:<br />
фамилию, группу, вариант, текущую дату и логотип. Использовать эту библиотеку<br />
в качестве библиотеки ди<strong>на</strong>мической компоновки в том же проекте.<br />
Рекомендации<br />
1. Разработка библиотеки с функциями. Создать проект библиотеки командой<br />
меню File.New из шабло<strong>на</strong> DLLWizard <strong>на</strong> языке <strong>С++</strong> с использованием