مسیرها
/
ABAP
ABAP
/
تمرین‌ها
/
جادوهای الیز
جادوهای الیز

جادوهای الیز

آسان

دستورالعمل‌ها

الیس که شعبده‌بازی تازه‌کار است، باید چند مهارت پایه را تمرین کند. او پشته‌ای از کارت‌ها دارد که می‌خواهد آن‌ها را دست‌کاری کند.

برای اینکه کارها کمی ساده‌تر شود، او فقط از کارت‌های ۱ تا ۱۰ استفاده می‌کند، بنابراین پشته‌ی کارت‌هایش را می‌توان با یک جدول داخلی از اعداد نمایش داد. موقعیت هر کارت با سطر جدول متناظر است. یعنی سطر ۱ به کارت اول اشاره دارد، سطر ۲ به کارت دوم و به همین ترتیب.

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

آماده‌اید جادوهای الیز را شروع کنید؟

در Exercism ثبت‌نام کنید تا ABAP را همراه با 54 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.