• Написать программу на языке Паскаль.С пошаговым объяснением действий.
    Условие:
    Дан массив из 15 элементов определить сколько элементов массива располагается между его максимальным и минимальным элементом.

Ответы 1

  • Const   N = 15;Var   A:array[1..N] of integer;   i,   Max, Min:integer; // Тут будут храниться НОМЕРА Min и MaxBeginRandomize;{Заполнение и вывод массива}Write('Исходный массив:');For i:= 1 to N do    Begin    A[i]:=random(21)-10;    Write(' ',A[i])    End;WriteLn;{Поиск максимума и минимума}Max:=1;Min:=1;// Проверять начинаем со второго элемента,// потому, что в первую очередь будем сравнивать с первым// (т.к. Max = 1 и Min = 1)For i:= 2 to N do     Begin    if A[i]>A[Max] then Max:=i;    if A[i]<A[Min] then Min:=i;    // Поскольку тут стоят знаки строго больше и строго меньше,    // будут найдены только первый встретившийся максимум    // и первый встретившийся минимум.    // Если бы стояли знаки больше или равно(>=) и меньше или равно(<=),    // то найдены были бы последние встретившиеся Max и Min    // То есть, например, в первом случае в массиве:    // 1 2 3 4 5 2 5 1    // были бы найдены: Min = 1, Max = 5    // во втором случае в том же массиве были бы найдены:    // Min = 8, Max = 7    End;// Сколько элементов между пятым и первым ? - три.// Между восьмым и седьмым ? - ноль// Общая формула:// Искомое кол-во элементов = |НомерМаксимума-НомерМинимума|-1// Значение берём по модулю потому,// что как минимальный элемент может стоять после максимального,// так и максимальный после минимального// То есть без модуля было бы так: 5-1-1 = 3, 7-8-1 = -2// А с модулем так: |5-1|-1 = 3, |7-8|-1 = 0// Формула может выдать -1 в том случае, когда минимум равен максимум,// то есть когда все элементы массива равны.// На этот случай можно вывести соответствующее сообщение, или просто вывести ноль.WriteLn('Max = A[',Max,'] = ',A[Max]);WriteLn('Min = A[',Min,'] = ',A[Min]);i:=Abs(Max-Min)-1; // перепишем сюда получившееся значение,// чтобы потом ещё раз его не высчитыватьif i = -1 then WriteLn('Все элементы массива равны.')else WriteLn('Кол-во элементов между Max и Min = ',i);End.Пример:Исходный массив: 5 -2 -5 5 6 -7 7 -6 6 3 -4 6 -8 7 1Max = A[7] = 7Min = A[13] = -8Кол-во элементов между Max и Min = 5
    • Автор:

      tater tot
    • 5 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years