ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Задания для выполнения практической работы №8. «Разработка приложений с использованием обобщенных«Разработка приложений с использованием обобщенных алгоритмов»
Вариант 1. Алгоритмы. Модифицирующие операции с последовательностями. Напишите законченную программу, в которой с помощью подходящих конструкторов создайте два целочисленных вектора v1 – пустой и v1 размером 10 элементов с нулевыми значениями. Занесите в вектор v1 последовательность значений 10, 20, 30, 40, 50, 60, 70, 80, 90. Выведите значения элементов созданных векторов на экран. С помощью алгоритма replace_copy_if() скопируйте v1 в v2 с заменой в копии значений больших 30 и меньших 70 на значение 5. С этой целью в качестве третьего аргумента в вызове алгоритма используйте функцию-предикат вида // Функция-предикат для выбора элементов вектора bool In_30_70(// Возвращает true при 30 < x < 50 int x) // Проверяемое значение { return x>30 && x<70; } Выведите значения элементов обоих векторов на экран. Применяйте только средства стандартной библиотеки языка С++ (потоковый ввод-вывод, класс vector и объявления стандартных алгоритмов из файла < algorithm >). Вариант 2. Алгоритмы. Модифицирующие операции с последовательностями. Напишите законченную программу, в которой создайте два целочисленных массива a и b одинакового размера и инициализируйте их. Выведите значения элементов созданных массивов на экран. С помощью алгоритма transform() выполните попарную обработку элементов этих массивов в соответствии с выражением . С этой целью в качестве пятого аргумента в вызове алгоритма используйте функциональный объект вида // Функциональный объект пользователя, выполняющий // обработку пар элементов двух последовательностей struct conv: binary_function < double, double, double > { double operator() (double x, double y) const { return x*x - y*y; }}; Выведите значения элементов массива a на экран. С помощью алгоритма transform() выполните инвертирование значений элементов вектора b. С этой целью в качестве четвертого аргумента в вызове алгоритма используйте предикат negate< int >. Выведите значения элементов массива b на экран. Применяйте только средства стандартной библиотеки языка С++ (потоковый ввод-вывод, объявления стандартных алгоритмов из файла < algorithm > и объявления стандартных функциональных объектов из файла < functional >). Вариант 3. Алгоритмы. Модифицирующие операции с последовательностями. Напишите законченную программу, в которой создайте три целочисленных массива a, b и c одинакового размера. Инициализируйте массивы a и c так, чтобы они содержали одинаковые элементы. Выведите значения элементов массивов a и c на экран. С помощью алгоритма unique() удалите в последовательностях элементов массива a повторяяющиеся элементы и выведите на экран значения элементов этого массива. С помощью алгоритма unique_copy() выполните копирование массива c в массив b с удалением в последовательностях элементов массива b повторяяющихся элементов и выведите на экран значения элементов массива b. Применяйте только средства стандартной библиотеки языка С++ (потоковый ввод-вывод и объявления стандартных алгоритмов из файла < algorithm >). Вариант 4. Алгоритмы, связанные с сортировкой. Напишите законченную программу, в которой с помощью подходящих конструкторов создайте два вектора вещественного типа v, v1 и v2. Инициализируйте первые два вектора случайными значениями, а вектор v2 так, чтобы он содержал две отсортированных последовательности. Выведите значения элементов этих векторов на экран. С помощью алгоритмов sort() и stable_sort() выполните соответственно обычную и устойчивую сортировку векторов v, v1 и выведите на экран значения элементов этих векторов. С помощью алгоритма binary_search() выполните поиск в векторе v заданного значения и выведите результаты поиска на экран. С помощью алгоритма implace_merge() выполните слияниие двух отсортированных последовательностей в векторе v2 и выведите значения элементов этого вектора экран. Применяйте только средства стандартной библиотеки языка С++ (потоковый ввод-вывод и объявления стандартных алгоритмов из файла < algorithm >). Вариант 5. Алгоритмы, связанные с сортировкой. Напишите законченную программу, в которой с помощью подходящих конструкторов создайте два вектора вещественного типа v, v1 одинакового размера. Инициализируйте оба вектора отсортированными и одинаковыми значениями. Выведите значения элементов этих векторов на экран. С помощью алгоритма lexicogpaphical_compare() сравните вектора v, v1 между собой и выведите на экран результаты сравнения. Измение значение одного из элементов вектора v1. С помощью того же алгоритма сравните вектора v, v1 между собой с использованием предиката greater<…> и выведите на экран результаты сравнения. С помощью алгоритмов lower_bound() и upper_bound() определите соответственно значения элементов вектора v после которого и перед которым можно всавить элемент с заданным значением, не нарушая его упорядоченности, и выведите значения элементов вектора v на экран. Применяйте только средства стандартной библиотеки языка С++ (потоковый ввод-вывод, объявления стандартных алгоритмов из файла < algorithm > и объявления стандартных функциональных объектов из файла < functional >). Вариант 6. Алгоритмы, связанные с сортировкой. Напишите законченную программу, в которой с помощью подходящих конструкторов создайте два вектора вещественного типа v1, v2 размером 3. Инициализируйте оба вектора так, чтобы они были отсортированными. С помощью подходящего конструктора создайте вещественный вектор v3 размером 6. Выведите значения элементов векторов v1, v2 на экран. С помощью алгоритмов max_element() и min_element() определите и выведите на экран соответственно максимальное и минимальное значения элементов вектора v1. С помощью алгоритма merge() слейте отсортированные векторы v1, v2 в вектор v3 и выведите на экран значения элементов вектора v3. С помощью алгоритмов next_permutation() и prev_permutation() сгенерируйте и выведите на экран перестановки элементов в лексикографическом порядке для векторов v1, v2 соответственно. Применяйте только средства стандартной библиотеки языка С++ (потоковый ввод-вывод и объявления стандартных алгоритмов из файла < algorithm >). Вариант 7. Алгоритмы работы с множествами. Напишите законченную программу, в которой создайте целочисленные массив a со значениями элементов 2, 5, 7, 9, массив b со значениями элементов 1, 5, 9 и массив tmp из семи элементов. Выведите значения элементов массивов a, b на экран. С помощью алгоритма set_intersection() создайте отсортированное пересечение массивов a, b, поместите его в массив tmp и выведите на экран значения элементов массива tmp. С помощью алгоритма set_union() создайте отсортированное объединение массивов a, b, поместите его в массив tmp и выведите на экран значения элементов массива tmp. С помощью алгоритма set_difference() скопируйте в tmp из массивов a, b значения элементов, входящих только в массив a и выведите на экран значения элементов массива tmp. С помощью алгоритма sym_difference() скопируйте в tmp из массивов a, b значения элементов, входящих только в один из массивов и выведите на экран значения элементов массива tmp. С помощью алгоритма includes() проверьте включение массива b в массив a и выведите на экран результаты проверки. Применяйте только средства стандартной библиотеки языка С++ (потоковый ввод-вывод и объявления стандартных алгоритмов из файла < algorithm >). Вариант 8. Алгоритмы работы с пирамидами. Напишите законченную программу, в которой с помощью подходящего конструктора создайте целочисленные вектор Number со значениями элементов 4, 10, 70, 10, 30, 69, 96, 100 и выведите значения элементов векторана экран. С помощью алгоритма make_heap() преобразуйте Number в пирамиду и выведите на экран значения элементов Number. С помощью алгоритма sort_heap() преобразуйте пирамиду в отсортированную последовательность и выведите на экран значения элементов Number. С помощью метода push_back() и алгоритма push_heap() лобавьте элемент в Number и выведите на экран значения элементов Number. С помощью алгоритма make_heap() преобразуйте Number в пирамиду и выведите на экран значения элементов Number. Извлеките и выведите на экран корневой элемент пирамиды. Затем с помощью алгоритма pop_heap() восстановите пирамиду и выведите на экран значения элементов Number. Применяйте только средства стандартной библиотеки языка С++ (потоковый ввод-вывод, класс vector и объявления стандартных алгоритмов из файла < algorithm >). Вариант 9. Алгоритмы. Модифицирующие операции с последовательностями. Напишите законченную программу, в которой создайте три целочисленных массива a, b и c одинакового размера. Инициализируйте массивы a и c так, чтобы они содержали одинаковые элементы. Выведите значения элементов массивов a и c на экран. С помощью алгоритма unique() удалите в последовательностях элементов массива a повторяяющиеся элементы и выведите на экран значения элементов этого массива. С помощью алгоритма unique_copy() выполните копирование массива c в массив b с удалением в последовательностях элементов массива b повторяяющихся элементов и выведите на экран значения элементов массива b. Применяйте только средства стандартной библиотеки языка С++ (потоковый ввод-вывод и объявления стандартных алгоритмов из файла < algorithm >). Вариант 10. Алгоритмы, связанные с сортировкой. Напишите законченную программу, в которой с помощью подходящих конструкторов создайте два вектора вещественного типа v, v1 и v2. Инициализируйте первые два вектора случайными значениями, а вектор v2 так, чтобы он содержал две отсортированных последовательности. Выведите значения элементов этих векторов на экран. С помощью алгоритмов sort() и stable_sort() выполните соответственно обычную и устойчивую сортировку векторов v, v1 и выведите на экран значения элементов этих векторов. С помощью алгоритма binary_search() выполните поиск в векторе v заданного значения и выведите результаты поиска на экран. С помощью алгоритма implace_merge() выполните слияниие двух отсортированных последовательностей в векторе v2 и выведите значения элементов этого вектора экран. Применяйте только средства стандартной библиотеки языка С++ (потоковый ввод-вывод и объявления стандартных алгоритмов из файла < algorithm >).
ЗАКЛЮЧЕНИЕ
При создании программ используют различные технологии программирования: структурная, объектно-ориентированная, обобщенная с использованием стандартной библиотеки. Технология визуального проектирования и событийного программирования позволяет создавать эффективные приложения, с которыми связаны два аспекта: программный код для создания графического интерфейса пользователя, с которым взаимодействует пользователь, и программный код для обработки этого взаимодействия и реализации полезной функциональности приложения. Методические указания к выполнению лабораторных и практических работ позволяют студентам закрепить теоретический материал по дисциплинам «Основы программирования» и «Языки программирования» и приобрести практические навыки в разработке визуальных приложений на языке С++.
СПИСОК ЛИТЕРАТУРЫ
1. Культин Н.Б. Основы программирования в Microsoft Visual C++ 2010. – СПб.: БХВ-Петербург, 2010. – 384 с. 2. Культин Н.Б. Microsoft Visual C++ в задачах и примерах. – СПб.: БХВ-Петербург, 2010. – 272 с. 3. Пахомов Б.И. С/С++ и MS Visual C++ 2012 для начинающих. –СПб.: БХВ-Петербург, 2013 – 512 с. 4. Давыдов В.Г. Технологии программирования. С++. – СПб.: БХВ-Петербург, 2005. – 672 с. 5. Хортон А. Visual C++ 2010. Полный курс.: Пер. с англ. В. Коваленко. – М.: ООО”И.Д. Вильямс”, 2011. – 1216 с. 6. Зиборов В.В. MS Visual C++ 2010 в среде.NET. Библиотека программиста. –СПб.: Питер, 2012. –320 с. 7.Довбуш Г.Ф. Visual C++ на примерах./Г.Ф. Довбуш, А.Д. Хомоненко/Под ред. А.Д. Хомоненко. –СПб.: БХВ-Петербург, 2007. – 528 с. 8. Шеферд Дж. Программирование на Microsoft Visual C++.NET. Мастер-класс. /Пер. с англ. 2-е изд. – М.: Издательство «Русская редакция», СПб, Питер, 2007. – 928 с.
Семахин Андрей Михайлович
ОСНОВЫ ПРОГРАММИРОВАНИЯ
Методические указания к выполнению лабораторных и практических работ для студентов направления 09.03.04– «Программная инженерия» и 10.05.03 – «Информационная безопасность автоматизированных систем»
(Часть 2)
Редактор Е. А. Могутова
Подписано в печать Формат 60х84 1/16 Бумага тип № 1 Печать цифровая Усл. печ. л. Уч.-изд. л. Заказ Тираж 30 Не для продажи РИЦ Курганского государственного университета. 640000, г. Курган, ул. Советская, 63/4. Курганский государственный университет. Не нашли, что искали? Воспользуйтесь поиском:
|