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




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

Дан массив, содержащий 2016 положительных целых чисел, не превышающих 1000. Необходимо найти и вывести максимальный из тех элементов этого массива, шестнадцатеричная запись которых заканчивается символом B. Если таких чисел в массиве нет, ответ считается равным нулю.

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

 

БейсикPython

CONST N=2016

DIM A(N) AS INTEGER

DIM I, M, K AS INTEGER

FOR I = 1 TO N

  INPUT A(I)

NEXT I

END

# допускается также использо-

# вание целочисленных

# переменных m, k

a = []

N = 2016

for i in range(0, N):

    a.append(int(input()))

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

const

  N=2016;

var

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

  i, m, k: integer;

begin

  for i:=1 to N do

    readln(a[i]);

  …

end.

алг

нач

  цел N=2016

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

  цел i, m, k

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

    ввод a[i]

  кц

  …

кон

Си++

#include <iostream>

using namespace std;

#define N 2016

int main(){

    int a[N];

    int i, m, k;

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

        cin >> a[i];

    …

    return 0;

}

 

 

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

Решение.

Последний символ записи числа в позиционной системе счисления показывает остаток от деления этого числа на основание системы. Чтобы шестнадцатеричная запись числа заканчивалась символом B, число должно при делении на 16 давать остаток 11.

Для решения задачи необходимо просмотреть все числа в массиве и выбрать максимальное среди тех, которые дают остаток 11 при делении на 16

Пример правильной программы на языке Паскаль

m:=0;

for i:=1 to N do begin

  if (a[i] mod 16 = 11) and (a[i]>m)

    then m := a[i];

end;

writeln(m)

Источник: Тренировочная работа по ИНФОРМАТИКЕ 11 класс 30 сентября 2016 года Вариант ИН10103