Предмет: Информатика,
автор: Travka24
(Pascal)
Из двух стеков, создать новый стек:элементы брать по-очерёдно из исходных стеков из первого-чётные, из второго нечётные: [1,18,20,13,2],[4,8,10,11,9], получили [2,9,20,11,18]
(ВЫПОЛНИТЬ С ЭЛЕМЕНТАМИ ПРОЦЕДУР)
Travka24:
Могу дать больше
Ответы
Автор ответа:
1
PascalABC.NET 3.3.5, сборка 1659 от 09.04.2018
Внимание! Если программа не работает, обновите версию!
begin
var st1:=new Stack<integer>;
foreach var t in Seq(2,13,20,18,1) do st1.Push(t);
Write('Стек1: '); st1.Println;
var st2:=new Stack<integer>;
foreach var t in Seq(9,11,10,8,4) do st2.Push(t);
Write('Стек2: '); st2.Println;
var st3:=new Stack<integer>;
while st1.Count+st2.Count>0 do begin
while st1.Count>0 do begin
var k:=st1.Pop;
if k.IsEven then begin
st3.Push(k);
break
end
end;
while st2.Count>0 do begin
var k:=st2.Pop;
if k.IsOdd then begin
st3.Push(k);
break
end
end
end;
Write('Стек3: '); st3.Println;
end.
Внимание! Если программа не работает, обновите версию!
begin
var st1:=new Stack<integer>;
foreach var t in Seq(2,13,20,18,1) do st1.Push(t);
Write('Стек1: '); st1.Println;
var st2:=new Stack<integer>;
foreach var t in Seq(9,11,10,8,4) do st2.Push(t);
Write('Стек2: '); st2.Println;
var st3:=new Stack<integer>;
while st1.Count+st2.Count>0 do begin
while st1.Count>0 do begin
var k:=st1.Pop;
if k.IsEven then begin
st3.Push(k);
break
end
end;
while st2.Count>0 do begin
var k:=st2.Pop;
if k.IsOdd then begin
st3.Push(k);
break
end
end
end;
Write('Стек3: '); st3.Println;
end.
Приложения:
Похожие вопросы
Предмет: История,
автор: vitalinakostiukevych
Предмет: Русский язык,
автор: wvwvwvevw
Предмет: География,
автор: lcidudy
Предмет: История,
автор: katrusichka
Предмет: Литература,
автор: помогите326