<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419235&amp;view=findpost&amp;p=3835219</guid>
        <pubDate>Sat, 25 Jul 2020 17:55:59 +0000</pubDate>
        <title>ЕГЭ по информатике 2020, часть 2, № 25</title>
        <link>https://forum.sources.ru/index.php?showtopic=419235&amp;view=findpost&amp;p=3835219</link>
        <description><![CDATA[swf: ЕГЭ по информатике 2020, вариант Москва<br>
Часть 2, № 25<br>
Алгоритм обработки массивов<br>
Задание взято с сайта<br>
<a class='tag-url' href='http://kotolis.ru/realegeinf_2020' target='_blank'>http://kotolis.ru/realegeinf_2020</a><br>
<br>
<img class='tag-img' src='https://i.ibb.co/Z1SD13c/25.jpg' alt='user posted image'><br>
<br>
<strong class='tag-b'>Условие.</strong><br>
Дан массив, содержащий 2020 положительных целых чисел, от -10000 до 10000. Необходимо найти наибольший кратный 4 элемент этого массива. После чего в массиве изменить все элементы кратные 4 на это значение и вывести массив.<br>
Напишите на одном из языков программирования программу для решения этой задачи. В качестве результата программа должна вывести изменённый массив, по одному элементу в строке. Например, для исходного массива из 5 элементов 112 4 27 95 148 программа должна вывести числа 4 4 27 95 4 по одному числу в строке.<br>
Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных<br>
В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Free Pascal 2.6). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на Алгоритмическом языке).<br>
<br>
<strong class='tag-b'>Замечание.</strong><br>
Очень простая задача с довольно странным условием, в котором целые положительные числа начинаются от -10000.<br>
Не будем обращать внимание на эти странности, будем делать точно по условию.<br>
Кроме того, раз уж такая простая задача попала в часть 2, сделаем её чуть более рационально, чем на сайте. Без использования дополнительных переменных.<br>
<br>
<strong class='tag-b'>Решение.</strong>  <br>
Программа на Паскале:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">const N = 2020; </div><div class="code_line">var a: array [1..N] of integer; </div><div class="code_line">i, k, m: integer; </div><div class="code_line">begin </div><div class="code_line">&nbsp;&nbsp; &nbsp;for i:= 1 to N do </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; readln(a[i]);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; ...</div><div class="code_line">end.</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
<br>
<strong class='tag-b'>Алгоритм</strong><br>
1. Инициализация.<br>
Пусть в переменной k будет храниться максимальный элемент массива, кратный 4. Поскольку 0 не является положительным числом, первоначально положим k:= 0.<br>
<br>
2. Поиск максимального элемента<br>
Во время чтения элементов массива будем проверять, выполняется ли условие делимости на 4, если оно выполнено, то проверять, не нашли ли мы элемент больший k.<br>
<br>
3. Вывод массива на печать <br>
Если после завершения цикла значение k осталось равным 0, то массив не изменился. Печатаем массив a.<br>
Иначе в цикле опять проверяем для каждого элемента массива условие делимости на 4, и, если условие выполнено, присваиваем этому элементу значение k и затем печатаем. <br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">const N = 2020; </div><div class="code_line">var a: array [1..N] of integer; </div><div class="code_line">i, k, m: integer; </div><div class="code_line">&nbsp;</div><div class="code_line">begin </div><div class="code_line">&nbsp;&nbsp; &nbsp;k:= 0;</div><div class="code_line">&nbsp;&nbsp; &nbsp;for i:= 1 to N do begin </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; readln(a[i]);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; if (a[i] mod 4 = 0) then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if a[i] &#62; k then k:= a[i];</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;if k = 0 then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; for i:= 1 to n do writeln(a[i])</div><div class="code_line">&nbsp;&nbsp; &nbsp;else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; for i:= 1 to n do begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if a[i] mod 4 = 0 then a[i]:= k;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;writeln(a[i])</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; end;</div><div class="code_line">end.</div></ol></div></div></div></div>]]></description>
        <author>swf</author>
        <category>ПОМОЩЬ ШКОЛЬНИКАМ</category>
      </item>
	
      </channel>
      </rss>
	