Предпоследний элемент в массиве - Pascal

Узнай цену своей работы

Формулировка задачи:

Ввести одномерный массив A, вывести его. Переставить в обратном порядке все элементы между максимальным и предпоследним отрицательным элементом. Помогите, не могу найти предпоследний элемент в массиве, и как их переставить?

Решение задачи: «Предпоследний элемент в массиве»

textual
Листинг программы
const
    n = 10;
 
var
    m : Array[1..n] Of ShortInt;
    i, penID, maxID : Byte;
    state : Boolean = False;
    max : ShortInt;
 
procedure Swap(var x, y : ShortInt);
var
    z : ShortInt;
begin
    z := x;
    x := y;
    y := z;
end;
 
begin
    //заполнение и вывод начального массива
    Randomize;
    for i := 1 to n do
    begin
        m[i] := Random(19) - 9;
        Write(m[i]:3);
    end;
    WriteLn; WriteLn;
    //предпоследний отрицательный
    for i := n downto 1 do
    begin
        if (m[i] < 0) then
            if (state) then
            begin
                penID := i;
                break;
            end
            else
                state := True;
    end;
    //максимальный
    max := m[1]; maxID := 1;
    for i := 2 to n do
        if (max < m[i]) then
        begin
            max := m[i];
            maxID := i;
        end;
    WriteLn(penID, '   ', maxID);
    WriteLn;
    if (maxID > penID) then
    begin
        i := maxID;
        maxID := penID;
        penID := i;
    end;
    for i := 1 to (penID - maxID div 2) do
        Swap(m[maxID+i], m[penID-i]);
    //вывод
    for i := 1 to n do
        Write(m[i]:3);
    
end.

Объяснение кода листинга программы

  1. Объявлены переменные: n - количество элементов в массиве (10); m - массив (10 элементов); i - счётчик для циклов; penID, maxID - индексы элементов; state - флажок для поиска отрицательных чисел; max - максимальное значение в массиве;
  2. Определённая процедура Swap для обмена значениями двух элементов.
  3. Заполнение массива случайными числами от -9 до 9 и вывод на экран.
  4. Поиск последнего отрицательного числа (предпоследний элемент).
  5. Нахождение максимального значения и его индекса.
  6. Вывод на экран найденных значений.
  7. Если максимальное значение находится не на своём месте, то производится перестановка с помощью процедуры Swap.
  8. Вывод на экран всех элементов массива.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.923 из 5
Похожие ответы