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

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

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

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 на языке С++ с использованием

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> с использованием

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

Saved successfully!

Ooh no, something went wrong!