Дан целочисленный массив из 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 |

