Предмет: Информатика,
автор: 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
Внимание! Если программа не работает, обновите версию!
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
Похожие вопросы
Предмет: Физика,
автор: klyuchnikov200887
Предмет: История,
автор: aroslavplotnikov620
Предмет: География,
автор: Аноним
Предмет: Математика,
автор: aligasanov1
Предмет: Математика,
автор: dariaaverina10063