Дан целочисленный массив из 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) или в виде блок-схемы. В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Бейсик | Паскаль
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]
На алгоритмическом языке
k := 0
нц для i от 1 до N − 1
если mod(a[i] + a[i + 1], 2) <> 0 и a[i] * a[i + 1]
На языке Бейсик
K = 0
FOR I = 1 TO N−1
IF (A(I) + A(I + 1)) MOD 2 <> 0 AND A(I) * A(I + 1)
На языке Си
k = 0;
for (i = 0; i
На языке Python
k = 0
for i in range(N - 1):
if (a[i] + a[i + 1]) % 2 != 0 and a[i] * a[i + 1]
На естественном языке
Записываем в переменную K начальное значение, = е 0. В цикле от первого элемента до предпоследнего находим остаток от деления суммы текущего и следующего элементов массива на 2. Если значение данного остатка не = 0 и произведение текущего и следующего элементов массива меньше 100, увеличиваем переменную K на единицу.
После завершения цикла выводим значение переменной K
k := 0;
for i := 1 to N - 1 do
if ((a[i] + a[i + 1] ) mod 2 <> 0) and (a[i] * a[i + 1]
На алгоритмическом языке
k := 0
нц для i от 1 до N − 1
если mod(a[i] + a[i + 1], 2) <> 0 и a[i] * a[i + 1]
На языке Бейсик
K = 0
FOR I = 1 TO N−1
IF (A(I) + A(I + 1)) MOD 2 <> 0 AND A(I) * A(I + 1)
На языке Си
k = 0;
for (i = 0; i
На языке Python
k = 0
for i in range(N - 1):
if (a[i] + a[i + 1]) % 2 != 0 and a[i] * a[i + 1]
На естественном языке
Записываем в переменную K начальное значение, = е 0. В цикле от первого элемента до предпоследнего находим остаток от деления суммы текущего и следующего элементов массива на 2. Если значение данного остатка не = 0 и произведение текущего и следующего элементов массива меньше 100, увеличиваем переменную K на единицу.
После завершения цикла выводим значение переменной K
📚 Похожие разобранные задания по предмету:
ID 32097 • Задание №13
На рисунке – схема дорог, связывающих города А, Б, В, Г, Д, Е, К, Л, М, Н, П, Р, Т. По каждой дороге можно дви...
ID 33924 • Задание №23
Сколько существует различных наборов значений логических переменных x1, x2, x3, x4, x5, x6, x7, x8, которые уд...
Официальные критерии проверки ФИПИ:
Критерии проверки:
Критерии оценивания выполнения задания | Баллы
Не выполнены условия, позволяющие поставить 1 или 2 балла. Например, ошибок, перечисленных в п. 1–11, две или больше, или алгоритм сформулирован неверно | 0
Не выполнены условия, позволяющие поставить 2 балла. При этом предложено в целом верное решение, содержащее не более одной ошибки из числа следующих:
1) в цикле происходит выход за границу массива (например, используется цикл от 1 до N);
2) не инициализируется или неверно инициализируется счётчик количества найденных пар;
3) неверно осуществляется проверка суммы пары элементов на чётность (в том числе не учитывается приоритет операций, т.е. используется выражение вида a[i]+a[i+1] mod 2; или используется проверка вида (a[i]+a[i+1]) mod 2 <>1, неверно работающая для отрицательных значений);
4) на чётность проверяется не сумма значений элементов, а сумма их индексов;
5) неверно осуществляется сравнение произведения пары элементов со 100;
6) в сложном логическом условии простые проверки верны, но условие в целом построено неверно (например, перепутаны операции «И» и «ИЛИ», неверно расставлены скобки в логическом выражении);
7) отсутствует вывод ответа;
8) используется переменная, не объявленная в разделе описания переменных;
9) не указано или неверно указано условие завершения цикла;
10) индексная переменная в цикле не меняется (например, в цикле while) или меняется неверно;
11) неверно расставлены операторные скобки.
Допускается наличие отдельных синтаксических ошибок, не искажающих замысла автора программы | 1
Предложен правильный алгоритм, выдающий верное значение. Допускается запись алгоритма на другом языке, использующая аналогичные переменные. В случае, если язык программирования использует типизированные переменные, описания переменных должны быть аналогичны описаниям переменных на естественном языке. Использование нетипизированных или необъявленных переменных возможно только в случае, если это допускается языком программирования, при этом количество переменных и их идентификаторы должны соответствовать условию задачи. В алгоритме, записанном на языке программирования, допускается наличие отдельных синтаксических ошибок, не искажающих замысла автора программы | 2
Максимальный балл | 2
Критерии оценивания выполнения задания | Баллы
Не выполнены условия, позволяющие поставить 1 или 2 балла. Например, ошибок, перечисленных в п. 1–11, две или больше, или алгоритм сформулирован неверно | 0
Не выполнены условия, позволяющие поставить 2 балла. При этом предложено в целом верное решение, содержащее не более одной ошибки из числа следующих:
1) в цикле происходит выход за границу массива (например, используется цикл от 1 до N);
2) не инициализируется или неверно инициализируется счётчик количества найденных пар;
3) неверно осуществляется проверка суммы пары элементов на чётность (в том числе не учитывается приоритет операций, т.е. используется выражение вида a[i]+a[i+1] mod 2; или используется проверка вида (a[i]+a[i+1]) mod 2 <>1, неверно работающая для отрицательных значений);
4) на чётность проверяется не сумма значений элементов, а сумма их индексов;
5) неверно осуществляется сравнение произведения пары элементов со 100;
6) в сложном логическом условии простые проверки верны, но условие в целом построено неверно (например, перепутаны операции «И» и «ИЛИ», неверно расставлены скобки в логическом выражении);
7) отсутствует вывод ответа;
8) используется переменная, не объявленная в разделе описания переменных;
9) не указано или неверно указано условие завершения цикла;
10) индексная переменная в цикле не меняется (например, в цикле while) или меняется неверно;
11) неверно расставлены операторные скобки.
Допускается наличие отдельных синтаксических ошибок, не искажающих замысла автора программы | 1
Предложен правильный алгоритм, выдающий верное значение. Допускается запись алгоритма на другом языке, использующая аналогичные переменные. В случае, если язык программирования использует типизированные переменные, описания переменных должны быть аналогичны описаниям переменных на естественном языке. Использование нетипизированных или необъявленных переменных возможно только в случае, если это допускается языком программирования, при этом количество переменных и их идентификаторы должны соответствовать условию задачи. В алгоритме, записанном на языке программирования, допускается наличие отдельных синтаксических ошибок, не искажающих замысла автора программы | 2
Максимальный балл | 2
🔗 Другие задания линии №25 по предмету Информатика:
ID 34189
Назовём маской числа последовательность цифр, в которой также могут встречаться следующие симво...
ID 34190
Маска числа — это последовательность цифр, в которой могут встречаться специальные символы «?»...
ID 34191
Маска числа — это последовательность цифр, в которой могут встречаться специальные символы «?»...
ID 34192
Назовём маской числа последовательность цифр, в которой также могут встречаться следующие симво...
ID 34193
Маска числа — это последовательность цифр, в которой могут встречаться специальные символы «?»...