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


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

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

 

 

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

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];

...

}

алг

нач

цел 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 6 <> 0) and (a[i] * a[i + 1] <

1000) then

inc(k);

writeln(k);

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

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

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

1000

то

k := k + 1

все

кц

вывод k

Бейсик
K = 0

K = 0

FOR I = 1 TO N-1

IF (A(I) + A(I + 1)) MOD 6 <> 0 AND A(I) * A(I + 1)<1000

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]) % 6 != 0 and a[i] * a[i + 1] <

1000:

k += 1

print(k)

Си
k = 0;

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

if ((a[i] + a[i + 1]) % 6 != 0 && a[i] * a[i + 1] < 1000)

k++;

cout << k;

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