// PascalABC.NET 3.2, сборка 1399 от 08.03.2017 // Внимание! Если программа не работает, обновите версию!
procedure Cheburek(s:string); begin var n:=ReadInteger('Количество строк в матрице:'); var m:=ReadInteger('Количество столбцов в массиве:'); Writeln('*** ',s,' матрица [',n,',',m,'] ***'); var a:=MatrRandom(n,m,-99,99); a.Println(4); Writeln(4*a.ColCount*'-'); var s1:='сортированный вектор ср.значений нечетных столбцов'; Writeln(s1); a.Cols.Select(x->x.Average).Where((x,i)->i.IsEven).Sorted.Println; Writeln(s1.Length*'-'); end;
begin Cheburek('первая'); Cheburek('вторая'); end.
Пример Количество строк в матрице: 4 Количество столбцов в массиве: 8 *** первая матрица [4,8] *** 98 -64 -30 84 -6 11 4 7 -45 23 55 47 67 87 70 -64 40 20 91 -27 -12 42 -49 10 -59 -79 5 -77 -59 -44 -4 -10
--- gfortran 6.3 --- program prog1 integer N, k, i, j real a(10,10) read *, N print *, 'Матрица:' do i = 1,N do j = 1,N a(i,j) = sin(1.0*i+1.0*j/2) end do end do do i = 1, N print *, (a(i,j), j=1,N) end do k = 0 do i = 1, N do j = 1, N if(a(i, j) > 0) k = k+1 end do end do print *, k end
// Внимание! Если программа не работает, обновите версию!
procedure Cheburek(s:string);
begin
var n:=ReadInteger('Количество строк в матрице:');
var m:=ReadInteger('Количество столбцов в массиве:');
Writeln('*** ',s,' матрица [',n,',',m,'] ***');
var a:=MatrRandom(n,m,-99,99);
a.Println(4); Writeln(4*a.ColCount*'-');
var s1:='сортированный вектор ср.значений нечетных столбцов';
Writeln(s1);
a.Cols.Select(x->x.Average).Where((x,i)->i.IsEven).Sorted.Println;
Writeln(s1.Length*'-');
end;
begin
Cheburek('первая');
Cheburek('вторая');
end.
Пример
Количество строк в матрице: 4
Количество столбцов в массиве: 8
*** первая матрица [4,8] ***
98 -64 -30 84 -6 11 4 7
-45 23 55 47 67 87 70 -64
40 20 91 -27 -12 42 -49 10
-59 -79 5 -77 -59 -44 -4 -10
сортированный вектор ср.значений нечетных столбцов
-2.5 5.25 8.5 30.25
Количество строк в матрице: 6
Количество столбцов в массиве: 11
*** вторая матрица [6,11] ***
-98 -40 -42 81 39 28 -3 -24 -33 79 13
22 26 -79 90 93 46 94 83 -1 -13 -18
-21 -44 85 60 43 -26 -94 -19 -34 99 -72
-35 46 8 30 88 -4 -87 -76 15 -94 9
-70 29 83 -79 -69 12 -24 -53 -27 96 -97
19 80 -98 96 79 84 -76 -29 85 14 14
сортированный вектор ср.значений нечетных столбцов
-31.6666666666667 -30.5 -25.1666666666667 -7.16666666666667 0.833333333333333 45.5
program prog1
integer N, k, i, j
real a(10,10)
read *, N
print *, 'Матрица:'
do i = 1,N
do j = 1,N
a(i,j) = sin(1.0*i+1.0*j/2)
end do
end do
do i = 1, N
print *, (a(i,j), j=1,N)
end do
k = 0
do i = 1, N
do j = 1, N
if(a(i, j) > 0) k = k+1
end do
end do
print *, k
end
Результат:
4
Матрица:
0.997494996 0.909297407 0.598472118 0.141120002
0.598472118 0.141120002 -0.350783229 -0.756802499
-0.350783229 -0.756802499 -0.977530122 -0.958924294
-0.977530122 -0.958924294 -0.705540299 -0.279415488
6