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




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

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

 

БейсикПаскаль

N = 30

DIM A(N) AS LONG

DIM I, J, P AS LONG

FOR I = 1 TO N

INPUT A(I)

NEXT I

...

END

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.

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

#include <iostream>

using namespace std;

#define N 30

int main() {

long a[N];

long i, j, p;

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

cin >> a[i];

...

}

алг

нач

цел N = 30

целтаб a[1:N]

цел i, j, p

нц для i от 1 до N

ввод a[i]

кц

...

кон

Eстественный язык
Объявляем массив 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

IF A(I)>=10 AND A(I)<=99 AND (A(I) MOD 10+A(I) DIV 10) MOD 6<>0 THEN

P = P * A(I)

END IF

NEXT I

PRINT P

p := 1;

for i := 1 to N do

if (a[i] >= 10) and (a[i] <= 99) and

((a[i] mod 10 + a[i] div 10) mod 6 <> 0) then

p := p * a[i];

writeln(p);

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

p = 1;

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

if (a[i]>=10 && a[i]<=99 && (a[i]%10+a[i]/10)%6 != 0)

p *= a[i];

cout << p;

p := 1

нц для i от 1 до N

если a[i]>=10 и a[i]<=99 и mod(mod(a[i],10)+div(a[i],10),6)<>0

то

p := p * a[i]

все

кц

вывод p

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

Записываем в переменную P начальное значение, равное 1. В цикле от первого элемента до тридцатого находим целую часть и остаток от деления элемента исходного массива на 10. Теперь находим остаток от деления суммы полученных двух значений на 6. Если результат не равен 0 и значение текущего элемента массива больше 9 и меньше 100, то считаем произведение данного элемента массива и значения переменной P. Результат умножения сохраняем в переменную P. Переходим к следующему элементу массива. После завершения цикла выводим значение переменной P

Источник: ЕГЭ по информатике 08.07.2013. Вторая волна. Ва­ри­ант 802.