Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Двумерные массивы (справка).doc
Скачиваний:
5
Добавлен:
17.08.2019
Размер:
144.38 Кб
Скачать

Задача 1. Среднее арифметическое и количество положительных элементов

Написать программу, которая для целочисленной матрицы 10X20 определяет сред­нее арифметическое ее элементов и количество положительных элементов в каж­дой строке.

Алгоритм решения этой задачи очевиден. Для вычисления среднего арифметиче­ского элементов массива требуется найти их общую сумму, после чего разделить ее на количество элементов. Порядок просмотра массива (по строкам или по стол­бцам) роли не играет. Определение количества положительных элементов каждой строки требует просмотра матрицы по строкам. Обе величины вычисляются при одном просмотре матрицы. Блок-схема этого алгоритма приведена на рис. 1.

Рис. 1. Блок-схема алгоритма решения задачи 1

Размерности массива заданы именованными константами, что позволяет легко их изменять. Для упрощения отладки рекомендуется задать небольшие значения этих величин или приготовить тестовый массив в текстовом файле и изменить програм­му так, чтобы она читала значения из файла.

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

При вычислении количества положительных элементов для каждой строки вы­полняются однотипные действия: обнуление счетчика, просмотр каждого элемен­та строки и сравнение его с нулем, при необходимости увеличение счетчика на единицу, а после окончания вычислений — вывод результирующего значения счетчика. Впрочем, это дольше описывать на естественном языке, чем в про­грамме.

Тем не менее, здесь следует обратить внимание на два момента:

  1. Во-первых, требу­ется еще до написания алгоритма решить, каким образом будут храниться результаты.

Со средним арифметическим все ясно, для его хранения необходима одна простая переменная вещественного типа. А вот количество положительных эле­ментов для каждой строки свое, и в результате мы должны получить столько зна­чений, сколько строк в матрице. В данной задаче мы можем отвести для хранения этих значений одну-единственную переменную целого типа, поскольку они вы­числяются последовательно, после чего выводятся на экран. Однако в других за­дачах эти значения могут впоследствии потребоваться одновременно. В этом случае для их хранения придется описать целочисленный массив с количеством элемен­тов, равным количеству строк матрицы.

  1. Второй важный момент — место инициализации суммы и количества. Сумма об­нуляется перед циклом просмотра всей матрицы, а количество положительных элементов — перед циклом просмотра очередной строки, поскольку для каждой строки его вычисление начинается заново. Начинающие часто либо вообще забы­вают про инициализацию накапливаемых в цикле величин, либо неверно опреде­ляют ее место в программе.

СОВЕТ -

Записывайте операторы инициализации накапливаемых в цикле величин непосредственно перед циклом, в котором они вычисляются.

После ввода значений предусмотрен их контрольный вывод на экран. Для того чтобы элементы матрицы располагались один под другим, используется манипу­лятор setw(), устанавливающий для очередного выводимого значения ширину поля в четыре символа. Для использования манипулятора необходимо подключить к программе заголовочный файл <iomanip.h>. После каждой строки выводится сим­вол перевода строки endl.

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