Напишите программу, которая складывает две матрицы. Сложение матриц определено так: A + B = C, если для любого элемента A[i][j] и B[i][j] суммарная матрица С[i][j] = A[i][j] + B[i][j] (то есть, мы просто складываем элементы матриц, находящиеся на одних позициях). На вход подаются два целых числа, N и M - размерность будущих матриц (N строк, M столбцов). Потом с новой строки вводятся элементы матрицы А, потом пустая строка, и с новой строки - элементы матрицы B. Нужно напечатать их сумму, в качестве разделителя в строке используйте пробел (как в лекции).
размер матрицы 2 на 3
и вот сами матрицы:
первая матрица:
[1 2 3],[4 5 6]
вторая матрица:
[5 3 2], [2 0 1]
Листинг 1:
program sum_cubes;
(c) NaaMan}
function func(x: real): real;
begin
Result := 3*x*x + 3*sin(x);
end;
const
start = 0.0;
finish = 5.0;
step = 0.7;
var
sum, i: real;
n: integer;
begin
sum := 0;
n := 0;
i := start;
while i <= finish do begin
var y: real;
y := func(i);
writeln(i,' ', y:8:3);
if y > 0 then begin
sum := sum + power(y,3);
n := n + 1;
end;
i := i + step;
end;
writeln( 'Sum = ', sum:10:3, ' Count = ', n);
end.
Листинг 2:
program arr_sum_cou;
(c) NaaMan}
var
sum, n: integer;
begin
sum := 0;
n := 0;
var a := ArrRandomInteger(100, -40, 40);
foreach var i in a do
if i < 0 then
sum := sum + i
else
n := n + 1;
writeln('Array: ', a);
writeln( 'Sum = ', sum, ' Count = ', n);
end.
Листинг 3:
program arr_sum_cou;
(c) NaaMan}
var F: boolean;
begin
F := True;
var A := ArrRandomInteger(10, 1, 10);
var B := ArrRandomInteger(10, 1, 10);
writeln(A);
writeln(B);
for var i := 0 to 9 do
if A[i] = B[i] then begin
writeln('Item = ', i, ' Value = ', A[i]);
F := False;
end;
if F then
writeln('Совпадений нет.');
end.
var
a:array[1..n]of integer;
i,k,temp:integer;
begin
for i:=1 to n do a[i]:=random(21) - 10;
repeat
writeln('Введите k (k<>1 и k<>10)');
readln(k);
if (k=1) or (k=n) then writeln('Ошибка, повторите ввод');
until (k<>1) and (k<>n);
for i:=1 to n do write(a[i]:4);writeln;
temp:=a[k-1];a[k-1]:=a[k+1];a[k+1]:=temp;
for i:=1 to n do write(a[i]:4);
end.
Тестовое решение:
Введите k (k<>1 и k<>10)
1
Ошибка, повторите ввод
Введите k (k<>1 и k<>10)
5
7 -5 -6 6 -7 3 9 8 7 -6
7 -5 -6 3 -7 6 9 8 7 -6