Задача к ЕГЭ по информатике на тему «среднее значение, сумма всех элементов» №2

Дан целочисленный массив из N  = 60  элементов. Элементы массива могут принимать значения от 0 до 13001. Опишите на одном из языков программирования алгоритм, который ищет среднее значение всех элементов массива и увеличивает элемент на среднее значение, если он меньше среднего значения. В данной задаче среднее значение — целое число. В качестве результата необходимо вывести измененный массив, каждый элемент выводится с новой строки.

Например, для исходного массива из 6 элементов

24

37

7

3

2

10

программа должна вывести

24

37

20

16

15

23

(среднее значение равно 13).

Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных. Индексация элементов в массиве начинается с 0.

|--------------------------------|------------------------------------|-------------------------| |Б ейсик                         |P ython                             |Ал горитм ическ ий язы к | |CON---ST-N-ASIN--T-EGER---=--60-|#-доп-ускается-такж-е---------------|алг----------------------| |                                |                                    |                         | |DIM   A(0T ON  − 1 )ASLON    G   |# испо льзовать тр и                |нач                      | |DIM   IASLON   G                |# цело числен ные пер еменн ые i,t,k |  целN  =  60            | |     TASLON    G                |a = []                              |  цел табa[0 : N − 1 ]   | |     KASLON    G                |n = 60                              |  целi,t,k               | |F ORI  = 1T ON                  |foriinrange (0,n ) :                |  нц д ляiот0доN  − 1    | |                                |                                    |                         | |     IN PU T A (I )              |  a.append (int(input ()))           |    вв одa[i]             | |N EXT   I                       |...                                  |  кц                     | |...                              |                                    |...                       | |EN  D                           |                                    |кон                      | ------------------------------------------------------------------------------------------------

|--------------------------------|------------------------------------| |-П-аскаль-----------------------|C-+-+-------------------------------| |const                           |#include  < iostream  >             | |  N  =  60                      |usingnamespacestd;                  | |var                             |constintN  = 60;                    | |                                |                                    | |  a : array[0..N  − 1]oflongint; |intmain (){                         | |  i,t,k : longint;              |longa[N ];                          | |begin                           |longi,t,k;                          | |  f ori := 0toN − 1do           |for(i = 0;i < N ;i + +)cin > > a[i]; | |     readln(a[i]);               |…                                  | |                                |                                    | |…                              |return0;                            | -end.——————————}————————————| » class=»math-display» width=»auto»></center> </p>
<p class= В качестве ответа Вам необходимо привести фрагмент программы, который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Free Pascal 2.6). В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в приведённых фрагментах.

Будем перебирать элементы в цикле for  от 0 до N  .

Среднее значение элементов — это сумма всех элементов, разделенная на их количество, то есть на N  . Тогда посчитаем сумму элементов и получим среднее значение, разделив сумму на N  .

В переменной t  будем хранить сумму элементов массива. Вне цикла приравняем t  к нулю.

Значит, в цикле во время перебора элементов будем увеличивать t  на значение элемента.

После того, как мы получили значение t  (то есть сумму элементов массива), запустим новый цикл f or  от 0 до N  . Если элемент окажется меньше среднего значения, то есть a[i] < t∕N  , увеличим    a[i]  на t  : a[i]+  = t  или a [i] = a[i] + t  .

Выведем измененный массив.

Пример на C  + +  :

t = 0;

for(i = 0;i < N ;i + + )

t+ = a [i];

for(i = 0;i < N ;i + + )

if(a[i] < t∕N )a[i]+ =  t;

for(i = 0;i < N ;i + + )

cout <<  a[i] <<  endl;

Ответ: См.решение
Оцените статью
Я решу все!