學習軌道
/
ABAP
ABAP
/
練習
/
Elyse 的魔法道具
Elyse 的魔法道具

Elyse 的魔法道具

簡單

說明

Elyse 是一位見習魔術師,需要先練習一些基本功。她有一疊想操作的牌。

為了讓事情簡單一些,她只用 1 到 10 的牌,這樣她的牌堆就可以用一個內部的數字表格來表示。某張牌的位置對應到表格的列,也就是說,第 1 列指的是第一張牌,第 2 列指的是第二張牌,依此類推。

1. 從牌堆中取出一張牌

要挑一張牌,請回傳指定牌堆中索引position的那張牌。

data(stack) = value #( ( 1 ) ( 2 ) ( 4 ) ( 1 ) ).
data(card) = get_Item( stack = stack
                       position = 3 ).   " card = 4

2. 交換牌堆中的一張牌

耍點手法,把索引position的那張牌換成提供的替換牌。回傳調整後的牌堆。

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. 在牌堆頂端插入一張牌

在牌堆頂端插入一張新牌,讓一張牌出現。回傳調整後的牌堆。

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. 從牌堆中移除一張牌

從牌堆中移除指定position的那張牌,讓一張牌消失。回傳調整後的牌堆。

data(stack) = value #( ( 3 ) ( 2 ) ( 6 ) ( 4 ) ( 8 ) ).
data(new_Stack) = remove_Item( stack    = stack
                               position = 3 ).   
" new_Stack = 3, 2, 4, 8

5. 移除牌堆頂端的牌

移除牌堆頂端的那張牌,讓一張牌消失。回傳調整後的牌堆。

data(stack) = value #( ( 3 ) ( 2 ) ( 6 ) ( 4 ) ( 8 ) ).
data(new_Stack) = remove_Item_from_Top( stack ).   
" new_Stack = 3, 2, 6, 4

6. 在牌堆底部插入一張牌

在牌堆底部插入一張新牌,讓一張牌出現。回傳調整後的牌堆。

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. 從牌堆底部移除一張牌

移除牌堆底部的那張牌,讓一張牌消失。回傳調整後的牌堆。

data(stack) = value #( ( 8 ) ( 5 ) ( 9 ) ( 7 ) ( 1 ) ).
data(new_Stack) = remove_Item_from_Top( stack ).   
" new_Stack = 5, 9, 7, 1

8. 檢查牌堆的大小

回傳牌堆的大小(列的數量)。

data(stack) = value #( ( 3 ) ( 2 ) ( 6 ) ( 4 ) ( 8 ) ).
data(size_of_Stack) = get_Size_of_Stack( stack ).   
" size_of_Stack = 5
透過 GitHub 編輯 連結會在新視窗或分頁中開啟
ABAP Exercism

準備好開始 Elyse 的魔法道具 了嗎?

註冊 Exercism,透過 54 個練習 和真人引導來學習並精通 ABAP,全部免費。