<em>Конечно, на основе функций решение было бы элегантнее, но требовались процедуры...
// PascalABC.NET 3.2, сборка 1417 от 28.03.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
procedure GetMax(a:array[,] of integer; var mr,mc:array of integer);
// максимумы по строкам mr и столбцам mc
begin
mr:=a.Rows.Select(r->r.Max).ToArray;
mc:=a.Cols.Select(c->c.Max).ToArray;
end;
procedure MatrSort(a:array[,] of integer);
// сортировка срок по первой колонке
begin
for var i:=0 to a.RowCount-2 do
for var k:=0 to a.RowCount-2-i do
if a[k,0]>a[k+1,0] then a.SwapRows(k,k+1);
end;
procedure IsCont(n:integer; a:array [,] of integer; var res:boolean);
// есть ли элемент n в массиве a?
begin
res:=a.ElementsByRow.Contains(n)
end;
begin
var n:=ReadInteger('Количество строк в массиве:');
var m:=ReadInteger('Количество столбцов в массиве:');
Writeln('*** Исходный массив [',n,',',m,'] ***');
var a:=MatrRandom(n,m,-99,99);
a.Println(4); Writeln(4*a.ColCount*'-');
var vr:=new integer[n];
var vc:=new integer[m];
GetMax(a,vr,vc);
Write('Вектор максимумов по строкам: '); vr.Println;
Write('Вектор максимумов по столбцам: '); vc.Println;
MatrSort(a);
Writeln('*** отсортированный массив ***');
a.Println(4); Writeln(4*a.ColCount*'-');
var k:=ReadInteger('Введите значение элемента для поиска:');
var q:boolean;
IsCont(k,a,q);
if q then Writeln('Массив содержит введенное значение')
else Writeln('Массив не содержит введенного значения')
end.
<u>Пример</u>
Количество строк в массиве: 4
Количество столбцов в массиве: 7
*** Исходный массив [4,7] ***
-96 63 6 -96 -21 -61 -54
31 -20 63 -48 70 13 48
72 -27 -68 -52 32 15 -58
-71 -86 45 49 40 -64 -2
----------------------------
Вектор максимумов по строкам: 63 70 72 49
Вектор максимумов по столбцам: 72 63 63 49 70 15 48
*** отсортированный массив ***
-96 63 6 -96 -21 -61 -54
-71 -86 45 49 40 -64 -2
31 -20 63 -48 70 13 48
72 -27 -68 -52 32 15 -58
----------------------------
Введите значение элемента для поиска: 70
Массив содержит введенное значение
Ответ:
b.8
Объяснение:
Диаграмма построена по 8 строке.
program n_1;
uses crt;
var
n: longint;
k: integer;
function Sym(n: integer): char;
begin
case n of
0..9: Sym := chr(48 + n);
10..36: Sym := chr(55 + n);
end;
end;
function funct(n: longint; k: integer): string;
var
st: string;
begin
st := '';
if n = 0 then st := '0' else
begin
while n >= 1 do
begin
st := Sym(n mod k) + st;
n := n div k;
end;
end;
DecToX := st;
end;
begin
readln(n);
repeat
readln(k);
until (2 <= k) and (k <= 36);
writeln(funct(n, k));
end.
Var
a: array[1..6]of integer;
i,m: integer;
begin
for i:=1 to 6 do
read(a[i]);
writeln(' ');
For i:=2 to 6 do
if (a[i]<0) and ((i mod 2) =0) then
for m:=i downto 2 do
swap(a[m],a[m-1]); for i:=1 to 6 do
write(a[i]:2);
<span>end.
abc pascal</span>
И так,мы имеем 1000 т, прирост 12 % (то есть + 120 тонн) получается:
1) 1000+120=1120 тонн (прирост такой)
2) 1120*20=22400 тонн (за 20 лет будет столько рыбы)
3) 189*20=3780 тонн (отлов за 20 лет)
4) 22400-3780=18620 тонн (остаток ловли за 20 лет)
Количество рыбы в пруду на 20 лет равно 18620 тонн