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




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

Дан целочисленный массив из 40 элементов. Элементы массива могут принимать произвольные значения. Опишите на русском языке или на одном из языков программирования алгоритм, который находит и выводит значение второго максимума (элемента, который в отсортированном по невозрастанию массиве стоял бы вторым).

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

 

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

N = 40

DIM A (N) AS INTEGER

DIM I, K, MAX, MAX2 AS INTEGER

FOR I = 1 TO N

INPUT A (I)

NEXT I

...

END

const

N = 40;

var

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

i, k, max, max2: integer;

begin

for i: =1 to N do

readln(a[i]);

...

end.

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

#include <iostream>

using namespace std;

#define N 40

int main(void)

{int a [N];

int i, k, max, max2 ;

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

cin >> a[i];

}

алг

нач

цел N = 40

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

цел i, k, MAX, МАХ2

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

ввод a[i]

кц

...

кон

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

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

Объявляем целочисленные переменные I, К, MAX, МАХ2.

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

...

Python

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

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

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

a = []

n = 40

for i in range(0, n):

a.append(int(input()))

...

 

 

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

Решение.

 

ПАСКАЛЬБЕЙСИК
max:=а [1] ;

mах2 : = а [2] ;

if max < max2 then

begin

max : = a [2] ;

max2 := a [1]

end;

for i : = 3 to N do

if a[i] > max then

begin

max2 : = max;

max := a [i]

end

else

if a[i] > max2 then

max2 := a[i];

writeln(max2);

MAX = А(1)

МАХ2 = А(2)

IF MAX < MAX2 THEN

MAX = A(2)

MAX2 = A(1)

ENDIF

FOR I = 3 TO N

IF A(I) > MAX THEN

MAX2 = MAX

MAX = A (I)

ELSE

IF A(I) > MAX2 THEN

MAX2 = A(I)

ENDIF

ENDIF ,

NEXT I

PRINT MAX2

СИАлгоритмический язык
mах = а [0] ;

mах2 = а [1] ;

if (max < max2)

{

max = a [1] ;

max2 = a [0] ;

}

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

if(a[i] > max)

{

max 2 = max;

max = a [i];

}

else

if (a [i] > max2 )

max2 = a [i] ;

cout « max2 « endl;

МАХ := а [1]

MAX2 := а [2]

если MAX < МАХ2

то

МАХ := а [2 ]

МАХ2 := а [1]

все

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

если а[i]>МАХ

то

МАХ2 :"= МАХ

МАХ := a [i]

иначе

если a[i]>MAX2

то

МАХ2 := a [i]

все

все

кц

вывод МАХ2

Естественный язык
Записываем в переменную МАХ начальное значение, равное значению 1-го элемента массива. В переменную МАХ2 записываем начальное значение, равное значению 2-го элемента массива. Если значение МАХ оказывается меньше значения МАХ2, то в переменную МАХ записываем значение 2-го элемента массива, а в переменную МАХ — значение 1-го элемента массива. В цикле перебираем все элементы с 3-го до 40-го. Если значение текущего элемента массива оказывается больше значения переменной МАХ, то в переменную МАХ2 записываем значение переменной МАХ, а в переменную МАХ записываем значение текущего элемента массива.

Иначе, если значение текущего элемента массива оказывается больше значения переменной МАХ2, записываем в переменную МАХ2 значение текущего элемента. Выводим значение переменной МАХ2.