Percursos
/
ABAP
ABAP
/
Exercícios
/
Os Encantamentos da Elyse
Os Encantamentos da Elyse

Os Encantamentos da Elyse

Fácil

Instruções

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.

1. Obter uma carta de uma pilha

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

2. Trocar uma carta na pilha

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

3. Inserir uma carta no topo da pilha

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

4. Remover uma carta da pilha

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

5. Remover a carta do topo da pilha

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

6. Inserir uma carta na base da pilha

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

7. Remover uma carta da base da pilha

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

8. Verificar o tamanho da pilha

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
Editar via GitHub A ligação abre numa nova janela ou separador
ABAP Exercism

Estás pronto para começar Os Encantamentos da Elyse?

Inscreve-te no Exercism para aprenderes e dominares ABAP com 54 exercícios, e mentoria humana real, tudo grátis.