<?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>Форум программистов и сисадминов Киберфорум - Блоги - Энтомолог</title>
		<link>https://www.cyberforum.ru/blogs/271694/</link>
		<description>КиберФорум - форум программистов, системных администраторов, администраторов баз данных, компьютерный форум, форум по электронике и бытовой технике, обсуждение софта. Бесплатная помощь в решении задач по программированию и наукам, решение проблем с компьютером, операционными системам</description>
		<language>ru</language>
		<lastBuildDate>Thu, 07 May 2026 04:16:51 GMT</lastBuildDate>
		<generator>vBulletin</generator>
		<ttl>60</ttl>
		<image>
			<url>https://www.cyberforum.ru//cyberstatic.net/images/misc/rss.jpg</url>
			<title>Форум программистов и сисадминов Киберфорум - Блоги - Энтомолог</title>
			<link>https://www.cyberforum.ru/blogs/271694/</link>
		</image>
		<item>
			<title>Как использовать популярную базу данных в качестве хранилища</title>
			<link>https://www.cyberforum.ru/blogs/271694/5808.html</link>
			<pubDate>Sun, 19 May 2019 17:45:26 GMT</pubDate>
			<description>1. Создать в расположении базы данных (БД) структуры хранения данных, принимающие от пользователей...</description>
			<content:encoded><![CDATA[<div><font size="4"><font face="Arial"><div align="left">1. Создать в расположении базы данных (БД) структуры хранения данных, принимающие от пользователей только двоичные данные;<br />
2. Сформулировать порядок формирования оптимального для решения задачи запроса к БД в условно-защищённом расположении-приёмнике данных;<br />
3. Получить данные от пользователя вашего продукта через интерфейс;<br />
4. В приёмнике данных сжать данные и перевести их в двоичный формат;<br />
5. Подставить двоичные данные в нужный подготовленный запрос и сжать его в двоичный формат, затем, согласовав формат передачи по условно-защищённым каналам, отправить запрос в расположение БД;<br />
6. Дождавшись необходимого момента и условий, извлечь и запустить нужный запрос для сохранения данных в структурах, подготовленных на шаге 1.<br />
<br />
P.S. Обозреватели данных должны располагать сведениями об использованном сжатии для извлечения данных, когда в этом будет необходимость.</div></font></font></div>

]]></content:encoded>
			<dc:creator>Энтомолог</dc:creator>
			<guid isPermaLink="true">https://www.cyberforum.ru/blogs/271694/5808.html</guid>
		</item>
		<item>
			<title>Объектно-ориентированный язык программирования Ассемблер</title>
			<link>https://www.cyberforum.ru/blogs/271694/5791.html</link>
			<pubDate>Fri, 03 May 2019 18:42:21 GMT</pubDate>
			<description>Ассемблер (от англ. assembler) - язык объектно-ориентированного программирования (ООП), что бы ни...</description>
			<content:encoded><![CDATA[<div><div align="left"><font face="Arial"><font size="4">Ассемблер (от англ. assembler) - язык объектно-ориентированного программирования (ООП), что бы ни утверждали некоторые маркетологи. Под объектом здесь будем понимать любой артефакт - нечто, созданное человеком. Под объектно-ориентированным языком программирования я понимаю такой, в котором возможно конечными средствами реализовать объектно-ориентированный подход, заключающийся в применении принципов абстракции, инкапсуляции, полиморфизма, наследования, декомпозиции и вытекающих из них. Абстракция (от англ. abstraction) означает выделение или извлечение частей среди какого-либо целого. В нашем случае мы имеем дело с написанием инструкций по распределению ресурсов ЭВМ, в чём у ассемблера богатый выбор - можно выделить и извлечь для целей решения задачи любое подмножество подмножеств среди доступных регистров процессора и прочих ёмкостей и источников ресурсов, чтобы в дальнейшем оперировать ими при решении задачи в терминах предметных областей. Это подразумевает возможность декомпозиции (от англ. decomposition) - разделения целого на части c целью упрощённого представления сложного объекта (задачи) в виде совокупности других объектов (задач), в том числе с устранением взаимовлияния (сама инструкция ассемблера представима в форме взаимодействия сигналов в аппаратуре ЭВМ и подвержена анализу и синтезу с точки зрения цифровой обработки сигналов, проходящих в и между КМОП и другими элементами и компонентами), так как использованием одного единственного регистра (ёмкости, источника) в решении задачи большинство программистов ЭВМ не обходятся. Инкапсуляция (от англ. incapsulation) - размещение одного в другом. В нашем случае ассемблер представляет богатый выбор ёмкостей, как одиночных, так и комбинированных, которые можно использовать для произвольной группировки, хранения и обмена различными данными, включая напрямую соответствующие предлагаемым архитектурами ЭВМ типам, причём эти процессы могут быть более детальными и эффективными по сравнению с использованием аналогичных возможностей в других языках, предлагающих объектно-ориентированный подход, что объясняет наличие у языка ассемблера полиморфизма (от англ. polymorphism) - возможности подмены разнородных манипулируемых объектов с сохранением интерпретации манипуляции, например, возникающей в ассемблере при использовании одного регистра как динамической переменной в языках-аналогах неопределённости его содержимого предполагает возможность произведения разнообразных действий над этим содержимым с сохранением его инкогнито в отдельно взятой абстракции. Наследование (от англ. inheritance) - возможность передачи данных с сохранением части абстракций, изначально присущих объекту-источнику данных. В языке ассемблера передача данных возможна из различных источников в различные приёмники, при этом возможно как сохранение абстракций, предполагавшихся программистом, в полном объёме (например, при передаче одного значения из одного регистра в равноценный другой с сохранением этого значения), так и частично (например, при сложении одного числового значения с другим результат может оставаться числовым). В связи с этим, предлагаю дальнейшие дискуссии о категоризации языка программирования (ЯП) ассемблера перевести в русло конструктивного обсуждения необходимости наличия термина ООП, а также rich internet application (RIA) и rapid application development (RAD).</font></font></div></div>

]]></content:encoded>
			<dc:creator>Энтомолог</dc:creator>
			<guid isPermaLink="true">https://www.cyberforum.ru/blogs/271694/5791.html</guid>
		</item>
		<item>
			<title>Запретный Эффект тамбовской картошки в программировании</title>
			<link>https://www.cyberforum.ru/blogs/271694/5788.html</link>
			<pubDate>Fri, 03 May 2019 13:01:14 GMT</pubDate>
			<description>Современный бизнес связан с выполнением плана. За короткие промежутки времени обычно требуют от  
 ...</description>
			<content:encoded><![CDATA[<div><font size="4"><font face="Arial">Современный бизнес связан с выполнением плана. За короткие промежутки времени обычно требуют от <br />
  работников выполнить как можно больший объём работ или за продолжительный период времени хотят <br />
  получить качественный продукт, т.е. бизнес хочет получить больше и лучше. Программисты, обслуживающие бизнес, <br />
  часто хотят большего возмещения за свой труд, вложенный в производство продукта, или дополнительных опций <br />
  за более качественные модули программ, т.е. работники хотят больше и лучше. Тем не менее, как правило, для <br />
  бизнеса и специалистов больше и лучше означают разные вещи, т.е. они хотят не одного и того же: представитель <br />
  бизнеса хочет быстрее доставить продукт покупателю, вложить максимум удовлетворённых потребностей в каждый <br />
  релиз и т.д., программист хочет избежать возможных багов и проблем в дальнейшей разработке по максимуму, <br />
  самореализоваться через код, сделав его качественным и получив премию, и т.д. Несмотря ни на что, картошка <br />
  у всех тамбовская. Тамбовщина издавна славилась своей картошкой, и сегодня, спрашивая о происхождении <br />
  картошки, практически на любом рынке, в надежде получить качественный продукт к столу, мы обманываемся, <br />
  получая ответ, что картошка тамбовская. То же касается выбора средств, методов и инструментов как в бизнесе, <br />
  так и в изготовлении программного продукта: мы обманываемся, опираясь на опыт предыдущих поколений, не проводим <br />
  самостоятельный анализ и выбор партнёров, стратегий и любых других вещей, позволяя бренду, внедряя маркетинг <br />
  вместо мощных опор здравого смысла на переправе через бурлящий поток сомнений, подрывать будущее наших <br />
  продуктов, перекладывая за собственные деньги и деньги предприятия ответственность на Васю, у которого в прошлые N <br />
  лет был взрывной рост продаж, ведь покупали же другие, а мы чем хуже, когда есть деньги, драйв и воздушные замки, <br />
  умело заранее подготовленные умным Васей. В результате между бизнесом и разработчиками разрастается <br />
  бездонная пропасть, потому что у каждого лагеря формируются свои &quot;науки&quot; о должном образе действий, зачастую <br />
  не имеющие никаких реальных под собой основ. Эти скрытые сложности порождают взаимное недоверие между бизнесом <br />
  и специалистами, жить с которым придётся дальше, заваливая пропасть ещё большими деньгами, временем и <br />
  людьми. Болезненный путь примирения бизнеса и программистов лежит через раскрытие поставщиков информации <br />
  о тамбовской картошке и сведений о её продавце и истинном происхождении как со стороны бизнеса, так и со стороны работников. </font></font></div>

]]></content:encoded>
			<dc:creator>Энтомолог</dc:creator>
			<guid isPermaLink="true">https://www.cyberforum.ru/blogs/271694/5788.html</guid>
		</item>
		<item>
			<title>Transact-SQL. Как перевести целое число из десятичной системы счисления в другую и обратно</title>
			<link>https://www.cyberforum.ru/blogs/271694/5687.html</link>
			<pubDate>Sat, 16 Feb 2019 14:51:52 GMT</pubDate>
			<description>Учебная программа. Надеюсь, вы поможете её улучшить. 
declare @input tinyint = 15; -- исходное...</description>
			<content:encoded><![CDATA[<div>Учебная программа. Надеюсь, вы поможете её улучшить.<br />
<div class="codeblock"><table class="tsql"><thead><tr><td colspan="2" id="329405000"  class="head">T-SQL</td></tr></thead><tbody><tr class="li1"><td><div id="329405000" style="height: 350px" 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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
</pre></td><td class="de1"><pre class="de1"><span class="kw1">declare</span> @<span class="kw1">input</span> <span class="kw1">tinyint</span> <span class="sy0">=</span> <span class="nu0">15</span>; <span class="co1">-- исходное число в десятичной системе счисления</span>
<span class="kw1">declare</span> @x <span class="kw1">nvarchar</span><span class="br0">&#40;</span><span class="nu0">8</span><span class="br0">&#41;</span> <span class="sy0">=</span> <span class="st0">'none'</span>; <span class="co1">-- исходное число, преобразованное в систему счисления с основанием @p</span>
<span class="kw1">declare</span> @y <span class="kw1">nvarchar</span><span class="br0">&#40;</span><span class="nu0">3</span><span class="br0">&#41;</span> <span class="sy0">=</span> <span class="st0">'nil'</span>; <span class="co1">-- число @x, преобразованное в десятичную систему счисления</span>
<span class="kw1">declare</span> @p <span class="kw1">tinyint</span> <span class="sy0">=</span> <span class="nu0">2</span>;
&nbsp;
<span class="kw1">if</span><span class="br0">&#40;</span>@<span class="kw1">input</span> <span class="sy0">&gt;=</span> <span class="nu0">0</span> <span class="sy0">AND</span> @<span class="kw1">input</span> <span class="sy0">&lt;=</span> <span class="nu0">255</span> <span class="sy0">AND</span> @p <span class="sy0">&gt;=</span> <span class="nu0">2</span> <span class="sy0">AND</span> @p <span class="sy0">&lt;=</span> <span class="nu0">16</span><span class="br0">&#41;</span>
&nbsp; &nbsp; <span class="kw1">begin</span> &nbsp; 
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">-- 10 -&gt; P</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">declare</span> @a <span class="kw1">tinyint</span> <span class="sy0">=</span> @<span class="kw1">input</span>;
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">declare</span> @m <span class="kw1">tinyint</span> <span class="sy0">=</span> <span class="nu0">0</span>;
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">declare</span> @s <span class="kw1">nvarchar</span><span class="br0">&#40;</span><span class="nu0">8</span><span class="br0">&#41;</span> <span class="sy0">=</span> <span class="st0">''</span>;
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>@a <span class="sy0">=</span> <span class="nu0">0</span><span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">select</span> @s <span class="sy0">=</span> <span class="st0">'0'</span>;
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">else</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">while</span> <span class="br0">&#40;</span>@a <span class="sy0">!=</span> <span class="nu0">0</span><span class="br0">&#41;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">select</span> @m <span class="sy0">=</span> @a <span class="sy0">%</span> @p,
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;@a <span class="sy0">=</span> @a <span class="sy0">/</span> @p,&nbsp; &nbsp; 
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;@s <span class="sy0">=</span> <span class="kw1">case</span> @m &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">when</span> <span class="nu0">10</span> 
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">then</span> <span class="st0">'A'</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">when</span> <span class="nu0">11</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">then</span> <span class="st0">'B'</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">when</span> <span class="nu0">12</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">then</span> <span class="st0">'C'</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">when</span> <span class="nu0">13</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">then</span> <span class="st0">'D'</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">when</span> <span class="nu0">14</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">then</span> <span class="st0">'E'</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">when</span> <span class="nu0">15</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">then</span> <span class="st0">'F'</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">else</span> <span class="kw1">cast</span><span class="br0">&#40;</span>@m <span class="kw1">as</span> <span class="kw1">nvarchar</span><span class="br0">&#40;</span><span class="nu0">2</span><span class="br0">&#41;</span><span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">end</span> &nbsp; &nbsp; 
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">+</span> @s; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; 
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">select</span> @x <span class="sy0">=</span> @s;
&nbsp; &nbsp; &nbsp; &nbsp; 
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">-- P -&gt; 10</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">select</span> @m <span class="sy0">=</span> <span class="nu0">0</span>, 
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;@y <span class="sy0">=</span> <span class="st0">''</span>;
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">select</span> @a <span class="sy0">=</span> <span class="kw2">len</span><span class="br0">&#40;</span>@s<span class="br0">&#41;</span>;
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">declare</span> @l <span class="kw1">tinyint</span> <span class="sy0">=</span> @a;
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">declare</span> @c <span class="kw1">nvarchar</span><span class="br0">&#40;</span><span class="nu0">1</span><span class="br0">&#41;</span> <span class="sy0">=</span><span class="st0">''</span>;
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">while</span> <span class="br0">&#40;</span>@a <span class="sy0">!=</span> <span class="nu0">0</span><span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">select</span> @c <span class="sy0">=</span> <span class="kw2">substring</span><span class="br0">&#40;</span>@s, @a, <span class="nu0">1</span><span class="br0">&#41;</span>, 
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;@m <span class="sy0">=</span> @m <span class="sy0">+</span> <span class="kw1">case</span> @c 
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">when</span> <span class="st0">'F'</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">then</span> <span class="nu0">15</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">when</span> <span class="st0">'E'</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">then</span> <span class="nu0">14</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">when</span> <span class="st0">'D'</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">then</span> <span class="nu0">13</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">when</span> <span class="st0">'C'</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">then</span> <span class="nu0">12</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">when</span> <span class="st0">'B'</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">then</span> <span class="nu0">11</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">when</span> <span class="st0">'A'</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">then</span> <span class="nu0">10</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">else</span> <span class="kw1">cast</span><span class="br0">&#40;</span>@c <span class="kw1">as</span> <span class="kw1">tinyint</span><span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">end</span> <span class="sy0">*</span> <span class="kw2">power</span><span class="br0">&#40;</span>@p, @l <span class="sy0">-</span> @a<span class="br0">&#41;</span>,
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;@a <span class="sy0">=</span> @a <span class="sy0">-</span> <span class="nu0">1</span>;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">select</span> @y <span class="sy0">=</span> <span class="kw1">cast</span><span class="br0">&#40;</span>@m <span class="kw1">as</span> <span class="kw1">nvarchar</span><span class="br0">&#40;</span><span class="nu0">3</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;
&nbsp; &nbsp; <span class="kw1">end</span>
<span class="kw1">else</span>
&nbsp; &nbsp; <span class="kw1">print</span> <span class="st0">'Входной параметр input должен иметь значение в интервале от 0 до 255 включительно. Основанием системы счисления может быть только целое число в интервале от 2 до 16 включительно'</span>;
&nbsp;
<span class="kw1">print</span> <span class="st0">'input -&gt; X -&gt; Y'</span>;
<span class="kw1">print</span> <span class="st0">'Число X в системе счисления с основанием P: '</span> <span class="sy0">+</span> @x;
<span class="kw1">print</span> <span class="st0">'Число Y в десятичной системе счисления: '</span> <span class="sy0">+</span> @y;
go <span class="nu0">1</span></pre></td></tr></table></div></td></tr></tbody></table></div>Результат выполнения:<br />

<table width="95%"  class="bbcode_maincontainer"><tr><td>
	<div class="bbcode_container">
	  <div class="bbcode_quote">
	    <div class="btbtbt">
		<div class="quote_container">
	      	<div class="bbcode_quote_container"></div>
	       	<div class="bbcode_postedby">
	         	
	        </div>
	        <div class="message">input -&gt; X -&gt; Y<br />
Число X в системе счисления с основанием P: 1111<br />
Число Y в десятичной системе счисления: 15</div>
	      </div>
			</div> 
		</div>
	</div>
</td></tr></table></div>

]]></content:encoded>
			<dc:creator>Энтомолог</dc:creator>
			<guid isPermaLink="true">https://www.cyberforum.ru/blogs/271694/5687.html</guid>
		</item>
		<item>
			<title>Как ускорить C# String.IndexOf в поиске заранее известной строки в один проход при заранее неизвестном её расположении</title>
			<link>https://www.cyberforum.ru/blogs/271694/5681.html</link>
			<pubDate>Thu, 14 Feb 2019 16:57:30 GMT</pubDate>
			<description>Использован .Net Core 3.0. На данный момент хранения строк в памяти в сжатом виде замечено не было,...</description>
			<content:encoded><![CDATA[<div>Использован .Net Core 3.0. На данный момент хранения строк в памяти в сжатом виде замечено не было, как и распараллеливания IndexOf производителем. Программа, делающая замер:<br />
<br />
<div class="codeblock"><table class="csharp"><thead><tr><td colspan="2" id="23921313"  class="head">C#</td></tr></thead><tbody><tr class="li1"><td><div id="23921313" style="height: 350px" 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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
</pre></td><td class="de1"><pre class="de1"><span class="kw1">using</span> <span class="co3">System</span><span class="sy0">;</span>
<span class="kw1">using</span> <span class="co3">System.Diagnostics</span><span class="sy0">;</span>
&nbsp;
<span class="kw1">namespace</span> probe
<span class="br0">&#123;</span>
&nbsp; &nbsp; <span class="kw4">class</span> Program
&nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">static</span> <span class="kw4">void</span> Main<span class="br0">&#40;</span><span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//подготавливаем строку</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">string</span> str <span class="sy0">=</span> <span class="kw4">string</span><span class="sy0">.</span><span class="me1">Empty</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> i<span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span><span class="br0">&#40;</span>i <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span> i <span class="sy0">&lt;</span> <span class="nu0">10000</span><span class="sy0">;</span> i <span class="sy0">++</span><span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; str <span class="sy0">+=</span> <span class="st0">'o'</span><span class="sy0">;</span> 
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span><span class="br0">&#40;</span>i <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span> i <span class="sy0">&lt;</span> <span class="nu0">10</span><span class="sy0">;</span> i <span class="sy0">++</span><span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; str <span class="sy0">+=</span> str<span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; str <span class="sy0">+=</span> <span class="st0">&quot;&lt;tag&gt;&quot;</span><span class="sy0">;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Stopwatch sw <span class="sy0">=</span> <span class="kw3">new</span> Stopwatch<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sw<span class="sy0">.</span><span class="me1">Reset</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> index<span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//берём пробу с IndexOf</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sw<span class="sy0">.</span><span class="me1">Start</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; index <span class="sy0">=</span> str<span class="sy0">.</span><span class="me1">IndexOf</span><span class="br0">&#40;</span><span class="st0">&quot;&lt;tag&gt;&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sw<span class="sy0">.</span><span class="me1">Stop</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Console<span class="sy0">.</span><span class="me1">WriteLine</span><span class="br0">&#40;</span>sw<span class="sy0">.</span><span class="me1">ElapsedMilliseconds</span> <span class="sy0">+</span> <span class="st0">&quot; &nbsp; &nbsp;&quot;</span> <span class="sy0">+</span> index<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//берём пробу с ручным проходом</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sw<span class="sy0">.</span><span class="me1">Restart</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> len <span class="sy0">=</span> str<span class="sy0">.</span><span class="me1">Length</span> <span class="sy0">-</span> <span class="nu0">4</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span><span class="br0">&#40;</span>i <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span> i <span class="sy0">&lt;</span> len<span class="sy0">;</span> i <span class="sy0">++</span><span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>str<span class="br0">&#91;</span>i<span class="br0">&#93;</span> <span class="sy0">==</span> <span class="st0">'&lt;'</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&amp;&amp;</span> str<span class="br0">&#91;</span>i<span class="sy0">+</span><span class="nu0">1</span><span class="br0">&#93;</span> <span class="sy0">==</span> <span class="st0">'t'</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&amp;&amp;</span> str<span class="br0">&#91;</span>i<span class="sy0">+</span><span class="nu0">2</span><span class="br0">&#93;</span> <span class="sy0">==</span> <span class="st0">'a'</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&amp;&amp;</span> str<span class="br0">&#91;</span>i<span class="sy0">+</span><span class="nu0">3</span><span class="br0">&#93;</span> <span class="sy0">==</span> <span class="st0">'g'</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&amp;&amp;</span> str<span class="br0">&#91;</span>i<span class="sy0">+</span><span class="nu0">4</span><span class="br0">&#93;</span> <span class="sy0">==</span> <span class="st0">'&gt;'</span><span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; index <span class="sy0">=</span> i<span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">break</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sw<span class="sy0">.</span><span class="me1">Stop</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Console<span class="sy0">.</span><span class="me1">WriteLine</span><span class="br0">&#40;</span>sw<span class="sy0">.</span><span class="me1">ElapsedMilliseconds</span> <span class="sy0">+</span> <span class="st0">&quot; &nbsp; &nbsp;&quot;</span> <span class="sy0">+</span> index<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp; &nbsp; <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></td></tr></table></div></td></tr></tbody></table></div>На двухъядерном процессоре Intel результат такой:<br />

<table width="95%"  class="bbcode_maincontainer"><tr><td>
	<div class="bbcode_container">
	  <div class="bbcode_quote">
	    <div class="btbtbt">
		<div class="quote_container">
	      	<div class="bbcode_quote_container"></div>
	       	<div class="bbcode_postedby">
	         	
	        </div>
	        <div class="message">639    10240000<br />
76    10240000</div>
	      </div>
			</div> 
		</div>
	</div>
</td></tr></table>Видим отличие почти в 10 раз по времени при минимальных сложности кода и затратах памяти.</div>

]]></content:encoded>
			<dc:creator>Энтомолог</dc:creator>
			<guid isPermaLink="true">https://www.cyberforum.ru/blogs/271694/5681.html</guid>
		</item>
	</channel>
</rss>
