Задача - Суммы строк и столбцов матрицы - программирование на разных языках

Задача — Суммы строк и столбцов матрицы — программирование на разных языках

Задачи по программированию с решением для школьников
Want create site? Find Free WordPress Themes and plugins.

Задача — Суммы строк и столбцов матрицы
— программирование на Pascal, Си, Кумир, Basic-256, Python

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

Поскольку двумерный массив обычно перебирается построчно, то сумму строк считать проще. Можно, заполняя строку матрицы и выводя ее элементы на экран, накапливать в переменной сумму элементов строки и выводить ее в конце строки.

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

Выводить суммы столбцов следует в отдельном цикле.

Pascal

const
M = 10;
N = 5;
var
a: array[1..N,1..M] of integer;
i, j: byte;
s: integer;
sc: array[1..M] of integer;
begin
for i:= 1 to M do
sc[i] := 0;

for i:=1 to N do begin
s := 0;
for j:=1 to M do begin
a[i,j] := random(10);
write(a[i,j]:6);
s := s + a[i,j];
sc[j] := sc[j] + a[i,j] end;
writeln (‘   |’, s);
end;
for i:= 1 to M do
write(‘—‘:6);
writeln;
for i:= 1 to M do
write(sc[i]:6);
writeln;

end.

Пример выполнения программы:

      5     5     7     8     6     8     5     8     4     6   |62      6     3     4     2     8     0     9     2     3     4   |41      7     8     5     4     5     3     9     8     0     3   |52      0     6     0     3     8     9     7     1     8     8   |50      9     4     7     8     4     5     7     6     1     7   |58     --    --    --    --    --    --    --    --    --    --     27    26    23    25    31    25    37    25    16    28

Язык Си

#include <stdio.h>
#define M 10
#define N 5
main() {
int a[N][M];
int sc[M];
int s, i, j;
srand(time(NULL));
for (i=0; i<M; i++) sc[i] = 0;
for (i=0; i<N; i++) {
s = 0;
for (j=0; j<M; j++) {
a[i][j] = rand() % 10;
printf(«%5d», a[i][j]);
s += a[i][j];
sc[j] += a[i][j];
}
printf(»   |%dn», s);
}
for (i=0; i<M; i++)
printf(«%5s», «—«);
printf(«n»);
for (i=0; i<M; i++)
printf(«%5d», sc[i]);
printf(«n»);
}

Python

from random import random
M = 10
N = 5
a = [] for i in range(N):
b = [] for j in range(M):
b.append(int(random()*11))
print(«%3d» % b[j], end=»)
a.append(b)
print(‘   |’, sum(b))

for i in range(M):
print(» —«, end=»)
print()

for i in range(M):
s = 0
for j in range(N):
s += a[j][i] print(«%3d» % s, end=»)
print()

Пример(ы) выполнения программы на языке Python:

   6  7  3 10 10 10  4  2  6  5   | 63   2  8  0  9  0  4  9  3  6  3   | 44   5  3  1 10  5  6  5  2  0  9   | 46  10  9 10  8  7  8  5  2 10  9   | 78   3  3  6  0  4  1  6 10 10  3   | 46  -- -- -- -- -- -- -- -- -- --  26 30 20 37 26 29 29 19 32 29

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

Суммы строк матрицы вычисляются с помощью функции sum(), которой передается текущий список-строка цикла.

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

КуМир

алг суммы строк столбцов
нач
цел M = 10, N = 5
цел таб a[1:N,1:M], sc[1:M] цел i, j, s
нц для i от 1 до M
sc[i] := 0
кц

нц для i от 1 до N
s := 0
нц для j от 1 до M
a[i,j] := int(rand(0,10))
вывод a[i,j], »  »
s := s + a[i,j] sc[j] := sc[j] + a[i,j] кц
вывод » |», s, нс
кц

нц для i от 1 до M
вывод «—»
кц
вывод нс
нц для i от 1 до M
вывод sc[i], » »
кц
кон

Basic-256

M = 10
N = 5
dim a(N,M)
dim sc(M)
for i = 0 to N-1
s = 0
for j=0 to M-1
a[i,j] = int(rand*10)
print a[i,j] + »   «;
s = s + a[i,j] sc[j] = sc[j] + a[i,j] next j
print »  |» + s
next i

for i=0 to M-1
print «—   «;
next i
print
for i=0 to M-1
print sc[i] + » «;
next i
print

Did you find apk for android? You can find new Free Android Games and apps.

Добавить комментарий