8/12/2022

Котлин. Торт и свечи

Создайте торт со слоями и свечами
Всего вы создадите три функции для рисования слоеного пирога со свечами.
Вы будете использовать a repeat()внутри другого repeat(), создавая так называемый «вложенный цикл».
То, как вы создадите этот код, — это то, как вы можете создать любую программу, начиная с общей картины и добавляя детали. Это называется «развитие сверху вниз».
Инструкции для этой практики не такие подробные, и вы можете обратиться к готовому коду, если застряли.

Tорт со слоями и свечами

















Вот фото торта, который вы будете печь:
 ,,,,,,,,,,,,,,,,,,,,,,,,
 ||||||||||||||||||||||||
==========================
@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@
А вот инструкции.
Создайте функцию main( )
Сбросьте свой код в редакторе в Hello, world!программу.
Вы можете удалить аргумент для main(), потому что вы не будете его использовать.
В main(), создайте переменную ageи установите для нее значение 24.
В main(), создайте вторую переменную layers и установите для нее значение 5.
В main(), вызовите функцию printCakeCandles() и передайте age. Это оставит вас с ошибкой, потому что вы еще не создали эту функцию.
Точно так же вызовите функцию, printCakeTop() а также передайте файл age.
Наконец, вызовите функцию printCakeBottom() и передайте ей, ageа также номер layers.
Чтобы избавиться от ошибок, закомментируйте три вызова функций, добавив //в начале каждой строки, как показано ниже. Этот метод позволяет вам набросать код, не вызывая ошибок.
Запустите вашу программу, и она не должна иметь ошибок и ничего не делать.
Ваша main()функция должна выглядеть как код ниже.

fun main() {
    val age = 24
   val layers = 5
    // printCakeCandles(age)
    // printCakeTop(age)
    // printCakeBottom(age, layers)
}
Создать printCakeTop( )
Функция printCakeTop()для печати верхней части торта, строки из знаков равенства, почти такая же, как printBorder()функция, которую вы создали ранее в этой кодовой лаборатории.

==========================
Ниже main()функции добавьте пустую строку, а затем создайте функцию, printCakeTop()которая принимает один аргумент ageтипа Int.
Внутри используйте repeat()оператор для вывода одного знака равенства, ageумноженного на 2. Два дополнительных знака равенства нужны для того, чтобы свечи не падали с торта.
В конце, когда это repeat()будет сделано, напечатайте пустую строку.
В main()удалите два //символа из начала строки кода для printCakeTop(), так как функция теперь существует.
printCakeTop(age)
Вот ваша готовая функция.

fun printCakeTop(age: Int) {
    repeat(age + 2) {
        print("=")
    }
    println()
}
Запустите свой код, чтобы увидеть вершину пирога.
Создать printCakeCandles( )
Каждая свеча состоит из двух символов: запятая (,) для пламени и вертикальная черта (|) для тела свечи.
,,,,,,,,,,,,,,,,,,,,,,,,
||||||||||||||||||||||||
Чтобы выполнить это в одной функции, поместите в нее два repeat()утверждения, одно для пламени и одно для тел.
Ниже main()функции и printCakeTop()функции создайте новую функцию, printCakeCandles()которая принимает один аргумент ageтипа Int.
Внутри используйте repeat()оператор, чтобы напечатать одну запятую , для пламени.
Повторите это ageраз.
В конце выведите пустую строку.
Добавьте оператор печати, чтобы напечатать одно место для вставки свечей.
Ниже повторите шаги, чтобы создать второй repeat()оператор для печати тел свечей с вертикальной линией |.
В конце напечатайте новую строку, используя println().
В main()удалите два //символа из начала строки кода для printCakeCandles().
printCakeCandles(age)
Запустите свой код, чтобы увидеть верхнюю часть торта и свечи
Решение:

fun printCakeCandles(age: Int) {
    print(" ")
    repeat(age) {
        print(",")
    }    
    println() // Print an empty line   
 
    print(" ") // Print the inset of the candles on the cake
    repeat(age) {
        print("|")
    }    
    println()
}
Создать printCakeBottom( )
В этой функции вы рисуете дно торта шириной как age + 2, и вы рисуете его для высоты заданного количества слоев.

@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@
Это означает, что вашей функции нужны два аргумента: один для ширины ( age) и один для высоты ( layers).
Чтобы напечатать нижнюю часть торта, вы сначала повторяете символ «at» @ несколько age + 2раз, чтобы напечатать один слой. Затем вы повторяете печать одного слоя несколько layersраз.
Нарисуйте возраст символа+2 раза, чтобы создать слой
Под существующими функциями создайте функцию printCakeBottom()с двумя аргументами ageи layers, обе типа Int.
Внутри функции используйте оператор для печати одного слоя символов repeat()'at' раз. Завершите, напечатав пустую строку, как показано ниже.@age + 2
fun printCakeBottom(age: Int, layers: Int) {
    repeat(age + 2) {
        print("@")
    }
    println()
}
Запустите свой код, чтобы убедиться, что он печатает одну строку дна торта.
 ,,,,,,,,,,,,,,,,,,,,,,,,
 ||||||||||||||||||||||||
==========================
@@@@@@@@@@@@@@@@@@@@@@@@@@
Вложенные операторы Repeat ( )
Чтобы напечатать несколько одинаковых слоев дна торта, вы можете сказать:
Для слоя 1 повторите символ 12 раз: @@@@@@@@@@@@
Для слоя 2 повторите символ 12 раз: @@@@@@@@@@@@
Для слоя 3 повторите символ 12 раз: @@@@@@@@@@@@
Или вы можете сказать это гораздо более кратко, как:
Повторите для трех слоев:

Repeat the symbol 12 times. 
@@@@@@@@@@@@
@@@@@@@@@@@@
@@@@@@@@@@@@
Вот что можно сделать с repeat()операторами. Вы можете поместить одно repeat()выражение в другое repeat()выражение. Таким образом, вы можете создать repeat()оператор внутри repeat()оператора для печати символа определенное количество раз для определенного количества слоев.
Используйте вложенный метод repeat( ) для печати слоев торта.
Поместите второй repeat()оператор вокруг всего кода внутри функции. Повторите этот цикл layersраз.
В main(), удалите только две //из строки кода для printCakeBottom().
printCakeBottom(age, layers)
Запустите свой код, чтобы увидеть весь торт.
Решение для printCakeBottom().

fun printCakeBottom(age: Int, layers: Int) {
    repeat(layers) {
        repeat(age + 2) {
            print("@")
        }
        println()
    }    
}
Поздравляем! Вы только что закончили довольно сложную программу с несколькими функциями и вложенным repeatоператором. И на вашем торте всегда будет нужное количество свечей!
Окончательный вывод вашей программы должен быть:

 ,,,,,,,,,,,,,,,,,,,,,,,,
 ||||||||||||||||||||||||
==========================
@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@

Комментариев нет:

Отправить комментарий