//PascalABC.NET (версия 3.1, сборка 1196 от 09.03.2016) function Transpose(a: array[,] of integer): array[,] of integer; //Поворот на 90гр по часовой стрелке begin var m := Length(a, 0); var n := Length(a, 1); Result := new integer[n, m]; for var i := 0 to n-1 do begin for var j := 0 to m-1 do Result[i, j] := a[m-1-j, i]; end; end;
begin var n := ReadInteger('Введите n:'); //Заполнение матрицы NxN сл. числами и вывод на экран var a :=MatrixRandom(n, n); for var i:=0 to n-1 do begin for var j:=0 to n-1 do Print(a[i,j]); println; end; println;
Println('поворот влево на 90 гр'); var b := Transpose(a); b:=Transpose(b); b:=Transpose(b); for var i:=0 to n-1 do begin for var j:=0 to n-1 do Print(b[i,j]); println; end; println;
Println('поворот вправо на 90гр'); b := Transpose(a); for var i:=0 to n-1 do begin for var j:=0 to n-1 do Print(b[i,j]); println; end; println;
Println('поворот на 180 гр'); b := Transpose(a); b := Transpose(b); for var i:=0 to n-1 do begin for var j:=0 to n-1 do Print(b[i,j]); println; end; end.
Для ухаживания k дней подряд надо, чтобы k-e яблоко выросло к вечеру k-го дня. следовательно, начинать ухаживание можно не ранее, чем за k-1 день до вырастания последнего яблока. А поскольку на вырастание каждого яблока надо m дней, то k яблок вырастет в день номер m x k . Отступим от этой даты на k-1 день и получим p = m x k - (k -1)= k x (m-1) + 1 Проверим предложенную формулу на контрольном примере. k=5, m=2, d=5x(2-1)+1=6.
var m, n: integer;
begin Write('Период созревания яблока, дней: '); Readln(m); Write('Количество дней ухаживания: '); Readln(n); Writeln('Номер первого дня ухаживания: ', n * (m - 1) + 1); end.
Тестовое решение:
Период созревания яблока, дней: 2 Количество дней ухаживания: 5 Номер первого дня ухаживания: 6
function
Transpose(a: array[,] of integer): array[,] of integer;
//Поворот на 90гр по часовой стрелке
begin
var m := Length(a, 0);
var n := Length(a, 1);
Result := new integer[n, m];
for var i := 0 to n-1 do begin
for var j := 0 to m-1 do
Result[i, j] := a[m-1-j, i];
end;
end;
begin
var n := ReadInteger('Введите n:');
//Заполнение матрицы NxN сл. числами и вывод на экран
var a :=MatrixRandom(n, n);
for var i:=0 to n-1 do begin
for var j:=0 to n-1 do
Print(a[i,j]);
println;
end;
println;
Println('поворот влево на 90 гр');
var b := Transpose(a);
b:=Transpose(b);
b:=Transpose(b);
for var i:=0 to n-1 do begin
for var j:=0 to n-1 do
Print(b[i,j]);
println;
end;
println;
Println('поворот вправо на 90гр');
b := Transpose(a);
for var i:=0 to n-1 do begin
for var j:=0 to n-1 do
Print(b[i,j]);
println;
end;
println;
Println('поворот на 180 гр');
b := Transpose(a);
b := Transpose(b);
for var i:=0 to n-1 do begin
for var j:=0 to n-1 do
Print(b[i,j]);
println;
end;
end.
Проверим предложенную формулу на контрольном примере.
k=5, m=2, d=5x(2-1)+1=6.
var
m, n: integer;
begin
Write('Период созревания яблока, дней: ');
Readln(m);
Write('Количество дней ухаживания: ');
Readln(n);
Writeln('Номер первого дня ухаживания: ', n * (m - 1) + 1);
end.
Тестовое решение:
Период созревания яблока, дней: 2
Количество дней ухаживания: 5
Номер первого дня ухаживания: 6