Como futura maga, Elyse necesita practicar algunos conceptos básicos. Tiene una pila de cartas que quiere manipular.
Para que las cosas sean un poco más fáciles, solo usa las cartas del 1 al 10, de modo que su pila de cartas se puede representar con una tabla interna de números. La posición de una carta determinada corresponde a la fila de la tabla. Eso quiere decir que la fila 1 se refiere a la primera carta, la fila 2 a la segunda, etc.
Para tomar una carta, devuelve la carta en el índice position de la pila dada.
data(stack) = value #( ( 1 ) ( 2 ) ( 4 ) ( 1 ) ).
data(card) = get_Item( stack = stack
position = 3 ). " card = 4
Haz un poco de prestidigitación e intercambia la carta en el índice position con la carta de reemplazo que se proporciona.
Devuelve la pila 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
Haz que aparezca una carta insertando una nueva carta en la parte superior de la pila. Devuelve la pila 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
Haz que desaparezca una carta quitando de la pila la carta que está en la position dada.
Devuelve la pila ajustada.
data(stack) = value #( ( 3 ) ( 2 ) ( 6 ) ( 4 ) ( 8 ) ).
data(new_Stack) = remove_Item( stack = stack
position = 3 ).
" new_Stack = 3, 2, 4, 8
Haz que desaparezca una carta eliminando la carta de la parte superior de la pila. Devuelve la pila ajustada.
data(stack) = value #( ( 3 ) ( 2 ) ( 6 ) ( 4 ) ( 8 ) ).
data(new_Stack) = remove_Item_from_Top( stack ).
" new_Stack = 3, 2, 6, 4
Haz que aparezca una carta insertando una nueva carta en la parte inferior de la pila. Devuelve la pila 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
Haz que desaparezca una carta eliminando la carta de la parte inferior de la pila. Devuelve la pila ajustada.
data(stack) = value #( ( 8 ) ( 5 ) ( 9 ) ( 7 ) ( 1 ) ).
data(new_Stack) = remove_Item_from_Top( stack ).
" new_Stack = 5, 9, 7, 1
Devuelve el tamaño de la pila (número de filas).
data(stack) = value #( ( 3 ) ( 2 ) ( 6 ) ( 4 ) ( 8 ) ).
data(size_of_Stack) = get_Size_of_Stack( stack ).
" size_of_Stack = 5
Regístrate en Exercism para aprender y dominar ABAP con 54 ejercicios y mentoría humana real, todo gratis.