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




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

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

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

 

Бейсик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

        cin >> a[i];

    …

    return 0;

}

 

 

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

Решение.

В системе счисления с основанием p две цифры требуется для записи чисел в диапазоне [p; p2). При p = 16 получаем диапазон [16; 256).

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

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

m:=0;

for i:=1 to N do begin

    if (16<=a[i]) and (a[i]<256) and (a[i]>m)

        then m := a[i];

end;

writeln(m)

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