トラック
/
ABAP
ABAP
/
演習
/
Elyses Enchantments
Elyses Enchantments

Elyses Enchantments

初級

説明

駆け出しのマジシャン、Elyseは、基本の練習をする必要があります。Elyseの手元には、操作したいカードのスタックがあります。

少し簡単にするため、Elyseは1から10のカードだけを使います。そのため、カードのスタックは数値の内部テーブルで表すことができます。あるカードの位置は、テーブルの行に対応します。つまり、行1は1枚目のカード、行2は2枚目のカードを指します。

1. スタックからカードを取り出す

カードを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

Elyses Enchantmentsを始める準備はできましたか?

Exercismに登録すれば、54個の演習、そして本物の人間によるメンタリングとともに、ABAPを学んでマスターできます。すべて無料です。