Предмет: Информатика, автор: Travka24

Заполнить очередь случайными числами из интервала [-20; 40]. Найти сумму последнего нечетного элемента и третьего элемента очереди. Результат поместить в очередь. Удалить 4 элемент из очереди. После выполнения каждой операции выводить содержимое очереди на экран. (ЧЕРЕЗ ПРОЦЕДУРЫ)

Ответы

Автор ответа: Аноним
1
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)
    end
end;

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.Println
end.

Пример
Кол-во элементов (не менее 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
Похожие вопросы
Предмет: Математика, автор: aligasanov1