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


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

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

 

 

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

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

#define N 40

int main()

{

long a[N];

long i, j, k;

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

cin >> a[i];

...

}

алг

нач

цел N = 40

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

цел i, j, k

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

ввод a[i]

кц

...

кон

Естественный язык

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

Объявляем целочисленные переменные I, J, K.

В цикле от 1 до 40 вводим элементы массива A с 1-го по 40-й.

...

Python

// допускается также использовать

// две целочисленные переменные

// j и k

a = []

n = 40

for i in range(0, n):

a.append(int(input()))

 

 

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

Решение.

Паскаль
k := 0;

for i := 1 to N - 1 do

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

0) then

inc(k);

writeln(k);

Алгоритмический язык
k := 0

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

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

то

k := k + 1

все

кц

вывод k

Бейсик
K = 0

K = 0

FOR I = 1 TO N-1

IF (A(I) + A(I + 1)) MOD 7 = 0 AND A(I) * A(I + 1) > 0

THEN

K = K + 1

END IF

NEXT I

PRINT K

Python
k = 0

for i in range(N - 1):

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

k += 1

print(k)

Си
k = 0;

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

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

k++;

cout << k;

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