Como futura maga, a Elyse precisa de praticar o básico. Tem uma pilha de cartas que quer manipular.
Para facilitar um pouco as coisas, usa apenas as cartas de 1 a 10, por isso a sua pilha de cartas pode ser representada por uma tabela interna de números. A posição de uma determinada carta corresponde à linha da tabela. Ou seja, a linha 1 refere-se à primeira carta, a linha 2 à segunda, e assim por diante.
Para escolher uma carta, devolve a carta que está no índice position da pilha dada.
data(stack) = value #( ( 1 ) ( 2 ) ( 4 ) ( 1 ) ).
data(card) = get_Item( stack = stack
position = 3 ). " card = 4
Faz um pouco de prestidigitação e troca a carta no índice position pela carta de substituição fornecida.
Devolve a pilha ajustada.
data(stack) = value #( ( 1 ) ( 2 ) ( 4 ) ( 1 ) ).
data(new_Stack) = set_Item( stack = stack
position = 3
replacement = 6 ).
" new_Stack = 1, 2, 6, 1
Faz aparecer uma carta inserindo uma nova carta no topo da pilha. Devolve a pilha ajustada.
data(stack) = value #( ( 5 ) ( 9 ) ( 7 ) ( 1 ) ).
data(new_Stack) = insert_Item_at_Top( stack = stack
new_Card = 8 ).
" new_Stack = 5, 9, 7, 1, 8
Faz desaparecer uma carta removendo da pilha a carta que está na position indicada.
Devolve a pilha ajustada.
data(stack) = value #( ( 3 ) ( 2 ) ( 6 ) ( 4 ) ( 8 ) ).
data(new_Stack) = remove_Item( stack = stack
position = 3 ).
" new_Stack = 3, 2, 4, 8
Faz desaparecer uma carta removendo a carta que está no topo da pilha. Devolve a pilha ajustada.
data(stack) = value #( ( 3 ) ( 2 ) ( 6 ) ( 4 ) ( 8 ) ).
data(new_Stack) = remove_Item_from_Top( stack ).
" new_Stack = 3, 2, 6, 4
Faz aparecer uma carta inserindo uma nova carta na base da pilha. Devolve a pilha ajustada.
data(stack) = value #( ( 5 ) ( 9 ) ( 7 ) ( 1 ) ).
data(new_Stack) = insert_Item_at_Bottom( stack = stack
new_Card = 8 ).
" new_Stack = 8, 5, 9, 7, 1
Faz desaparecer uma carta removendo a carta que está na base da pilha. Devolve a pilha ajustada.
data(stack) = value #( ( 8 ) ( 5 ) ( 9 ) ( 7 ) ( 1 ) ).
data(new_Stack) = remove_Item_from_Top( stack ).
" new_Stack = 5, 9, 7, 1
Devolve o tamanho da pilha (o número de linhas).
data(stack) = value #( ( 3 ) ( 2 ) ( 6 ) ( 4 ) ( 8 ) ).
data(size_of_Stack) = get_Size_of_Stack( stack ).
" size_of_Stack = 5
Inscreve-te no Exercism para aprenderes e dominares ABAP com 54 exercícios, e mentoria humana real, tudo grátis.