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




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

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

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

 

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

const

N=30;

var

a: array [1..N] of longint;

i, j, p: longint;

begin

for i := 1 to N do

readln(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 30

int 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, p

a = []

n = 30

for i in range(0, n):

a.append(int(input()))

...

 

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

Решение.

На языке Паскаль

p := 1;

for i := 1 to N do

if (a[i] mod 2<>0) and (a[i] mod 3=0) then

p := 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 = 1

FOR I = 1 TO N

IF A(I) MOD 6=3 THEN

P = P * A(I)

ENDIF

NEXT I

PRINT P

На языке СИ

p=1;

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

if (a[i]%2!=0 && a[i]%3==0)

p*=a[i];

cout << p;

На естественном языке

Записываем в переменную P начальное значение, равное 1. В цикле от 1-го элемента до 30-го находим остаток от деления элемента исходного массива на 2 и на 3. Если остаток от деления на 2 не равен 0 и остаток от деления на 3 равен 0, то считаем произведение данного элемента массива и значения переменной P или достаточно проверить, что остаток от деления на 6 равен 3 (см. решение на языке Бейсик). Результат умножения сохраняем в переменную P. Переходим к следующему элементу массива.

После завершения цикла выводим значение переменной P.

Источник: Демонстрационная версия ЕГЭ—2013 по информатике.