.


:




:

































 

 

 

 





 

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.





:


: 2016-11-18; !; : 375 |


:

:

, .
==> ...

1784 - | 1601 -


© 2015-2024 lektsii.org - -

: 0.027 .