Поменять местами первый и последний отрицательный элементы массива - Pascal ABC

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

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

Поменять местами первый и последний отрицательный элементы массива. Используя процедуры:init 2, print 1, swap. Пример 1 3 -8 9 -7 4 5 -9 2 ответ 1 2 -9 9 -7 4 5 -8 2

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

textual
Листинг программы
procedure Init(var V: TVector);
var
  i: integer;
begin
  Randomize;
  for i:=1 to 10 do begin
    V[i]:=random(21)-10;
  end;
end;
 
procedure Print(const V: TVector);
var
  i: integer;
begin
  for i:=1 to n do begin
    Write(V[i], ' ');
  end;
  WriteLn;
end;
 
procedure Swap(var V: TVector);
var
  i, tmp: integer;
  first, last: integer;
begin
  first:=0;
  for i:=1 to n do begin
    if V[i]<0 then begin
      if first=0 then first:=i;
      last:=i;
    end;
  end;
  if first>0 then begin
    tmp:=V[first];
    V[first]:=V[last];
    V[last]:=tmp;
  end;
end;
 
begin
  Init(A);
  Print(A);
  Swap(A);
  Print(A);
  ReadLn;
end.

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

  1. В процедуре Init используется генератор случайных чисел, который задается функцией Randomize. Затем в цикле for происходит итерация от 1 до 10, где каждый элемент массива A вычисляется как случайное число от 10 до 20 (включительно) с помощью выражения random(21)-10. Это гарантирует, что массив будет содержать положительные числа.
  2. В процедуре Print происходит итерация от 1 до n (количество элементов в массиве A), где каждый элемент выводится на экран с помощью функции Write.
  3. В процедуре Swap используется переменные first и last, которые инициализируются значением 0. Затем происходит итерация от 1 до n, где проверяется, является ли текущий элемент отрицательным. Если это так, то переменные first и last обновляются таким образом, чтобы первый отрицательный элемент был помещен в переменную first, а последний отрицательный элемент - в переменную last.
  4. Если первый элемент массива A положительный, то происходит обмен этого элемента с последним отрицательным элементом, используя временную переменную tmp.
  5. В конце программы вызываются процедуры Init, Print и Swap для массива A, после чего происходит чтение символа новой строки с помощью функции ReadLn.

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

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