Опишите в python алгоритм подсчёта суммы всех отрицательных элементов заданного целочисленного массива размером 30 элементов. если отрицательных элементов нет, выведите no.
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.
Внимание! Если программа не работает, обновите версию!
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