А и не надо усложнять, раз не сказано как делать обход, то на наше усмотрение:
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | const
ASize = 4 ;
var
A4x4: Array [ 1.. ASize, 1.. ASize] of Integer ;
i,j,Summ,Probe: Integer ;
ZeroFound: Boolean ;
begin
Randomize;
ZeroFound := False ;
Probe := 0 ;
Repeat
Inc(Probe);
WriteLn ( 'Probe' , Probe);
for i := 1 to ASize
do begin
for j := 1 to ASize
do begin
A4x4[i,j] := - 5 + Random( 10 );
if not ZeroFound
then ZeroFound := A4x4[i,j] = 0 ;
Write (A4x4[i,j]: 4 );
end ;
WriteLn ;
end ;
Until ZeroFound;
for i := 1 to ASize
do begin
Summ := 0 ; ZeroFound := False ;
for j := 1 to ASize
do begin
if not ZeroFound and (A4x4[i,j] = 0 )
then begin
ZeroFound := True ;
Continue;
end ;
if ZeroFound
then A4x4[i,j] := Summ
else if A4x4[i,j] > 0
then Summ := Summ + A4x4[i,j];
end ;
end ;
WriteLn ;
for i := 1 to ASize
do begin
for j := 1 to ASize
do Write (A4x4[i,j]: 4 );
WriteLn ;
end ;
ReadLn;
end .
|
Как оказалось самая большая сложность - получить случайно 0 в массиве, потому там сделан генератор правильного массива.
