Присоединиться

11 класс·высокий уровень

Опишите на русском языке или на одном из языков программирования

Условие

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

ПаскальАлгоритмический язык
const N=30;vara: array [1..N] of longint;i, j, p: longint;beginfor i := 1 to N doreadln(a[i]);…end.алгначцел N=30целтаб a[1:N]цел i, j, pнц для i от 1 до Nввод a[i]кц...кон
БейсикСи++
N=30 DIM A(N) AS LONG DIM I, J, P AS LONG FOR I = 1 TO N INPUT A(I) NEXT I… END#include <iostream>using namespace std;#define N 30int main(void){long a[N];long i, j, p;for (i=0; i<N; i++)cin >> a[i];…}
Русский (естественный) язык
Объявляем массив A из 30 элементов. Объявляем целочисленные переменные I, J, P. В цикле от 1 до 30 вводим элементы массива A с 1-го по 30-й.…
Python
# допускается также# использовать две# целочисленные переменные j, pa = []n = 30for i in range(0, n): a.append(int(input()))...

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

  1. или в виде блок-схемы. В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).

Формат задания

Развёрнутый ответ: короткого ответа здесь нет — оценивается само рассуждение. Разбор откроется после входа.

Решение по шагам

  1. Как рассуждать

    Решение. На языке Паскальp := 1;for i := 1 to N doif (a[i] mod 2<>0) and (a[i] mod 3=0) thenp := p * a[i];writeln(p);На алгоритмическом языкеp := 1нц для i от 1 до Nесли mod(a[i],2)<>0 и mod(a[i],3)=0тоp := p * a[i]всекцвывод pНа языке БейсикP = 1FOR I = 1 TO NIF A(I) MOD 6=3 THENP = P * A(I)ENDIFNEXT IPRINT PНа языке СИp=1;for (i=0; i<N; i++)if (a[i]%2!=0 && a[i]%3==0)p*=a[i];cout << p;На естественном языкеЗаписываем в переменную P начальное значение, равное

Осталось ещё 2 шага

  1. В цикле от 1-го элемента до 30-го находим…

  2. Если остаток от деления на 2 не равен 0 и…

Получить полное решение

Бесплатно · займёт минуту

Другие задачи по теме «Алгоритмы обработки массивов»