PascalABC.NET 3.3.5, сборка 1650 от 01.04.2018Внимание! Если программа не работает, обновите версию!type tQ=queue<integer>;procedure ЗаполнениеОчереди(q:tQ; n:integer);begin Randomize; loop n do begin var k:=Random(-20,40); q.Enqueue(k) end;end;procedure СуммаНужныхЭлементов(q:tQ; var s:integer);begin var ko,k:integer; for var i:=1 to q.Count do begin k:=q.Dequeue; q.Enqueue(k); if k.IsOdd then ko:=k; if i=3 then s:=k end; s+=ko end;procedure УдалитьЭлемент(q:tQ; p:integer);begin for var i:=1 to q.Count do begin var k:=q.Dequeue; if i<>p then q.Enqueue(k) endend;begin var MyQ:=new tQ; var n:=ReadInteger('Кол-во элементов (не менее 4):'); ЗаполнениеОчереди(MyQ,n); MyQ.Println; var s:integer; СуммаНужныхЭлементов(MyQ,s); MyQ.Enqueue(s); // искомая сумма помещена в очередь MyQ.Println; УдалитьЭлемент(MyQ,4); MyQ.Printlnend.
ПримерКол-во элементов (не менее 4): 13-7 12 -18 4 23 -1 15 -11 9 12 5 3 2-7 12 -18 4 23 -1 15 -11 9 12 5 3 2 -15-7 12 -18 23 -1 15 -11 9 12 5 3 2 -15