SHARE
TWEET

Untitled

a guest May 26th, 2019 70 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //-------------------task1--------------------------
  2.  
  3. //1. Создайте пару функций с короткими именами, которые возвращают строку с классным символом или символами. Например heart() возвращает сердце и т.п. Вызовите все эти функции внутри принта для вывода строки этих символов путем конкатенации.
  4. print("task1")
  5. print()
  6.  
  7. func heart() -> String {
  8.     return "\u{1F496}"
  9. }
  10.  
  11. func dollar() -> String {
  12.     return "\u{1F425}"
  13. }
  14.  
  15. func ensign() -> String {
  16.     return "\u{1F1F7}\u{1F1FA}"
  17. }
  18. print(dollar() + heart() + ensign())
  19. print()
  20.  
  21. //-------------------task2--------------------------
  22.  
  23. //2. Опять шахматные клетки. Реализовать функцию, которая принимает букву и символ и возвращает строку “белая” или “черная”. Строку потом распечатайте в консоль
  24.  
  25. print("task2")
  26. print()
  27.  
  28. var dict = [String: String]()
  29. let coins = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K"]
  30. for i in 0..<coins.count {
  31.     for k in 0...9 {
  32.         if i % 2 == k % 2 {
  33.             dict["\(coins[i])\(k)"] = "white"
  34.         } else {
  35.             dict["\(coins[i])\(k)"] = "black"
  36.         }
  37.     }
  38. }
  39. //При реализации в одну строку приходится делать force unraping, а ты сам ругался, что это не есть хорошо...
  40. func my1(letter: String, number: Int)
  41. -> String {
  42.     return dict["\(letter)\(String(number))"]!
  43. }
  44. print(my1(letter: "A", number: 5))
  45.  
  46. //А при использовании optional bounding в одну строчку не выходит((
  47. print()
  48.  
  49. func my2(letter: String, number: Int) -> String? {
  50.     return (dict["\(letter)\(String(number))"])
  51. }
  52. print(my2(letter: "C", number: 4))
  53. print()
  54.  
  55. //-------------------task3--------------------------
  56.  
  57. //3. Создайте функцию, которая принимает массив, а возвращает массив в обратном порядке. Можете создать еще одну, которая принимает последовательность и возвращает массив в обратном порядке. Чтобы не дублировать код, сделайте так, чтобы функция с последовательностью вызывала первую.
  58.  
  59. print("task3")
  60. print()
  61.  
  62. let basicArray = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ]
  63.  
  64. print("Исходный массив \(basicArray)")
  65.  
  66. func reversedArray(array: [String]) -> [String] {
  67.     var temp = [String]()
  68.     for i in basicArray.reversed() {
  69.         temp += [i]
  70.     }
  71.     return temp
  72. }
  73. print("Массив в обратном порядке \(reversedArray(array: basicArray))")
  74.  
  75. func customArray(array: [String]) -> [String] {
  76.     return ((reversedArray(array: basicArray).reversed()))
  77. }
  78. print("Исходный, после всей этой дрочки \(customArray(array: reversedArray(array: basicArray)))")
  79.  
  80. print()
  81.  
  82. //-------------------task4--------------------------
  83.  
  84. //4. Разберитесь с inout самостоятельно и выполните задание номер 3 так, чтобы функция не возвращала перевернутый массив, но меняла элементы в существующем. Что будет если убрать inout?
  85.  
  86. print("task4")
  87. print()
  88.  
  89. var array = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ]
  90.  
  91. print("Исходный массив \(basicArray)")
  92.  
  93. func arrayChange(_ array: inout [String]) -> () {
  94.    array = array.reversed()
  95. }
  96. arrayChange(&array)
  97. print("С измененными элементами \(array)")
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top