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




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

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

 

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

const

N=70;

var

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

i, j, x, y: integer;

begin

for i := 1 to N do

readln(a[i]);

end.

алг

нач

цел N=70

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

цел i, j, x, y

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

ввод a[i]

кц

...

кон

БейсикСи++

N=70

DIM A(N) AS INTEGER

DIM I, J, X, Y AS INTEGER

FOR I = 1 TO N

INPUT A(I)

NEXT I

END

#include <iostream>

using namespace std;

#define N 70

int main(void){

long a[N];

long i, j, x, y;

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

cin >> a[i];

}

Python

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

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

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

a = []

n = 70

for i in range(0, n):

a.append(int(input()))

...

 

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

Решение.

Решение на языке Паскаль

 

x:=32767;

y:=-32768;

for i:=1 to N do

begin

if (a[i] > y) then y := a[i];

if (a[i] < x) then x := a[i];

end;

y:= y - x;

writeln(y);

 

Решение на языке Си

 

x=LNG_MAX;

y=LNG_MIN;

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

{

if(a[i] > y) y = a[i];

if(a[i] < x) x = a[i];

}

y-=x;

cout « y « endl;