Разработать программу для поиска необходимой информации в массиве, элементы которого являются записями. Каждая запись содержит информацию о студентах и состоит из следующих полей:
Для хранения данных в программе использовать динамические массивы. Для ввода данных использовать типизированный файл (типизированный файл должен создаваться из текстового в отдельной программе). Для вывода данных использовать текстовый файл. Имена файлов передаются через параметры программы.
После ввода исходных данных отсортировать их по указанному ключу. Отобрать данные по указанному условию. Отсортировать результаты по двум указанным ключам – сначала по первому, при равенстве первого ключа в записях – по второму.
Для сортировки разработать одну подпрограмму. Для задания ключа сортировки использовать параметр функционального типа. Реализовать метод быстрой сортировки.
Отсортировать исходные данные по группе. Найти студентов мужского пола, старших 18 лет. Определить их суммарную стипендию. Отсортировать выходные данные по фамилии и по группе.
Класс | Имя | Смысл | Тип | Структура |
---|---|---|---|---|
Входные данные | students | Исходный массив | запись | одномерный массив |
n | Количество элементов массива | цел. | простая переменная | |
Выходные данные | oldStudents | Массив студентов мужского пола, старших 18 лет | запись | одномерный массив |
k | Количество элементов массива | цел. | простая переменная | |
sum | Суммарная стипендия | вещ. | простая переменная |
№ теста | Входные данные | Ожидаемые результаты | Смысл теста |
---|---|---|---|
1 |
students = {{А-13-09, Иванов И.И., 2001, м, 5, 5, 5, 1000}, {А-13-09, Сидоров С.С., 1996, м, 5, 4, 5, 1500}, {А-13-09, Петрова П.П., 2001, ж, 5, 5, 5, 1500}, {А-13-09, Николаев Н.Н., 2002, м, 4, 4, 4, 1200}, {А-14-09, Сидоров С.С., 1995, м, 4, 4, 4, 1200}, {А-14-09, Кузнецов К.К., 1996, м, 3, 4, 5, 1300}, {А-14-09, Андреева А.И., 2002, ж, 5, 5, 5, 1500}} |
oldStudents = {{А-14-09, Кузнецов К.К., 1996, м, 3, 4, 5, 1300}, {А-13-09, Сидоров С.С., 1996, м, 5, 4, 5, 1500}, {А-14-09, Сидоров С.С., 1995, м, 4, 4, 4, 1200}} k = 3 sum = 4000 |
Есть записи, удовлетворяющие условию. |
2 |
students = {{А-13-09, Иванов И.И., 2001, м, 5, 5, 5, 1000}, {А-13-09, Петрова П.П., 2002, ж, 5, 5, 5, 1500}, {А-14-09, Сидоров С.С., 2003, м, 4, 4, 4, 1200}, {А-14-09, Кузнецов К.К., 2002, м, 3, 4, 5, 1300}} |
oldStudents = {} k = 0 sum = 0 |
Нет записей, удовлетворяющих условию. |
В цикле перебираем все элементы массива и отбираем записи, удовлетворяющие условию. Разрабатываем подпрограмму сортировки. Чтобы можно было разные массивы сортировать по разным ключам, необходимо передать в подпрограмму параметр функционального типа, который будет задавать функцию для сравнения полей записей.