Лабораторная работа № 3. Методы сортировки



Лабораторные работы 2 семестр

Лабораторная работа № 1. Использование языка  программирования С++ для математических расчётов

Первая лабораторная работа предназначена для приобретения практического опыта в создании простейшего приложения с использованием языка программирования С++, призвана:

· закрепить базовые навыки использования арифметических типов, операторов и инструкций языка программирования C++; 

· рассмотреть основы ввода-вывода в консольном приложении.

Для каждого понятия (геометрические фигуры, другие объекты), использующегося в программе должна быть создана соответствующая структура данных.

При выполнении лабораторной работы нельзя использовать контейнеры и алгоритмы библиотеки STL или других сторонних библиотек.

Варианты заданий

1)  Для заданной функции на заданном интервале найти требуемое значение методом половинного деления. 

2) Для заданной функции на заданном интервале найти требуемое значение методом Ньютона (касательных). 

3) Для заданной функции на заданном интервале найти требуемое значение методом хорд. 

4) Для заданной окружности и луча в плоскости определить, пересекает ли луч окружность. Найти координаты точек пересечения. 

5) Для заданных отрезков на плоскости определить, пересекаются ли они. Найти координаты точки пересечения. 

6) Для заданной точки и треугольника на плоскости определить, принадлежит ли точка треугольнику. 

7) В заданном интервале указать все числа, удовлетворяющие одновременно двум условиям: – это простые числа; – эти числа ряда Фибоначчи.

8) Для заданного луча и треугольника в трѐхмерном пространстве определить, пересекает ли луч треугольник. Указать точку пересечения, если луч пересекает треугольник. 

9) Для заданного прямоугольника и отрезка на плоскости определить, пересекаются ли они. Найти координаты точек пересечения. 

10) Определить, имеют ли два заданных прямоугольника на плоскости общую область. 

11) Для двух окружностей (в плоскости) определить, имеют ли они общую область. Найти площадь данной области. 

12) Вычислить интеграл заданной функции методом трапеций и методом парабол. 

13) Для заданной даты определить число дней, прошедших с начала года. Для заданных двух дат – число дней между ними. Предоставить возможность обработки даты как минимум в пяти различных форматах, например, 08-Feb-2021; 08/02/21; February 8, 2021; 8/2/2021; 8 February. Программа должна самостоятельно определять, какой именно формат был использован.

Лабораторная работа № 2. Использование массивов

Необходимо выделить массив требуемого размера, запросив его у пользователя при запуске программы или считав из файла. В программе должны быть предусмотрены три варианта заполнения исходного массива: пользователем с клавиатуры, из файла и случайными числами.

В работе должны быть использованы методы вывода на экран с использованием различных цветов шрифта. Например, исходный и изменённый массив (элементы массива) должны отличаться цветом. При выполнении лабораторной работы нельзя использовать контейнеры и алгоритмы библиотеки STL или других сторонних библиотек. Реализовать класс для представления массива, в деструкторе класса выполнять очистку памяти, перегрузить оператор доступа к элементу массива по индексу (operator[])

Варианты заданий

1) Напишите программу, находящую «медиану» массива. То есть индекс ячейки массива, сумма элементов слева от которой минимально отличается от суммы элементов справа. 

2) В трёхмерном пространстве задан массив точек (тройками значений X, Y, Z) и сфера (центр и радиус). Напишите программу, выводящую точки (их координаты), которые попадают в заданную пользователем сферу.

3) Напишите программу для перестановки элементов массива так, чтобы все чётные элементы оказались в левой части массива, а все нечётные – в правой.

4) Напишите программу для перестановки элементов массива так, чтобы отрицательные элементы чередовались с положительными.

5) Напишите программу двоичного поиска заданного значения в упорядоченном массиве. Программа должна возвращать индекс искомого элемента в массиве или информировать об отсутствии искомого элемента в массиве.

6) Напишите программу, находящую в массиве вещественных чисел последовательность, имеющую максимальную сумму. Программа должна выводить начальный и конечный элемент.

7) Напишите программу, удаляющую из массива все повторяющиеся элементы.

8) Напишите программу, находящую в массиве две неубывающие последовательности максимальной длины.

9) Напишите программу, находящую в массиве значение, встречающееся чаще всего.

10) Напишите программу, находящую целочисленные значения из заданного интервала, отсутствующие в массиве.

Лабораторная работа № 3. Методы сортировки

Необходимо составить программу для сортировки массива данных методами: пузырьковой, отбора, вставки, Шелла и быстрой сортировки. Вывести на экран неупорядоченный (один раз) и упорядоченные (для каждого из методов) массивы данных. Составить сравнительную таблицу эффективности методов, в которой необходимо указать число сравнений и перестановок переменных в каждом методе сортировки. Неупорядоченная матрица из N строк и M столбцов задаётся и заполняется один раз (с клавиатуры, из файла или случайными числами), далее она используется для каждого из методов сортировки. Реализовать абстрактный базовый класс ISort, содержащий метод Sort и необходимые счётчики, от которого наследовать подклассы для реализации сортировок.

Варианты заданий

1) 1 Упорядочить каждую строку матрицы по убыванию

2) Упорядочить каждую чётную строку по возрастанию, каждый нечётный столбец по возрастанию абсолютных величин.

3) Упорядочить каждый столбец матрицы по убыванию абсолютных величин

4) Упорядочить каждую нечётную строку по возрастанию абсолютных величин, каждый чётный столбец по возрастанию.

5) Упорядочить каждую строку матрицы по возрастанию абсолютных величин

6) Упорядочить каждую строку матрицы по убыванию суммы значений цифр элементов матрицы.

7) Упорядочить каждый столбец матрицы по возрастанию суммы значений цифр элементов матрицы.

8) Упорядочить каждую строку матрицы по убыванию абсолютных величин.

9) Упорядочить диагональные элементы матрицы по возрастанию.

10) Упорядочить каждый столбец матрицы по возрастанию.

11) Упорядочить все нечетные элементы (значения элементов) строк по возрастанию.

12) Упорядочить все четные элементы (значения элементов) столбцов по убыванию.

13) Упорядочить каждый столбец матрицы по возрастанию абсолютных величин.

14) Упорядочить каждую четную строку по возрастанию, каждый четный столбец по возрастанию.

15) Упорядочить каждую строку матрицы по возрастанию.

16) Упорядочить каждую нечетную строку матрицы по возрастанию суммы значений цифр элементов матрицы.

17) Упорядочить каждый столбец матрицы по убыванию.

18) Упорядочить каждый четный столбец матрицы по убыванию суммы значений цифр элементов матрицы.

19) Упорядочить каждую строку матрицы по возрастанию отрицательных величин.

20) Упорядочить каждую строку по возрастанию, каждый столбец по убыванию.

21) Упорядочить каждую строку матрицы по возрастанию четных чисел.

22) Упорядочить каждый четный столбец по убыванию, каждую строку по убыванию.

23) В представленной матрице производить замену четных чисел по возрастанию по строкам, нечетных чисел по возрастанию по столбцам.

24) Представить шахматную доску. Упорядочить белые клетки по возрастанию по строкам, черные фигуры по убыванию по столбцам.

25) Упорядочить в каждом значении чисел матрицы цифры по возрастанию, затем упорядочить данные в столбцах по убыванию.

26) Упорядочить в каждом значении чисел матрицы цифры по убыванию, затем упорядочить данные в строках по возрастанию.

27) Упорядочить главную диагональ матрицы по возрастанию, данные сверху от главной диагонали упорядочить по убыванию, снизу от главной диагонали по возрастанию. 


Дата добавления: 2021-07-19; просмотров: 162; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!