СДАМ ГИА: РЕШУ ЕГЭ
Образовательный портал для подготовки к экзаменам
Информатика
≡ информатика
сайты - меню - вход - новости


Задания
Версия для печати и копирования в MS Word
Задание 25 № 8673

Дан целочисленный массив из 40 элементов. Элементы массива могут принимать целые значения от –100 до 100 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести количество пар элементов массива, сумма которых чётна, а произведение больше 100. Под парой подразумевается два подряд идущих элемента массива. Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования и естественного языка. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.

 

БейсикПаскаль

N = 40

DIM A(N) AS LONG

DIM I, J, K AS LONG

FOR I = 1 TO N

    INPUT A(I)

NEXT I

...

END

const

N = 40;

var

a: array [1..N] of longint;

i, j, k: longint;

begin

    for i := 1 to N do

readln(a[i]);

...

end.

Си++Естественный язык

#include <iostream>

using namespace std;

#define N 40

int main()

{

    long a[N];

    long i, j, k;

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

    cin >> a[i];

    ...

}

Объявляем массив A из 40 элементов.

Объявляем целочисленные переменные

I, J, K.

В цикле от 1 до 40 вводим элементы массива

A с 1-го по 40-й.

...

Алгоритмический языкPython

алг

нач

    цел N = 40

    цел таб a[1:N]

    цел i, j, k

    нц для i от 1 до N

        ввод a[i]

    кц

    ...

кон

N = 40

i = None

j = None

k = None

a =[int(input()) for i in range(N)]

...

 

В качестве ответа Вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.6) или в виде блок-схемы. В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).

Решение.

На языке Паскаль

k := 0;

for i := 1 to N - 1 do

    if ((a[i] + a[i + 1] ) mod 2 = 0) and (a[i] * a[i + 1] > 100)

    then

        inc(k);

writeln(k);

На алгоритмическом языке

k := 0

нц для i от 1 до N − 1

    если mod(a[i] + a[i + 1], 2) = 0 и a[i] * a[i + 1] > 100

    то

        k := k + 1

    все

кц

вывод k

На языке Бейсик

K = 0

FOR I = 1 TO N−1

    IF (A(I) + A(I + 1)) MOD 2 = 0 AND A(I) * A(I + 1) > 100 THEN

        K = K + 1

    END IF

NEXT I

PRINT K

На языке Си

k = 0;

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

    if ((a[i] + a[i + 1]) % 2 == 0 && a[i] * a[i + 1] > 100)

        k++;

cout << k;

На языке Python

k = 0

for i in range(N - 1):

    if (a[i] + a[i + 1]) % 2 == 0 and a[i] * a[i + 1] > 100:

        k += 1

print(k)

На естественном языке

Записываем в переменную K начальное значение, равное 0. В цикле от первого элемента до предпоследнего находим остаток от деления суммы текущего и следующего элементов массива на 2. Если значение данного остатка равно 0 и произведение текущего и следующего элементов массива больше 100, увеличиваем переменную K на единицу.

После завершения цикла выводим значение переменной K