1. var A:array[0..7,0..13] of integer; B:array[0..255] of integer; i,j,k:byte; s:integer; SR:real; begin randomize; s:=0; k:=0; for i:=0 to 7 do begin for j:=0 to 13 do begin A[i,j]:=random(20); write(A[i,j]:4); if A[i,j] mod 2<>0 then begin S:=S+A[i,j]; k:=k+1; end; end; writeln; end; SR:=S/k; k:=0; writeln; for i:=0 to 7 do for j:=0 to 13 do if (A[i,j] mod 2=0) and (A[i,j]>SR) then begin k:=k+1; B[k]:=A[i,j]; write(b[k]:4); end; end. 2. var A:array[0..9,0..9] of integer; B:array[0..255,0..1] of integer; i,j,k:byte; s,ss,MIN:integer; FLAG:boolean; begin randomize; s:=0; k:=0; for i:=0 to 9 do begin for j:=0 to 9 do begin A[i,j]:=random(20); write(A[i,j]:4); B[i,0]:=A[i,j]+B[i,0]; B[i,1]:=i; end; writeln; end; writeln; FLAG:=false; MIN:=10*20+1; for i:=0 to 9 do begin for j:=i to 9 do if MIN>B[j,0] then begin Min:=B[j,0]; k:=j; FLAG:=true; end; if FLAG then begin S:=B[i,0]; //замена SS:=B[i,1]; B[i,0]:=B[k,0]; B[i,1]:=B[k,1]; B[k,0]:=S; B[k,1]:=SS; FLAG:=false; MIN:=10*20+1; end; end; for i:=0 to 9 do begin writeln; for j:=0 to 9 do write(A[B[i,1],j]:4); end; end.
6030
Объяснение:
C18 в 16-ричной системе состоит из 3 чисел: C 1 8.
8 - 1 в десятичной (16 в 0 степени)
1 - 16 в десятичной (16 в 1 степени)
C(12) - 256 в десятичной (16 в 2 степени)
Работает это по принципу разложения в десятичной системе счисления, когда мы работаем со степенями десяти, только сейчас это степени 16.
Перемножаем эти числа и складываем:
8*1+1*16+12*256 = 3096 (в десятичной системе счисления).
Теперь переводим в 8-ную систему:
Максимальная степень 8 которая меньше 3096 это 512(8 в 3 степени)
Значит число будет состоит из n(в нашем случае 3)+1 чисел => из 4 чисел, причем правое разрядовое число будет равно 3096 div 512 равно 6.
Остаток от деления 24. Понижаем степени восьми с 3 степени до 2. 64 больше чем 24, поэтому следующее число после 6 равно 0.
Теперь степень равна 1. Восемь меньше 24, поэтому делим 24 на 8 и получаем разрядовое число. 24 div 8 = 3 без остатка => следующие 2 числа равны 3 0
Соединяем все 4 числа и получаем 6030
var
A:array[0..7,0..13] of integer;
B:array[0..255] of integer;
i,j,k:byte;
s:integer;
SR:real;
begin
randomize;
s:=0;
k:=0;
for i:=0 to 7 do
begin
for j:=0 to 13 do
begin
A[i,j]:=random(20);
write(A[i,j]:4);
if A[i,j] mod 2<>0
then
begin
S:=S+A[i,j];
k:=k+1;
end;
end;
writeln;
end;
SR:=S/k;
k:=0;
writeln;
for i:=0 to 7 do
for j:=0 to 13 do
if (A[i,j] mod 2=0) and (A[i,j]>SR)
then
begin
k:=k+1;
B[k]:=A[i,j];
write(b[k]:4);
end;
end.
2.
var
A:array[0..9,0..9] of integer;
B:array[0..255,0..1] of integer;
i,j,k:byte;
s,ss,MIN:integer;
FLAG:boolean;
begin
randomize;
s:=0;
k:=0;
for i:=0 to 9 do
begin
for j:=0 to 9 do
begin
A[i,j]:=random(20);
write(A[i,j]:4);
B[i,0]:=A[i,j]+B[i,0];
B[i,1]:=i;
end;
writeln;
end;
writeln;
FLAG:=false;
MIN:=10*20+1;
for i:=0 to 9 do
begin
for j:=i to 9 do
if MIN>B[j,0]
then
begin
Min:=B[j,0];
k:=j;
FLAG:=true;
end;
if FLAG
then
begin
S:=B[i,0]; //замена
SS:=B[i,1];
B[i,0]:=B[k,0];
B[i,1]:=B[k,1];
B[k,0]:=S;
B[k,1]:=SS;
FLAG:=false;
MIN:=10*20+1;
end;
end;
for i:=0 to 9 do
begin
writeln;
for j:=0 to 9 do
write(A[B[i,1],j]:4);
end;
end.