<?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=412345&amp;view=findpost&amp;p=3765013</guid>
        <pubDate>Thu, 29 Mar 2018 06:42:37 +0000</pubDate>
        <title>Счетчик количества операций со стеком</title>
        <link>https://forum.sources.ru/index.php?showtopic=412345&amp;view=findpost&amp;p=3765013</link>
        <description><![CDATA[VisualProg: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412345&view=findpost&p=3764962'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>MBo &#064; <time class="tag-quote__quoted-time" datetime="2018-03-28T19:44:42+03:00">28.03.18, 16:44</time></span><div class='quote '>nop он называет число операций </div></div><br>
Спасибо за перевод) Тогда ТС нужно предоставлять словарь с объяснением части терминов которые он употребляет, чтобы не было недопониманий.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412345&view=findpost&p=3764956'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>dark_siders150 &#064; <time class="tag-quote__quoted-time" datetime="2018-03-28T15:12:01+00:00">28.03.18, 15:12</time></span><div class='quote '>В примере расчета курсовой показано что надо найти nop и расчитать С1..Сn </div></div><br>
Есть подозрения, что вы хотите математическим путём выявить, насколько увеличение входной последовательности элементов стека увеличивают время сортировки/количество операций, необходимых для сортировки. Но, всё равно, звучит сомнительно...]]></description>
        <author>VisualProg</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412345&amp;view=findpost&amp;p=3764962</guid>
        <pubDate>Wed, 28 Mar 2018 16:44:42 +0000</pubDate>
        <title>Счетчик количества операций со стеком</title>
        <link>https://forum.sources.ru/index.php?showtopic=412345&amp;view=findpost&amp;p=3764962</link>
        <description><![CDATA[MBo: <strong class='tag-b'>VisualProg</strong><br>
<br>
nop он называет число операций]]></description>
        <author>MBo</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412345&amp;view=findpost&amp;p=3764956</guid>
        <pubDate>Wed, 28 Mar 2018 15:12:01 +0000</pubDate>
        <title>Счетчик количества операций со стеком</title>
        <link>https://forum.sources.ru/index.php?showtopic=412345&amp;view=findpost&amp;p=3764956</link>
        <description><![CDATA[dark_siders150: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412345&view=findpost&p=3764955'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>VisualProg &#064; <time class="tag-quote__quoted-time" datetime="2018-03-28T14:40:23+00:00">28.03.18, 14:40</time></span><div class='quote '>Покажите, где здесь сказано хоть слово о счётчиках выполненных операций?</div></div><br>
В примере расчета курсовой показано что надо найти nop и расчитать С1..Сn]]></description>
        <author>dark_siders150</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412345&amp;view=findpost&amp;p=3764955</guid>
        <pubDate>Wed, 28 Mar 2018 14:40:23 +0000</pubDate>
        <title>Счетчик количества операций со стеком</title>
        <link>https://forum.sources.ru/index.php?showtopic=412345&amp;view=findpost&amp;p=3764955</link>
        <description><![CDATA[VisualProg: Покажите, где здесь сказано хоть слово о счётчиках выполненных операций?<br>+ В вашем коде я не вижу абстракций. Ни хаков на абстракции, ни прямой абстракции данных. Всё конкретно, и всё уже реализовано.]]></description>
        <author>VisualProg</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412345&amp;view=findpost&amp;p=3764954</guid>
        <pubDate>Wed, 28 Mar 2018 14:32:59 +0000</pubDate>
        <title>Счетчик количества операций со стеком</title>
        <link>https://forum.sources.ru/index.php?showtopic=412345&amp;view=findpost&amp;p=3764954</link>
        <description><![CDATA[dark_siders150: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412345&view=findpost&p=3764953'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>VisualProg &#064; <time class="tag-quote__quoted-time" datetime="2018-03-28T14:29:28+00:00">28.03.18, 14:29</time></span><div class='quote '>Машинный nop</div></div><br>
вот все задание. В рамках курсовой работы по дисциплине «Структуры и алгоритмы обработки данных»  требуется программно реализовать абстрактный тип данных (АТД) в соответствии с  заданием. Абстрактный тип данных должен позволять осуществлять только операции, присущие типу линейного связанного списка: получить значение первого элемента (на выходе), добавить элемент (в конец списка), удалить элемент из списка (на выходе), проверить – список пуст, обнулить (проинициализировать) список. Используя разработанный АТД и указанный набор операций, необходимо реализовать заданный алгоритм сортировки последовательности динамических элементов. <br>
Реализацию алгоритма осуществить на языке Паскаль или Си.<br>
На основе предложенной в рамках курсовой  работы программы получить аналитическую оценку трудоемкости работы алгоритма сортировки, используя О-символику.<br>
Мой одногрупник счетчик сделал так как во 2м коде и ему работу зачли.]]></description>
        <author>dark_siders150</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412345&amp;view=findpost&amp;p=3764953</guid>
        <pubDate>Wed, 28 Mar 2018 14:29:28 +0000</pubDate>
        <title>Счетчик количества операций со стеком</title>
        <link>https://forum.sources.ru/index.php?showtopic=412345&amp;view=findpost&amp;p=3764953</link>
        <description><![CDATA[VisualProg: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412345&view=findpost&p=3764952'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>dark_siders150 &#064; <time class="tag-quote__quoted-time" datetime="2018-03-28T14:16:01+00:00">28.03.18, 14:16</time></span><div class='quote '>скорее второе, так как в задании надо найти оценку трудоемкости работы алгоритма сортировки, используя О-символику</div></div><br>
Это два никак не связанных между собой задания. Я как раз, склоняюсь к тому, что от вас просили первый вариант. Никто не сможет наверняка сказать что там в машинном коде получится (нужно знать процессор, ОС, компилятор), либо делать дизасм. Это всё не похоже на учебные задания, и они вообще не несут смысла, как такового, ни в учебных целях, ни в практических...<br>
По трудоёмкости - у вас два вложенных цикла.<br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Нужно найти nop</div></div><br>
Машинный nop? Как вы себе это представляете?]]></description>
        <author>VisualProg</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412345&amp;view=findpost&amp;p=3764952</guid>
        <pubDate>Wed, 28 Mar 2018 14:16:01 +0000</pubDate>
        <title>Счетчик количества операций со стеком</title>
        <link>https://forum.sources.ru/index.php?showtopic=412345&amp;view=findpost&amp;p=3764952</link>
        <description><![CDATA[dark_siders150: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412345&view=findpost&p=3764950'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>VisualProg &#064; <time class="tag-quote__quoted-time" datetime="2018-03-28T14:04:28+00:00">28.03.18, 14:04</time></span><div class='quote '><br>
Если под стеком подрузомевается - раздел памяти, то задание становится очень проблематичным...</div></div><br>
скорее второе, так как в задании надо найти оценку трудоемкости работы алгоритма сортировки, используя О-символику. Нужно найти nop и потом еще проводить расчеты]]></description>
        <author>dark_siders150</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412345&amp;view=findpost&amp;p=3764950</guid>
        <pubDate>Wed, 28 Mar 2018 14:04:28 +0000</pubDate>
        <title>Счетчик количества операций со стеком</title>
        <link>https://forum.sources.ru/index.php?showtopic=412345&amp;view=findpost&amp;p=3764950</link>
        <description><![CDATA[VisualProg: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412345&view=findpost&p=3764942'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>dark_siders150 &#064; <time class="tag-quote__quoted-time" datetime="2018-03-28T12:34:27+00:00">28.03.18, 12:34</time></span><div class='quote '>счетчик операций со стеком(nop) </div></div><br>
Стек это коллекция? Если да, то просто в каждом операторе: push, pop, CreateStack, PrintStack, ClearStack, SortStack - добавить увеличение счётчика на единицы. Таким образом, совершив 4 действия над стеком:<br>
<br>
<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">Stack := CreateStack(1000);</div><div class="code_line">PrintStack(Stack);</div><div class="code_line">SortStack(Stack);</div><div class="code_line">PrintStack(Stack);</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
<br>
Мы получим в счётчике 4. Потому что действия над стеком было совершено 4 раза. По мне, всё логично.<br>
<br>
Если под стеком подрузомевается - раздел памяти, то задание становится очень проблематичным...]]></description>
        <author>VisualProg</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412345&amp;view=findpost&amp;p=3764942</guid>
        <pubDate>Wed, 28 Mar 2018 12:34:27 +0000</pubDate>
        <title>Счетчик количества операций со стеком</title>
        <link>https://forum.sources.ru/index.php?showtopic=412345&amp;view=findpost&amp;p=3764942</link>
        <description><![CDATA[dark_siders150: судя по таблице к заданию мне нужно сделать счетчик операций со стеком(nop)]]></description>
        <author>dark_siders150</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412345&amp;view=findpost&amp;p=3764938</guid>
        <pubDate>Wed, 28 Mar 2018 12:12:52 +0000</pubDate>
        <title>Счетчик количества операций со стеком</title>
        <link>https://forum.sources.ru/index.php?showtopic=412345&amp;view=findpost&amp;p=3764938</link>
        <description><![CDATA[VisualProg: Что это за числа?? Что они значат?<br>
Всё стало ещё запутаннее... Узнайте у вашего преподавателя, что ему надо за счётчик, вы делаете явно что то непонятное. Вам нужно число операций над стеком? Или число операций ассемблера? Число математических операций? Почему a^.info:=x; - дают число 2? <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2018-03-28T12:15:11+00:00">28.03.18, 12:15</time></span></span><br>
В вашем примере всего 6 базовых операций со стеком. Каждая операция - должна увеличивать счётчик на 1 единицу. Это всё будет называться счётчик операций со стеком. Вы же, считаете что то другое.]]></description>
        <author>VisualProg</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412345&amp;view=findpost&amp;p=3764931</guid>
        <pubDate>Wed, 28 Mar 2018 11:03:48 +0000</pubDate>
        <title>Счетчик количества операций со стеком</title>
        <link>https://forum.sources.ru/index.php?showtopic=412345&amp;view=findpost&amp;p=3764931</link>
        <description><![CDATA[dark_siders150: мне одногрупник скинул пример счетчика на своей программе, которая сортирует очередь с одной головой и я по нему делал счетчик, то бишь присваивание это одна операция, если присваиваются указатели 2-3 и так далее,но у меня слишком большие цифры в счетчике<br>
<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 Project4;</div><div class="code_line">&nbsp;</div><div class="code_line">{$APPTYPE CONSOLE}</div><div class="code_line">&nbsp;</div><div class="code_line">uses</div><div class="code_line">&nbsp;&nbsp;SysUtils;</div><div class="code_line">&nbsp;</div><div class="code_line">type ochered=^Rec;</div><div class="code_line">&nbsp;&nbsp; &nbsp; Rec=record</div><div class="code_line">&nbsp;&nbsp; &nbsp; info: &nbsp; &nbsp;integer;</div><div class="code_line">&nbsp;&nbsp; &nbsp; next: &nbsp; &nbsp;ochered;</div><div class="code_line">&nbsp;&nbsp; &nbsp; end;</div><div class="code_line">var</div><div class="code_line">head, head1: &nbsp;ochered;</div><div class="code_line">n, i, j, z, k, &nbsp;y, x, x1: integer;</div><div class="code_line">t,t1,t2: TDateTime;</div><div class="code_line">ch: int64;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure push(var head:ochered; x:integer); &nbsp;// 6</div><div class="code_line">var a: &nbsp; &nbsp; &nbsp; &nbsp;ochered;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;new(a); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//+1</div><div class="code_line">&nbsp;&nbsp; &nbsp;a^.info:=x; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//+2</div><div class="code_line">&nbsp;&nbsp; &nbsp;a^.next:=head; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //+2</div><div class="code_line">&nbsp;&nbsp; &nbsp;head:=a; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //+1</div><div class="code_line">&nbsp;&nbsp; &nbsp;ch:=ch+6;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure pop(var head:ochered; var x:integer); &nbsp;//8+</div><div class="code_line">var a, p: &nbsp; &nbsp; ochered;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp; a:=head; &nbsp;p:=head; ch:=ch+3; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//+2</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; while a^.next&#60;&#62;nil do begin &nbsp; &nbsp; &nbsp; //+2</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; p:=a; a:=a^.next; ch:=ch+4; &nbsp; &nbsp; //+3</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; end;</div><div class="code_line">&nbsp;&nbsp; x:=a^.info; p^.next:=nil; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //+4</div><div class="code_line">&nbsp;&nbsp; dispose(a); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //+1</div><div class="code_line">&nbsp;&nbsp; ch:=ch+5;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">function empty(head:ochered): boolean; &nbsp; &nbsp;//2</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp; empty:=head=nil; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//+2</div><div class="code_line">&nbsp;&nbsp; ch:=ch+2;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure iniz(var head:ochered; var n:integer); &nbsp;//1+</div><div class="code_line">var x, i: &nbsp; &nbsp; &nbsp;integer;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp; for i:= 1 to n do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;x:=Random(501)+300; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //+3</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;push(head,x); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //+6</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;ch:=ch+9;</div><div class="code_line">&nbsp;&nbsp; end;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">BEGIN</div><div class="code_line">ch:=0; //счетчик</div><div class="code_line">write(&#39;Enter the number of items: &#39;);</div><div class="code_line">&nbsp;&nbsp; readln(n);</div><div class="code_line">&nbsp;&nbsp; t1:=now;</div><div class="code_line">&nbsp;&nbsp; head := nil;</div><div class="code_line">iniz(head,n);</div><div class="code_line">head1:=nil;</div><div class="code_line">ch:=ch+6;</div><div class="code_line">&nbsp;</div><div class="code_line">For i:= 1 to n-1 do</div><div class="code_line">&nbsp;&nbsp;For j:= n downto i+1 do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;if not empty(head1) then begin &nbsp;//+3</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;head:=head1; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//+1</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;head1:=nil; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //+1</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;ch:=ch+2;</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp;ch:=ch+1;</div><div class="code_line">&nbsp;&nbsp; &nbsp;For z:=1 to j-2 do begin &nbsp; //1+</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; pop(head,y); push(head1,y);//+6+8+</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp;ch:=ch+2;</div><div class="code_line">&nbsp;&nbsp; &nbsp;pop(head,x); pop(head,x1); // 16+2*</div><div class="code_line">&nbsp;&nbsp; &nbsp;If x&#62;x1 then begin &nbsp; &nbsp; &nbsp; //+1</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;push(head1,x); push(head1,x1);</div><div class="code_line">&nbsp;&nbsp; &nbsp;end //+12</div><div class="code_line">&nbsp;&nbsp; &nbsp;else begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;push(head1,x1); push(head1,x);</div><div class="code_line">&nbsp;&nbsp; &nbsp;end; //+12</div><div class="code_line">&nbsp;&nbsp; &nbsp;ch:=ch+1;</div><div class="code_line">&nbsp;&nbsp; &nbsp;If j&#60;n then begin &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//+1</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;For k:= 1 to n-j do begin &nbsp; &nbsp; &nbsp;//1+</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;pop(head,y); push(head1,y); &nbsp; &nbsp; &nbsp; //+6+8</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;ch:=ch+1;</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp;ch:=ch+1;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">For i:= 1 to n do begin</div><div class="code_line">&nbsp;&nbsp;pop(head1,x);</div><div class="code_line">&nbsp;&nbsp;writeln(&#39;stack[&#39;,i,&#39;] = &#39;,x);</div><div class="code_line">&nbsp;&nbsp;ch:=ch+1;</div><div class="code_line">end;</div><div class="code_line">ch:=ch+1;</div><div class="code_line">t2:=now; t:=t2-t1;</div><div class="code_line">writeln;</div><div class="code_line">writeln(&#39;Your time: &#39;,FormatDateTime(&#39;hh:mm:ss.zzz&#39;,t));</div><div class="code_line">writeln(&#39;Num of operations: &#39;,ch);</div><div class="code_line">readln;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;try</div><div class="code_line">&nbsp;&nbsp; &nbsp;{ TODO -oUser -cConsole Main : Insert code here }</div><div class="code_line">&nbsp;&nbsp;except</div><div class="code_line">&nbsp;&nbsp; &nbsp;on E: Exception do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Writeln(E.ClassName, &#39;: &#39;, E.Message);</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">end.</div></ol></div></div></div></div>]]></description>
        <author>dark_siders150</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412345&amp;view=findpost&amp;p=3764930</guid>
        <pubDate>Wed, 28 Mar 2018 10:56:48 +0000</pubDate>
        <title>Счетчик количества операций со стеком</title>
        <link>https://forum.sources.ru/index.php?showtopic=412345&amp;view=findpost&amp;p=3764930</link>
        <description><![CDATA[VisualProg: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412345&view=findpost&p=3764926'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>dark_siders150 &#064; <time class="tag-quote__quoted-time" datetime="2018-03-28T10:39:03+00:00">28.03.18, 10:39</time></span><div class='quote '>счетчик я реализовал, но у меня есть ощущения что не правильно</div></div><br>
Если у вас есть подозрения, значит вы не до конца понимаете что пишите. Исправляйте эти моменты.<br>
<br>
1. Зачем счётчик меняете сразу на 10, 13, 2, или 3? Что это за мистические числа?<br>
2. Зачем делать глобальный счётчик? То есть, изначально, задача стояла сделать счётчик операций всех экземпляров классов стека?<br>
3. Я не силён в паскале, и не знаю, есть ли в нём классы. Если нет, тогда, почему бы не инкапсулировать всё по максимуму в структуры/записи? А то слишком много &quot;стороннего&quot; мусора в глобальной области видимости...<br>
<br>
Когда ответите на вопросы, станет яснее что вам надо.]]></description>
        <author>VisualProg</author>
        <category>Pascal</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412345&amp;view=findpost&amp;p=3764926</guid>
        <pubDate>Wed, 28 Mar 2018 10:39:03 +0000</pubDate>
        <title>Счетчик количества операций со стеком</title>
        <link>https://forum.sources.ru/index.php?showtopic=412345&amp;view=findpost&amp;p=3764926</link>
        <description><![CDATA[dark_siders150: Есть код реализующий сортировку стека и к нему надо сделать счетчик операций со стеком, счетчик я реализовал, но у меня есть ощущения что не правильно. Буду благодарен если укажите на ошибки и подскажите.<br>
<br>
<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">uses</div><div class="code_line">&nbsp;&nbsp;SysUtils;</div><div class="code_line">type</div><div class="code_line">&nbsp;&nbsp;tItem = ^pItem;</div><div class="code_line">&nbsp;&nbsp;pItem = record</div><div class="code_line">&nbsp;&nbsp; &nbsp;n : Integer;</div><div class="code_line">&nbsp;&nbsp; &nbsp;x : tItem;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">type</div><div class="code_line">&nbsp;&nbsp;tStack = record</div><div class="code_line">&nbsp;&nbsp; &nbsp;Items : tItem;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Empty : boolean;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;var</div><div class="code_line">&nbsp;t,t1,t2: TDateTime;</div><div class="code_line">ch:int64;</div><div class="code_line">function NewStack : tStack;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;Stack : tStack;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;Stack.Items := nil;</div><div class="code_line">&nbsp;&nbsp;Stack.Empty := True;</div><div class="code_line">&nbsp;&nbsp;NewStack := Stack;</div><div class="code_line">&nbsp;&nbsp;ch:=ch+5;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure Push(n : Integer; var Stack : tStack);</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;tmp : tItem;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;New(tmp);</div><div class="code_line">&nbsp;&nbsp;tmp^.n := n;</div><div class="code_line">&nbsp;&nbsp;tmp^.x := Stack.Items;</div><div class="code_line">&nbsp;&nbsp;Stack.Items := tmp;</div><div class="code_line">&nbsp;&nbsp;Stack.Empty := False;</div><div class="code_line">&nbsp;&nbsp;ch:=ch+10;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">function Pop(var Stack : tStack) : Integer;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;res : Integer;</div><div class="code_line">&nbsp;&nbsp;tmp : tItem;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;if Not Stack.Empty then</div><div class="code_line">&nbsp;&nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;tmp := Stack.Items;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Stack.Items := Stack.Items^.x;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Stack.Empty := Stack.Items = nil;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;res := tmp^.n;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Dispose(tmp);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;ch:=ch+13;</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp;Pop := res;</div><div class="code_line">&nbsp;&nbsp;ch:=ch+2;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">function CreateStack(n : Integer) : tStack;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;Stack : tStack;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;Stack := NewStack;</div><div class="code_line">&nbsp;&nbsp;while n &#62; 0 do</div><div class="code_line">&nbsp;&nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Push(Random(200)-50, Stack);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Dec(n);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;ch:=ch+3;</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp;CreateStack := Stack;</div><div class="code_line">&nbsp;&nbsp;ch:=ch+3;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure PrintStack(Stack : tStack);</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;tmp : tItem;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;tmp := Stack.Items;</div><div class="code_line">&nbsp;&nbsp;if Stack.Empty then</div><div class="code_line">&nbsp;&nbsp; &nbsp;Write(&#39;Стек пуст!&#39;)</div><div class="code_line">&nbsp;&nbsp;else</div><div class="code_line">&nbsp;&nbsp; &nbsp;while tmp &#60;&#62; nil do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Write(#32, tmp^.n); tmp := tmp^.x;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;ch:=ch+2;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;ch:=ch+3;</div><div class="code_line">&nbsp;&nbsp;WriteLn;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure ClearStack(var Stack : tStack);</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;while Not Stack.Empty do Pop(Stack);</div><div class="code_line">&nbsp;&nbsp;ch:=ch+2;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure SortStack(var Stack : tStack);</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;swap : Boolean;</div><div class="code_line">&nbsp;&nbsp;tmpStack : tStack;</div><div class="code_line">&nbsp;&nbsp;n1, n2 : Integer;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;if Stack.Empty then Exit;</div><div class="code_line">&nbsp;&nbsp;tmpStack := NewStack;</div><div class="code_line">&nbsp;&nbsp;repeat</div><div class="code_line">&nbsp;&nbsp; &nbsp;swap := False;</div><div class="code_line">&nbsp;&nbsp; &nbsp;n1 := Pop(Stack);</div><div class="code_line">&nbsp;&nbsp; &nbsp;while Not Stack.Empty do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;n2 := Pop(Stack);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if n1 &#62; n2 then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Push(n2, tmpStack); swap := True;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Push(n1, tmpStack); n1 := n2;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ch:=ch+2;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Push(n1, Stack);</div><div class="code_line">&nbsp;&nbsp; &nbsp;while Not tmpStack.Empty do</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Push(Pop(tmpStack), Stack);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;ch:=ch+3;</div><div class="code_line">&nbsp;&nbsp;until Not swap;</div><div class="code_line">&nbsp;&nbsp;ch:=ch+3;</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;Stack : tStack;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;Stack := CreateStack(1000);</div><div class="code_line">&nbsp;&nbsp;writeln(&#39;Не отсортированный стек&#39;);</div><div class="code_line">&nbsp;&nbsp;PrintStack(Stack);</div><div class="code_line">&nbsp;&nbsp;t1:=now;</div><div class="code_line">&nbsp;&nbsp;writeln(&#39;отсортированный стек&#39;);</div><div class="code_line">&nbsp;&nbsp;SortStack(Stack);</div><div class="code_line">&nbsp;&nbsp;PrintStack(Stack);</div><div class="code_line">&nbsp;&nbsp;ClearStack(Stack);</div><div class="code_line">&nbsp;&nbsp;t2:=now; t:=t2-t1;</div><div class="code_line">&nbsp;&nbsp;writeln(&#39;Время сортировки: &#39;,FormatDateTime(&#39;hh:mm:ss.zzz&#39;,t));</div><div class="code_line">&nbsp;&nbsp;write(&#39;количество операций со стеком: &#39;,ch);</div><div class="code_line">&nbsp;&nbsp;readln;</div><div class="code_line">end.</div></ol></div></div></div></div>]]></description>
        <author>dark_siders150</author>
        <category>Pascal</category>
      </item>
	
      </channel>
      </rss>
	