Студопедия — Задача 4.1. Среднее арифметическое и количество положительных элементов
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

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






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

 

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

 

 


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

 

#include < iostream.h> #include < iomanip.h> void main () { const int nrow = 10, ncol = 20; int a[nrow][nco1]; int i. J; cout < < " Введите элементы массива: " < < endl; for (i = 0; i < nrow; i++) for (i = 0; j < ncol; j++) cin > > a[i][J]; for (i = 0; i < nrow; i++) { for (j = 0; j < ncol; j++) cout < < setw(4) < < a[i][j] < < " "; cout < < endl; } int n_pos_el; float s = 0; for (i = 0; i < nrow; i++) { n_pos_el = 0; for (j = 0; j < ncol; j++) { s +- a[i][j]; if (a[i][j] > 0) n_pos_el++; } cout < < " Строка: " < < i < < " кол-во: " < < n_pos el < < endl; } s /= nrow * ncol; cout < < " Среднее арифметическое: " < < s < < endl; }

 

 

Размерности массива заданы именованными константами, что позволяет легко их изменять. Для упрощения отладки рекомендуется задать небольшие значения этих величин или приготовить тестовый массив в текстовом файле и изменить программу так, чтобы она читала значения из файла (см. задачу 4.2, с. 80, а также Учебник, с. 276, 280).

 

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

 

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

 

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

 

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

 

СОВЕТ

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

 

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

 

При написании вложенных циклов следите за отступами. Все операторы одного уровня вложенности должны начинаться в одной и той же колонке. Это облегчает чтение программы и, следовательно, поиск ошибок. По вопросу расстановки фигурных скобок существуют разные мнения специалистов. В настоящее время наиболее распространенными являются два стиля: стиль 1TBS (One True Bracing Style), которого придерживались основоположники языка С - Б. Керниган (Brian Kerm-ghan) и Д. Ритчи (Dennis Ritchie), и стиль Алмена (Eric Altaian). Приведем отрывок кода, написанного в стиле 1TBS:

 

for (j = 0; j < MAX_LEN; j++) { foo(); }

 

Этот же отрывок в стиле Алмена выглядит так:

 

for (j = 0; j < MAX_LEN; j++) { foo(); }

 

Наш выбор, естественно, остановится на единственно верном стиле.

 







Дата добавления: 2014-11-10; просмотров: 3391. Нарушение авторских прав; Мы поможем в написании вашей работы!



Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

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

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

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

Дренирование желчных протоков Показаниями к дренированию желчных протоков являются декомпрессия на фоне внутрипротоковой гипертензии, интраоперационная холангиография, контроль за динамикой восстановления пассажа желчи в 12-перстную кишку...

Деятельность сестер милосердия общин Красного Креста ярко проявилась в период Тритоны – интервалы, в которых содержится три тона. К тритонам относятся увеличенная кварта (ув.4) и уменьшенная квинта (ум.5). Их можно построить на ступенях натурального и гармонического мажора и минора.  ...

Методы прогнозирования национальной экономики, их особенности, классификация В настоящее время по оценке специалистов насчитывается свыше 150 различных методов прогнозирования, но на практике, в качестве основных используется около 20 методов...

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

Образование соседних чисел Фрагмент: Программная задача: показать образование числа 4 и числа 3 друг из друга...

Studopedia.info - Студопедия - 2014-2024 год . (0.009 сек.) русская версия | украинская версия