Взаданном стеке найти минимальный по абсолютному значению элемент и удалить все элементы с таким значением. (искать, перекладывать в дополнительный стек, удалять при перекладывании обратно: [1,7,-1,3,2],получили [7,3,2]).
PascalABC.NET 3.4.0, сборка 1671 от 31.05.2018 Внимание! Если программа не работает, обновите версию!
begin var St:=new Stack<integer>; foreach var k in ReadSeqInteger('Вводите данные:',ReadInteger('n=')) do St.Push(k); St.Println; // исходное содержимое стека var St1:=new Stack<integer>; var min:=MaxInt; var k:integer; while St.Count>0 do begin k:=St.Pop; if Abs(k)<min then min:=Abs(k); St1.Push(k); end; while St1.Count>0 do begin k:=St1.pop; if Abs(k)<>min then St.Push(k) end; St.Println end.