<?xml version="1.0" encoding="utf-8"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title>Форум программистов и сисадминов Киберфорум - Блоги - canadamoscow</title>
		<link>https://www.cyberforum.ru/blogs/1600627/</link>
		<description>КиберФорум - форум программистов, системных администраторов, администраторов баз данных, компьютерный форум, форум по электронике и бытовой технике, обсуждение софта. Бесплатная помощь в решении задач по программированию и наукам, решение проблем с компьютером, операционными системам</description>
		<language>ru</language>
		<lastBuildDate>Sun, 06 Sep 2026 12:31:58 GMT</lastBuildDate>
		<generator>vBulletin</generator>
		<ttl>60</ttl>
		<image>
			<url>https://www.cyberforum.ru//cyberstatic.net/images/misc/rss.jpg</url>
			<title>Форум программистов и сисадминов Киберфорум - Блоги - canadamoscow</title>
			<link>https://www.cyberforum.ru/blogs/1600627/</link>
		</image>
		<item>
			<title>Матрица NxM по спирали</title>
			<link>https://www.cyberforum.ru/blogs/1600627/7202.html</link>
			<pubDate>Thu, 22 Jul 2021 14:33:40 GMT</pubDate>
			<description><![CDATA[## 
var (n,m) := (5,4); 
var a := new integer[n,m]; 
var (i,j, c, ii,jj) := (0,0, 1, 0,1);  
repeat...]]></description>
			<content:encoded><![CDATA[<div><div class="codeblock"><table class="pascal"><thead><tr><td colspan="2" id="459833468"  class="head">Pascal</td></tr></thead><tbody><tr class="li1"><td><div id="459833468" style="height: 206px" class="codeframe"><table><tr class="li1"><td class="ln" style="padding: 0px 10px 0px 5px;"><pre class="de1">1
2
3
4
5
6
7
8
9
10
11
</pre></td><td class="de1"><pre class="de1">##
<span class="kw1">var</span> <span class="br0">&#40;</span>n<span class="sy1">,</span>m<span class="br0">&#41;</span> <span class="sy1">:</span><span class="sy3">=</span> <span class="br0">&#40;</span><span class="nu0">5</span><span class="sy1">,</span><span class="nu0">4</span><span class="br0">&#41;</span><span class="sy1">;</span>
<span class="kw1">var</span> a <span class="sy1">:</span><span class="sy3">=</span> <span class="kw3">new</span> <span class="kw4">integer</span><span class="br0">&#91;</span>n<span class="sy1">,</span>m<span class="br0">&#93;</span><span class="sy1">;</span>
<span class="kw1">var</span> <span class="br0">&#40;</span>i<span class="sy1">,</span>j<span class="sy1">,</span> c<span class="sy1">,</span> ii<span class="sy1">,</span>jj<span class="br0">&#41;</span> <span class="sy1">:</span><span class="sy3">=</span> <span class="br0">&#40;</span><span class="nu0">0</span><span class="sy1">,</span><span class="nu0">0</span><span class="sy1">,</span> <span class="nu0">1</span><span class="sy1">,</span> <span class="nu0">0</span><span class="sy1">,</span><span class="nu0">1</span><span class="br0">&#41;</span><span class="sy1">;</span> 
<span class="kw1">repeat</span> &nbsp;
&nbsp; a<span class="br0">&#91;</span>i<span class="sy1">,</span>j<span class="br0">&#93;</span> <span class="sy1">:</span><span class="sy3">=</span> c<span class="sy1">;</span>
&nbsp; <span class="kw1">if</span> <span class="kw1">not</span><span class="br0">&#40;</span><span class="br0">&#40;</span>i<span class="sy3">+</span>ii <span class="kw1">in</span> <span class="nu0">0</span><span class="sy1">..</span><span class="me1">n</span><span class="sy3">-</span><span class="nu0">1</span><span class="br0">&#41;</span> <span class="kw1">and</span> <span class="br0">&#40;</span>j<span class="sy3">+</span>jj <span class="kw1">in</span> <span class="nu0">0</span><span class="sy1">..</span><span class="me1">m</span><span class="sy3">-</span><span class="nu0">1</span><span class="br0">&#41;</span> <span class="kw1">and</span> <span class="br0">&#40;</span>a<span class="br0">&#91;</span>i<span class="sy3">+</span>ii<span class="sy1">,</span> j<span class="sy3">+</span>jj<span class="br0">&#93;</span> <span class="sy3">=</span> <span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="kw1">then</span> 
&nbsp; &nbsp; &nbsp;<span class="br0">&#40;</span>ii<span class="sy1">,</span>jj<span class="br0">&#41;</span><span class="sy1">:</span><span class="sy3">=</span> ii<span class="sy3">=</span><span class="nu0">0</span>? <span class="br0">&#40;</span>jj<span class="sy1">,</span><span class="nu0">0</span><span class="br0">&#41;</span><span class="sy1">:</span><span class="br0">&#40;</span><span class="nu0">0</span><span class="sy1">,</span><span class="sy3">-</span>ii<span class="br0">&#41;</span><span class="sy1">;</span> <span class="co1">//поворот направо</span>
&nbsp; <span class="br0">&#40;</span>i<span class="sy1">,</span>j<span class="sy1">,</span>c<span class="br0">&#41;</span> <span class="sy1">:</span><span class="sy3">=</span> <span class="br0">&#40;</span>i<span class="sy3">+</span>ii<span class="sy1">,</span>j<span class="sy3">+</span>jj<span class="sy1">,</span>c<span class="sy3">+</span><span class="nu0">1</span><span class="br0">&#41;</span><span class="sy1">;</span>
<span class="kw1">until</span> c &gt; n<span class="sy3">*</span>m<span class="sy1">;</span>
a<span class="sy1">.</span><span class="me1">Println</span></pre></td></tr></table></div></td></tr></tbody></table></div><div class="codeblock"><table class="pascal"><thead><tr><td colspan="2" id="476770528"  class="head">Pascal</td></tr></thead><tbody><tr class="li1"><td><div id="476770528" style="height: 190px" class="codeframe"><table><tr class="li1"><td class="ln" style="padding: 0px 10px 0px 5px;"><pre class="de1">1
2
3
4
5
6
7
8
9
10
</pre></td><td class="de1"><pre class="de1">##
<span class="kw1">var</span> <span class="br0">&#40;</span>n<span class="sy1">,</span> m<span class="br0">&#41;</span> <span class="sy1">:</span><span class="sy3">=</span> <span class="br0">&#40;</span><span class="nu0">4</span><span class="sy1">,</span> <span class="nu0">6</span><span class="br0">&#41;</span><span class="sy1">;</span>
<span class="kw1">var</span> a <span class="sy1">:</span><span class="sy3">=</span> <span class="kw3">new</span> <span class="kw4">integer</span><span class="br0">&#91;</span>n<span class="sy1">,</span> m<span class="br0">&#93;</span><span class="sy1">;</span>
<span class="kw1">var</span> <span class="br0">&#40;</span>i<span class="sy1">,</span> j<span class="sy1">,</span> c<span class="sy1">,</span> d<span class="br0">&#41;</span> <span class="sy1">:</span><span class="sy3">=</span> <span class="br0">&#40;</span><span class="nu0">0</span><span class="sy1">,</span> <span class="sy3">-</span><span class="nu0">1</span><span class="sy1">,</span> <span class="nu0">1</span><span class="sy1">,</span> <span class="nu0">1</span><span class="br0">&#41;</span><span class="sy1">;</span>
<span class="kw1">repeat</span>
&nbsp; loop m <span class="kw1">do</span> <span class="kw1">begin</span> j <span class="sy3">+=</span> d<span class="sy1">;</span> a<span class="br0">&#91;</span>i<span class="sy1">,</span> j<span class="br0">&#93;</span> <span class="sy1">:</span><span class="sy3">=</span> c<span class="sy1">;</span> c <span class="sy3">+=</span> <span class="nu0">1</span> <span class="kw1">end</span><span class="sy1">;</span>
&nbsp; loop n <span class="sy3">-</span> <span class="nu0">1</span> <span class="kw1">do</span> <span class="kw1">begin</span> i <span class="sy3">+=</span> d<span class="sy1">;</span> a<span class="br0">&#91;</span>i<span class="sy1">,</span> j<span class="br0">&#93;</span> <span class="sy1">:</span><span class="sy3">=</span> c<span class="sy1">;</span> c <span class="sy3">+=</span> <span class="nu0">1</span> <span class="kw1">end</span><span class="sy1">;</span>
&nbsp; <span class="br0">&#40;</span>d<span class="sy1">,</span> m<span class="sy1">,</span> n<span class="br0">&#41;</span> <span class="sy1">:</span><span class="sy3">=</span> <span class="br0">&#40;</span><span class="sy3">-</span>d<span class="sy1">,</span> m <span class="sy3">-</span> <span class="nu0">1</span><span class="sy1">,</span> n <span class="sy3">-</span> <span class="nu0">1</span><span class="br0">&#41;</span>
<span class="kw1">until</span> <span class="br0">&#40;</span>n <span class="sy3">=</span> <span class="nu0">0</span><span class="br0">&#41;</span> <span class="kw1">or</span> <span class="br0">&#40;</span>m <span class="sy3">=</span> <span class="nu0">0</span><span class="br0">&#41;</span><span class="sy1">;</span>
a<span class="sy1">.</span><span class="me1">Println</span></pre></td></tr></table></div></td></tr></tbody></table></div><div class="codeblock"><table class="pascal"><thead><tr><td colspan="2" id="889379182"  class="head">Pascal</td></tr></thead><tbody><tr class="li1"><td><div id="889379182" style="height: 206px" class="codeframe"><table><tr class="li1"><td class="ln" style="padding: 0px 10px 0px 5px;"><pre class="de1">1
2
3
4
5
6
7
8
9
10
11
</pre></td><td class="de1"><pre class="de1">##
<span class="kw1">var</span> <span class="br0">&#40;</span>n<span class="sy1">,</span>m<span class="br0">&#41;</span> <span class="sy1">:</span><span class="sy3">=</span> <span class="br0">&#40;</span><span class="nu0">3</span><span class="sy1">,</span><span class="nu0">6</span><span class="br0">&#41;</span><span class="sy1">;</span>
<span class="kw1">var</span> a <span class="sy1">:</span><span class="sy3">=</span> <span class="kw3">new</span> <span class="kw4">integer</span><span class="br0">&#91;</span>n<span class="sy1">,</span>m<span class="br0">&#93;</span><span class="sy1">;</span>
<span class="kw1">for</span> <span class="kw1">var</span> i <span class="sy1">:</span><span class="sy3">=</span> <span class="nu0">0</span> <span class="kw1">to</span> n<span class="sy3">-</span><span class="nu0">1</span> <span class="kw1">do</span>
&nbsp; <span class="kw1">for</span> <span class="kw1">var</span> j <span class="sy1">:</span><span class="sy3">=</span> <span class="nu0">0</span> <span class="kw1">to</span> m<span class="sy3">-</span><span class="nu0">1</span> <span class="kw1">do</span> <span class="kw1">begin</span>
&nbsp; &nbsp; &nbsp;<span class="kw1">var</span> x <span class="sy1">:</span><span class="sy3">=</span> min<span class="br0">&#40;</span>i<span class="sy1">,</span>j<span class="sy1">,</span>n<span class="sy3">-</span><span class="nu0">1</span> <span class="sy3">-</span> i<span class="sy1">,</span> m<span class="sy3">-</span><span class="nu0">1</span> <span class="sy3">-</span> j<span class="br0">&#41;</span><span class="sy1">;</span>
&nbsp; &nbsp; &nbsp;a<span class="br0">&#91;</span>i<span class="sy1">,</span>j<span class="br0">&#93;</span> <span class="sy1">:</span><span class="sy3">=</span> n<span class="sy3">*</span>m<span class="sy3">+</span><span class="nu0">1</span> <span class="sy3">-</span> <span class="kw1">if</span> <span class="br0">&#40;</span>i&gt;x<span class="br0">&#41;</span> <span class="kw1">and</span> <span class="br0">&#40;</span>m<span class="sy3">-</span><span class="nu0">1</span><span class="sy3">-</span>j&gt;x<span class="br0">&#41;</span> <span class="kw1">then</span>
&nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#40;</span>n<span class="sy3">-</span><span class="nu0">2</span><span class="sy3">*</span>x<span class="sy3">-</span><span class="nu0">2</span><span class="br0">&#41;</span><span class="sy3">*</span><span class="br0">&#40;</span>m<span class="sy3">-</span><span class="nu0">2</span><span class="sy3">*</span>x<span class="sy3">-</span><span class="nu0">2</span><span class="br0">&#41;</span> <span class="sy3">+</span> <span class="br0">&#40;</span>i<span class="sy3">-</span>x<span class="br0">&#41;</span> <span class="sy3">+</span> <span class="br0">&#40;</span>j<span class="sy3">-</span>x<span class="br0">&#41;</span> 
&nbsp; &nbsp; &nbsp;<span class="kw1">else</span> <span class="br0">&#40;</span>n<span class="sy3">-</span><span class="nu0">2</span><span class="sy3">*</span>x<span class="br0">&#41;</span><span class="sy3">*</span><span class="br0">&#40;</span>m<span class="sy3">-</span><span class="nu0">2</span><span class="sy3">*</span>x<span class="br0">&#41;</span> <span class="sy3">-</span> <span class="br0">&#40;</span>i<span class="sy3">-</span>x<span class="br0">&#41;</span> <span class="sy3">-</span> <span class="br0">&#40;</span>j<span class="sy3">-</span>x<span class="br0">&#41;</span>
&nbsp; <span class="kw1">end</span><span class="sy1">;</span>
a<span class="sy1">.</span><span class="me1">Println</span></pre></td></tr></table></div></td></tr></tbody></table></div><div class="codeblock"><table class="pascal"><thead><tr><td colspan="2" id="671286369"  class="head">Pascal</td></tr></thead><tbody><tr class="li1"><td><div id="671286369" style="height: 222px" class="codeframe"><table><tr class="li1"><td class="ln" style="padding: 0px 10px 0px 5px;"><pre class="de1">1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="de1"><pre class="de1"><span class="co1">//В квадратной матрице закрученной по спирали определить индекс указанного значения</span>
##
<span class="kw1">var</span> <span class="br0">&#40;</span>tt<span class="sy1">,</span>n<span class="br0">&#41;</span> <span class="sy1">:</span><span class="sy3">=</span> <span class="br0">&#40;</span><span class="nu0">1</span><span class="sy1">,</span><span class="nu0">5</span><span class="br0">&#41;</span><span class="sy1">;</span> <span class="co1">//треубуемое значение, размер матрицы</span>
<span class="kw1">var</span> t <span class="sy1">:</span><span class="sy3">=</span> n<span class="sy3">*</span>n<span class="sy3">+</span><span class="nu0">1</span><span class="sy3">-</span>tt<span class="sy1">;</span> <span class="co1">//программа заточента для расчета при спирали из центра</span>
<span class="kw1">var</span> q <span class="sy1">:</span><span class="sy3">=</span> <span class="nu0">1</span><span class="sy3">+</span><span class="kw3">ord</span><span class="br0">&#40;</span>n<span class="sy1">.</span><span class="me1">IsEven</span><span class="br0">&#41;</span><span class="sy1">;</span> 
<span class="kw1">while</span> q<span class="sy3">*</span>q &lt; t <span class="kw1">do</span> q<span class="sy3">+=</span><span class="nu0">2</span><span class="sy1">;</span> <span class="co1">//сторона (колво элементов) нужного квадрата</span>
<span class="kw1">var</span> coner <span class="sy1">:</span><span class="sy3">=</span> <span class="br0">&#40;</span>q<span class="sy3">*</span>q<span class="sy3">+</span><span class="br0">&#40;</span>q<span class="sy3">-</span><span class="nu0">2</span><span class="br0">&#41;</span><span class="sy3">*</span><span class="br0">&#40;</span>q<span class="sy3">-</span><span class="nu0">2</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="kw1">div</span> <span class="nu0">2</span><span class="sy1">;</span> <span class="co1">//значение в правом нижнем углу квадрата</span>
<span class="kw1">var</span> i <span class="sy1">:</span><span class="sy3">=</span> n <span class="kw1">div</span> <span class="nu0">2</span> <span class="sy3">+</span> <span class="br0">&#40;</span>q<span class="sy3">-</span><span class="nu0">1</span><span class="br0">&#41;</span> <span class="kw1">div</span> <span class="nu0">2</span><span class="sy1">;</span><span class="co1">//индекс этого значения в углу</span>
<span class="kw1">var</span> j <span class="sy1">:</span><span class="sy3">=</span> i<span class="sy1">;</span>
<span class="kw1">if</span> t&lt;coner <span class="kw1">then</span> <span class="br0">&#40;</span>i<span class="sy1">,</span>j<span class="br0">&#41;</span> <span class="sy1">:</span><span class="sy3">=</span> <span class="kw1">if</span> t &gt; coner<span class="sy3">-</span>q <span class="kw1">then</span> <span class="br0">&#40;</span>i<span class="sy1">,</span>j<span class="sy3">+</span>t<span class="sy3">-</span>coner<span class="br0">&#41;</span> <span class="kw1">else</span> <span class="br0">&#40;</span>i<span class="sy3">+</span>t<span class="sy3">-</span>coner<span class="sy3">+</span>q<span class="sy3">-</span><span class="nu0">1</span><span class="sy1">,</span>n<span class="sy3">-</span><span class="nu0">1</span><span class="sy3">-</span>j<span class="br0">&#41;</span>
<span class="kw1">else</span> <span class="br0">&#40;</span>i<span class="sy1">,</span>j<span class="br0">&#41;</span> <span class="sy1">:</span><span class="sy3">=</span> <span class="kw1">if</span> t &lt; coner<span class="sy3">+</span>q <span class="kw1">then</span> <span class="br0">&#40;</span>i<span class="sy3">-</span>t<span class="sy3">+</span>coner<span class="sy1">,</span>j<span class="br0">&#41;</span> <span class="kw1">else</span> <span class="br0">&#40;</span>n<span class="sy3">-</span><span class="nu0">1</span><span class="sy3">-</span>i<span class="sy1">,</span>j<span class="sy3">-</span>t<span class="sy3">+</span>coner<span class="sy3">+</span>q<span class="sy3">-</span><span class="nu0">1</span><span class="br0">&#41;</span><span class="sy1">;</span>
$<span class="st0">'{tt} = {(i,j)}'</span><span class="sy1">.</span><span class="me1">Println</span></pre></td></tr></table></div></td></tr></tbody></table></div><div class="codeblock"><table class="pascal"><thead><tr><td colspan="2" id="866248893"  class="head">Pascal</td></tr></thead><tbody><tr class="li1"><td><div id="866248893" style="height: 286px" class="codeframe"><table><tr class="li1"><td class="ln" style="padding: 0px 10px 0px 5px;"><pre class="de1">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
</pre></td><td class="de1"><pre class="de1">##
<span class="kw1">var</span> n <span class="sy1">:</span><span class="sy3">=</span> <span class="nu0">6</span><span class="sy1">;</span>
MatrGen<span class="br0">&#40;</span>n<span class="sy1">,</span> n<span class="sy1">,</span> <span class="br0">&#40;</span>i<span class="sy1">,</span> j<span class="br0">&#41;</span> <span class="sy3">-</span>&gt; <span class="kw1">begin</span> <span class="kw1">var</span> x <span class="sy1">:</span><span class="sy3">=</span> min<span class="br0">&#40;</span>i<span class="sy1">,</span> j<span class="sy1">,</span> n<span class="sy3">-</span><span class="nu0">1</span> <span class="sy3">-</span> i<span class="sy1">,</span> n<span class="sy3">-</span><span class="nu0">1</span> <span class="sy3">-</span> j<span class="br0">&#41;</span><span class="sy1">;</span> Result <span class="sy1">:</span><span class="sy3">=</span> n<span class="sy3">*</span>n<span class="sy3">+</span><span class="nu0">1</span> <span class="sy3">-</span>
<span class="kw1">if</span> i&gt;j <span class="kw1">then</span> <span class="br0">&#40;</span>n<span class="sy3">-</span><span class="nu0">2</span><span class="sy3">*</span>x<span class="sy3">-</span><span class="nu0">2</span><span class="br0">&#41;</span><span class="sy3">*</span><span class="br0">&#40;</span>n<span class="sy3">-</span><span class="nu0">2</span><span class="sy3">*</span>x<span class="sy3">-</span><span class="nu0">2</span><span class="br0">&#41;</span><span class="sy3">+</span><span class="br0">&#40;</span>i<span class="sy3">-</span>x<span class="br0">&#41;</span><span class="sy3">+</span><span class="br0">&#40;</span>j<span class="sy3">-</span>x<span class="br0">&#41;</span> <span class="kw1">else</span> <span class="br0">&#40;</span>n<span class="sy3">-</span><span class="nu0">2</span><span class="sy3">*</span>x<span class="br0">&#41;</span><span class="sy3">*</span><span class="br0">&#40;</span>n<span class="sy3">-</span><span class="nu0">2</span><span class="sy3">*</span>x<span class="br0">&#41;</span><span class="sy3">-</span><span class="br0">&#40;</span>i<span class="sy3">-</span>x<span class="br0">&#41;</span><span class="sy3">-</span><span class="br0">&#40;</span>j<span class="sy3">-</span>x<span class="br0">&#41;</span> <span class="kw1">end</span><span class="br0">&#41;</span><span class="sy1">.</span><span class="me1">Print</span><span class="sy1">;</span>
&nbsp;
<span class="co1">//Поиск индекса элемента со значением value в квадратной матрице NxN</span>
<span class="kw1">var</span> value <span class="sy1">:</span><span class="sy3">=</span> ReadlnInteger<span class="br0">&#40;</span><span class="st0">'Введите значение:'</span><span class="br0">&#41;</span><span class="sy1">;</span>
<span class="kw1">var</span> k <span class="sy1">:</span><span class="sy3">=</span> trunc<span class="br0">&#40;</span><span class="br0">&#40;</span>n <span class="sy3">-</span> <span class="kw3">sqrt</span><span class="br0">&#40;</span>n<span class="sy3">*</span>n<span class="sy3">+</span><span class="nu0">1</span> <span class="sy3">-</span> value<span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="sy3">/</span> <span class="nu0">2</span><span class="br0">&#41;</span><span class="sy1">;</span> <span class="co1">//номер квадрата в котором value: 0-внешний и далее</span>
<span class="kw1">var</span> quarter <span class="sy1">:</span><span class="sy3">=</span> n<span class="sy3">-</span><span class="nu0">2</span><span class="sy3">*</span>k<span class="sy3">-</span><span class="nu0">1</span><span class="sy1">;</span> <span class="co1">//четверть длины квадрата k (сторона квадрата на 1 больше: quarter+1)</span>
<span class="kw1">var</span> corner <span class="sy1">:</span><span class="sy3">=</span> n<span class="sy3">*</span>n<span class="sy3">+</span><span class="nu0">1</span> <span class="sy3">-</span> <span class="br0">&#40;</span>quarter<span class="sy3">+</span><span class="nu0">1</span><span class="br0">&#41;</span><span class="sy3">*</span><span class="br0">&#40;</span>quarter<span class="sy3">+</span><span class="nu0">1</span><span class="br0">&#41;</span><span class="sy1">;</span> <span class="co1">//значение в левом верхнем углу квадрата k</span>
<span class="kw1">case</span> <span class="br0">&#40;</span>value<span class="sy3">-</span>corner<span class="br0">&#41;</span> <span class="kw1">div</span> quarter <span class="kw1">of</span> <span class="co1">//в какой четверти квадрата находится value</span>
&nbsp; <span class="nu0">0</span><span class="sy1">:</span> Print<span class="br0">&#40;</span><span class="br0">&#40;</span>k<span class="sy1">,</span> k<span class="sy3">+</span>value<span class="sy3">-</span>corner<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy1">;</span><span class="co1">//сверху</span>
&nbsp; <span class="nu0">1</span><span class="sy1">:</span> Print<span class="br0">&#40;</span><span class="br0">&#40;</span>k<span class="sy3">+</span>value<span class="sy3">-</span>corner<span class="sy3">-</span>quarter<span class="sy1">,</span> n<span class="sy3">-</span><span class="nu0">1</span> <span class="sy3">-</span> k<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy1">;</span><span class="co1">//справа</span>
&nbsp; <span class="nu0">2</span><span class="sy1">:</span> Print<span class="br0">&#40;</span><span class="br0">&#40;</span>n<span class="sy3">-</span><span class="nu0">1</span> <span class="sy3">-</span> k<span class="sy1">,</span> k<span class="sy3">+</span>corner<span class="sy3">+</span><span class="nu0">3</span><span class="sy3">*</span>quarter<span class="sy3">-</span>value<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy1">;</span><span class="co1">//снизу</span>
&nbsp; <span class="nu0">3</span><span class="sy1">:</span> Print<span class="br0">&#40;</span><span class="br0">&#40;</span>k<span class="sy3">+</span>corner<span class="sy3">+</span><span class="nu0">4</span><span class="sy3">*</span>quarter<span class="sy3">-</span>value<span class="sy1">,</span> k<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy1">;</span><span class="co1">//слева</span>
<span class="kw1">end</span></pre></td></tr></table></div></td></tr></tbody></table></div><div class="codeblock"><table class="pascal"><thead><tr><td colspan="2" id="554924872"  class="head">Pascal</td></tr></thead><tbody><tr class="li1"><td><div id="554924872" style="height: 318px" class="codeframe"><table><tr class="li1"><td class="ln" style="padding: 0px 10px 0px 5px;"><pre class="de1">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
</pre></td><td class="de1"><pre class="de1"><span class="co1">//Поиск индекса элемента со значением valueX в матрице NxМ</span>
##
<span class="kw1">var</span> <span class="br0">&#40;</span>n<span class="sy1">,</span>m<span class="sy1">,</span>valueX<span class="br0">&#41;</span> <span class="sy1">:</span><span class="sy3">=</span> <span class="br0">&#40;</span><span class="nu0">6</span><span class="sy1">,</span><span class="nu0">3</span><span class="sy1">,</span><span class="nu0">4</span><span class="br0">&#41;</span><span class="sy1">;</span>
MatrGen<span class="br0">&#40;</span>n<span class="sy1">,</span>m<span class="sy1">,</span><span class="br0">&#40;</span>i<span class="sy1">,</span>j<span class="br0">&#41;</span> <span class="sy3">-</span>&gt;<span class="kw1">begin</span> <span class="kw1">var</span> x<span class="sy1">:</span><span class="sy3">=</span> min<span class="br0">&#40;</span>i<span class="sy1">,</span>j<span class="sy1">,</span>n<span class="sy3">-</span><span class="nu0">1</span><span class="sy3">-</span>i<span class="sy1">,</span>m<span class="sy3">-</span><span class="nu0">1</span><span class="sy3">-</span>j<span class="br0">&#41;</span><span class="sy1">;</span> Result <span class="sy1">:</span><span class="sy3">=</span> n<span class="sy3">*</span>m<span class="sy3">+</span><span class="nu0">1</span> <span class="sy3">-</span> 
<span class="kw1">if</span> <span class="br0">&#40;</span>i&gt;x<span class="br0">&#41;</span> <span class="kw1">and</span> <span class="br0">&#40;</span>m<span class="sy3">-</span><span class="nu0">1</span><span class="sy3">-</span>j&gt;x<span class="br0">&#41;</span> <span class="kw1">then</span> <span class="br0">&#40;</span>n<span class="sy3">-</span><span class="nu0">2</span><span class="sy3">*</span>x<span class="sy3">-</span><span class="nu0">2</span><span class="br0">&#41;</span><span class="sy3">*</span><span class="br0">&#40;</span>m<span class="sy3">-</span><span class="nu0">2</span><span class="sy3">*</span>x<span class="sy3">-</span><span class="nu0">2</span><span class="br0">&#41;</span> <span class="sy3">+</span> <span class="br0">&#40;</span>i<span class="sy3">-</span>x<span class="br0">&#41;</span> <span class="sy3">+</span> <span class="br0">&#40;</span>j<span class="sy3">-</span>x<span class="br0">&#41;</span> 
<span class="kw1">else</span> <span class="br0">&#40;</span>n<span class="sy3">-</span><span class="nu0">2</span><span class="sy3">*</span>x<span class="br0">&#41;</span><span class="sy3">*</span><span class="br0">&#40;</span>m<span class="sy3">-</span><span class="nu0">2</span><span class="sy3">*</span>x<span class="br0">&#41;</span> <span class="sy3">-</span> <span class="br0">&#40;</span>i<span class="sy3">-</span>x<span class="br0">&#41;</span> <span class="sy3">-</span> <span class="br0">&#40;</span>j<span class="sy3">-</span>x<span class="br0">&#41;</span> <span class="kw1">end</span><span class="br0">&#41;</span><span class="sy1">.</span><span class="me1">Println</span><span class="sy1">;</span>
&nbsp;
<span class="kw1">var</span> value <span class="sy1">:</span><span class="sy3">=</span> n<span class="sy3">*</span>m<span class="sy3">+</span><span class="nu0">1</span><span class="sy3">-</span>valueX<span class="sy1">;</span>
<span class="kw1">var</span> k <span class="sy1">:</span><span class="sy3">=</span> trunc<span class="br0">&#40;</span><span class="br0">&#40;</span>n<span class="sy3">+</span>m <span class="sy3">-</span> <span class="kw3">sqrt</span><span class="br0">&#40;</span><span class="br0">&#40;</span>n<span class="sy3">+</span>m<span class="br0">&#41;</span><span class="sy3">*</span><span class="br0">&#40;</span>n<span class="sy3">+</span>m<span class="br0">&#41;</span> <span class="sy3">-</span> <span class="nu0">4</span><span class="sy3">*</span><span class="br0">&#40;</span>n<span class="sy3">*</span>m<span class="sy3">-</span>value<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="sy3">/</span> <span class="nu0">4</span><span class="br0">&#41;</span><span class="sy1">;</span>
<span class="kw1">var</span> corner1 <span class="sy1">:</span><span class="sy3">=</span> <span class="br0">&#40;</span>n<span class="sy3">-</span><span class="nu0">2</span><span class="sy3">*</span>k<span class="br0">&#41;</span><span class="sy3">*</span><span class="br0">&#40;</span>m<span class="sy3">-</span><span class="nu0">2</span><span class="sy3">*</span>k<span class="br0">&#41;</span><span class="sy1">;</span>
<span class="kw1">var</span> corner2 <span class="sy1">:</span><span class="sy3">=</span> corner1 <span class="sy3">-</span> <span class="br0">&#40;</span>m<span class="sy3">-</span><span class="nu0">1</span><span class="sy3">-</span><span class="nu0">2</span><span class="sy3">*</span>k<span class="br0">&#41;</span><span class="sy1">;</span>
<span class="kw1">var</span> corner3 <span class="sy1">:</span><span class="sy3">=</span> corner2 <span class="sy3">-</span> <span class="br0">&#40;</span>n<span class="sy3">-</span><span class="nu0">1</span> <span class="sy3">-</span><span class="nu0">2</span><span class="sy3">*</span>k<span class="br0">&#41;</span><span class="sy1">;</span>
<span class="kw1">var</span> corner4 <span class="sy1">:</span><span class="sy3">=</span> corner3 <span class="sy3">-</span> <span class="br0">&#40;</span>m<span class="sy3">-</span><span class="nu0">1</span><span class="sy3">-</span><span class="nu0">2</span><span class="sy3">*</span>k<span class="br0">&#41;</span><span class="sy1">;</span>
<span class="kw1">var</span> i<span class="sy1">,</span>j<span class="sy1">:</span> <span class="kw4">integer</span><span class="sy1">;</span>
<span class="kw1">if</span> value &gt; corner3 <span class="kw1">then</span>
&nbsp; <span class="br0">&#40;</span>i<span class="sy1">,</span>j<span class="br0">&#41;</span> <span class="sy1">:</span><span class="sy3">=</span> value&gt;corner2 ? <span class="br0">&#40;</span>k<span class="sy1">,</span> k<span class="sy3">+</span>corner1<span class="sy3">-</span>value<span class="br0">&#41;</span> <span class="sy1">:</span> <span class="br0">&#40;</span>k<span class="sy3">+</span>corner2<span class="sy3">-</span>value<span class="sy1">,</span>m<span class="sy3">-</span><span class="nu0">1</span><span class="sy3">-</span>k<span class="br0">&#41;</span>
<span class="kw1">else</span> <span class="br0">&#40;</span>i<span class="sy1">,</span>j<span class="br0">&#41;</span> <span class="sy1">:</span><span class="sy3">=</span> value&gt;corner4 ? <span class="br0">&#40;</span>n<span class="sy3">-</span><span class="nu0">1</span><span class="sy3">-</span>k<span class="sy1">,</span> k<span class="sy3">+</span>value<span class="sy3">-</span>corner4<span class="br0">&#41;</span> <span class="sy1">:</span> <span class="br0">&#40;</span>n<span class="sy3">-</span><span class="nu0">1</span><span class="sy3">-</span>k<span class="sy3">-</span>corner4<span class="sy3">+</span>value<span class="sy1">,</span>k<span class="br0">&#41;</span><span class="sy1">;</span>
Print<span class="br0">&#40;</span>valueX<span class="sy1">,</span><span class="br0">&#40;</span>i<span class="sy1">,</span>j<span class="br0">&#41;</span><span class="br0">&#41;</span></pre></td></tr></table></div></td></tr></tbody></table></div></div>

]]></content:encoded>
			<dc:creator>canadamoscow</dc:creator>
			<guid isPermaLink="true">https://www.cyberforum.ru/blogs/1600627/7202.html</guid>
		</item>
	</channel>
</rss>
