Задание № 7594

Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от –10 000 до 10 000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести количество пар элементов массива, в которых хотя бы одно число делится на 3. В данной задаче под парой подразумевается два подряд идущих элемента массива. Например, для массива из пяти элементов: 6; 2; 9; –3; 6 – ответ: 4.

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

Бейсик

CONST N AS INTEGER = 20
DIM A (1 TO N) AS INTEGER
DIM I AS INTEGER,
    J AS INTEGER,
    K AS INTEGER

FOR I = 1 TO N
    INPUT A(I)
NEXT I
...

END

Python

# допускается также
# использовать две
# целочисленные переменные j и k
a = []
n = 20
for i in range(0, n):
    a.append(int(input()))
...

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

алг
нач
    цел N = 20
    целтаб a[1:N]
    цел i, j, k
    нц для i от 1 до N
        ввод a[i]
    кц
    ...

кон

Паскаль

const
    N = 20;
var
    a: array [1..N] of integer;
    i, j, k: integer;
begin
    for i := 1 to N do
        readln(a[i]);

    ...

end.

Си

#include <stdio.h>
#define N 20
int main() {
    int a[N];
    int i, j, k;
    for (i = 0; i<N; i++)
        scanf("%d", &a[i]);
    ...
    return 0;
}

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

Объявляем массив A из 20 элементов.
Объявляем целочисленные переменные I, J, K. В цикле от 1 до 20 вводим элементы массива A с 1-го по 20-й.

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


Решать другие задания по теме: Ал­го­рит­мы обработки массивов

Показать ответ
Комментарий:

Содержание верного ответа

Паскаль

k := 0;
for i := 1 to N-1 do
    if (a[i] mod 3=0) or (a[i+1] mod 3=0) then
        inc(k)
;
writeln(k);

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

k := 0;
нц для i от 1 до N-1
    если mod(a[i],3)=0 или mod(a[i+1],3)=0
    то
        k := k+1
    все
кц
вывод k

Бейсик

K = 0
FOR I = 1 TO N-1
    IF (A(I) MOD 3 = 0) OR (A(I + 1) MOD 3 = 0) THEN
        K = K+1
    END IF
NEXT I
PRINT K

Си

k = 0;
for (i = 0; i<N-1; i++)
    if (a[i]%3 == 0 || a[i+1]%3 == 0)
        k++;
printf("%d", k);

Python

k = 0
for i in range(0, n – 1):
    if (a[i] % 3 == 0 or a[i + 1] % 3 == 0):
        k += 1
print(k)

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

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

Общие указания.

1. В алгоритме, записанном на языке программирования, допускается наличие отдельных синтаксических ошибок, не искажающих замысла автора программы.

2. Эффективность алгоритма не имеет значения и не оценивается.

3. Допускается запись алгоритма на языке программирования, отличном от языков, перечисленных в условии. В этом случае должны использоваться переменные, аналогичные описанным в условии. Если язык программирования использует типизированные переменные, описания переменных должны быть аналогичны описаниям переменных на естественном языке. Использование нетипизированных или необъявленных переменных возможно только в случае, если это допускается языком программирования; при этом количество переменных и их идентификаторы должны соответствовать условию задачи.

Ответ:

Нашли ошибку в задании? Выделите фрагмент и нажмите Ctrl + Enter.