<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9373&amp;view=findpost&amp;p=3174718</guid>
        <pubDate>Thu, 19 Jul 2012 13:49:32 +0000</pubDate>
        <title>Нужны Исходники на прямой симплекс-метод</title>
        <link>https://forum.sources.ru/index.php?showtopic=9373&amp;view=findpost&amp;p=3174718</link>
        <description><![CDATA[MBo: &gt;Обновите пожалуйста ссылочку на метод Гомори<br>
На странице <a class='tag-url' href='http://forum.algolist.ru/' target='_blank'>http://forum.algolist.ru/</a> есть ссылки на старые базы форума, там надо рыться]]></description>
        <author>MBo</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9373&amp;view=findpost&amp;p=3173992</guid>
        <pubDate>Wed, 18 Jul 2012 16:31:21 +0000</pubDate>
        <title>Нужны Исходники на прямой симплекс-метод</title>
        <link>https://forum.sources.ru/index.php?showtopic=9373&amp;view=findpost&amp;p=3173992</link>
        <description><![CDATA[cubazis: Все приветики.<br>Обновите пожалуйста ссылочку на метод Гомори.]]></description>
        <author>cubazis</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9373&amp;view=findpost&amp;p=3037477</guid>
        <pubDate>Fri, 02 Dec 2011 20:02:44 +0000</pubDate>
        <title>Нужны Исходники на прямой симплекс-метод</title>
        <link>https://forum.sources.ru/index.php?showtopic=9373&amp;view=findpost&amp;p=3037477</link>
        <description><![CDATA[Smitt&amp;Wesson: Или тут. http://www.biz-for.ru/programs/with_payment/Linear_Optimization/index.php<br>
<span class="b-attach" data-size="80729" data-hits="1103" data-attach-id="14105" data-attach-post-id="3037477">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3037477&amp;attach_id=14105' title='Скачать файл' target='_blank'>linskin.jpg</a> (, : 1103)
		</span>]]></description>
        <author>Smitt&amp;Wesson</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9373&amp;view=findpost&amp;p=2857527</guid>
        <pubDate>Sun, 20 Mar 2011 02:43:30 +0000</pubDate>
        <title>Нужны Исходники на прямой симплекс-метод</title>
        <link>https://forum.sources.ru/index.php?showtopic=9373&amp;view=findpost&amp;p=2857527</link>
        <description><![CDATA[alex_ey: Есть очень удобная программа для решения задач симплекс-методом.<br>
<br>
Скачать можно тут: http://alexeyspace.ru/programs/2/<br>
<br>
Скриншот:<br>
<br>
<img class='tag-img' src='http://alexeyspace.ru/programs/2/scalc17.jpg' alt='user posted image'><br>
<br>
Там же можно купить курсовую по симплекс-методу, а также исходники этой программы.]]></description>
        <author>alex_ey</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9373&amp;view=findpost&amp;p=2701933</guid>
        <pubDate>Mon, 20 Sep 2010 17:42:12 +0000</pubDate>
        <title>Нужны Исходники на прямой симплекс-метод</title>
        <link>https://forum.sources.ru/index.php?showtopic=9373&amp;view=findpost&amp;p=2701933</link>
        <description><![CDATA[lyubasyk: Привет&#33; Помогите и мне, пожалуйста&#33;  :wall: Нужен исходник метода Гомори (отсекающих плоскостей) на С#]]></description>
        <author>lyubasyk</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9373&amp;view=findpost&amp;p=2243118</guid>
        <pubDate>Tue, 14 Apr 2009 15:09:39 +0000</pubDate>
        <title>Нужны Исходники на прямой симплекс-метод</title>
        <link>https://forum.sources.ru/index.php?showtopic=9373&amp;view=findpost&amp;p=2243118</link>
        <description><![CDATA[Анютка_Б: <strong class='tag-b'>GrAnd</strong>Привет.Спасибо за програму, это именно то, сто я искала.<br>
Но не могли бы вы подсказать, как оформить рабочую форму, где вводить данные.<br>
Зарание спасибо.]]></description>
        <author>Анютка_Б</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9373&amp;view=findpost&amp;p=2242024</guid>
        <pubDate>Mon, 13 Apr 2009 16:40:55 +0000</pubDate>
        <title>Нужны Исходники на прямой симплекс-метод</title>
        <link>https://forum.sources.ru/index.php?showtopic=9373&amp;view=findpost&amp;p=2242024</link>
        <description><![CDATA[Анютка_Б: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=9373&view=findpost&p=91341'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>GrAnd &#064; <time class="tag-quote__quoted-time" datetime="2003-05-11T08:20:39+00:00">11.05.03, 08:20</time></span><div class='quote '>Привет.Спасибо за програму, это именно то, сто я искала.<br>
Но не могли бы вы подсказать, как оформить рабочую форму, где вводить данные.<br>
Зарание спасибо. :rolleyes:  </div></div>]]></description>
        <author>Анютка_Б</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9373&amp;view=findpost&amp;p=1782683</guid>
        <pubDate>Wed, 28 Nov 2007 16:08:54 +0000</pubDate>
        <title>Нужны Исходники на прямой симплекс-метод</title>
        <link>https://forum.sources.ru/index.php?showtopic=9373&amp;view=findpost&amp;p=1782683</link>
        <description><![CDATA[Demaonbh: Огромное спасибо за исходник&#33; А еще не могли бы вы сказать, как вводить данные??]]></description>
        <author>Demaonbh</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9373&amp;view=findpost&amp;p=346756</guid>
        <pubDate>Mon, 26 Apr 2004 22:53:16 +0000</pubDate>
        <title>Нужны Исходники на прямой симплекс-метод</title>
        <link>https://forum.sources.ru/index.php?showtopic=9373&amp;view=findpost&amp;p=346756</link>
        <description><![CDATA[C300G: <strong class='tag-b'>azazel</strong>, <a class='tag-url' href='http://algolist.manual.ru/forum/viewtopic.php?t=930&sid=d1caddea5282eed61ab3b397f68562b0' target='_blank'>здесь</a> глянь.]]></description>
        <author>C300G</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9373&amp;view=findpost&amp;p=346559</guid>
        <pubDate>Mon, 26 Apr 2004 16:38:05 +0000</pubDate>
        <title>Нужны Исходники на прямой симплекс-метод</title>
        <link>https://forum.sources.ru/index.php?showtopic=9373&amp;view=findpost&amp;p=346559</link>
        <description><![CDATA[azazel: может у вас и исходники на метод Гомори есть??? я бы не отказался]]></description>
        <author>azazel</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9373&amp;view=findpost&amp;p=91341</guid>
        <pubDate>Sun, 11 May 2003 08:20:39 +0000</pubDate>
        <title>Нужны Исходники на прямой симплекс-метод</title>
        <link>https://forum.sources.ru/index.php?showtopic=9373&amp;view=findpost&amp;p=91341</link>
        <description><![CDATA[GrAnd: <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">PROGRAM SIMPLEX_METOD;</div><div class="code_line">USES CRT;</div><div class="code_line">LABEL ZN,ST,ELL,_END;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;TYPE MAS=ARRAY[1..30] OF REAL;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; MASB=ARRAY[1..30] OF STRING[3];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; MASX=ARRAY[1..30,1..30] OF REAL;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">VAR Fo,FunctPr,B,H,Hnew,C,Cnew,CPr,CPrnew,FX:MAS;</div><div class="code_line">&nbsp;&nbsp; &nbsp;X,Xnew:MASX;</div><div class="code_line">&nbsp;&nbsp; &nbsp;BS,Bvsp,ZNAC:MASB;</div><div class="code_line">&nbsp;&nbsp; &nbsp;MIN,I1,I,J,Kx,Ky,Kit,NachKell,NachY,K_st:INTEGER;</div><div class="code_line">&nbsp;&nbsp; &nbsp;PriznacY,KLstr,KLst,ErrCode,Dop_X:INTEGER;</div><div class="code_line">&nbsp;&nbsp; &nbsp;P,P1,Mo,F0,Epsilon,Z:REAL;</div><div class="code_line">&nbsp;&nbsp; &nbsp;VSP,S,PrGomory:STRING;</div><div class="code_line">&nbsp;&nbsp; &nbsp;F:TEXT;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;DPx,DPy,Fm,Kell,Kstr:INTEGER;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; { Функция создания индексов }</div><div class="code_line">&nbsp;</div><div class="code_line">FUNCTION SIMVB(V:INTEGER;S:CHAR):STRING;</div><div class="code_line">&nbsp;&nbsp;VAR M,Z:STRING;</div><div class="code_line">BEGIN</div><div class="code_line">&nbsp;STR(V,M);</div><div class="code_line">&nbsp;Z:=S+M;</div><div class="code_line">&nbsp;SIMVB:=Z;</div><div class="code_line">END;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; { Процедура записи данных в файл }</div><div class="code_line">&nbsp;</div><div class="code_line">PROCEDURE SAVE(X1:REAL;K:STRING;Mstr:INTEGER);</div><div class="code_line">VAR V:STRING;</div><div class="code_line">BEGIN</div><div class="code_line">ASSIGN(F,&#39;SIMPLEX.DAT&#39;);</div><div class="code_line">APPEND(F);</div><div class="code_line">CASE Mstr OF</div><div class="code_line">&nbsp;0:WRITELN(F,&#39;&#39;);</div><div class="code_line">&nbsp;1:BEGIN</div><div class="code_line">&nbsp;&nbsp; IF K=&#39; &#39; THEN STR(X1:1:0,V) ELSE STR(X1:10:4,V);</div><div class="code_line">&nbsp;&nbsp; &nbsp;WRITE(F,V);</div><div class="code_line">&nbsp;&nbsp; &nbsp;WRITE(F,&#39; &nbsp;&#39;);</div><div class="code_line">&nbsp;&nbsp; END;</div><div class="code_line">&nbsp;2:WRITE(F,K);</div><div class="code_line">&nbsp;3:WRITELN(F,K);</div><div class="code_line">END;</div><div class="code_line">CLOSE(F);</div><div class="code_line">END;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; { Определение дополнительных переменных }</div><div class="code_line">&nbsp;</div><div class="code_line">PROCEDURE DOP_PER;</div><div class="code_line">&nbsp;BEGIN</div><div class="code_line">&nbsp;&nbsp; IF ZNAC[I1]=&#39;=&#39; THEN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;BEGIN</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; Kell:=Kell+1;Bvsp[Kell]:=SIMVB(DPy,&#39;Y&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; DPy:=DPy+1;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; Xnew[I1,Kell]:=1;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; IF Fm=1 THEN FX[Kell]:=-1 ELSE FX[Kell]:=1;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; FunctPr[Kell]:=1;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; FOR I:=1 TO Kstr DO</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;IF I&#60;&#62;I1 THEN Xnew[I,Kell]:=0;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;END;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; IF ZNAC[I1]=&#39;&#62;=&#39; THEN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;BEGIN</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; Kell:=Kell+1;Bvsp[Kell]:=SIMVB(DPx,&#39;X&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;DPx:=DPx+1;Dop_X:=Dop_X+1;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; Xnew[I1,Kell]:=-1;FX[Kell]:=0;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; FOR I:=1 TO Kstr DO</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;IF I&#60;&#62;I1 THEN Xnew[I,Kell]:=0;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; Kell:=Kell+1;Bvsp[Kell]:=SIMVB(DPy,&#39;Y&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; DPy:=DPy+1;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; Xnew[I1,Kell]:=1;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; IF Fm=1 THEN FX[Kell]:=-1 ELSE FX[Kell]:=1;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; FunctPr[Kell]:=1;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; FOR I:=1 TO Kstr DO</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;IF I&#60;&#62;I1 THEN Xnew[I,Kell]:=0;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;END;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; IF ZNAC[I1]=&#39;&#60;=&#39; THEN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;BEGIN</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Kell:=Kell+1;Bvsp[Kell]:=SIMVB(DPx,&#39;X&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;DPx:=DPx+1;Dop_X:=Dop_X+1;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; Xnew[I1,Kell]:=1;FX[Kell]:=0;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; FOR I:=1 TO Kstr DO</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;IF I&#60;&#62;I1 THEN Xnew[I,Kell]:=0;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;END;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;END;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; { Процедура сокращения Y }</div><div class="code_line">&nbsp;</div><div class="code_line">PROCEDURE SOKR;</div><div class="code_line">VAR P:INTEGER;</div><div class="code_line">&nbsp;BEGIN</div><div class="code_line">&nbsp;&nbsp;Kell:=Kell-1;</div><div class="code_line">&nbsp;&nbsp;FOR P:=NachKell+DOP_X TO Kell DO</div><div class="code_line">&nbsp;&nbsp; IF Bvsp[P]=BS[KLstr] THEN BEGIN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FOR J:=P TO Kell DO</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Bvsp[J]:=Bvsp[J+1];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FunctPr[J]:=FunctPr[J+1];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Fx[J]:=Fx[J+1];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FOR I:=1 TO Kstr DO</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Xnew[I,J]:=Xnew[I,J+1]</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; END;</div><div class="code_line">&nbsp;END;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; { Процедура, выполняющая метод Гомори }</div><div class="code_line">&nbsp;</div><div class="code_line">PROCEDURE GOMORY;</div><div class="code_line">VAR MAX,Z:REAL;</div><div class="code_line">BEGIN</div><div class="code_line">&nbsp;KLstr:=1;</div><div class="code_line">&nbsp;&nbsp;MAX:=H[1]-INT(H[1]);</div><div class="code_line">&nbsp;FOR I1:=2 TO Kstr DO</div><div class="code_line">&nbsp;&nbsp; IF (H[I1]-INT(H[I1]))&#62;=MAX THEN BEGIN MAX:=H[I1]; KLstr:=I1;END;</div><div class="code_line">&nbsp;&nbsp;Kstr:=Kstr+1;</div><div class="code_line">&nbsp;Hnew[Kstr]:=H[KLstr]-INT(H[KLstr]);</div><div class="code_line">&nbsp;&nbsp;FOR I1:=1 TO Kell DO</div><div class="code_line">&nbsp;&nbsp; BEGIN</div><div class="code_line">&nbsp;&nbsp; &nbsp;Z:=INT(X[KLstr,I1]);</div><div class="code_line">&nbsp;&nbsp; &nbsp;IF X[KLstr,I1]&#60;0 THEN Z:=Z-1;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Xnew[Kstr,I1]:=X[KLstr,I1]-Z;</div><div class="code_line">&nbsp;&nbsp; END;</div><div class="code_line">ZNAC[Kstr]:=&#39;&#62;=&#39;;</div><div class="code_line">END;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; { Процедура, выполняющая Симплекс метод }</div><div class="code_line">&nbsp;</div><div class="code_line">PROCEDURE SIMPLEX;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;LABEL POVZNAC,NACH;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">BEGIN</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; { Подготовка к вводу данных }</div><div class="code_line">&nbsp;</div><div class="code_line">NachKell:=Kell;</div><div class="code_line">DPx:=Kell+1;DPy:=1;</div><div class="code_line">Kx:=1;Ky:=4;</div><div class="code_line">Epsilon:=0.00001;</div><div class="code_line">CLRSCR;</div><div class="code_line">WRITELN(&#39;Введите систему уравнений:&#39;);</div><div class="code_line">WRITELN(&#39;(коэффициенты при всех Х,знак и свободные члены)&#39;);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; { Ввод данных }</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;FOR I:=1 TO Kstr DO</div><div class="code_line">&nbsp;&nbsp; BEGIN</div><div class="code_line">POVZNAC:</div><div class="code_line">&nbsp;&nbsp; &nbsp;WRITELN(&#39;Введите &#39;,I,&#39;-е уравнение:&#39;);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; { Ввод коэффициентов при X в I-том уравнении }</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;FOR J:=1 TO Kell DO</div><div class="code_line">&nbsp;&nbsp; &nbsp; BEGIN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;GOTOXY(Kx,Ky);Kx:=Kx+6;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;READLN(Xnew[I,J]);</div><div class="code_line">&nbsp;&nbsp; &nbsp; END;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; { Ввод знака в I-том уравнении }</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Kx:=Kx+6;GOTOXY(Kx,Ky);READLN(ZNAC[I]);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{Проверка введенного знака на правильность}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;IF (ZNAC[I]&#60;&#62;&#39;&#62;=&#39;) AND (ZNAC[I]&#60;&#62;&#39;=&#39;) AND (ZNAC[I]&#60;&#62;&#39;&#60;=&#39;)</div><div class="code_line">&nbsp;&nbsp; &nbsp;THEN BEGIN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;WRITELN(&#39;Неправильно задан знак&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Ky:=Ky+3;Kx:=1;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;GOTO POVZNAC;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; END;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;IF (ZNAC[I]=&#39;=&#39;) OR (ZNAC[I]=&#39;&#62;=&#39;) THEN PriznacY:=1;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; { Ввод свободного члена в I-том уравнении }</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Kx:=Kx+6;GOTOXY(Kx,Ky);READ(B[I]);</div><div class="code_line">&nbsp;&nbsp; &nbsp;Kx:=1;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Ky:=Ky+2;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; END;</div><div class="code_line">&nbsp;</div><div class="code_line">WRITELN(&#39;Введите коэффициенты при Х в целевой функции:&#39;);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; { Ввод коэффициентов при Х в целевой функции }</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; FOR J:=1 TO Kell DO</div><div class="code_line">&nbsp;&nbsp; &nbsp;BEGIN</div><div class="code_line">&nbsp;&nbsp; &nbsp; GOTOXY(Kx,Ky);Kx:=Kx+6;</div><div class="code_line">&nbsp;&nbsp; &nbsp; READ(FX[J]);</div><div class="code_line">&nbsp;&nbsp; &nbsp;END;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; { Подготовка &nbsp;индексации X }</div><div class="code_line">&nbsp;</div><div class="code_line">FOR J:=1 TO Kell DO</div><div class="code_line">&nbsp;Bvsp[J]:=SIMVB(J,&#39;X&#39;);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; { Определение дополнительных переменных }</div><div class="code_line">&nbsp;</div><div class="code_line">FOR I1:=1 TO Kstr DO</div><div class="code_line">&nbsp;DOP_PER;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; { Замена оптимальной функции с MAX на MIN при наличии</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; в базисе Y-ков если идет исследование на минимум &nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">MIN:=0;</div><div class="code_line">IF (Fm=1) AND (PriznacY=1) THEN</div><div class="code_line">&nbsp;&nbsp; BEGIN</div><div class="code_line">&nbsp;&nbsp; &nbsp;MIN:=Fm;Fm:=2;</div><div class="code_line">&nbsp;&nbsp; &nbsp; FOR J:=1 TO Kell DO</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;FX[J]:=-FX[J];</div><div class="code_line">&nbsp;&nbsp; END;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; { Сортировка дополнительных переменных по индексу }</div><div class="code_line">&nbsp;</div><div class="code_line">FOR I1:=NachKell+1 TO Kell DO</div><div class="code_line">&nbsp;&nbsp;FOR J:=I1+1 TO Kell DO</div><div class="code_line">&nbsp;&nbsp;IF Bvsp[J]&#60;Bvsp[I1] THEN</div><div class="code_line">&nbsp;&nbsp; &nbsp; BEGIN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;VSP:=Bvsp[J];Bvsp[J]:=Bvsp[I1];Bvsp[I1]:=VSP;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;P:=FX[J];FX[J]:=FX[I1];FX[I1]:=P;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;P:=FunctPr[J];FunctPr[J]:=FunctPr[I1];FunctPr[I1]:=P;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;FOR I:=1 TO Kstr DO</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;BEGIN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; P:=Xnew[I,I1];Xnew[I,I1]:=Xnew[I,J];Xnew[I,J]:=P;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;END;</div><div class="code_line">&nbsp;&nbsp; &nbsp; END;</div><div class="code_line">Kit:=1;</div><div class="code_line">CLRSCR;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; { Подготовка столбцов C,B,H }</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; FOR I:=1 TO Kstr DO</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;BEGIN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; Hnew[I]:=B[I];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;FOR J:=NachKell+1 TO Kell DO</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;IF Xnew[I,J]=1 THEN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; BEGIN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BS[I]:=Bvsp[J];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Cnew[I]:=FX[J];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CPrnew[I]:=FunctPr[J];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;END;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; END;</div><div class="code_line">&nbsp;</div><div class="code_line">NACH:;</div><div class="code_line">&nbsp;</div><div class="code_line">REPEAT</div><div class="code_line">&nbsp;</div><div class="code_line">PriznacY:=0;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; { Передача данных в исходные переменные c обнулением чисел,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; по модулю меньших чем 0.00001 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">FOR I:=1 TO Kstr DO</div><div class="code_line">&nbsp;BEGIN</div><div class="code_line">&nbsp;IF INT(10000*Hnew[I])=0 THEN H[I]:=+0 ELSE H[I]:=Hnew[I];</div><div class="code_line">&nbsp;C[I]:=Cnew[I];</div><div class="code_line">&nbsp;CPr[I]:=CPrnew[I];</div><div class="code_line">&nbsp;IF BS[I][1]=&#39;Y&#39; THEN PriznacY:=1;</div><div class="code_line">&nbsp;FOR J:=1 TO Kell DO</div><div class="code_line">&nbsp;&nbsp;IF INT(10000*Xnew[I,J])=0 THEN X[I,J]:=+0 ELSE X[I,J]:=Xnew[I,J];</div><div class="code_line">&nbsp;&nbsp; END;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; { Обнуление и вывод индексации элементов индексной строки }</div><div class="code_line">&nbsp;</div><div class="code_line">SAVE(0,&#39; &nbsp; &nbsp; C &nbsp; &nbsp; &nbsp;Б &nbsp; &nbsp; &nbsp; &nbsp;H &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;,2);</div><div class="code_line">FOR J:=1 TO Kell DO</div><div class="code_line">&nbsp;BEGIN</div><div class="code_line">&nbsp;SAVE(0,Bvsp[J],2);</div><div class="code_line">&nbsp;P1:=LENGTH(Bvsp[J]);</div><div class="code_line">&nbsp;IF P1=2 THEN SAVE(0,&#39; &#39;,2);</div><div class="code_line">&nbsp;SAVE(0,&#39; &nbsp; &nbsp; &nbsp; &nbsp; &#39;,2);</div><div class="code_line">&nbsp;Fo[J]:=0;</div><div class="code_line">&nbsp;END;</div><div class="code_line">&nbsp;SAVE(0,&#39;&#39;,0);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; { Вывод Симплекс-таблицы }</div><div class="code_line">&nbsp;</div><div class="code_line">P1:=0;</div><div class="code_line">FOR I:=1 TO Kstr DO</div><div class="code_line">&nbsp;BEGIN</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;IF CPr[I]=1 THEN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;IF C[I]&#60;0 THEN SAVE(0,&#39;-M &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;,2)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ELSE SAVE(0,&#39;+M &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;,2)</div><div class="code_line">&nbsp;&nbsp;ELSE SAVE(C[I],&#39;&#39;,1);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;SAVE(0,BS[I],2);</div><div class="code_line">&nbsp;&nbsp;P1:=LENGTH(BS[I]); IF P1=2 THEN SAVE(0,&#39; &#39;,2);</div><div class="code_line">&nbsp;&nbsp;SAVE(0,&#39; &#39;,2);SAVE(H[I],&#39;&#39;,1);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;FOR J:=1 TO Kell DO</div><div class="code_line">&nbsp;&nbsp; SAVE(X[I,J],&#39;&#39;,1);</div><div class="code_line">&nbsp;&nbsp;SAVE(0,&#39;&#39;,0);</div><div class="code_line">&nbsp;END;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; { Вычисление значений в индексной строке }</div><div class="code_line">&nbsp;</div><div class="code_line">F0:=0;</div><div class="code_line">FOR J:=1 TO Kell DO</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; Fo[J]:=0;</div><div class="code_line">&nbsp;</div><div class="code_line">FOR I1:=1 TO Kstr DO</div><div class="code_line">&nbsp;&nbsp;BEGIN</div><div class="code_line">&nbsp;&nbsp;IF PriznacY=1 THEN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;IF BS[I1][1]=&#39;Y&#39; THEN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; BEGIN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;F0:=F0+H[I1];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;FOR J:=1 TO Kell DO</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Fo[J]:=Fo[J]+X[I1,J];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; END;</div><div class="code_line">&nbsp;&nbsp;IF PriznacY=0 THEN</div><div class="code_line">&nbsp;&nbsp; &nbsp; BEGIN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;F0:=F0+H[I1]*C[I1];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;FOR J:=1 TO Kell DO</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Fo[J]:=Fo[J]+C[I1]*X[I1,J];</div><div class="code_line">&nbsp;&nbsp; &nbsp; END;</div><div class="code_line">&nbsp;</div><div class="code_line">FOR J:=1 TO Kell DO</div><div class="code_line">&nbsp;IF Bvsp[J][1]=&#39;Y&#39; THEN Fo[J]:=+0</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ELSE IF ABS(Fo[J])&#60;Epsilon THEN Fo[J]:=+0;</div><div class="code_line">&nbsp;&nbsp;END;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; { Вывод значений целевой функции }</div><div class="code_line">&nbsp;</div><div class="code_line">SAVE(0,&#39; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;,2);SAVE(F0,&#39;&#39;,1);</div><div class="code_line">FOR J:=1 TO Kell DO</div><div class="code_line">&nbsp;BEGIN</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;IF PriznacY&#60;&#62;1 THEN Fo[J]:=Fo[J]-FX[J];</div><div class="code_line">&nbsp;&nbsp;SAVE(Fo[J],&#39;&#39;,1);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;END;</div><div class="code_line">SAVE(0,&#39;&#39;,0);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; { Проверка условия оптимальности }</div><div class="code_line">&nbsp;</div><div class="code_line">P:=0;</div><div class="code_line">FOR J:=1 TO Kell DO</div><div class="code_line">&nbsp;&nbsp;IF Fm=1 THEN IF Fo[J]&#60;-Epsilon THEN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BEGIN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; P:=1;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CONTINUE;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;END &nbsp;ELSE</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ELSE IF Fo[J]&#62;Epsilon THEN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BEGIN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; P:=1;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CONTINUE;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;END;</div><div class="code_line">&nbsp;</div><div class="code_line">IF P&#60;&#62;1 THEN</div><div class="code_line">&nbsp;&nbsp; BEGIN</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;SAVE(0,&#39;В &#39;,2);SAVE(Kit,&#39; &#39;,1);</div><div class="code_line">&nbsp;&nbsp; &nbsp;SAVE(0,&#39;-й итерации было получено оптимальное решение&#39;,3);</div><div class="code_line">&nbsp;&nbsp; &nbsp;SAVE(0,&#39;т.к. при исследовании на &#39;,2);</div><div class="code_line">&nbsp;&nbsp; &nbsp;IF Fm=1 THEN</div><div class="code_line">&nbsp;&nbsp; &nbsp; SAVE(0,&#39;МАКСИМУМ индексная строка не содержит отицательных элементов.&#39;,3)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ELSE</div><div class="code_line">&nbsp;&nbsp; &nbsp; SAVE(0,&#39;МИНИМУМ индексная строка не содержит положительных элементов.&#39;,3);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;FOR I1:=1 TO Kstr DO</div><div class="code_line">&nbsp;&nbsp; &nbsp; IF BS[I1][1]=&#39;Y&#39; THEN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;BEGIN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; SAVE(0,&#39;Но т.к. из базиса не выведены все Y, то &#39;,3);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; SAVE(0,&#39;можно сделать вывод, что РЕШЕНИЙ НЕТ&#39;,3);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; HALT;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;END;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; { Округление значений массива Х до целого числа,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; если разность округленного и обычного значений</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; по модулю меньше чем 0.00001 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</div><div class="code_line">&nbsp;</div><div class="code_line">FOR I:=1 TO Kstr DO</div><div class="code_line">&nbsp;BEGIN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; Z:=ROUND(H[I]);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; IF ABS(Z-H[I])&#60;Epsilon THEN H[I]:=ROUND(H[I]);</div><div class="code_line">&nbsp;&nbsp;FOR J:=1 TO Kell DO</div><div class="code_line">&nbsp;&nbsp; BEGIN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;IF X[I,J]&#60;0 THEN Z:=ROUND(X[I,J]);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;IF ABS(Z-X[I,J])&#60;Epsilon THEN X[I,J]:=ROUND(X[I,J]);</div><div class="code_line">&nbsp;&nbsp; END;</div><div class="code_line">&nbsp;END;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; { Проверка целочисленности решения }</div><div class="code_line">&nbsp;</div><div class="code_line">P1:=0;</div><div class="code_line">FOR I:=1 TO Kstr DO</div><div class="code_line">&nbsp;BEGIN</div><div class="code_line">&nbsp;IF INT(10000*FRAC(H[I]))&#60;&#62;0 THEN BEGIN P1:=1;CONTINUE; END;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;FOR J:=1 TO Kell DO</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; IF BS[I]=Bvsp[J] THEN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;FOR I1:=1 TO Kstr DO</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IF ABS(FRAC(X[I1,J]))&#62;=Epsilon THEN BEGIN P1:=1;CONTINUE; END;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;END;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; { Составление новой базисной строки для целочисленного решения }</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;IF (PrGomory=&#39;Y&#39;) AND (P1=1) THEN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; BEGIN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;GOMORY;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;NachKell:=Kell;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;I1:=Kstr;DPy:=1;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DOP_PER;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;BS[Kstr]:=Bvsp[Kell];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;CPrnew[Kstr]:=FunctPr[Kell];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Cnew[Kstr]:=FX[Kell];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;GOTO NACH;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;END;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;IF P1=0 THEN SAVE(0,&#39;Данное решение является целочисленым.&#39;,3);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;SAVE(0,&#39;При этом:&#39;,3);</div><div class="code_line">&nbsp;&nbsp; &nbsp;IF MIN=1 THEN BEGIN F0:=-F0;Fm:=MIN; END;</div><div class="code_line">&nbsp;&nbsp; &nbsp;IF Fm=1 THEN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;SAVE(0,&#39;Fmax=&#39;,2)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ELSE</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;SAVE(0,&#39;Fmin=&#39;,2);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;SAVE(F0,&#39;&#39;,1);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;SAVE(0,&#39;&#39;,0);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;FOR I1:=1 TO Kstr DO</div><div class="code_line">&nbsp;&nbsp; &nbsp; BEGIN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;SAVE(0,&#39; &nbsp;&#39;,2);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;SAVE(0,BS[I1],2);SAVE(0,&#39;=&#39;,2);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;SAVE(H[I1],&#39;&#39;,1);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;SAVE(0,&#39;&#39;,0);</div><div class="code_line">&nbsp;&nbsp; &nbsp; END;</div><div class="code_line">&nbsp;&nbsp; &nbsp;HALT;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; END;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; { Нахождение ключевого столбца }</div><div class="code_line">&nbsp;</div><div class="code_line">KLst:=1;Mo:=0;</div><div class="code_line">FOR J:=1 TO Kell DO</div><div class="code_line">&nbsp;IF Fm=1 THEN</div><div class="code_line">&nbsp;&nbsp; &nbsp;IF Fo[J]&#60;Mo THEN Mo:=Fo[J];</div><div class="code_line">&nbsp;</div><div class="code_line">FOR J:=1 TO Kell DO</div><div class="code_line">&nbsp;BEGIN</div><div class="code_line">&nbsp;&nbsp;IF Bvsp[J][1]&#60;&#62;&#39;Y&#39; THEN</div><div class="code_line">&nbsp;&nbsp; &nbsp; IF Fm=1 THEN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;BEGIN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; IF Fo[J]&#60;0 THEN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;IF Fo[J]&#62;=Mo THEN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; BEGIN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Mo:=Fo[J]; KLst:=J;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; END;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;END</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ELSE</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;BEGIN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; IF Fo[J]&#62;0 THEN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;IF Fo[J]&#62;=Mo THEN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; BEGIN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Mo:=Fo[J]; KLst:=J;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; END;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;END;</div><div class="code_line">&nbsp;END;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;SAVE(0,&#39;Ключевой столбец: &#39;,2);SAVE(KLst,&#39; &#39;,1);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; { Нахождение ключевой строки }</div><div class="code_line">&nbsp;</div><div class="code_line">P1:=0;K_st:=0;</div><div class="code_line">FOR J:=1 TO Kell DO</div><div class="code_line">&nbsp;IF ABS(Mo-Fo[J])&#60;Epsilon THEN</div><div class="code_line">&nbsp;&nbsp;BEGIN</div><div class="code_line">&nbsp;&nbsp; K_st:=K_st+1;</div><div class="code_line">&nbsp;&nbsp; FOR I:=1 TO Kstr DO</div><div class="code_line">&nbsp;&nbsp; &nbsp;IF X[I,KLst]&#62;0 THEN BEGIN B[I]:=H[I]/X[I,KLst]; P:=B[I];KLstr:=I; END</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ELSE BEGIN B[I]:=-1; P1:=P1+1; END;</div><div class="code_line">&nbsp;&nbsp;END;</div><div class="code_line">&nbsp;</div><div class="code_line">IF P1=Kstr*K_st THEN</div><div class="code_line">&nbsp;&nbsp; BEGIN</div><div class="code_line">&nbsp;&nbsp; &nbsp;SAVE(0,&#39;&#39;,0);</div><div class="code_line">&nbsp;&nbsp; &nbsp;SAVE(0,&#39;РЕШЕНИЙ НЕТ т.к. невозможно определить ключевую строку&#39;,3);</div><div class="code_line">&nbsp;&nbsp; &nbsp;HALT;</div><div class="code_line">&nbsp;&nbsp; END;</div><div class="code_line">&nbsp;</div><div class="code_line">P1:=0;</div><div class="code_line">FOR J:=1 TO Kell DO</div><div class="code_line">&nbsp;IF ABS(Mo-Fo[J])&#60;Epsilon THEN</div><div class="code_line">&nbsp;&nbsp;FOR I:=1 TO Kstr DO</div><div class="code_line">&nbsp;&nbsp; &nbsp;IF B[I]&#62;=0 THEN BEGIN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; IF B[I]&#60;P THEN IF Bvsp[KLst]&#60;&#62;BS[I] THEN BEGIN P:=B[I]; KLstr:=I; END;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;IF INT(10000*B[I])=INT(10000*P) THEN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; IF (BS[I][1]=&#39;Y&#39;) AND (BS[KLstr][1]=&#39;X&#39;) THEN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;IF Bvsp[KLst]&#60;&#62;BS[I] THEN BEGIN P:=B[I]; KLstr:=I; END;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;END;</div><div class="code_line">&nbsp;</div><div class="code_line">SAVE(0,&#39;Ключевая строка: &#39;,2);SAVE(KLstr,&#39; &#39;,1);</div><div class="code_line">SAVE(0,&#39;&#39;,0);</div><div class="code_line">&nbsp;</div><div class="code_line">FOR I:=1 TO Kstr DO</div><div class="code_line">&nbsp;IF Bvsp[KLst]=BS[I] THEN</div><div class="code_line">&nbsp;&nbsp; &nbsp;BEGIN</div><div class="code_line">&nbsp;&nbsp; &nbsp; SAVE(0,&#39;РЕШЕНИЙ НЕТ т.к. в базисном столбце уже есть &#39;,3);</div><div class="code_line">&nbsp;&nbsp; &nbsp; SAVE(0,&#39;такая переменная.&#39;,3);</div><div class="code_line">&nbsp;&nbsp; &nbsp; HALT;</div><div class="code_line">&nbsp;&nbsp; &nbsp;END;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; { Вызов процедуры сокращения Y }</div><div class="code_line">&nbsp;</div><div class="code_line">IF CPr[KLstr]=1 THEN SOKR;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; { Построение следующей Симплекс-таблицы }</div><div class="code_line">&nbsp;</div><div class="code_line">BS[KLstr]:=Bvsp[KLst];</div><div class="code_line">Cnew[KLstr]:=FX[KLst];</div><div class="code_line">CPrnew[KLstr]:=FunctPr[KLst];</div><div class="code_line">&nbsp;</div><div class="code_line">FOR I:=1 TO Kstr DO</div><div class="code_line">&nbsp;&nbsp; &nbsp;BEGIN</div><div class="code_line">&nbsp;&nbsp; &nbsp; IF I=KLstr THEN Hnew[I]:=H[I]/X[KLstr,KLst]</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ELSE Hnew[I]:=H[I]-(H[KLstr]*X[I,KLst]/X[KLstr,KLst]);</div><div class="code_line">&nbsp;&nbsp; &nbsp; FOR J:=1 TO Kell DO</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; BEGIN</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;IF (I=KLstr) AND (J=KLst) THEN Xnew[I,J]:=1;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;IF (I=KLstr) AND (J&#60;&#62;KLst) THEN Xnew[I,J]:=X[I,J]/X[KLstr,KLst];</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;IF (I&#60;&#62;KLstr) AND (J=KLst) THEN Xnew[I,J]:=0;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;IF (I&#60;&#62;KLstr) AND (J&#60;&#62;KLst) THEN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Xnew[I,J]:=X[I,J]-(X[KLstr,J]*X[I,KLst]/X[KLstr,KLst]);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; END;</div><div class="code_line">&nbsp;&nbsp; &nbsp;END;</div><div class="code_line">KLst:=0;KLstr:=0;</div><div class="code_line">Kit:=Kit+1;</div><div class="code_line">UNTIL (Kit=0);</div><div class="code_line">&nbsp;</div><div class="code_line">END;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; { Основная программа }</div><div class="code_line">&nbsp;</div><div class="code_line">BEGIN</div><div class="code_line">CLRSCR;</div><div class="code_line">Kit:=0;Dop_X:=0;</div><div class="code_line">ASSIGN(F,&#39;SIMPLEX.DAT&#39;);</div><div class="code_line">REWRITE(F);</div><div class="code_line">CLOSE(F);</div><div class="code_line">&nbsp;</div><div class="code_line">ST:;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;WRITE(&#39;Введите кол-во строк:&#39;);READLN(Kstr);</div><div class="code_line">&nbsp;IF Kstr&#62;10 THEN</div><div class="code_line">&nbsp;&nbsp; &nbsp;BEGIN</div><div class="code_line">&nbsp;&nbsp; &nbsp; WRITELN(&#39;Программа не расчитана на введенное кол-во строк!&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; GOTO ST;</div><div class="code_line">&nbsp;&nbsp; &nbsp;END;</div><div class="code_line">&nbsp;</div><div class="code_line">ELL:</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;WRITE(&#39;Введите кол-во элементов:&#39;);READLN(Kell);</div><div class="code_line">&nbsp;IF Kell&#62;10 THEN</div><div class="code_line">&nbsp;&nbsp; &nbsp;BEGIN</div><div class="code_line">&nbsp;&nbsp; &nbsp; WRITELN(&#39;Программа не расчитана на введенное кол-во элементов!&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; GOTO ELL;</div><div class="code_line">&nbsp;&nbsp; &nbsp;END;</div><div class="code_line">&nbsp;</div><div class="code_line">ZN:</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;WRITE(&#39;Исследуем на МАКСИМУМ(1) или МИНИМУМ(2):&#39;);READLN(Fm);</div><div class="code_line">&nbsp;IF (Fm&#60;&#62;1) AND (Fm&#60;&#62;2) THEN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; BEGIN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;WRITELN(&#39;Введите снова&#39;);GOTO ZN;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; END;</div><div class="code_line">&nbsp;WRITE(&#39;Целочисленное решение(Y/N): &#39;);READLN(PrGomory);</div><div class="code_line">&nbsp;IF (PrGomory=&#39;Y&#39;) OR (PrGomory=&#39;y&#39;) THEN PrGomory:=&#39;Y&#39; ELSE PrGomory:=&#39;N&#39;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; { Вызов процедуры SIMPLEX}</div><div class="code_line">&nbsp;</div><div class="code_line">SIMPLEX;</div><div class="code_line">&nbsp;</div><div class="code_line">END.</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script>]]></description>
        <author>GrAnd</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=9373&amp;view=findpost&amp;p=91340</guid>
        <pubDate>Sat, 10 May 2003 17:04:48 +0000</pubDate>
        <title>Нужны Исходники на прямой симплекс-метод</title>
        <link>https://forum.sources.ru/index.php?showtopic=9373&amp;view=findpost&amp;p=91340</link>
        <description><![CDATA[Katsman: Мне позарез нужны исходники на прямой симплекс-метод-ПОМОГИТЕ!!!!!!!]]></description>
        <author>Katsman</author>
        <category>Алгоритмы</category>
      </item>
	
      </channel>
      </rss>
	