Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Задача 39. Вычисление среднего арифметического в строках матрицы

Поиск

Условие задачи. Дана матрица А размера 5*6. В каждой строке матрицы найти среднее арифметическое.

Исходным данным в этой задаче является двумерный массив, состоящий из 5 строк и 6 столбцов. Примем обозначения: n=5, m=6. Размеры матрицы заданы конкретными значениями, их вводить не надо, поэтому с клавиатуры вводятся только элементы матрицы. По условию задачи нужно в каждой строке найти среднее арифметическое. Среднее арифметическое - это сумма элементов строки, деленная на их количество. Поэтому в этой задаче имеет значение, в каком порядке следует обрабатывать матрицу: слева направо (по строкам) или сверху вниз (по столбцам). Чтобы обработка велась по строкам, надо организовать внешний цикл по строкам i=1, n, и последовательно для каждой i -ой строки выполнять все действия по вычислению суммы, а также по вычислению и выводу среднего арифметического этой строки.Чтобы сумма правильно считалась для каждой строки, нужно всегда задавать начальное значение суммы s=0 перед началом обработки очередной строки. Для суммирования элементов строки надо организовать внутренний цикл по столбцам j =1, m, он обеспечит доступ к каждому элементу i -ой строки, и в нём каждый элемент будет прибавляться к сумме s=s+ A [ i, j ]. В результате после окончания работы внутреннего цикла, будет найдена сумма элементов в i-ой строке. Теперь надо сосчитать среднее арифметическое i -ой строки sr=s/ m, так как в строке 6 элементов, и вывести это значение на экран. Далее опять выполнятся те же действия для следующей строки и так до тех пор, пока все строки не будут просмотрены.

Так, при обработке первой строки, когда i =1, надо задать s=0 и дальше в цикле при изменении номеров столбцов j =1, m в переменной s будет накапливаться сумма элементов 1-ой строки s = s + A [1, j ]. Сначала в s прибавится значение элемента первой строки первого столбца s = s +А[1,1], затем последовательно элементы: А[1,2], А[1,3] и т.д. По окончании внутреннего цикла нужно сосчитать среднее арифметическое 1-ой строки sr=s/ m, и вывести это значение на экран. Затем переменная i становится равной 2 (обрабатывается вторая строка), снова надо задать начальное значение суммы s =0, и опять в цикле повторятся те же действия для второй строки s = s + A [2, j ]. Далее будет сосчитано среднее арифметическое 2-ой строки и выведено на экран и т. д., до тех пор, пока не будут просмотрены все n строк.

Структурированная запись алгоритма 39

1. Задание числовых значений для количества строк и столбцов матрицы A: n =5; m =6;

2. Ввод элементов матрицы

3. Цикл по строкам для i=1, n

3.1. Задание начального значения суммы для обработки i-ой строки s=0

3.2. Цикл по столбцам для j =1, m

3.2.1. Прибавление к сумме элемента i-й строки матрицы s = s + A [ i, j ]

Конец цикла по j

3.3. Вычисление среднего арифметического элементов i-ой строки sr=s/ m

3.4. Вывод sr и i на экран

Конец цикла по i

Схема алгоритма

Программа на языке Си

#include <stdio.h>

#define N 5

#define M 6

int main()

{

double a[N][M],s,sr;

int i,j;

printf(" Введите элементы матрицы\n");

for(i=0;i<N;i++)

for(j=0;j<M;j++)

  scanf("%lf",&a[i][j]);

printf("Исходная матрица\n");

for(i=0;i<N;i++)

{

for(j=0;j<M;j++)

    printf("%4.2lf ",a[i][j]);

printf("\n");

}

for(i=0;i<N;i++)

{ s=0;

for(j=0;j<M;j++)

    s+=a[i][j];

sr=s/M;

printf("Сред. арифметическое %1d",i);

printf("строки=%5.2lf\n",sr);

}

 return 0;

}

Программа на языке Паскаль

Program main_39;

Const

n=5; m=6;

Var

a: array [1..n,1..m] of real;

i,j: integer;

s,sr: real;

begin

writeln('Введите элементы матрицы');

for i:=1 to n do

for j:=1 to m do

read(a[i,j]);

writeln('Исходная матрица');

for i:=1 to n do

begin

for j:=1 to m do

    write(a[i,j]:3:1,' ');

writeln;

end;

for i:=1 to n do

begin

s:=0;

for j:=1 to m do s:=s+a[i,j];

sr:=s/m;

writeln('Сред. арифметическое ',i:2,

         ' строки=',sr:5:2);

end;

end.

Программа на языке Фортран

Program main_39

Implicit none

integer,parameter:: n=5,m=6

 integer i,j

 real a(n,m),s,sr

print*,'Введите элементы матрицы'

read*,((a(i,j),j=1,m),i=1,n)

 C1:do i=1,n

   s=0

 C2:do j=1,m

      s=s+a(i,j)

 enddo C2

   sr=s/m

   print '(A,I2,1x,A,F5.2)','Ср.арифм. ',&

                           i,' строки=',sr

enddo C1

end program

Программа на языке Python

A = [] # Создаем пустой список строк

# в Python списки индексируются с 0:

for i in range(0, 5):

A.append([])

# Добавляем пустой список элементов i-й строки

for j in range(0, 6):

print("Введите A[{0},{1}]: ".format(i+1,j+1))

A[i].append(float(input()))

for i in range(0, 5):

s = 0

for j in range(0, 6):

s = s + A[i][j]

sr = s/6

print("Среднее арифметическое {0}-й строки={1}".

format(i+1,sr))

Программа в системе Матлаб

n=5;

m=6;

disp('Введите эл. матрицы');

for i=1:n

for j=1:m

a(i,j)=input('a(i,j)=');

end

end

for i=1:n

s=0;

for j=1:m

s=s+a(i,j);

end

sr=s/m;

disp(sprintf('Среднее арифм. %2d строки=%5.2f',…

          i, sr))

end

 



Поделиться:


Последнее изменение этой страницы: 2021-04-12; просмотров: 2237; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.224.60.132 (0.007 с.)