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




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

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

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

 

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

N = 40

DIM A(N) AS INTEGER

DIM I, J, MAX AS INTEGER

FOR I = 1 TO N

  INPUT A(I)

NEXT I

...

END

const

  N = 40;

var

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

  i, j, max: integer;

begin

  for i := 1 to N do

    readln(a[i]);

  ...

end.

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

#include <iostream>

using namespace std;

#define N 40

int main() {

  int a[N];

  int i, j, max;

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

    cin >> a[i];

...

}

алг

нач

  цел N = 40

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

  цел i, j, max

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

    ввод a[i]

  кц

  ...

кон

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

Объявляем массив A из 40 элементов.

Объявляем целочисленные переменные I, J, MAX.

В цикле от 1 до 40 вводим элементы массива A с 1-го по 40-й.

Python

# допускается также

# использовать две

# целочисленные переменные j, max

a = []

n = 40

for i in range(0, n):

a.append(int(input()))

...

 

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

Решение.

Содержание верного ответа:

 

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

MAX = 9

FOR I = 1 TO N

  IF A(I)>=10 AND A(I)<=99 AND A(I) MOD 3<>0 AND A(I)>MAX THEN

    MAX = A(I)

  END IF

NEXT I

IF MAX > 9 THEN

  PRINT MAX

ELSE

  PRINT "Не найдено"

END IF

max := 9;

for i := 1 to N do

  if (a[i]>=10) and (a[i]<=99) and (a[i] mod 3<>0) and (a[i]>max) then

    max := a[i];

if max > 9 then writeln(max)

else writeln('Не найдено');

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

max = 9;

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

  if (a[i]>9 && a[i]<=99 && a[i]%3!=0 && a[i]>max)

    max = a[i];

if (max>9)

cout « max « endl;

else

cout << "Не найдено";

max := 9

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

  если a[i]>=10 и a[i]<=99 и mod(a[i],3)<>0 и a[i]>max

  то

    max := a[i]

  все

кц

если max > 9

то

  вывод max

иначе

  вывод "Не найдено"

все

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

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

После завершения цикла проверяем значение переменной MAX. Если оно больше 9, то выводим его, иначе выводим сообщение «Не найдено».