<?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>Форум программистов и сисадминов Киберфорум - Блоги - Я познаю C#. Автор Leshakk</title>
		<link>https://www.cyberforum.ru/blogs/1882147/</link>
		<description>КиберФорум - форум программистов, системных администраторов, администраторов баз данных, компьютерный форум, форум по электронике и бытовой технике, обсуждение софта. Бесплатная помощь в решении задач по программированию и наукам, решение проблем с компьютером, операционными системам</description>
		<language>ru</language>
		<lastBuildDate>Fri, 21 Aug 2026 20:10:59 GMT</lastBuildDate>
		<generator>vBulletin</generator>
		<ttl>60</ttl>
		<image>
			<url>https://www.cyberforum.ru//cyberstatic.net/images/misc/rss.jpg</url>
			<title>Форум программистов и сисадминов Киберфорум - Блоги - Я познаю C#. Автор Leshakk</title>
			<link>https://www.cyberforum.ru/blogs/1882147/</link>
		</image>
		<item>
			<title>Всякие полезности C#(нубские)</title>
			<link>https://www.cyberforum.ru/blogs/1882147/7508.html</link>
			<pubDate>Wed, 04 May 2022 07:46:41 GMT</pubDate>
			<description>*Пауза, но не усыпление потока. А что? Надо изучить.* 
В данном примере, после нажатия кнопки, идет...</description>
			<content:encoded><![CDATA[<div><b>Пауза, но не усыпление потока. А что? Надо изучить.</b><br />

			   <div class="spoiler-wrap">
				   <div class="spoiler-head folded clickable">Кликните здесь для просмотра всего текста</div>
				   <div class="spoiler-body">
					   В данном примере, после нажатия кнопки, идет пауза 3 секунды а потом срабатывает метод, а так-то вообще можно одну эту строчку пихать куда угодно, и внутрь методов и везде. Не забывать только что метод должен быть асинхронным .<br />
<div class="codeblock"><table class="csharp"><thead><tr><td colspan="2" id="813329214"  class="head">C#</td></tr></thead><tbody><tr class="li1"><td><div id="813329214" style="height: 126px" class="codeframe"><table><tr class="li1"><td class="ln" style="padding: 0px 10px 0px 5px;"><pre class="de1">1
2
3
4
5
6
</pre></td><td class="de1"><pre class="de1"><span class="kw1">private</span> <span class="kw1">async</span> <span class="kw4">void</span> ReadyLearn_Click<span class="br0">&#40;</span><span class="kw4">object</span> sender, EventArgs e<span class="br0">&#41;</span>
<span class="br0">&#123;</span>
&nbsp; &nbsp; <span class="kw1">await</span> Task<span class="sy0">.</span><span class="me1">Delay</span><span class="br0">&#40;</span><span class="nu0">3000</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
&nbsp; &nbsp; метод<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span> &nbsp; 
<span class="br0">&#125;</span></pre></td></tr></table></div></td></tr></tbody></table></div>
				   </div>
			   </div><br />
<br />
<b>Умное усыпление потока</b><br />

			   <div class="spoiler-wrap">
				   <div class="spoiler-head folded clickable">Кликните здесь для просмотра всего текста</div>
				   <div class="spoiler-body">
					   При использовании <div class="codeblock"><table class="csharp"><thead><tr><td colspan="2" id="898503000"  class="head">C#</td></tr></thead><tbody><tr class="li1"><td><div id="898503000" style="height: 46px" class="codeframe"><table><tr class="li1"><td class="ln" style="padding: 0px 10px 0px 5px;"><pre class="de1">1
</pre></td><td class="de1"><pre class="de1"><span class="kw5">System.<span class="me1">Threading</span></span><span class="sy0">.</span><span class="me1">Thread</span><span class="sy0">.</span><span class="me1">Sleep</span><span class="br0">&#40;</span><span class="nu0">500</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></td></tr></table></div></td></tr></tbody></table></div> если программа делает какие-то дорогие вычисления, то можно заметить, что результат выводится не каждые полсекунды, а каждые <u>0.5 + времяНаВычисления секунды</u>.<br />
<br />
Чтобы выводить результат как можно быстрее, но не раньше, чем через определенный промежуток времени, можно воспользоваться таким кодом:<br />
<br />
<div class="codeblock"><table class="csharp"><thead><tr><td colspan="2" id="223532270"  class="head">C#</td></tr></thead><tbody><tr class="li1"><td><div id="223532270" style="height: 222px" class="codeframe"><table><tr class="li1"><td class="ln" style="padding: 0px 10px 0px 5px;"><pre class="de1">1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="de1"><pre class="de1"><span class="kw4">int</span> timeToSleep <span class="sy0">=</span> <span class="nu0">500</span><span class="sy0">;</span>
<span class="kw5">System.<span class="me1">Diagnostics</span></span><span class="sy0">.</span><span class="me1">Stopwatch</span> sw <span class="sy0">=</span> <span class="kw3">new</span> <span class="kw5">System.<span class="me1">Diagnostics</span></span><span class="sy0">.</span><span class="me1">Stopwatch</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="kw1">while</span> <span class="br0">&#40;</span><span class="kw1">true</span><span class="br0">&#41;</span>
<span class="br0">&#123;</span>
&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; 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; <span class="co1">// Какие-то долгие вычисления</span>
&nbsp;
&nbsp; &nbsp; Console<span class="sy0">.</span><span class="me1">WriteLine</span><span class="br0">&#40;</span><span class="st0">&quot;Вывести вычисления&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; <span class="kw5">System.<span class="me1">Threading</span></span><span class="sy0">.</span><span class="me1">Thread</span><span class="sy0">.</span><span class="me1">Sleep</span><span class="br0">&#40;</span>timeToSleep <span class="sy0">-</span> <span class="br0">&#40;</span><span class="kw4">int</span><span class="br0">&#41;</span>sw<span class="sy0">.</span><span class="me1">ElapsedMilliseconds</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span></pre></td></tr></table></div></td></tr></tbody></table></div>Мы перед тем, как начинать вычисления, засекаем время, а после просим поток поспать timeToSleep - времяЗатраченноеНаВычисления миллисекунд.
				   </div>
			   </div><br />
<br />
<b>Сразу и инициализация класса и инициализация свойств. Зашибись просто.</b><br />

			   <div class="spoiler-wrap">
				   <div class="spoiler-head folded clickable">Кликните здесь для просмотра всего текста</div>
				   <div class="spoiler-body">
					   <br />
 <div class="codeblock"><table class="csharp"><thead><tr><td colspan="2" id="85373634"  class="head">C#</td></tr></thead><tbody><tr class="li1"><td><div id="85373634" style="height: 46px" class="codeframe"><table><tr class="li1"><td class="ln" style="padding: 0px 10px 0px 5px;"><pre class="de1">1
</pre></td><td class="de1"><pre class="de1">Animal anim <span class="sy0">=</span> <span class="kw3">new</span> Animal <span class="br0">&#123;</span>Name <span class="sy0">=</span> <span class="st0">&quot;Тунзяблик&quot;</span>, Age <span class="sy0">=</span> <span class="nu0">5</span>, Weight <span class="sy0">=</span> <span class="nu0">123</span> <span class="br0">&#125;</span><span class="sy0">;</span></pre></td></tr></table></div></td></tr></tbody></table></div>
				   </div>
			   </div><br />
<br />
<b>Доработки программы : &quot;Названия чисел&quot;</b><br />

			   <div class="spoiler-wrap">
				   <div class="spoiler-head folded clickable">Кликните здесь для просмотра всего текста</div>
				   <div class="spoiler-body">
					   <br />
MaxLength Ограничивает количество символов в текст бокс<br />
Например :<br />
<br />
private void textBox1_TextChanged(object sender, EventArgs e)<br />
        {<br />
            textBox1.MaxLength = 12;<br />
        }
				   </div>
			   </div><br />
<br />
<b>Постинкремент и Преикремент</b><br />
<br />

			   <div class="spoiler-wrap">
				   <div class="spoiler-head folded clickable">Кликните здесь для просмотра всего текста</div>
				   <div class="spoiler-body">
					   <br />
Основное различие между операторами постинкремента и преинкремента заключаются в следующем:<br />
При постинкременте вызывающий код в начале получает значение переменной, а затем значение переменной увеличивается на единицу.<br />
При преинкременте в начале значение переменной увеличивается на единицу, а затем вызывающий код получает значение переменной.<br />
<br />
//Постинкремент:<br />
            int x = 0;<br />
            while (x != 5)<br />
            {<br />
                Console.WriteLine(&quot;post &quot; + x++);<br />
            }<br />
<br />
<br />
//Преинкремент:<br />
            int y = 0;<br />
            while (y != 5)<br />
            {<br />
                Console.WriteLine(&quot;pre &quot; + ++y);<br />
            }<br />
<br />

				   </div>
			   </div><br />
<br />
<b>Задержка, усыпление потока: </b><br />
<br />
 
			   <div class="spoiler-wrap">
				   <div class="spoiler-head folded clickable">Кликните здесь для просмотра всего текста</div>
				   <div class="spoiler-body">
					   <br />
Thread.Sleep(1000); // засыпаем на одну секунду 
				   </div>
			   </div><br />
<br />
<b>Запихивание в  параметры всего что не попадя</b><br />

			   <div class="spoiler-wrap">
				   <div class="spoiler-head folded clickable">Кликните здесь для просмотра всего текста</div>
				   <div class="spoiler-body">
					   <br />
Это из урока про методы.<br />
В данном случае, офигенно передан массив в качестве параметра.<br />
<br />
       {       <br />
            int intMax = GetmaxValue(new int[] { 1, 2, 3, 123, -67, 567, 5, 4, 0 });<br />
<br />
            Console.WriteLine(intMax);<br />
        }<br />
  //метод который определяет максимальное из всех числе в массиве<br />
        static int GetmaxValue(int[] intArray)<br />
        {<br />
            Array.Sort(intArray);<br />
            return intArray[intArray.Length -1];<br />
        }<br />
<br />

				   </div>
			   </div><br />
<br />
<b>Определение длины строки. Свойство и разные способы форматирования</b><br />
<br />

			   <div class="spoiler-wrap">
				   <div class="spoiler-head folded clickable">Кликните здесь для просмотра всего текста</div>
				   <div class="spoiler-body">
					   <br />
string str = &quot;abcdefg&quot;;<br />
       Console.WriteLine(&quot;1) The length of '{0}' is {1}&quot;, str, str.Length);<br />
       Console.WriteLine(&quot;2) The length of '{0}' is {1}&quot;, &quot;xyz&quot;, &quot;xyz&quot;.Length);<br />
<br />
       int length = str.Length;<br />
       Console.WriteLine(&quot;3) The length of '{0}' is {1}&quot;, str, length);<br />
<br />

				   </div>
			   </div><br />
<br />
<b>Собрать кусок кода под &quot;спойлер&quot; VisualStudio</b><br />

			   <div class="spoiler-wrap">
				   <div class="spoiler-head folded clickable">Кликните здесь для просмотра всего текста</div>
				   <div class="spoiler-body">
					   #region<br />
какой то код<br />
#endregion
				   </div>
			   </div><br />
<br />
<br />
<b>Передача обьекта класса в параметры метода</b>:<br />
[SPOILER]Есть два класса, в одном описан Лев и через конструктор передается кличка , а в другом работник кормит этого льва по кличке.....Вот как передать кличку льва в метод второго класса? Нужно в параметры метода передать ссылку на обьект класса<br />
<br />

			   <div class="spoiler-wrap">
				   <div class="spoiler-head folded clickable">Кликните здесь для просмотра всего текста</div>
				   <div class="spoiler-body">
					   <div class="codeblock"><table class="csharp"><thead><tr><td colspan="2" id="546584253"  class="head">C#</td></tr></thead><tbody><tr class="li1"><td><div id="546584253" 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
</pre></td><td class="de1"><pre class="de1"><span class="kw4">class</span> Lion
&nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> <span class="kw4">string</span> Name <span class="br0">&#123;</span> <span class="kw1">get</span><span class="sy0">;</span> <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> <span class="kw1">event</span> Action IsHungry<span class="sy0">;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> Lion<span class="br0">&#40;</span><span class="kw4">string</span> name<span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Name <span class="sy0">=</span> name<span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> <span class="kw4">void</span> Walk<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; Console<span class="sy0">.</span><span class="me1">WriteLine</span><span class="br0">&#40;</span><span class="st0">&quot;Лев гуляет...&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Thread<span class="sy0">.</span><span class="me1">Sleep</span><span class="br0">&#40;</span><span class="nu0">3000</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><span class="st0">&quot;Лев голоден...&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>IsHungry <span class="sy0">!=</span> <span class="kw1">null</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; IsHungry<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp;
&nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp;
<span class="kw4">class</span> Worker
&nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// в параметры метода передается ссылка на обьект другого класса,</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="co1">// чтобы затем в теле метода обратится к членом этого класса</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> <span class="kw4">void</span> Feed<span class="br0">&#40;</span>Lion lion<span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Console<span class="sy0">.</span><span class="me1">WriteLine</span><span class="br0">&#40;</span>$<span class="st0">&quot;Сотрудник покормил льва по кличке {lion.Name}&quot;</span><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>
&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="kw4">string</span><span class="br0">&#91;</span><span class="br0">&#93;</span> args<span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Lion lion <span class="sy0">=</span> <span class="kw3">new</span> Lion<span class="br0">&#40;</span><span class="st0">&quot;Tom&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Worker worker <span class="sy0">=</span> <span class="kw3">new</span> Worker<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; worker<span class="sy0">.</span><span class="me1">Feed</span><span class="br0">&#40;</span>lion<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></pre></td></tr></table></div></td></tr></tbody></table></div>
				   </div>
			   </div><br />
<br />
<b>Умножение строк и массив алфавита</b><br />

			   <div class="spoiler-wrap">
				   <div class="spoiler-head folded clickable">Кликните здесь для просмотра всего текста</div>
				   <div class="spoiler-body">
					   <div class="codeblock"><table class="csharp"><thead><tr><td colspan="2" id="667826241"  class="head">C#</td></tr></thead><tbody><tr class="li1"><td><div id="667826241" 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
</pre></td><td class="de1"><pre class="de1"><span class="kw1">internal</span> <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="kw4">string</span><span class="br0">&#91;</span><span class="br0">&#93;</span> args<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">char</span><span class="br0">&#91;</span><span class="br0">&#93;</span> letters <span class="sy0">=</span> Enumerable<span class="sy0">.</span><span class="me1">Range</span><span class="br0">&#40;</span><span class="st0">'a'</span>, <span class="st0">'z'</span> <span class="sy0">-</span> <span class="st0">'a'</span> <span class="sy0">+</span> <span class="nu0">1</span><span class="br0">&#41;</span><span class="sy0">.</span><span class="kw1">Select</span><span class="br0">&#40;</span>c <span class="sy0">=&gt;</span> <span class="br0">&#40;</span><span class="kw4">char</span><span class="br0">&#41;</span>c<span class="br0">&#41;</span><span class="sy0">.</span><span class="me1">ToArray</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Random dice <span class="sy0">=</span> <span class="kw3">new</span> Random<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> count <span class="sy0">=</span> dice<span class="sy0">.</span><span class="me1">Next</span><span class="br0">&#40;</span><span class="nu0">0</span>,letters<span class="sy0">.</span><span class="me1">Length</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Console<span class="sy0">.</span><span class="me1">WriteLine</span><span class="br0">&#40;</span>letters<span class="br0">&#91;</span>count<span class="br0">&#93;</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><span class="st0">&quot;string&quot;</span><span class="sy0">.</span><span class="me1">Repeat</span><span class="br0">&#40;</span><span class="nu0">5</span><span class="br0">&#41;</span><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>
&nbsp;
&nbsp; &nbsp; <span class="co1">//умножение строк. Принимает строку и число и возвращает строку умноженую на число. </span>
&nbsp; &nbsp; <span class="kw1">public</span> <span class="kw1">static</span> <span class="kw4">class</span> StringExtensions
&nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> <span class="kw1">static</span> <span class="kw4">string</span> Repeat<span class="br0">&#40;</span><span class="kw1">this</span> <span class="kw4">string</span> <span class="kw1">value</span>, <span class="kw4">int</span> count<span class="br0">&#41;</span> <span class="sy0">=&gt;</span> <span class="kw4">string</span><span class="sy0">.</span><span class="me1">Concat</span><span class="br0">&#40;</span>Enumerable<span class="sy0">.</span><span class="me1">Repeat</span><span class="br0">&#40;</span><span class="kw1">value</span>, count<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; <span class="br0">&#125;</span></pre></td></tr></table></div></td></tr></tbody></table></div>
				   </div>
			   </div></div>

]]></content:encoded>
			<dc:creator>Leshakk</dc:creator>
			<guid isPermaLink="true">https://www.cyberforum.ru/blogs/1882147/7508.html</guid>
		</item>
		<item>
			<title>C# Красивые решения задач.</title>
			<link>https://www.cyberforum.ru/blogs/1882147/7536.html</link>
			<pubDate>Tue, 03 May 2022 20:13:33 GMT</pubDate>
			<description>*Шифровка-дешифровка. Не решена.* 
 
О, боги C#, помогите мне, прошу вас! 
Мюллер много раз пытался...</description>
			<content:encoded><![CDATA[<div><b>Шифровка-дешифровка. Не решена.</b><br />

			   <div class="spoiler-wrap">
				   <div class="spoiler-head folded clickable">Кликните здесь для просмотра всего текста</div>
				   <div class="spoiler-body">
					   <br />
О, боги C#, помогите мне, прошу вас!<br />
Мюллер много раз пытался поймать Штирлица с поличным, но тот всё время выкручивался. Как-то раз Штирлиц просматривал электронную почту. В это время незаметно вошел Мюллер и увидел, как у Штирлица на экране появился бессмысленный набор символов. — Шифровка, — подумал Мюллер. —UTF-8, — подумал Штирлиц.<br />
<br />
Известно, что Штирлиц шифрует текст следующим образом:<br />
1.Убирает все символы, отличные от букв, включая пробелы. Буквы приводятся к одному регистру.<br />
2.Заменяет все подряд идущие одинаковые буквы на одну такую букву.<br />
3.Многократно вставляет в произвольное место текста две случайные одинаковых буквы.<br />
<br />
Напишите метод шифрования.<br />
Количество вставок — случайно число от n до 3n, где n— длина строки.<br />
Место каждой вставки выбирается случайно.<br />
Напишите метод дешифровки с использованием подходящей структуры данных (в результате получится текст, каким он был после второго этапа).<br />
Напишите модульные тесты методов.<br />
Напишите основную программу, которая запрашивает текст и выдает зашифрованное и расшифрованные сообщения.<br />
<br />
Примеры:<br />
stierlitz - wwstdaadierfflitzzz - stierlitz<br />
A little bee - rrasspplzzitlqqeeebyyggeccbb - alitlebe<br />

				   </div>
			   </div><br />
<br />
<b>Дележ яблок</b><br />

			   <div class="spoiler-wrap">
				   <div class="spoiler-head folded clickable">Кликните здесь для просмотра всего текста</div>
				   <div class="spoiler-body">
					   <br />
n школьников делят k яблок “поровну”, то есть так, чтобы количество яблок, доставшихся любым двум школьникам, отличалось бы не более, чем на 1.<br />
Программа получает на вход числа n и k.<br />
Программа должна вывести количество школьников, которым достанется яблок меньше, чем некоторым из их товарищей.<br />
При решении этой задачи нельзя пользоваться условной инструкцией if и циклами.<br />
<br />
<div class="codeblock"><table class="csharp"><thead><tr><td colspan="2" id="308184012"  class="head">C#</td></tr></thead><tbody><tr class="li1"><td><div id="308184012" style="height: 78px" class="codeframe"><table><tr class="li1"><td class="ln" style="padding: 0px 10px 0px 5px;"><pre class="de1">1
2
3
</pre></td><td class="de1"><pre class="de1">&nbsp;<span class="kw4">int</span> n <span class="sy0">=</span> Convert<span class="sy0">.</span><span class="me1">ToInt32</span><span class="br0">&#40;</span>Console<span class="sy0">.</span><span class="me1">ReadLine</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> k <span class="sy0">=</span> Convert<span class="sy0">.</span><span class="me1">ToInt32</span><span class="br0">&#40;</span>Console<span class="sy0">.</span><span class="me1">ReadLine</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Console<span class="sy0">.</span><span class="me1">Write</span><span class="br0">&#40;</span><span class="br0">&#40;</span>n <span class="sy0">-</span> <span class="br0">&#40;</span>k <span class="sy0">%</span> n<span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="sy0">%</span> n<span class="br0">&#41;</span><span class="sy0">;</span></pre></td></tr></table></div></td></tr></tbody></table></div>
				   </div>
			   </div><br />
<br />
<br />
<b>За день машина проезжает n километров. Сколько дней нужно, чтобы проехать маршрут длиной m километров?</b><br />

			   <div class="spoiler-wrap">
				   <div class="spoiler-head folded clickable">Кликните здесь для просмотра всего текста</div>
				   <div class="spoiler-body">
					   <br />
При решении этой задачи нельзя пользоваться условной инструкцией if и циклами.<br />
Программа получает на вход натуральные числа n и m, не превосходящие 10000.<br />
<div class="codeblock"><table class="csharp"><thead><tr><td colspan="2" id="569132796"  class="head">C#</td></tr></thead><tbody><tr class="li1"><td><div id="569132796" style="height: 174px" 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
</pre></td><td class="de1"><pre class="de1"><span class="co1">//формула округления вверх: (m + n - 1) / n)</span>
&nbsp;
<span class="kw1">static</span> <span class="kw4">void</span> Main<span class="br0">&#40;</span><span class="kw4">string</span><span class="br0">&#91;</span><span class="br0">&#93;</span> args<span class="br0">&#41;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> n <span class="sy0">=</span> Convert<span class="sy0">.</span><span class="me1">ToInt32</span><span class="br0">&#40;</span>Console<span class="sy0">.</span><span class="me1">ReadLine</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> m <span class="sy0">=</span> Convert<span class="sy0">.</span><span class="me1">ToInt32</span><span class="br0">&#40;</span>Console<span class="sy0">.</span><span class="me1">ReadLine</span><span class="br0">&#40;</span><span class="br0">&#41;</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><span class="br0">&#40;</span>m <span class="sy0">+</span> n <span class="sy0">-</span> <span class="nu0">1</span><span class="br0">&#41;</span> <span class="sy0">/</span> n<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></pre></td></tr></table></div></td></tr></tbody></table></div>
				   </div>
			   </div><br />
<br />
<b>Промежуток времени</b><br />

			   <div class="spoiler-wrap">
				   <div class="spoiler-head folded clickable">Кликните здесь для просмотра всего текста</div>
				   <div class="spoiler-body">
					   Даны значения двух моментов времени, принадлежащих одним и тем же суткам: часы, минуты и секунды для каждого из моментов времени. Известно, что второй момент времени наступил не раньше первого. Определите, сколько секунд прошло между двумя моментами времени.<br />
Программа на вход получает три целых числа — часы, минуты, секунды, задающие первый момент времени и три целых числа, задающих второй момент времени.<br />
Выведите число секунд между этими моментами времени.<br />
<div class="codeblock"><table class="csharp"><thead><tr><td colspan="2" id="920648554"  class="head">C#</td></tr></thead><tbody><tr class="li1"><td><div id="920648554" 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
</pre></td><td class="de1"><pre class="de1"><span class="co1">//Мое решение</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> hh <span class="sy0">=</span> Convert<span class="sy0">.</span><span class="me1">ToInt32</span><span class="br0">&#40;</span>Console<span class="sy0">.</span><span class="me1">ReadLine</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> mm <span class="sy0">=</span> Convert<span class="sy0">.</span><span class="me1">ToInt32</span><span class="br0">&#40;</span>Console<span class="sy0">.</span><span class="me1">ReadLine</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> ss <span class="sy0">=</span> Convert<span class="sy0">.</span><span class="me1">ToInt32</span><span class="br0">&#40;</span>Console<span class="sy0">.</span><span class="me1">ReadLine</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> hh1 <span class="sy0">=</span> Convert<span class="sy0">.</span><span class="me1">ToInt32</span><span class="br0">&#40;</span>Console<span class="sy0">.</span><span class="me1">ReadLine</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> mm1 <span class="sy0">=</span> Convert<span class="sy0">.</span><span class="me1">ToInt32</span><span class="br0">&#40;</span>Console<span class="sy0">.</span><span class="me1">ReadLine</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> ss1 <span class="sy0">=</span> Convert<span class="sy0">.</span><span class="me1">ToInt32</span><span class="br0">&#40;</span>Console<span class="sy0">.</span><span class="me1">ReadLine</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> x <span class="sy0">=</span> hh <span class="sy0">*</span> <span class="nu0">3600</span> <span class="sy0">+</span> mm <span class="sy0">*</span> <span class="nu0">60</span> <span class="sy0">+</span> ss<span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> y <span class="sy0">=</span> hh1 <span class="sy0">*</span> <span class="nu0">3600</span> <span class="sy0">+</span> mm1 <span class="sy0">*</span> <span class="nu0">60</span> <span class="sy0">+</span> ss1<span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> z <span class="sy0">=</span> y <span class="sy0">-</span> x<span class="sy0">;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Console<span class="sy0">.</span><span class="me1">WriteLine</span><span class="br0">&#40;</span>z<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
<span class="co1">//v2</span>
<span class="kw1">public</span> <span class="kw1">static</span> <span class="kw4">void</span> Main<span class="br0">&#40;</span><span class="br0">&#41;</span>
&nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> firstMoment <span class="sy0">=</span> <span class="kw4">int</span><span class="sy0">.</span><span class="me1">Parse</span><span class="br0">&#40;</span>Console<span class="sy0">.</span><span class="me1">ReadLine</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="sy0">*</span> <span class="nu0">60</span> <span class="sy0">*</span> <span class="nu0">60</span> <span class="sy0">+</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span><span class="sy0">.</span><span class="me1">Parse</span><span class="br0">&#40;</span>Console<span class="sy0">.</span><span class="me1">ReadLine</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="sy0">*</span> <span class="nu0">60</span> <span class="sy0">+</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span><span class="sy0">.</span><span class="me1">Parse</span><span class="br0">&#40;</span>Console<span class="sy0">.</span><span class="me1">ReadLine</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> secondMoment <span class="sy0">=</span> <span class="kw4">int</span><span class="sy0">.</span><span class="me1">Parse</span><span class="br0">&#40;</span>Console<span class="sy0">.</span><span class="me1">ReadLine</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="sy0">*</span> <span class="nu0">60</span> <span class="sy0">*</span> <span class="nu0">60</span> <span class="sy0">+</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span><span class="sy0">.</span><span class="me1">Parse</span><span class="br0">&#40;</span>Console<span class="sy0">.</span><span class="me1">ReadLine</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="sy0">*</span> <span class="nu0">60</span> <span class="sy0">+</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span><span class="sy0">.</span><span class="me1">Parse</span><span class="br0">&#40;</span>Console<span class="sy0">.</span><span class="me1">ReadLine</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; Console<span class="sy0">.</span><span class="me1">WriteLine</span><span class="br0">&#40;</span>secondMoment <span class="sy0">-</span> firstMoment<span class="br0">&#41;</span><span class="sy0">;</span></pre></td></tr></table></div></td></tr></tbody></table></div>
				   </div>
			   </div><br />
<br />
<b>Длина кольцевой дороги — 109 километров</b>. Байкер Вася стартует с нулевого километра  и едет со скоростью v километров в час. На какой отметке он остановится через t часов?<br />

			   <div class="spoiler-wrap">
				   <div class="spoiler-head folded clickable">Кликните здесь для просмотра всего текста</div>
				   <div class="spoiler-body">
					   <br />
Входные данные<br />
Программа получает на вход значения v и t. Если v&gt;0, то Вася движется в положительном направлении по кольцу, если же значение v&lt;0, то в отрицательном.<br />
Выходные данные<br />
Программа должна вывести целое число от 0 до 108 — номер отметки, на которой остановится Вася.<br />
<br />
<div class="codeblock"><table class="csharp"><thead><tr><td colspan="2" id="474654698"  class="head">C#</td></tr></thead><tbody><tr class="li1"><td><div id="474654698" style="height: 126px" class="codeframe"><table><tr class="li1"><td class="ln" style="padding: 0px 10px 0px 5px;"><pre class="de1">1
2
3
4
5
6
</pre></td><td class="de1"><pre class="de1"><span class="kw1">public</span> <span class="kw1">static</span> <span class="kw4">void</span> Main<span class="br0">&#40;</span><span class="br0">&#41;</span>
&nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> v <span class="sy0">=</span> Convert<span class="sy0">.</span><span class="me1">ToInt16</span><span class="br0">&#40;</span>Console<span class="sy0">.</span><span class="me1">ReadLine</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> t <span class="sy0">=</span> Convert<span class="sy0">.</span><span class="me1">ToInt16</span><span class="br0">&#40;</span>Console<span class="sy0">.</span><span class="me1">ReadLine</span><span class="br0">&#40;</span><span class="br0">&#41;</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><span class="br0">&#40;</span><span class="nu0">109</span> <span class="sy0">+</span> <span class="br0">&#40;</span>v <span class="sy0">*</span> t <span class="sy0">%</span> <span class="nu0">109</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">%</span>109<span class="br0">&#41;</span><span class="sy0">;</span> &nbsp; 
&nbsp; &nbsp; <span class="br0">&#125;</span></pre></td></tr></table></div></td></tr></tbody></table></div>
				   </div>
			   </div><br />
<br />
<b>Дано натуральное число. Выведите его последнюю цифру.</b><br />

			   <div class="spoiler-wrap">
				   <div class="spoiler-head folded clickable">Кликните здесь для просмотра всего текста</div>
				   <div class="spoiler-body">
					   <div class="codeblock"><table class="csharp"><thead><tr><td colspan="2" id="834943796"  class="head">C#</td></tr></thead><tbody><tr class="li1"><td><div id="834943796" style="height: 238px" 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
</pre></td><td class="de1"><pre class="de1"><span class="co1">//1v.</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw4">string</span> a <span class="sy0">=</span> Console<span class="sy0">.</span><span class="me1">ReadLine</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw4">char</span><span class="br0">&#91;</span><span class="br0">&#93;</span> b <span class="sy0">=</span> a<span class="sy0">.</span><span class="me1">ToCharArray</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>b<span class="br0">&#91;</span>b<span class="sy0">.</span><span class="me1">Length</span> <span class="sy0">-</span> <span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
<span class="co1">//2v.</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> a <span class="sy0">=</span> <span class="kw4">int</span><span class="sy0">.</span><span class="me1">Parse</span><span class="br0">&#40;</span>Console<span class="sy0">.</span><span class="me1">ReadLine</span><span class="br0">&#40;</span><span class="br0">&#41;</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>a <span class="sy0">%</span> <span class="nu0">10</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
<span class="co1">//3v.</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">string</span> line <span class="sy0">=</span> Console<span class="sy0">.</span><span class="me1">ReadLine</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">string</span><span class="br0">&#91;</span><span class="br0">&#93;</span> splitString <span class="sy0">=</span> line<span class="sy0">.</span><span class="me1">Split</span><span class="br0">&#40;</span><span class="st0">' '</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>line<span class="br0">&#91;</span><span class="sy0">^</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></td></tr></table></div></td></tr></tbody></table></div>
				   </div>
			   </div><br />
<br />
<b>Дано двузначное положительное или отрицательное число. Найдите число десятков в нем. Ответ положительное число</b><br />

			   <div class="spoiler-wrap">
				   <div class="spoiler-head folded clickable">Кликните здесь для просмотра всего текста</div>
				   <div class="spoiler-body">
					   <div class="codeblock"><table class="csharp"><thead><tr><td colspan="2" id="479064884"  class="head">C#</td></tr></thead><tbody><tr class="li1"><td><div id="479064884" style="height: 254px" 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
</pre></td><td class="de1"><pre class="de1"><span class="co1">//v1 топовый</span>
<span class="kw1">public</span> <span class="kw1">static</span> <span class="kw4">void</span> Main<span class="br0">&#40;</span><span class="br0">&#41;</span>
&nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; Console<span class="sy0">.</span><span class="me1">WriteLine</span><span class="br0">&#40;</span>Math<span class="sy0">.</span><span class="me1">Abs</span><span class="br0">&#40;</span><span class="kw4">int</span><span class="sy0">.</span><span class="me1">Parse</span><span class="br0">&#40;</span>Console<span class="sy0">.</span><span class="me1">ReadLine</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="sy0">/</span> <span class="nu0">10</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp;
<span class="co1">//v2 нубский</span>
<span class="kw1">public</span> <span class="kw1">static</span> <span class="kw4">void</span> Main<span class="br0">&#40;</span><span class="br0">&#41;</span>
&nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp;<span class="kw4">int</span> x <span class="sy0">=</span> Convert<span class="sy0">.</span><span class="me1">ToInt32</span><span class="br0">&#40;</span>Console<span class="sy0">.</span><span class="me1">ReadLine</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>x <span class="sy0">&lt;</span> <span class="nu0">0</span><span class="br0">&#41;</span> x <span class="sy0">=</span> x <span class="sy0">*</span> <span class="br0">&#40;</span><span class="sy0">-</span><span class="nu0">1</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> y <span class="sy0">=</span> x <span class="sy0">/</span> <span class="nu0">10</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; Console<span class="sy0">.</span><span class="me1">WriteLine</span><span class="br0">&#40;</span>y<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; <span class="br0">&#125;</span></pre></td></tr></table></div></td></tr></tbody></table></div>
				   </div>
			   </div><br />
<br />
<b>Дано трехзначное число (оно может быть отрицательным). Найдите сумму его цифр.</b><br />
<br />

			   <div class="spoiler-wrap">
				   <div class="spoiler-head folded clickable">Кликните здесь для просмотра всего текста</div>
				   <div class="spoiler-body">
					   <div class="codeblock"><table class="csharp"><thead><tr><td colspan="2" id="458670008"  class="head">C#</td></tr></thead><tbody><tr class="li1"><td><div id="458670008" 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
</pre></td><td class="de1"><pre class="de1"><span class="co1">//Подвох был еще в том, что результат должен быть положительным. Типа цифры это цифры. И сумма цифр, отрицательного числа, есть сумма по модулю. ХЗ насколько это верно. Но бот не принимал отицательный ответ.</span>
<span class="co1">//Блестящее решение</span>
<span class="kw1">public</span> <span class="kw1">static</span> <span class="kw4">void</span> Main<span class="br0">&#40;</span><span class="br0">&#41;</span>
&nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw4">int</span> input <span class="sy0">=</span> <span class="kw4">int</span><span class="sy0">.</span><span class="me1">Parse</span><span class="br0">&#40;</span>Console<span class="sy0">.</span><span class="me1">ReadLine</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Console<span class="sy0">.</span><span class="me1">WriteLine</span><span class="br0">&#40;</span>Math<span class="sy0">.</span><span class="me1">Abs</span><span class="br0">&#40;</span><span class="br0">&#40;</span>input <span class="sy0">/</span> <span class="nu0">100</span> <span class="sy0">%</span> <span class="nu0">10</span><span class="br0">&#41;</span> <span class="sy0">+</span> <span class="br0">&#40;</span>input <span class="sy0">/</span> <span class="nu0">10</span> <span class="sy0">%</span> <span class="nu0">10</span><span class="br0">&#41;</span> <span class="sy0">+</span> <span class="br0">&#40;</span>input <span class="sy0">%</span> <span class="nu0">10</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp;
<span class="co1">//Мое решения. Треш &nbsp;и угар</span>
<span class="kw1">public</span> <span class="kw1">static</span> <span class="kw4">void</span> Main<span class="br0">&#40;</span><span class="br0">&#41;</span>
&nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> x <span class="sy0">=</span> Convert<span class="sy0">.</span><span class="me1">ToInt32</span><span class="br0">&#40;</span>Console<span class="sy0">.</span><span class="me1">ReadLine</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; 
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> c <span class="sy0">=</span> x <span class="sy0">%</span> <span class="nu0">10</span><span class="sy0">;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> b <span class="sy0">=</span> x <span class="sy0">%</span> <span class="nu0">100</span> <span class="sy0">/</span> <span class="nu0">10</span><span class="sy0">;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> a <span class="sy0">=</span> x <span class="sy0">%</span> <span class="nu0">1000</span> <span class="sy0">/</span> <span class="nu0">100</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; 
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> y <span class="sy0">=</span> a <span class="sy0">+</span>b <span class="sy0">+</span> c<span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>y <span class="sy0">&lt;</span> <span class="nu0">0</span><span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; y <span class="sy0">=</span> <span class="br0">&#40;</span>y <span class="sy0">*</span> <span class="sy0">-</span><span class="nu0">1</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Console<span class="sy0">.</span><span class="me1">WriteLine</span><span class="br0">&#40;</span>y<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp;
<span class="co1">//Еще какое то. </span>
&nbsp;<span class="kw1">public</span> <span class="kw1">static</span> <span class="kw4">void</span> Main<span class="br0">&#40;</span><span class="br0">&#41;</span>
&nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> x <span class="sy0">=</span> Convert<span class="sy0">.</span><span class="me1">ToInt32</span><span class="br0">&#40;</span>Console<span class="sy0">.</span><span class="me1">ReadLine</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> sum <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">while</span><span class="br0">&#40;</span>x <span class="sy0">&gt;</span> <span class="nu0">0</span><span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sum <span class="sy0">+=</span> x <span class="sy0">%</span> <span class="nu0">10</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; x <span class="sy0">/=</span> <span class="nu0">10</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; Console<span class="sy0">.</span><span class="me1">WriteLine</span><span class="br0">&#40;</span>sum<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; <span class="br0">&#125;</span></pre></td></tr></table></div></td></tr></tbody></table></div>
				   </div>
			   </div><br />
<br />
<b>Электронные часы</b><br />

			   <div class="spoiler-wrap">
				   <div class="spoiler-head folded clickable">Кликните здесь для просмотра всего текста</div>
				   <div class="spoiler-body">
					   Электронные часы показывают время в формате h:mm:ss, то есть сначала записывается количество часов, потом обязательно двузначное количество минут, затем обязательно двузначное количество секунд. Количество минут и секунд при необходимости дополняются до двузначного числа нулями.<br />
С начала суток прошло n секунд. Выведите, что покажут часы.<br />
Вводится целое число n.<br />
<div class="codeblock"><table class="csharp"><thead><tr><td colspan="2" id="244451744"  class="head">C#</td></tr></thead><tbody><tr class="li1"><td><div id="244451744" style="height: 270px" 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
</pre></td><td class="de1"><pre class="de1"><span class="co1">//Мое решение</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> sec <span class="sy0">=</span> <span class="br0">&#40;</span>a <span class="sy0">&gt;=</span> <span class="nu0">60</span><span class="br0">&#41;</span> <span class="sy0">?</span> a <span class="sy0">%</span> <span class="nu0">60</span> <span class="sy0">:</span> a<span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> min <span class="sy0">=</span> <span class="br0">&#40;</span>a <span class="sy0">&gt;=</span> <span class="nu0">60</span><span class="br0">&#41;</span> <span class="sy0">?</span> <span class="br0">&#40;</span>a <span class="sy0">/</span> <span class="nu0">60</span><span class="br0">&#41;</span> <span class="sy0">%</span> <span class="nu0">60</span> <span class="sy0">:</span> <span class="nu0">0</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> hours <span class="sy0">=</span> <span class="br0">&#40;</span>a <span class="sy0">&gt;=</span> <span class="nu0">3600</span><span class="br0">&#41;</span> <span class="sy0">?</span> <span class="br0">&#40;</span>a <span class="sy0">/</span> <span class="nu0">3600</span><span class="br0">&#41;</span> <span class="sy0">%</span> <span class="nu0">24</span> <span class="sy0">:</span> <span class="nu0">0</span><span class="sy0">;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Console<span class="sy0">.</span><span class="me1">WriteLine</span><span class="br0">&#40;</span><span class="st0">&quot;{0}:{1}:{2}&quot;</span>, hours, <span class="br0">&#40;</span>min <span class="sy0">&lt;</span> <span class="nu0">10</span><span class="br0">&#41;</span> <span class="sy0">?</span> $<span class="st0">&quot;0{min}&quot;</span> <span class="sy0">:</span> $<span class="st0">&quot;{min}&quot;</span>, <span class="br0">&#40;</span>sec <span class="sy0">&lt;</span> <span class="nu0">10</span><span class="br0">&#41;</span> <span class="sy0">?</span> $<span class="st0">&quot;0{sec}&quot;</span> <span class="sy0">:</span> $<span class="st0">&quot;{sec}&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
<span class="co1">//Еще какое-то</span>
<span class="kw1">public</span> <span class="kw1">static</span> <span class="kw4">void</span> Main<span class="br0">&#40;</span><span class="br0">&#41;</span>
&nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw4">int</span> allSeconds <span class="sy0">=</span> <span class="kw4">int</span><span class="sy0">.</span><span class="me1">Parse</span><span class="br0">&#40;</span>Console<span class="sy0">.</span><span class="me1">ReadLine</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DateTime date1 <span class="sy0">=</span> <span class="kw3">new</span> DateTime<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DateTime clock <span class="sy0">=</span> date1<span class="sy0">.</span><span class="me1">AddSeconds</span><span class="br0">&#40;</span>allSeconds<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Console<span class="sy0">.</span><span class="me1">WriteLine</span><span class="br0">&#40;</span>$<span class="st0">&quot;{clock.Hour}:{clock.Minute:d2}:{clock.Second:d2}&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; <span class="br0">&#125;</span></pre></td></tr></table></div></td></tr></tbody></table></div>
				   </div>
			   </div><br />
<br />
<b>Расписание уроков.</b><br />

			   <div class="spoiler-wrap">
				   <div class="spoiler-head folded clickable">Кликните здесь для просмотра всего текста</div>
				   <div class="spoiler-body">
					   В некоторой школе занятия начинаются в 9:00. Продолжительность урока — 45 минут, после 1-го, 3-го, 5-го и т.д. уроков перемена 5 минут, а после 2-го, 4-го, 6-го и т.д. — 15 минут. Определите, когда заканчивается указанный урок.<br />
Дан номер урока (число от 1 до 10).<br />
Выведите два целых числа: время окончания урока в часах и минутах. При решении этой задачи нельзя пользоваться циклами и условными инструкциями. В минута ведущий ноль не нужен.<br />
<br />
<div class="codeblock"><table class="csharp"><thead><tr><td colspan="2" id="412928495"  class="head">C#</td></tr></thead><tbody><tr class="li1"><td><div id="412928495" 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
</pre></td><td class="de1"><pre class="de1"><span class="co1">//мое решение. Как бы честолюбие подсказывает, что нужна математическая формула, алгоритм, а не ручная подстановка....Ой да и пофиг, умение тупо и просто решить задачу, без заморочек-тоже умение.</span>
&nbsp;
<span class="kw1">public</span> <span class="kw1">static</span> <span class="kw4">void</span> Main<span class="br0">&#40;</span><span class="br0">&#41;</span>
&nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> x <span class="sy0">=</span> Convert<span class="sy0">.</span><span class="me1">ToInt32</span><span class="br0">&#40;</span>Console<span class="sy0">.</span><span class="me1">ReadLine</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">string</span><span class="br0">&#91;</span><span class="br0">&#93;</span> ur <span class="sy0">=</span> <span class="br0">&#123;</span><span class="st0">&quot; &quot;</span> ,<span class="st0">&quot;9 45&quot;</span>, <span class="st0">&quot;10 35&quot;</span>, <span class="st0">&quot;11 35&quot;</span>, <span class="st0">&quot;12 25&quot;</span>, <span class="st0">&quot;13 25&quot;</span>, <span class="st0">&quot;14 15&quot;</span>, <span class="st0">&quot;15 15&quot;</span>, <span class="st0">&quot;16 5&quot;</span>, <span class="st0">&quot;17 5&quot;</span>, <span class="st0">&quot;17 55&quot;</span> <span class="br0">&#125;</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>ur<span class="br0">&#91;</span>x<span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp;
&nbsp;
<span class="co1">//Такое же как у меня, ручной вбив массива, но вывод, красивый. </span>
<span class="kw1">public</span> <span class="kw1">static</span> <span class="kw4">void</span> Main<span class="br0">&#40;</span><span class="br0">&#41;</span>
&nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; Console<span class="sy0">.</span><span class="me1">WriteLine</span><span class="br0">&#40;</span><span class="kw3">new</span> <span class="kw4">string</span><span class="br0">&#91;</span><span class="br0">&#93;</span>
&nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp;<span class="st0">&quot;9 45&quot;</span>,
&nbsp; &nbsp; &nbsp; &nbsp;<span class="st0">&quot;10 35&quot;</span>,
&nbsp; &nbsp; &nbsp; &nbsp;<span class="st0">&quot;11 35&quot;</span>,
&nbsp; &nbsp; &nbsp; &nbsp;<span class="st0">&quot;12 25&quot;</span>,
&nbsp; &nbsp; &nbsp; &nbsp;<span class="st0">&quot;13 25&quot;</span>,
&nbsp; &nbsp; &nbsp; &nbsp;<span class="st0">&quot;14 15&quot;</span>,
&nbsp; &nbsp; &nbsp; &nbsp;<span class="st0">&quot;15 15&quot;</span>,
&nbsp; &nbsp; &nbsp; &nbsp;<span class="st0">&quot;16 05&quot;</span>,
&nbsp; &nbsp; &nbsp; &nbsp;<span class="st0">&quot;17 05&quot;</span>,
&nbsp; &nbsp; &nbsp; &nbsp;<span class="st0">&quot;17 55&quot;</span>,
&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#91;</span><span class="kw4">int</span><span class="sy0">.</span><span class="me1">Parse</span><span class="br0">&#40;</span>Console<span class="sy0">.</span><span class="me1">ReadLine</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="sy0">-</span> <span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span> &nbsp; &nbsp;
&nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp;
<span class="co1">//Ну очень крутое решение. </span>
<span class="kw1">public</span> <span class="kw1">static</span> <span class="kw4">void</span> Main<span class="br0">&#40;</span><span class="br0">&#41;</span>
&nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// put your c# code here</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> n<span class="sy0">=</span>Convert<span class="sy0">.</span><span class="me1">ToInt32</span><span class="br0">&#40;</span>Console<span class="sy0">.</span><span class="me1">ReadLine</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; Console<span class="sy0">.</span><span class="me1">WriteLine</span><span class="br0">&#40;</span><span class="br0">&#40;</span><span class="nu0">55</span><span class="sy0">*</span>n<span class="sy0">+</span><span class="br0">&#40;</span>n<span class="sy0">%</span>2<span class="br0">&#41;</span><span class="sy0">*</span><span class="nu0">5</span><span class="sy0">+</span><span class="nu0">525</span><span class="br0">&#41;</span><span class="sy0">/</span><span class="nu0">60</span> <span class="sy0">+</span> <span class="st0">&quot; &quot;</span> <span class="sy0">+</span> <span class="br0">&#40;</span><span class="nu0">55</span><span class="sy0">*</span>n<span class="sy0">+</span><span class="br0">&#40;</span>n<span class="sy0">%</span>2<span class="br0">&#41;</span><span class="sy0">*</span><span class="nu0">5</span><span class="sy0">+</span><span class="nu0">525</span><span class="br0">&#41;</span><span class="sy0">%</span>60<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; <span class="br0">&#125;</span></pre></td></tr></table></div></td></tr></tbody></table></div>
				   </div>
			   </div><br />
<br />
<b>Пирожок в столовой стоит a рублей и b копеек. Определите, сколько рублей и копеек нужно заплатить за n пирожков.</b><br />

			   <div class="spoiler-wrap">
				   <div class="spoiler-head folded clickable">Кликните здесь для просмотра всего текста</div>
				   <div class="spoiler-body">
					   Программа получает на вход три числа: a, b, n.<br />
Программа должна вывести два числа: стоимость покупки в рублях и копейках.<br />
<div class="codeblock"><table class="csharp"><thead><tr><td colspan="2" id="661181819"  class="head">C#</td></tr></thead><tbody><tr class="li1"><td><div id="661181819" 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
</pre></td><td class="de1"><pre class="de1"><span class="co1">//Мое</span>
<span class="kw1">static</span> <span class="kw4">void</span> Main<span class="br0">&#40;</span><span class="kw4">string</span><span class="br0">&#91;</span><span class="br0">&#93;</span> args<span class="br0">&#41;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> a_Rub <span class="sy0">=</span> Convert<span class="sy0">.</span><span class="me1">ToInt32</span><span class="br0">&#40;</span>Console<span class="sy0">.</span><span class="me1">ReadLine</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> b_cop <span class="sy0">=</span> Convert<span class="sy0">.</span><span class="me1">ToInt32</span><span class="br0">&#40;</span>Console<span class="sy0">.</span><span class="me1">ReadLine</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> n_count <span class="sy0">=</span> Convert<span class="sy0">.</span><span class="me1">ToInt32</span><span class="br0">&#40;</span>Console<span class="sy0">.</span><span class="me1">ReadLine</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> res_a <span class="sy0">=</span> <span class="br0">&#40;</span>a_Rub <span class="sy0">*</span> n_count<span class="br0">&#41;</span> <span class="sy0">+</span> <span class="br0">&#40;</span><span class="br0">&#40;</span>b_cop <span class="sy0">*</span> n_count<span class="br0">&#41;</span> <span class="sy0">/</span> <span class="nu0">100</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> res_b <span class="sy0">=</span> <span class="br0">&#40;</span>b_cop <span class="sy0">*</span> n_count<span class="br0">&#41;</span> <span class="sy0">%</span> <span class="nu0">100</span><span class="sy0">;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Console<span class="sy0">.</span><span class="me1">WriteLine</span><span class="br0">&#40;</span><span class="st0">&quot;{0} {1}&quot;</span>, res_a, res_b<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp;
<span class="co1">//красивое</span>
<span class="kw1">public</span> <span class="kw1">static</span> <span class="kw4">void</span> Main<span class="br0">&#40;</span><span class="br0">&#41;</span>
&nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> a <span class="sy0">=</span> Convert<span class="sy0">.</span><span class="me1">ToInt32</span><span class="br0">&#40;</span>Console<span class="sy0">.</span><span class="me1">ReadLine</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> b <span class="sy0">=</span> Convert<span class="sy0">.</span><span class="me1">ToInt32</span><span class="br0">&#40;</span>Console<span class="sy0">.</span><span class="me1">ReadLine</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> n <span class="sy0">=</span> Convert<span class="sy0">.</span><span class="me1">ToInt32</span><span class="br0">&#40;</span>Console<span class="sy0">.</span><span class="me1">ReadLine</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">int</span> c <span class="sy0">=</span> <span class="br0">&#40;</span>a<span class="sy0">*</span><span class="nu0">100</span><span class="sy0">+</span>b<span class="br0">&#41;</span><span class="sy0">*</span>n<span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; Console<span class="sy0">.</span><span class="me1">WriteLine</span><span class="br0">&#40;</span>c<span class="sy0">/</span><span class="nu0">100</span><span class="sy0">+</span><span class="st0">&quot; &quot;</span><span class="sy0">+</span>c<span class="sy0">%</span>100<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; <span class="br0">&#125;</span></pre></td></tr></table></div></td></tr></tbody></table></div>
				   </div>
			   </div></div>

]]></content:encoded>
			<dc:creator>Leshakk</dc:creator>
			<guid isPermaLink="true">https://www.cyberforum.ru/blogs/1882147/7536.html</guid>
		</item>
		<item>
			<title>Фоновая музыка в приложении WinForms. Разбор кода.</title>
			<link>https://www.cyberforum.ru/blogs/1882147/7465.html</link>
			<pubDate>Wed, 13 Apr 2022 13:43:54 GMT</pubDate>
			<description><![CDATA[Разбор кода в учебных целях. 
 
Добрый день. 
 
Для практики делал игру "пятнашки" в WinForms,...]]></description>
			<content:encoded><![CDATA[<div>Разбор кода в учебных целях.<br />
<br />
Добрый день.<br />
<br />
Для практики делал игру &quot;пятнашки&quot; в WinForms, коими полон интернет. Ну и захотелось, чтобы еще играла любимая музыка. Несколько треков по кругу. И значит чтобы были кнопки play, stop,  и регулятор громкости. Вроде сделал. Но как-то коряво. И если нажимаешь на Плей, то играет следующая песня, а если ничего не нажимать, то песня заканчивается и тишина, надо опять нажимать.<br />
<br />
В этой теме: <a href="https://www.cyberforum.ru/windows-forms/thread552897-page2.html#post16061640">https://www.cyberforum.ru/wind... st16061640</a>,<br />
 Уважаемый <b>I can</b> дал код, который сразу заработал, и заработал так как и было нужно. И поскольку проект был учебным. Хотелось бы не просто скопипастить код, а разобрать его устройство. Получить знания так сказать. Если вы, дорогой читатель, изучаете C# более чем 2 месяца, то наврядли вам тут будет интересно. Но вы можете <b>поправить, или подсказать</b>. И за это зараннее спасибо.<br />
<br />
Вот сам код: <br />
<br />

			   <div class="spoiler-wrap">
				   <div class="spoiler-head folded clickable">Кликните здесь для просмотра всего текста</div>
				   <div class="spoiler-body">
					   <div class="codeblock"><table class="csharp"><thead><tr><td colspan="2" id="38809774"  class="head">C#</td></tr></thead><tbody><tr class="li1"><td><div id="38809774" 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
</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.Collections.Generic</span><span class="sy0">;</span>
<span class="kw1">using</span> <span class="co3">System.ComponentModel</span><span class="sy0">;</span>
<span class="kw1">using</span> <span class="co3">System.Data</span><span class="sy0">;</span>
<span class="kw1">using</span> <span class="co3">System.Drawing</span><span class="sy0">;</span>
<span class="kw1">using</span> <span class="co3">System.Linq</span><span class="sy0">;</span>
<span class="kw1">using</span> <span class="co3">System.Text</span><span class="sy0">;</span>
<span class="kw1">using</span> <span class="co3">System.Windows.Forms</span><span class="sy0">;</span>
&nbsp;
<span class="kw1">namespace</span> WindowsFormsApplication1
<span class="br0">&#123;</span>
&nbsp; &nbsp; <span class="kw1">public</span> <span class="kw1">partial</span> <span class="kw4">class</span> Form1 <span class="sy0">:</span> Form
&nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> Form1<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; InitializeComponent<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">this</span><span class="sy0">.</span><span class="me1">timer1</span><span class="sy0">.</span><span class="me1">Tick</span> <span class="sy0">+=</span> <span class="kw3">new</span> <span class="kw5">System</span><span class="sy0">.</span><span class="me1">EventHandler</span><span class="br0">&#40;</span><span class="kw1">this</span><span class="sy0">.</span><span class="me1">timer1_Tick</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">public</span> WMPLib<span class="sy0">.</span><span class="me1">WindowsMediaPlayer</span> WMP <span class="sy0">=</span> <span class="kw3">new</span> WMPLib<span class="sy0">.</span><span class="me1">WindowsMediaPlayer</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">private</span> <span class="kw4">void</span> button_Play_Click<span class="br0">&#40;</span><span class="kw4">object</span> sender, EventArgs e<span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Random dise <span class="sy0">=</span> <span class="kw3">new</span> Random<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw4">string</span><span class="br0">&#91;</span><span class="br0">&#93;</span> a <span class="sy0">=</span> <span class="kw5">System.<span class="me1">IO</span></span><span class="sy0">.</span><span class="me1">Directory</span><span class="sy0">.</span><span class="me1">GetFiles</span><span class="br0">&#40;</span>Application<span class="sy0">.</span><span class="me1">StartupPath</span>, <span class="st0">&quot;*.wav&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; WMP<span class="sy0">.</span><span class="me1">URL</span> <span class="sy0">=</span> a<span class="br0">&#91;</span>dise<span class="sy0">.</span><span class="me1">Next</span><span class="br0">&#40;</span><span class="nu0">0</span>, a<span class="sy0">.</span><span class="me1">Length</span><span class="br0">&#41;</span><span class="br0">&#93;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; trackBar1<span class="sy0">.</span><span class="kw1">Value</span> <span class="sy0">=</span> <span class="nu0">5</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; WMP<span class="sy0">.</span><span class="me1">settings</span><span class="sy0">.</span><span class="me1">volume</span> <span class="sy0">=</span> trackBar1<span class="sy0">.</span><span class="kw1">Value</span> <span class="sy0">*</span> <span class="nu0">10</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; timer1<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; <span class="br0">&#125;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">private</span> <span class="kw4">void</span> button_Stop_Click<span class="br0">&#40;</span><span class="kw4">object</span> sender, EventArgs e<span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span> WMP<span class="sy0">.</span><span class="me1">controls</span><span class="sy0">.</span><span class="me1">stop</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span> timer1<span class="sy0">.</span><span class="me1">Stop</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span> Text <span class="sy0">=</span> <span class="st0">&quot;&quot;</span><span class="sy0">;</span> <span class="br0">&#125;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">private</span> <span class="kw4">void</span> trackBar1_Scroll<span class="br0">&#40;</span><span class="kw4">object</span> sender, EventArgs e<span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#123;</span> &nbsp;WMP<span class="sy0">.</span><span class="me1">settings</span><span class="sy0">.</span><span class="me1">volume</span> <span class="sy0">=</span> trackBar1<span class="sy0">.</span><span class="kw1">Value</span><span class="sy0">*</span><span class="nu0">10</span><span class="sy0">;</span><span class="br0">&#125;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">private</span> <span class="kw4">void</span> timer1_Tick<span class="br0">&#40;</span><span class="kw4">object</span> sender, EventArgs e<span class="br0">&#41;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Text <span class="sy0">=</span> WMP<span class="sy0">.</span><span class="me1">status</span><span class="sy0">.</span><span class="me1">ToString</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>Text <span class="sy0">==</span> <span class="st0">&quot;Остановлено&quot;</span><span class="br0">&#41;</span> button_Play_Click<span class="br0">&#40;</span><span class="kw1">null</span>,<span class="kw1">null</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp;
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp;
&nbsp;
&nbsp; &nbsp; <span class="br0">&#125;</span></pre></td></tr></table></div></td></tr></tbody></table></div>
				   </div>
			   </div><br />
<br />
Итак:<br />
<br />
 ⚫ this.timer1.Tick += new System.EventHandler(this.timer1_Tick);<br />
<br />
На первый нубовзгляд эта строчка, напоминает создание обьекта класса, но во первых нет переменной, куда записывается экземпляр класса. <br />
Во вторых, зачем вместо = написано +=? Такого мы еще не проходили.<br />
Идем в гугл копать. И находим там страшные, ужасные доселе неведомые....<b>События</b>!!! И.....<b>ДЕЛЕГАТЫ</b>!!!<br />
Что там в гугле про События и делегаты...много чего..Ссылки копировать нельзя, а обьяснить сложно,особенно, когда сам не понял...<br />
<br />
<i>timer1.Tick  это событие<br />
<br />
+= это подписка на событие........................или нет.........</i><br />
Можно интуитивно предположить следующее: <br />
метод this.timer1_Tick подписан на событие  this.timer1.Tick<br />
таймер запускается при нажатии кнопки плей, и начинает тикать. И каждые 100милисекунд ( можно любое значение, но сейчас вот 100мс) выполняется метод - обработчик события: timer1_Tick. <br />
<br />
 private void timer1_Tick(object sender, EventArgs e)<br />
        {<br />
            Text = WMP.status.ToString();<br />
            if (Text == &quot;Остановлено&quot;) button_Play_Click(null,null);<br />
        }<br />
<br />
Этот метод говорит: Давайте-ка запишем в виртуальный Текст статус плеера, а потом проверим его, и если плеер имеет статус &quot;Остановлено&quot;, то давайте нажмем кнопку плей еще раз. <br />
А если нет статуса &quot;Остановлено&quot; то ничего делать не будет. И так каждые 100мс, пока играет музыка. <br />
И если в очередной раз выяснится что статус &quot;Остановлено&quot; появился,а он появится когда трек закончится,  то метод  сбросит кнопку плей командой button_Play_Click(null,null) и все повторится. Такой своего рода цикл по рандомизации песен, их проигрыванию, и с проверкой статуса плеера с заданным интервалом. <br />
То есть, если установить, например в свойствах таймера 24 часа, то рандомная песня будет играть раз в сутки.<br />
Остановить это все, можно кнопкой стоп. <br />
<br />
⚫ private void button_Stop_Click(object sender, EventArgs e)<br />
        { WMP.controls.stop(); timer1.Stop(); Text = &quot;&quot;; }<br />
<br />
Это кнопка стоп, точнее метод-обработчик события:<br />
останавливает проигрывание, останавливает таймер, и очищает виртуальный текст от записаного туда статуса плеера.<br />
<br />
⚫ public WMPLib.WindowsMediaPlayer WMP = new WMPLib.WindowsMediaPlayer();<br />
<br />
Создание экземпляра класса WMPLib.WindowsMediaPlayer, странный конечно класс, но по ситаксису, таки-да, это экземпляр класса. И записывается он в переменную - обьект WMP.<br />
<br />
⚫ private void button_Play_Click(object sender, EventArgs e)<br />
<br />
Эта фигня сама создается, когда на форму заносишь кнопку и кликаешь на нее два раза.<br />
Официальный тутор говорит  что это: &quot;Обработчик событий — это метод, привязанный к событию. При возникновении события выполняется код в обработчике событий. &quot;<br />
Короче нажали кнопку, выполнился код который в фигурных скобках.<br />
<br />
     Random dise = new Random();<br />
     string[] a = System.IO.Directory.GetFiles(Application .StartupPath, &quot;*.wav&quot;);<br />
     WMP.URL = a[dise.Next(0, a.Length)];<br />
     trackBar1.Value = 5;<br />
     WMP.settings.volume = trackBar1.Value * 10;<br />
     timer1.Start();<br />
<br />
Ну наконец-то, хоть какие то знакомые слова!<br />
  Random dise = new Random(); проходили! Тут короче стандартная процедура, создание экземпляра класса, запись его в новый обьект dise<br />
 Kласс рандом, выдает случайные числа в заданном диапазоне  посредством метода Next  и принимаемых им параметров <s>от забора и до обеда</s> откуда и докуда выдавать рандомные числа. В нашем случае, от нуля до максимальной длины массива. Длина массива не корректно, но не знаю как правильно сказать. Короче метод Next последовательно пройдет по всей длине массива, от первого до последнего значения. и выберет рандомное значению (песню) и вернет/запишет/присвоит это значение в WMP.URL (Что это?)<br />
<br />
⚫ string[] a = System.IO.Directory.GetFiles(Application .StartupPath, &quot;*.wav&quot;);<br />
Здесь объявлен и проинициализирован строковый массив и в него записаны все песни в формате wav которые лежат....<br />
<br />
⚫ System.IO.Directory.GetFiles(Application .StartupPath, &quot;*.wav&quot;)<br />
Это значит так: <br />
System.IO.Directory.GetFiles ==Возвращает имена файлов, соответствующих указанным критериям<br />
Application.StartupPath ==путь для исполняемого файла, запустившего приложение, не включая исполняемое имя.<br />
 &quot;*.wav&quot; == звуковой формат.<br />
Короче надо пойти туда, где лежит исполняемый файл, найти и собрать имена всех WAVок, и записать их в массив string[] a<br />
<br />
<br />
⚫ WMP.URL = a[dise.Next(0, a.Length)];<br />
 Гугл находит только URL и говорит что это свойство, но там непонятно все. Наверное это как в пословице : Понять это невозможно, это можно только запомнить!!!<br />
Поэтому запомним что URL это адрес (локация, местонахождение) для чего-то. <br />
Если попытаться обьяснить своими словами то объект WMP не знает где брать песню, для того чтобы ему это как-то обьяснить, надо наделить его свойством, умением разбираться в картах и навигации. Этим свойством его наделяет URL. <br />
А затем  треки записваются в массив, и скормливаются, плееру, любым способом читающим массив. <br />
Просто так приписать WMP.URL = a;  не сработает потому что плеер не будет знать какую именно песню из всего массива брать и играть. И только когда метод Next  a[dise.Next(0, a.Length)]  выберет рандомную песню , одну, определенную, и даст ее Плееру, тогда он наконец ее захавает.<br />
Надо кстати для практики попробовать другие способы обработки массива, например последовательное проигрывание всего массива, или через одну песню, или исключить песни с цифрой 2 в названии. Чисто поугорать для тренировки. Но это потом.<br />
<br />
⚫ trackBar1.Value = 5;<br />
    WMP.settings.volume = trackBar1.Value * 10;<br />
<br />
Это громкость звука. <br />
Школа трекбара по умолчанию имеет 10 делений. <br />
А громкость Медиаплеера по умолчанию 0 - 100.<br />
И значит здесь при старте, ползунок трекбара станет на 5,а громкость 5 * 10 будет 50. Короче по умолчанию будет по серединке, а там уже регулировать.<br />
<br />
⚫ timer1.Start();<br />
Ну тут уже понятно, уже разобрали, старт таймера.<br />
<br />
Остался вопрос, берется статус &quot;Остановлено&quot; почему он на русском? Почему не стоп и не stop, какие еще бывают статусы и где их найти. Гуглил-не нашел. Точнее нашел на английском Stop, а на русском нигде не пошел. Это &quot;Остановлено&quot; совсем уже замучило свой загадочностью.</div>

]]></content:encoded>
			<dc:creator>Leshakk</dc:creator>
			<guid isPermaLink="true">https://www.cyberforum.ru/blogs/1882147/7465.html</guid>
		</item>
	</channel>
</rss>
