pascalabcnet/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for array [,] of T.html
Mikhalkovich Stanislav cd2556f89f Дополнения к матрицам в стандартном модуле:
x in matr

MatrEqual(m,m1)
m.MatrEqual(m1)

ArrEqual(a,a1)
a.ArrEqual(a1)

MatrByRow, MatrByCol по последовательости

var (m,n) := matr.Size
2020-05-30 11:31:17 +03:00

112 lines
11 KiB
HTML

<HTML><HEAD><object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
<param name="Keyword" value="Col">
<param name="Keyword" value="ColCount">
<param name="Keyword" value="Cols">
<param name="Keyword" value="ColSeq">
<param name="Keyword" value="ColsSeq">
<param name="Keyword" value="ConvertAll">
<param name="Keyword" value="ElementsByCol">
<param name="Keyword" value="ElementsByRow">
<param name="Keyword" value="ElementsWithIndices">
<param name="Keyword" value="Fill">
<param name="Keyword" value="FillRandom">
<param name="Keyword" value="ForEach">
<param name="Keyword" value="Indices">
<param name="Keyword" value="MatrEqual">
<param name="Keyword" value="MatrSlice">
<param name="Keyword" value="operator">
<param name="Keyword" value="Print">
<param name="Keyword" value="Println">
<param name="Keyword" value="Row">
<param name="Keyword" value="RowCount">
<param name="Keyword" value="Rows">
<param name="Keyword" value="RowSeq">
<param name="Keyword" value="RowsSeq">
<param name="Keyword" value="SetCol">
<param name="Keyword" value="SetRow">
<param name="Keyword" value="Size">
<param name="Keyword" value="SwapCols">
<param name="Keyword" value="SwapRows">
<param name="Keyword" value="Transform"></object>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"><link rel="StyleSheet" href="../../../default.css">
</HEAD><body><H1>Ìåòîäû ðàñøèðåíèÿ äâóìåðíûõ äèíàìè÷åñêèõ ìàññèâîâ</H1>
<table border=0 cellpadding=5><tr><td><code><b>function</b> Col&lt;T&gt;(Self: <b>array</b> [,] <b>of</b> T; k: integer): <b>array</b> <b>of</b> T;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;k-òûé ñòîëáåö äâóìåðíîãî ìàññèâà</td></tr>
<tr><td><code><b>function</b> ColCount&lt;T&gt;(Self: <b>array</b> [,] <b>of</b> T): integer;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Êîëè÷åñòâî ñòîëáöîâ â äâóìåðíîì ìàññèâå</td></tr>
<tr><td><code><b>function</b> Cols&lt;T&gt;(Self: <b>array</b> [,] <b>of</b> T): <b>array</b> <b>of</b> <b>array</b> <b>of</b> T;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âîçâðàùàåò ìàññèâ ñòîëáöîâ äâóìåðíîãî ìàññèâà</td></tr>
<tr><td><code><b>function</b> ColSeq&lt;T&gt;(Self: <b>array</b> [,] <b>of</b> T; k: integer): <b>sequence </b> <b>of</b> T;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;k-òûé ñòîëáåö äâóìåðíîãî ìàññèâà êàê ïîñëåäîâàòåëüíîñòü</td></tr>
<tr><td><code><b>function</b> ColsSeq&lt;T&gt;(Self: <b>array</b> [,] <b>of</b> T): <b>sequence </b> <b>of</b> <b>sequence </b> <b>of</b> T;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âîçâðàùàåò ïîñëåäîâàòåëüíîñòü ñòîëáöîâ äâóìåðíîãî ìàññèâà</td></tr>
<tr><td><code><b>function</b> ConvertAll&lt;T, T1&gt;(Self: <b>array</b> [,] <b>of</b> T; converter: T-&gt;T1): <b>array</b> [,] <b>of</b> T1;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ïðåîáðàçóåò ýëåìåíòû äâóìåðíîãî ìàññèâà è âîçâðàùàåò ïðåîáðàçîâàííûé ìàññèâ</td></tr>
<tr><td><code><b>function</b> ConvertAll&lt;T, T1&gt;(Self: <b>array</b> [,] <b>of</b> T; converter: (T,integer,integer)-&gt;T1): <b>array</b> [,] <b>of</b> T1;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ïðåîáðàçóåò ýëåìåíòû äâóìåðíîãî ìàññèâà è âîçâðàùàåò ïðåîáðàçîâàííûé ìàññèâ</td></tr>
<tr><td><code><b>function</b> ElementsByCol&lt;T&gt;(Self: <b>array</b> [,] <b>of</b> T): <b>sequence </b> <b>of</b> T;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âîçâðàùàåò ïî çàäàííîìó äâóìåðíîìó ìàññèâó ïîñëåäîâàòåëüíîñòü åãî ýëåìåíòîâ ïî ñòîëáöàì</td></tr>
<tr><td><code><b>function</b> ElementsByRow&lt;T&gt;(Self: <b>array</b> [,] <b>of</b> T): <b>sequence </b> <b>of</b> T;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âîçâðàùàåò ïî çàäàííîìó äâóìåðíîìó ìàññèâó ïîñëåäîâàòåëüíîñòü åãî ýëåìåíòîâ ïî ñòðîêàì</td></tr>
<tr><td><code><b>function</b> ElementsWithIndices&lt;T&gt;(Self: <b>array</b> [,] <b>of</b> T): <b>sequence </b> <b>of</b> (T, integer, integer);</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âîçâðàùàåò ïî çàäàííîìó äâóìåðíîìó ìàññèâó ïîñëåäîâàòåëüíîñòü (a[i,j],i,j)</td></tr>
<tr><td><code><b>procedure</b> Fill&lt;T&gt;(Self: <b>array</b> [,] <b>of</b> T; f: (integer,integer) -&gt;T);</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Çàïîëíÿåò ýëåìåíòû äâóìåðíîãî ìàññèâà çíà÷åíèÿìè, âû÷èñëÿåìûìè ïî íåêîòîðîìó ïðàâèëó</td></tr>
<tr><td><code><b>procedure</b> FillRandom(Self: <b>array</b> [,] <b>of</b> integer; a,b: integer);</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Çàïîëíÿåò ýëåìåíòû äâóìåðíîãî ìàññèâà ñëó÷àéíûìè çíà÷åíèÿìè â äèàïàçîíå îò a äî b</td></tr>
<tr><td><code><b>procedure</b> FillRandom(Self: <b>array</b> [,] <b>of</b> real; a,b: real);</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Çàïîëíÿåò ýëåìåíòû äâóìåðíîãî ìàññèâà ñëó÷àéíûìè çíà÷åíèÿìè â äèàïàçîíå îò a äî b</td></tr>
<tr><td><code><b>procedure</b> ForEach&lt;T&gt;(Self: <b>array</b> [,] <b>of</b> T; act: T -&gt; ());</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ïðèìåíÿåò äåéñòâèå ê êàæäîìó ýëåìåíòó äâóìåðíîãî ìàññèâà</td></tr>
<tr><td><code><b>procedure</b> ForEach&lt;T&gt;(Self: <b>array</b> [,] <b>of</b> T; act: (T,integer,integer) -&gt; ());</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ïðèìåíÿåò äåéñòâèå ê êàæäîìó ýëåìåíòó äâóìåðíîãî ìàññèâà</td></tr>
<tr><td><code><b>function</b> Indices&lt;T&gt;(Self: <b>array</b> [,] <b>of</b> T; cond: T -&gt; boolean): <b>sequence </b> <b>of</b> (integer, integer);</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âîçâðàùàåò ïî çàäàííîìó äâóìåðíîìó ìàññèâó ïîñëåäîâàòåëüíîñòü èíäåêñîâ ýëåìåíòîâ, óäîâëåòâîðÿþùèõ çàäàííîìó óñëîâèþ</td></tr>
<tr><td><code><b>function</b> Indices&lt;T&gt;(Self: <b>array</b> [,] <b>of</b> T; cond: (T,integer,integer) -&gt; boolean): <b>sequence </b> <b>of</b> (integer, integer);</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âîçâðàùàåò ïî çàäàííîìó äâóìåðíîìó ìàññèâó ïîñëåäîâàòåëüíîñòü èíäåêñîâ ýëåìåíòîâ, óäîâëåòâîðÿþùèõ çàäàííîìó óñëîâèþ</td></tr>
<tr><td><code><b>function</b> MatrEqual&lt;T&gt;(Self,b: array[,] <b>of</b> T): boolean;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Åñòü ëè ýëåìåíò â ìàòðèöå</td></tr>
<tr><td><code><b>function</b> MatrSlice&lt;T&gt;(Self: array[,] <b>of</b> T; RowIndex: <b>array</b> <b>of</b> integer; ColIndex: <b>array</b> <b>of</b> integer): array[,] <b>of</b> T;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âîçâðàùàåò ñðåç äâóìåðíîãî ìàññèâà. RowIndex è ColIndex çàäàþò ñðåçàåìûå ñòðîêè è ñòîëáöû</td></tr>
<tr><td><code><b>function</b> MatrSlice&lt;T&gt;(Self: array[,] <b>of</b> T; FromRow, ToRow, FromCol, ToCol: integer): array[,] <b>of</b> T;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âîçâðàùàåò ñðåç äâóìåðíîãî ìàññèâà ìåæäó ñòðîêàìè FromRow, ToRow è ñòîëáöàìè FromCol, ToCol</td></tr>
<tr><td><code><b>function</b> operator in&lt;T&gt;(x: T; a: array[,] <b>of</b> T): boolean;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Åñòü ëè ýëåìåíò â ìàòðèöå</td></tr>
<tr><td><code><b>function</b> Print&lt;T&gt;(Self: <b>array</b> [,] <b>of</b> T; w: integer := 4): <b>array</b> [,] <b>of</b> T;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âûâîä äâóìåðíîãî ìàññèâà, w - øèðèíà ïîëÿ âûâîäà</td></tr>
<tr><td><code><b>function</b> Print(Self: <b>array</b> [,] <b>of</b> real; w: integer := 7; f: integer := 2): <b>array</b> [,] <b>of</b> real;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âûâîä äâóìåðíîãî âåùåñòâåííîãî ìàññèâà ïî ôîðìàòó :w:f</td></tr>
<tr><td><code><b>function</b> Println&lt;T&gt;(Self: <b>array</b> [,] <b>of</b> T; w: integer := 4): <b>array</b> [,] <b>of</b> T;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âûâîä äâóìåðíîãî ìàññèâà è ïåðåõîä íà ñëåäóþùóþ ñòðîêó, w - øèðèíà ïîëÿ âûâîäà</td></tr>
<tr><td><code><b>function</b> Println(Self: <b>array</b> [,] <b>of</b> real; w: integer := 7; f: integer := 2): <b>array</b> [,] <b>of</b> real;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âûâîä äâóìåðíîãî âåùåñòâåííîãî ìàññèâà ïî ôîðìàòó :w:f è ïåðåõîä íà ñëåäóþùóþ ñòðîêó</td></tr>
<tr><td><code><b>function</b> Row&lt;T&gt;(Self: <b>array</b> [,] <b>of</b> T; k: integer): <b>array</b> <b>of</b> T;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;k-òàÿ ñòðîêà äâóìåðíîãî ìàññèâà</td></tr>
<tr><td><code><b>function</b> RowCount&lt;T&gt;(Self: <b>array</b> [,] <b>of</b> T): integer;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Êîëè÷åñòâî ñòðîê â äâóìåðíîì ìàññèâå</td></tr>
<tr><td><code><b>function</b> Rows&lt;T&gt;(Self: <b>array</b> [,] <b>of</b> T): <b>array</b> <b>of</b> <b>array</b> <b>of</b> T;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âîçâðàùàåò ìàññèâ ñòðîê äâóìåðíîãî ìàññèâà</td></tr>
<tr><td><code><b>function</b> RowSeq&lt;T&gt;(Self: <b>array</b> [,] <b>of</b> T; k: integer): <b>sequence </b> <b>of</b> T;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;k-òàÿ ñòðîêà äâóìåðíîãî ìàññèâà êàê ïîñëåäîâàòåëüíîñòü</td></tr>
<tr><td><code><b>function</b> RowsSeq&lt;T&gt;(Self: <b>array</b> [,] <b>of</b> T): <b>sequence </b> <b>of</b> <b>sequence </b> <b>of</b> T;</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Âîçâðàùàåò ïîñëåäîâàòåëüíîñòü ñòðîê äâóìåðíîãî ìàññèâà</td></tr>
<tr><td><code><b>procedure</b> SetCol&lt;T&gt;(Self: <b>array</b> [,] <b>of</b> T; k: integer; a: <b>array</b> <b>of</b> T);</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ìåíÿåò ñòîëáåö k äâóìåðíîãî ìàññèâà íà äðóãîé ñòîëáåö</td></tr>
<tr><td><code><b>procedure</b> SetCol&lt;T&gt;(Self: <b>array</b> [,] <b>of</b> T; k: integer; a: <b>sequence </b> <b>of</b> T);</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ìåíÿåò ñòîëáåö k äâóìåðíîãî ìàññèâà íà äðóãîé ñòîëáåö</td></tr>
<tr><td><code><b>procedure</b> SetRow&lt;T&gt;(Self: <b>array</b> [,] <b>of</b> T; k: integer; a: <b>array</b> <b>of</b> T);</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ìåíÿåò ñòðîêó k äâóìåðíîãî ìàññèâà íà äðóãóþ ñòðîêó</td></tr>
<tr><td><code><b>procedure</b> SetRow&lt;T&gt;(Self: <b>array</b> [,] <b>of</b> T; k: integer; a: <b>sequence </b> <b>of</b> T);</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ìåíÿåò ñòðîêó k äâóìåðíîãî ìàññèâà íà äðóãóþ ñòðîêó</td></tr>
<tr><td><code><b>function</b> Size&lt;T&gt;(Self: <b>array</b> [,] <b>of</b> T): (integer,integer);</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Êîëè÷åñòâî ñòîëáöîâ â äâóìåðíîì ìàññèâå</td></tr>
<tr><td><code><b>procedure</b> SwapCols&lt;T&gt;(Self: <b>array</b> [,] <b>of</b> T; k1, k2: integer);</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ìåíÿåò ìåñòàìè äâà ñòîëáöà äâóìåðíîãî ìàññèâà ñ íîìåðàìè k1 è k2</td></tr>
<tr><td><code><b>procedure</b> SwapRows&lt;T&gt;(Self: <b>array</b> [,] <b>of</b> T; k1, k2: integer);</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ìåíÿåò ìåñòàìè äâå ñòðîêè äâóìåðíîãî ìàññèâà ñ íîìåðàìè k1 è k2</td></tr>
<tr><td><code><b>procedure</b> Transform&lt;T&gt;(Self: <b>array</b> [,] <b>of</b> T; f: T-&gt;T);</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ïðåîáðàçóåò ýëåìåíòû äâóìåðíîãî ìàññèâà ïî çàäàííîìó ïðàâèëó</td></tr>
<tr><td><code><b>procedure</b> Transform&lt;T&gt;(Self: <b>array</b> [,] <b>of</b> T; f: (T,integer,integer)-&gt;T);</code>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ïðåîáðàçóåò ýëåìåíòû äâóìåðíîãî ìàññèâà ïî çàäàííîìó ïðàâèëó</td></tr>
</table>
</body></HTML>