Занятие 3. Массивы. Матрицы

Общая информация

Основные требования к оформлению кода сохраняются. Выполнять задания можно в одном cs фаиле. Каждый блок решения и демонстрации должен сопровождаться комментариями. Все задачи следует выполнять в виде функций, затем, следует проверить функции, вызвав из Main с разными аргументами. 

Задачи

  1. Дан массив целых чисел. Написать функцию, которая находит и обнуляет максимальный элемент.

  2. Дан массив целых чисел. Вычислить количество нечётных чисел в данном массиве, а также количество положительных чисел в нём.

  3. Дан массив целых чисел A, создать массив, в который входят только чётные элементы A. Вернуть новый массив и его длину.

    Указание 1 (заголовок). Задачу можно сделать так, чтобы полученный массив был либо явным возвращаемым значением функции, изменять переданный массив, подразумевая выходной параметр. Следовательно, имеем два приемлемых варианта заголовка данной функции:

    • static int[] OnlyEvens(int[] a, int size, out int newSize);
    • static void OnlyEvens(int[] a, int size, int[] evens, ref int newSize);

    Указание 2 (алгоритм). Есть два подхода к решению подобных задач. Либо предварительно подсчитать количество чётных элементов (например, с использованием вспомогательной функции) и выделить нужное количество памяти под результирующий массив, либо выделить под результирующий массив максимально возможное количество памяти, которое может потребоваться (в данном случае это длина исходного массива). Имеем традиционный выбор между затратами по памяти в обмен затрат по времени или наоборот. Оба варианта приемлемы.

  4. Определите функцию заполнения матрицы заданных размеров случайными числами с заданными пределами для значений элементов:

    static void FillRandomMatrix(int [,] mat, int minValue = -10, int maxValue = 10);
  5. Создайте функцию, которая меняет местами i-й и j-й столбец матрицы.

  6. Даны две матрицы одинакового размера. Посчитайте их сумму, создав для этого новую матрицу.

  7. Для каждой строки ступенчатого массива посчитать сумму отрицательных элементов и записать данные в новый одномерный массив.