Регистрация
Войти
Стать экспертом Правила
Информатика

Вводятся две вещественные прямоугольные матрицы размером M*N и K*L (M,N,K,L <=20). Для той матрицы, у которой сумма элементов, лежащих до первого отрицательного элемента, больше (искать по строкам), составить одномерный массив из средних арифметических значений элементов нечетных столбцов матрицы и отсортировать его в порядке возрастания элементов. Вывести на печать саму матрицу, найденную сумму элементов и отсортированный одномерный массив. Алгоритм сопровождать соотв. сообщениями. Использовать не менее 3 подпрограмм. PascalABC.NET

ОТВЕТЫ
// PascalABC.NET 3.3 
 var c:array of real;
begin
  Writeln('1 матрица:');
  var m:=ReadInteger('m =');
  var n:=ReadInteger('n =');
//  var a:=ReadMatrReal(m,n);
  var a:=MatrRandomReal(m,n,-3,7).Println(6);
  Writeln('2 матрица:');
  var k:=ReadInteger('k =');
  var l:=ReadInteger('l =');
//  var b:=ReadMatrReal(k,l);
  var b:=MatrRandomReal(k,l,-3,7).Println(6);
  var s1:=a.ElementsByRow.TakeWhile(x->x>=0).Sum;
  writeln('s1 = ',s1);
  var s2:=b.ElementsByRow.TakeWhile(x->x>=0).Sum;
  writeln('s2 = ',s2);
  if s1>s2
   then begin
    c:=ArrFill(a.GetLength(1) div 2,0.0);
    foreach var j in SeqWhile(1,x->x+2,x->x<a.GetLength(1)) do
      c[(j-1) div 2]:=a.Col(j).Average;
   end
   else begin
    c:=ArrFill(b.GetLength(1) div 2,0.0);
    foreach var j in SeqWhile(1,x->x+2,x->x<b.GetLength(1)) do
      c[(j-1) div 2]:=b.Col(j).Average;
   end;
   writeln('Полученный массив:'); c.Println;
   Sort(c);
   writeln('Отсортированный массив:'); c.Print;
end.

Пример:
1 матрица:
m = 3
n = 6
  0.38  4.94  1.57 -2.49  6.67  2.50
  2.97 -1.44 -1.44  0.42  4.04 -2.54
  5.18  0.32 -1.90 -0.09  3.79  0.12
2 матрица:
k = 2
l = 7
  4.92  2.57  3.57  3.05  2.62  5.29  6.17
  6.62  2.17  5.80  1.31  2.55 -2.75  4.91
s1 = 6.88926995447337
s2 = 46.640484614596
Полученный массив:
2.37028874986353 2.18293672249789 1.26664565655712
Отсортированный массив:
1.26664565655712 2.18293672249789 2.37028874986353
812
Контакты
Реклама на сайте
Спрошу
О проекте
Новым пользователям
Новым экспертам