12.04.2011, 00:35 | #1 (permalink) |
Member
Регистрация: 05.12.2010
Сообщений: 25
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Динамические массивы
|
12.04.2011, 00:35 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Наверняка в этих темах есть интересующий вас ответ Динамические структуры данных Динамические структуры данных, Паскаль |
12.04.2011, 12:58 | #2 (permalink) |
Member
Регистрация: 05.12.2010
Сообщений: 25
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
вот что получилось у меня.
но здесь не правильно. результатов никаких не дает. program cedlo; uses crt; Type Mas = array [1..100] of integer; MasUk = array[1..100] of ^Mas; Var a:^MasUk; N,I,J,R,p,min,max,maxj,minj:integer; z1,z2:boolean; Begin clrscr; {$R-} writeln('Vvedite razmernost kvadratnoy matricy:'); read(N); writeln('Vvedite matricy:'); GetMem(a,SizeOf(Mas)*N); For I:=1 to N do begin GetMem(a^[I],2*N); for J:=1 to N do read(a^[I]^[J]); end; for i:=1 to n do begin min:=a^[i]^[1]; max:=a^[i]^[1]; maxj:=1; minj:=1; for j:=2 to n do begin if a^[i]^[j] < min then begin min:=a^[i]^[j]; minj:=j; end; if a^[i]^[j] >max then begin max:=a^[i]^[j]; maxj:=j; end; end; z1:=true; z2:=true; for p:=1 to n do begin if min<a^[p]^[minj] then z1:=false; if max>a^[p]^[maxj] then z2:=false; end; if z1 then writeln('tochka', a^[i]^[minj],'i=',i,'j',minj); if z2 then writeln('tochka', a^[i]^[maxj],'i=',i,'j',maxj); end; freemem(a,sizeof(mas)*n); readln; {$r+} end. |
12.04.2011, 22:27 | #3 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Ну вроде сочинил. И даже работает. Кошмар!
Код:
{$r-} TYPE T=ARRAY[1..1] of Integer; VAR A,Min_Col,Max_Line:^T; Max,Min:^Integer; i,j,N:Integer; b:Boolean; BEGIN Write('N= '); ReadLn(N); GetMem(A, SizeOf(Integer)*N*N); GetMem(Min_Col, SizeOf(Integer)*N); GetMem(Max_Line, SizeOf(Integer)*N); WriteLn('Matrix A:'); For i:=1 to N do begin For j:=1 to N do begin Write('A[',i:2,',',j:2,']= '); ReadLn(A^[N*(i-1)+j]); end; WriteLn; end; WriteLn; For i:=1 to N do begin For j:=1 to N do Write(A^[N*(i-1)+j]:4); WriteLn; end; WriteLn; For i:=1 to N do begin New(Max); Max^:=A^[N*(i-1)+1]; Max_Line^[i]:=1; For j:=2 to N do If A^[N*(i-1)+j]>Max^ then begin Max_Line^[i]:=j; Max^:=A^[N*(i-1)+j]; end; Dispose(Max); end; For j:=1 to N do begin New(Min); Min^:=A^[j]; Min_Col^[j]:=1; For i:=2 to N do If A^[N*(i-1)+j]<Min^ then begin Min_Col^[j]:=i; Min^:=A^[N*(i-1)+j]; end; Dispose(Min); end; b:=true; For i:=1 to N do If Min_Col^[Max_Line^[i]]=i then begin WriteLn('Saddle point: line N ',i,'; column N ',Max_Line^[i]); b:=false; end; If b then WriteLn('Matrix has no saddle point'); FreeMem(A, SizeOf(Integer)*N*N); FreeMem(Min_Col, SizeOf(Integer)*N); FreeMem(Max_Line, SizeOf(Integer)*N); ReadLn; END. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|