Скачиваний:
13
Добавлен:
09.11.2019
Размер:
204.29 Кб
Скачать

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

Лабораторная работа предназначена для приобретения практического опыта в работе с наборами объектов в языке программирования С++.

Призвана продемонстрировать:

  • Принципы индексного доступа к элементам массивов;

  • Основы файлового ввода-вывода в языке С++.

  • Принципы разработки модульных тестов.

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

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

3.1.1.На оценку «удовлетворительно»

1

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

2

Напишите программу, выполняющую сортировку методом прямого обмена («пузырьковую сортировку»).

3

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

4

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

3.1.2.На оценку «хорошо»

1

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

2

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

3

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

4

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

3.1.3.На оценку «отлично»

1

В трехмерном пространстве задано множество сфер (центр и радиус). Пользователь задаёт луч (начало и направление). Определить, с какими сферами пересекается введённый пользователем луч. Предоставить возможность считывать данные о сферах с диска, редактировать (добавлять, удалять) данные о сферах и записывать обновлённую информацию на диск.

3.2.Файловый ввод-вывод

1

Для реализации ввода-вывода (экранного и файлового) необходимо использовать потоковые библиотеки С++.

2

Консольный ввод-вывод должен осуществляться с помощью объектов cin и cout.

3

Файловый ввод-вывод должен осуществляться с использованием объектов ifstream, ofstream.

4

Консультации по использованию потоков ввода-вывода могут быть получены у преподавателя.

3.3.Модульные тесты

1

Каждая программа должна сопровождаться набором модульных тестов, позволяющих проверить её работоспособность на примерах с заранее известным результатом.

2

Модульные тесты должны запускаться автоматически или в случае выбора пользователем соответствующего пункта меню программы.

3

Модульные тесты должны содержать минимум пять тестовых наборов данных для автоматической проверки.