Advertisement
Guest User

Untitled

a guest
Dec 13th, 2019
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 6.66 KB | None | 0 0
  1. import UIKit
  2. import Foundation
  3.  
  4. /// --------- 1-st task ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  5.  
  6. var autos: [String: Int] = ["audi": 100,
  7.                             "ford": 200,
  8.                             "opel": 300]
  9.  
  10. var autosSecondArray: [String: Int] = ["lada": 300,
  11.                              "cherry": 299,
  12.                              "kalina": 239]
  13.  
  14. let limitOfPower = 150 // задаем лимит
  15.  
  16. // It is a nested function in the next function
  17. // This function print information: should a car pay a tax or not
  18. func shouldWePayATaxes(autoes: [String: Int]) {
  19.     // look at the autoes
  20.     for nameOfAuto in autoes.keys{  // проходимся по всему словарю
  21.         if let powerOfAuto = autoes[nameOfAuto] { // если можем достать значение по ключу без ошибки
  22.             if powerOfAuto >= limitOfPower { // если значение больше либо равно лимиту
  23.                 print("Name of auto that should pay a tax: \(nameOfAuto)") // выводим название авто у которого превышен лимит по лошадиным силам
  24.             }
  25.         }
  26.     }
  27. }
  28.  
  29.  
  30. // Function Of Count Of Power Of Autos
  31. func sumOfAllPowerOfAuto(autoes: [String: Int], limitOfPower: Int) {
  32.     // считем сумму всех лошадей и добавляем эту сумму к новому N-му авто
  33.     var sum = 0 // сумма лошадей
  34.     for element in autoes.keys{
  35.         sum += autoes[element]! // суммируем все лошадиные силы
  36.         autos["lada"] = sum // записываем сумму всех лошадей в авто "лада"
  37.     }
  38.    
  39.     // средняя мощь авто
  40.     let avPower: Double = Double(sum) / Double(autoes.count) // count average power
  41.     print("Average amount of power: \(avPower)")
  42.    
  43.     shouldWePayATaxes(autoes: autoes)
  44. }
  45.  
  46. // first call
  47. sumOfAllPowerOfAuto(autoes: autos, limitOfPower: limitOfPower)
  48.  
  49. // second call
  50. sumOfAllPowerOfAuto(autoes: autosSecondArray, limitOfPower: limitOfPower)
  51.  
  52.  
  53. /// --------- 2-е задание ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  54.  
  55. let one: Int? = 1
  56. let two: Int? = 123
  57. let three: Int? = 777
  58.  
  59. func unbiding(number: Int?, typeOfUnbiding: Int) {
  60.     switch typeOfUnbiding {
  61.     case 1:
  62.         // 1-nd type
  63.         if number! != nil {
  64.            print("Первый способ вложенности: \(number!)")
  65.         }
  66.     case 2:
  67.         // 2-rd type
  68.         if let chislo = two {
  69.             print("Второй способ вложенности: \(chislo)")
  70.         }
  71.     default:
  72.         // 3-rd type
  73.         let tmp = three ?? 0
  74.         print("Третий способ вложенности: \(tmp)")
  75.     }
  76. }
  77.  
  78. // first call
  79. unbiding(number: one, typeOfUnbiding: 1)
  80.  
  81. // second call
  82. unbiding(number: two, typeOfUnbiding: 2)
  83.  
  84. // third call
  85. unbiding(number: three, typeOfUnbiding: 3)
  86.  
  87.  
  88.  
  89. /// --------4-nd task --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  90.  
  91. let lozungTuple = (1, "Labour", true)
  92.  
  93. func concatinationOfStrings(tuple: (Int, String, Bool), typeOfcreatingString: Int){
  94.     switch typeOfcreatingString {
  95.     case 1:
  96.         // 1. First type with "+" concatenation
  97.         let firstTypeOfConcatenation = String(tuple.0) + " " + tuple.1 + " " + String(tuple.2)
  98.         print(firstTypeOfConcatenation)
  99.     case 2:
  100.         // 2. Second type with \()
  101.         let secondTypeOfConcatenation = ("Peace \(tuple.1) May")
  102.         print(secondTypeOfConcatenation)
  103.     default:
  104.         // 3. Third type with %@
  105.         let thirdTypeOfConcatenationFormatString = "%@ %@ %@"
  106.         let newString = String(format: thirdTypeOfConcatenationFormatString, String(tuple.0), tuple.1, String(tuple.2))
  107.         print(newString)
  108.     }
  109. }
  110.  
  111. concatinationOfStrings(tuple: lozungTuple, typeOfcreatingString: 1)
  112. concatinationOfStrings(tuple: lozungTuple, typeOfcreatingString: 2)
  113. concatinationOfStrings(tuple: lozungTuple, typeOfcreatingString: 3)
  114.  
  115.  
  116. /// --------5-th task --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  117.  
  118. // Массив опциональных интов, либо Нилами. В цикле посчитайте сумму
  119. // Один любой способ разворачивания optional (который считаете более правильным)
  120.  
  121.  
  122. // 5. Task of Optional Int?
  123. var arrayOfOptionalInt:[Int?] = [nil]
  124.  
  125. // 5.2 Summarise all elements
  126. func printOptionalIntSumm(arrayOfInt: inout [Int?]) {
  127.     // 5.1 Initializate 100 random elements
  128.     for _ in 0...100 {
  129.         arrayOfInt.append(Int.random(in: 1...100))
  130.     }
  131.    
  132.     var sumOfAllElements = 0
  133.    
  134.     for elementOfMassive in arrayOfInt {
  135.         if let unbindingElement = elementOfMassive {
  136.             sumOfAllElements += unbindingElement
  137.         }
  138.     }
  139.     print(sumOfAllElements)
  140. }
  141.  
  142. // 5.3 Print result
  143.  
  144. printOptionalIntSumm(arrayOfInt: &arrayOfOptionalInt)
  145. printOptionalIntSumm(arrayOfInt: &arrayOfOptionalInt)
  146.  
  147.  
  148. /// --------6-th task --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  149. // Пройти в цикле по строке. Записать каждый character в другую строку таким образом, чтобы получилось реверс строка. То есть с обратной записью
  150.  
  151. // 6. Reverse a string
  152. let firstString = "ABCDEFG"
  153. let secondString = "TUTTA LARSEN"
  154.  
  155. func reverseAString(string: String) {
  156.     var newString = "" // create final string
  157.     var numerator = string.count - 1 // create numerator
  158.    
  159.     while(numerator >= 0) {
  160.         newString.append(Array(string)[numerator])
  161.         numerator -= 1
  162.     }
  163.     print(newString)
  164. }
  165.  
  166. // call function
  167. reverseAString(string: firstString)
  168. reverseAString(string: secondString)
  169.  
  170.  
  171. /// --------7-th task --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement