Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 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.

Курганский государственный университет.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных