Дан массив, содержащий 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;

