219. 219. n n .
: , , , . n n :
, , , , , . , . , .
, .
ճ , . , .
: 3 = 4, 2 = 2, 1 = 3.
: 3- ( ), , ( ). , , .
, : , , . , , , , . , , , , ( ).
. 䳺, , , , .
program Gaus;
uses dos, crt;
const k = 20;
type urawnenie = array[1..k+1] of real;
matrix = array[1..k] of urawnenie;
bar = array[1..k] of real;
var mas: matrix;
x: bar;
max, f: real;
i, j, n, d, l: integer;
begin
{ i }
write('i : ');readln(n);
for i:= 1 to n do
begin
for j:= 1 to n do
|
|
begin
write('a[',i,',',j,'] = ');
readln(mas[i][j]);
end;
write('b[',i,'] = ');
readln(mas[i][n+1]);
end;
{ i i }
writeln(' '' : ');
for i:= 1 to n do
begin
for j:= 1 to n+1 do
if j < n+1 then
if j = 1 then write(mas[i][j]:2:1,' x',j)
else if mas[i][j] < 0 then write(' - ',-mas[i][j]:2:1,' x',j)
else write(' + ',mas[i][j]:2:1,' x',j)
else write(' = ',mas[i][j]:2:1);
writeln;
end;
{ - i }
for i:= 1 to n do
begin
{ i i i . [i] }
max:= abs(mas[i][i]);
d:= i;
for l:= i+1 to n do
if abs(mas[l][i]) > max then
begin
max:= abs(mas[l][i]);
d:= l;
end;
{ i, ic i }
if d <> i then
for j:= i to n+1 do
begin
f:= mas[i][j];
mas[i][j]:= mas[d][j];
mas[d][j]:= f;
end;
{ i i- i . x[i] }
f:= mas[i][i];
for j:= i+1 to n+1 do mas[i][j]:= mas[i][j]/f;
{ x[i] i i, }
for l:= i+1 to n do
begin
{ x[i] l- i }
f:= mas[l][i];
for j:= i+1 to n+1 do mas[l][j]:= mas[l][j] - mas[i][j]*f;
end;
end;
{ i i }
x[n]:= mas[n][n+1];
for i:= n-1 downto 1 do
begin
x[i]:= mas[i][n+1];
for j:= i+1 to n do x[i]:= x[i] - mas[i][j]*x[j]
end;
{ i }
writeln; writeln('i i:');
for i:=1 to n do write(' x[',i,'] = ',x[i]:2:1);
readln;
end.
220. 220. ( 1998-99 )
Mx N , 3333$. ϳ , ( ) . , .
. MONEY.*,
. MONEY.DAT M i N, 22. j 1 M (j+1)- j , , , ( ) . :
2 3
1 2 3
6 8 2
. MONEY.RES , . M+N2 , ( ): U ( Up), R ( Right), , . , :
RUR
: . , . . 4 5. (. 1).
|
|
. 1 | ||||||
. 2 | ||||||||
.3 | |||||||
. 4 | ||||||
, , . ( ) . , , , , 2. [3,2] [3,1], [4,2]. , ([3,1]), . , , , . , . , , . 3. ϳ , , , . , , . , . , , 4. , . . , . , .
program money;
var m, n, i, j: integer;
mon, res: array[1..21,1..21] of integer;
f: text; st: string;
begin
st:= '';
assign(f,'money.dat'); reset(f); { . 2.5 }
readln(f,m,n); { }
for j:=1 to m do
for i:=1 to n do
begin
read(f,mon[j,i]); { }
end;
close(f);{ }
{ ! . }
res:=mon; { ! }
for j:=1 to m do
begin
for i:=1 to n do write(mon[j,i]:5); { }
writeln;
end;
writeln;
{ }
|
|
for j:=m-1 downto 1 do res[j,1]:=res[j,1]+res[j+1,1];
{ }
for i:=2 to n do res[m,i]:=res[m,i]+res[m,i-1];
{ , }
for j:=m-1 downto 1 do
for i:=2 to n do
if res[j+1,i]>res[j,i-1] then res[j,i]:=res[j,i]+res[j+1,i]
else res[j,i]:=res[j,i]+res[j,i-1];
{ , }
for j:=1 to m do
begin
for i:=1 to n do write(res[j,i]:5);
writeln;
end;
writeln(res[1,n]); { }
{ }
j:=1; i:=n;
repeat
if j<m then
begin
if res[j+1,i] > res[j,i-1] then { , }
begin
j:=j+1; st:=st+'u'; { }
end
else if i>1 then
if res[j,i-1] >= res[j+1,i] then { }
begin
i:=i-1; st:=st+'r'; { , }
end;
end;
{ , }
if j=m then while i<>1 do begin
st:=st+'r';i:=i-1;
end;
{ , }
if i=1 then while j<>m do begin
st:=st+'u';j:=j+1;
end;
until (j=m) and (i=1);
{ , : }
for i:=length(st) downto 1 do write(st[i]);
writeln;
readln
end.