Задание 3. Есть 2 вида ветвления: с полным и неполным условиями. Установи соответствие (заполнив шапочку таблицы) if условие thеn оператор 1 if условие thеn оператор 1 еlѕе оператор 2 [2]
// PascalABC.NET 3.2, сборка 1362 от 14.12.2016 // Внимание! В других версиях языка работа не гарантируется!
begin var m:=ReadInteger('Количество строк в массиве:'); var n:=ReadInteger('Количество столбцов в массиве:'); Writeln('*** Исходный массив A[',m,',',n,'] ***'); var a:=MatrRandom(m,n,-50,50); a.Println(4); Writeln(4*a.ColCount*'-'); var k:=a.Rows.Select(x->x.Aggregate(0,(x,y)->x+y)).ToArray.IndexMax; for var j:=0 to (n-1) div 2 do Swap(a[k,j],a[k,n-1-j]); a.Println(4) end.
Пример Количество строк в массиве: 4 Количество столбцов в массиве: 5 *** Исходный массив A[4,5] *** 29 36 -50 -4 -32 -1 -10 -7 -47 -50 -16 4 48 -41 -43 8 46 45 14 -44
Const n=10;m=7; var a:array[1..n,1..m]of integer; i,j,min,s,j_m:integer; begin for i:=1 to n do begin writeln; for j:=1 to m do begin a[i,j]:=random(20)-5; write(a[i,j]:4); end; end; writeln; {запишем в min чуть больше наибольшего значения суммы, которая может быть в любом столбце. Больше, чем 200 не будет, т.к. всего 10 строк, каждое значение исходя из заполнения матрицы не может быть больше, чем 15 } min:=200;j_m:=1; for j:=1 to m do begin s:=0; for i:=1 to n do s:=s+a[i,j]; if s<min then begin j_m:=j; min:=s; end; writeln('j :',j,' ',s); {выводится значение суммы в каждом столбце, необязательно, можно удалить} end; writeln('№ столбца с мин суммой ',j_m); for i:=1 to n do writeln(a[i,j_m]); {вывод нужного столбца} end.
// Внимание! В других версиях языка работа не гарантируется!
begin
var m:=ReadInteger('Количество строк в массиве:');
var n:=ReadInteger('Количество столбцов в массиве:');
Writeln('*** Исходный массив A[',m,',',n,'] ***');
var a:=MatrRandom(m,n,-50,50);
a.Println(4);
Writeln(4*a.ColCount*'-');
var k:=a.Rows.Select(x->x.Aggregate(0,(x,y)->x+y)).ToArray.IndexMax;
for var j:=0 to (n-1) div 2 do Swap(a[k,j],a[k,n-1-j]);
a.Println(4)
end.
Пример
Количество строк в массиве: 4
Количество столбцов в массиве: 5
*** Исходный массив A[4,5] ***
29 36 -50 -4 -32
-1 -10 -7 -47 -50
-16 4 48 -41 -43
8 46 45 14 -44
29 36 -50 -4 -32
-1 -10 -7 -47 -50
-16 4 48 -41 -43
-44 14 45 46 8
n=10;m=7;
var
a:array[1..n,1..m]of integer;
i,j,min,s,j_m:integer;
begin
for i:=1 to n do
begin
writeln;
for j:=1 to m do
begin
a[i,j]:=random(20)-5;
write(a[i,j]:4);
end;
end;
writeln;
{запишем в min чуть больше наибольшего значения суммы, которая может быть в любом столбце. Больше, чем 200 не будет, т.к. всего 10 строк, каждое значение исходя из заполнения матрицы не может быть больше, чем 15 }
min:=200;j_m:=1;
for j:=1 to m do
begin
s:=0;
for i:=1 to n do
s:=s+a[i,j];
if s<min then
begin
j_m:=j;
min:=s;
end;
writeln('j :',j,' ',s); {выводится значение суммы в каждом столбце, необязательно, можно удалить}
end;
writeln('№ столбца с мин суммой ',j_m);
for i:=1 to n do
writeln(a[i,j_m]); {вывод нужного столбца}
end.