Работа №5

Комментарий: работа нацелена на получение навыков работы с массивами. В 99% случаев для работы с массивами используются циклы for. 

Часть кода, отвечающая за выполнение основного задания должна быть оформлена в виде отдельной функции. Данная функция должна иметь параметры, число и типы которых соответствуют решаемой функцией задачи. При написании функций, работающих с массивами, необходимо всегда придерживаться следующего правила: если задачей функции не является заведомое изменение исходного массива, то эта функция не должна менять исходный массив ни при каких обстоятельствах. Для достижения этого всегда создавайте копии исходных массивов (в идеале динамически, но если не знаете как – годится любой другой вариант) и работайте с ними. Размеры всех используемых массивов необходимо определять с помощью define-констант. 

Все функции, реализованные в программе, должны зависеть только от своих параметров! Зависимость функций от внешних переменных недопустима!


Вариант 1: статистика оценок студентов

Известны оценки по программированию каждого из 10 студентов первого курса (необходимо задать соответствующие значения от 1 до M в ячейках массива из N элементов прямо в тексте программы). Вывести на экран информацию о том, сколько студентов имеют какие оценки. Если какой-то оценки нет ни у одного студента – не выводить о ней информацию. 

M (максимальный балл) и N (число студентов) объявить с помощью директивы define.

Искомую информацию о том сколько студентов какие имеют оценки следует хранить в массиве элементов целого типа. В голове при этом следует держать следующий принцип работы с элементами этого массива: элемент массива с индексом i хранит количество студентов, оценка которых равна i.

Следование данному принципу позволит вам написать такую программу, в которой можно будет изменить максимально возможный балл студента изменением пары значений в программе (а-то и одного).

В данной работе категорически запрещается объявлять для хранения информации о каждой оценке отдельную переменную, иначе желание преподавателя увеличить максимальный балл студента, к примеру, с 5 до 20 приведёт к тому что вам потребуется дополнительно объявить в программе ещё 15 переменных, что нельзя признать правильным.


Вариант 2: формирование массива слиянием

Имеются два упорядоченных по возрастанию (предыдущий элемент меньше последующего) массива. Требуется получить третий упорядоченный по возрастанию массив, путем слияния первых двух. Предусмотреть то, что исходные массивы для упорядочения могут содержать разное число элементов

Например, если:

1-й массив: 4, 8, 12, 14, 16, 23, 85,

2-й массив: 2, 4, 8, 9, 12

тогда 3-й массив будет таким: 2, 4, 4, 8, 8, 9, 12, 12, 14, 16, 23, 85.


Вариант 3: нахождение строк/столбцов с одинаковой суммой элементов

Дан двумерный массив (элементы можно задать прямо в тексте программы. Написать программу, которая определяет, существуют ли в массиве 2 столбца или 2 строки с одинаковой суммой элементов, и если существуют, то выводит номера всех таких строк и столбцов, а также соответствующие суммы элементов.