Advertisement
Guest User

Untitled

a guest
May 26th, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 4.03 KB | None | 0 0
  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)")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement