Lab 1: Welcome to Swift - Program to print given name and address.
Try it out- Write a program to print your name on the console.
Solution 1:
import Foundation /* * Complete the function below. Task 1: write a Swift function print_name() that accepts name as input, and returns the string "Hello \(name)... How are you?" as output. */ func print_name(name: String) -> String { return "Hello \(name)... How are you?" } /* Refer 'Function_call' code which is given below if required. */
/*func print_name(name: String)*/
guard let name = readLine() else { fatalError("Bad input") } let res = print_name(name: name) let fileName = ProcessInfo.processInfo.environment["OUTPUT_PATH"]! let fileURL = URL(fileURLWithPath: fileName) do { try res.write(to: fileURL, atomically: false, encoding: .utf8) } catch let error { fatalError(error as! String) }
Lab 2: Welcome to Swift - Program to add two variables given and print the result on the console
Try it Out -Program to add two given variables and print
Solution 2:
// Enter your code here. Read input from STDIN. Print output to STDOUT // Task 1: Write a program to add two variables, and print the result on a console. var X = 10 var Y = 20 print(X+Y)
Lab 3: Welcome to Swift - Program to add two variables and print the result on the console
Try it Out - Program to add two variables and print the result
Solution 3:
import Foundation /* * Complete the 'add_num' function below. * * The function is expected to return an INTEGER. * The function accepts following parameters: * 1. DOUBLE num1 * 2. DOUBLE num2 */ // Task 1: write a Swift Function add_num that accepts two numbers (num1 and num2), and returns the sum of those numbers as integer. func add_num(num1: Double, num2: Double) -> Int { return Int(num1+num2) }
/*func add_num(num1: Double, num2: Double)*/
let stdout = ProcessInfo.processInfo.environment["OUTPUT_PATH"]! FileManager.default.createFile(atPath: stdout, contents: nil, attributes: nil) let fileHandle = FileHandle(forWritingAtPath: stdout)! guard let num1 = Double((readLine()?.trimmingCharacters(in: .whitespacesAndNewlines))!) else { fatalError("Bad input") } guard let num2 = Double((readLine()?.trimmingCharacters(in: .whitespacesAndNewlines))!) else { fatalError("Bad input") } let result = add_num(num1: num1, num2: num2) fileHandle.write(String(result).data(using: .utf8)!) fileHandle.write("\n".data(using: .utf8)!)
Lab 4: Welcome to Swift- Program to return the lengthiest city name from a group of cities.
Try it Out- Print City with Lengthiest Name.
Solution 4:
import Foundation /* * Complete the 'longestCity' function below. * * The function is expected to return a STRING. * The function accepts STRING_ARRAY cityArray as parameter. */ func longestCity(cityArray: [String]) -> String { var max = 0 var ret_word = "" for language in cityArray { let s = language.length if max < s{ max = s ret_word = language } } return ret_word }
/*func longestCity(cityArray: [String])*/
let stdout = ProcessInfo.processInfo.environment["OUTPUT_PATH"]! FileManager.default.createFile(atPath: stdout, contents: nil, attributes: nil) let fileHandle = FileHandle(forWritingAtPath: stdout)! guard let cityArrayCount = Int((readLine()?.trimmingCharacters(in: .whitespacesAndNewlines))!) else { fatalError("Bad input") } var cityArray = [String]() for _ in 1...cityArrayCount { guard let cityArrayItem = readLine() else { fatalError("Bad input") } cityArray.append(cityArrayItem) } guard cityArray.count == cityArrayCount else { fatalError("Bad input") } let result = longestCity(cityArray: cityArray) fileHandle.write(result.data(using: .utf8)!) fileHandle.write("\n".data(using: .utf8)!)
Lab 5: Welcome to swift tuple: minMax
Try it Out: Find min-max.
Solution 5:
import Foundation /* * Complete the 'minMax' function below. * * The function is expected to return an INTEGER_ARRAY. * The function accepts INTEGER_ARRAY inputArray as parameter. */ func minMax(inputArray: [Int]) -> (min:Int,max:Int) { var min: Int? var max: Int? min = inputArray.min() max = inputArray.max() print(min!, max!) return (min!, max!) }
/*func minMax(inputArray: [Int])*/
let stdout = ProcessInfo.processInfo.environment["OUTPUT_PATH"]! FileManager.default.createFile(atPath: stdout, contents: nil, attributes: nil) let fileHandle = FileHandle(forWritingAtPath: stdout)! guard let inputArrayCount = Int((readLine()?.trimmingCharacters(in: .whitespacesAndNewlines))!) else { fatalError("Bad input") } var inputArray = [Int]() for _ in 1...inputArrayCount { guard let inputArrayItem = Int((readLine()?.trimmingCharacters(in: .whitespacesAndNewlines))!) else { fatalError("Bad input") } inputArray.append(inputArrayItem) } guard inputArray.count == inputArrayCount else { fatalError("Bad input") } let result = minMax(inputArray: inputArray) var min:String=String(result.min) var max:String=String(result.max) fileHandle.write(min.data(using: .utf8)!) fileHandle.write("\n".data(using: .utf8)!) fileHandle.write(max.data(using: .utf8)!)
Lab 6: Welcome to Swift-Program to find the odd numbers from an input array.
Try it Out-find odd numbers in a given array.
Solution 6:
import Foundation /* * Complete the 'print_odd' function below. * * The function is expected to return an INTEGER_ARRAY. * The function accepts INTEGER_ARRAY inputArray as parameter. */ func print_odd(inputArray: [Int]) -> [Int] { var arr = [Int]() // print(inputArray) for language in inputArray { let s = language % 2 if s != 0 { arr.append(language) } } return arr }
/*func print_odd(inputArray: [Int])*/
let stdout = ProcessInfo.processInfo.environment["OUTPUT_PATH"]! FileManager.default.createFile(atPath: stdout, contents: nil, attributes: nil) let fileHandle = FileHandle(forWritingAtPath: stdout)! guard let inputArrayCount = Int((readLine()?.trimmingCharacters(in: .whitespacesAndNewlines))!) else { fatalError("Bad input") } var inputArray = [Int]() for _ in 1...inputArrayCount { guard let inputArrayItem = Int((readLine()?.trimmingCharacters(in: .whitespacesAndNewlines))!) else { fatalError("Bad input") } inputArray.append(inputArrayItem) } guard inputArray.count == inputArrayCount else { fatalError("Bad input") } let result = print_odd(inputArray: inputArray) fileHandle.write(result.map{ String($0) }.joined(separator: "\n").data(using: .utf8)!) fileHandle.write("\n".data(using: .utf8)!)
Lab 7: Welcome to swift odd array generator.
Try it out- Generate Odd Array
Solution 7:
import Foundation /* * Complete the 'generate' function below. * * The function is expected to return an INTEGER_ARRAY. * The function accepts INTEGER len as parameter. */ func generate(len: Int) -> [Int] { //Checking element of Array >0 if(len > 0){ } else { return [] } let n = len*2+1 var ar = [Int]() var arr = [Int]() for i in 1...n{ ar.append(i) } for i in ar{ if(i%2 != 0){ arr.append(i) } } let arr_slice = arr[0...len-1] var odd_array = Array(arr_slice) odd_array.sort(by:<) // print(odd_array) return odd_array }
/*func generate(len: Int)*/
let stdout = ProcessInfo.processInfo.environment["OUTPUT_PATH"]! FileManager.default.createFile(atPath: stdout, contents: nil, attributes: nil) let fileHandle = FileHandle(forWritingAtPath: stdout)! guard let len = Int((readLine()?.trimmingCharacters(in: .whitespacesAndNewlines))!) else { fatalError("Bad input") } let result = generate(len: len) fileHandle.write(result.map{ String($0) }.joined(separator: "\n").data(using: .utf8)!) fileHandle.write("\n".data(using: .utf8)!)
Lab 8: Welcome to Swift calculator.
Try it Out- Create a Calculator
Solution 8:
import Foundation /* * Complete the 'calc' function below. * * The function is expected to return a DOUBLE. * The function accepts following parameters: * 1. DOUBLE a * 2. DOUBLE b * 3. CHARACTER op */ func calc(a: Double, b: Double, op: Character) -> Double { let plus: Character = "+" let minus:Character = "-" let mul: Character = "*" let div: Character = "/" let mod: Character = "%" let poww: Character = "^" if( op == plus){ return a+b } else if( op == minus){ return a-b } else if( op == div){ return a/b } else if( op == mul){ return a*b } else if( op == poww){ return pow(a,b) } else if( op == mod){ return Double(Int(a) % Int(b)) } return 0 }
/*func calc(a: Double, b: Double, op: Character)*/
let stdout = ProcessInfo.processInfo.environment["OUTPUT_PATH"]! FileManager.default.createFile(atPath: stdout, contents: nil, attributes: nil) let fileHandle = FileHandle(forWritingAtPath: stdout)! guard let a = Double((readLine()?.trimmingCharacters(in: .whitespacesAndNewlines))!) else { fatalError("Bad input") } guard let b = Double((readLine()?.trimmingCharacters(in: .whitespacesAndNewlines))!) else { fatalError("Bad input") } guard let opTemp = readLine() else { fatalError("Bad input") } let op = opTemp.isEmpty ? "\0" : opTemp[opTemp.startIndex] let result = calc(a: a, b: b, op: op) fileHandle.write(String(result).data(using: .utf8)!) fileHandle.write("\n".data(using: .utf8)!)
Lab 9: Welcome to Duplicate remover.
Try-it-Out: Remove duplicates.
Solution 9:
import Foundation /* * Complete the 'removeDuplicate' function below. * * The function is expected to return an INTEGER_ARRAY. * The function accepts INTEGER_ARRAY inputArray as parameter. */ func removeDuplicate(inputArray: [Int]) -> [Int] { var res = Array(Set(inputArray)) res.sort(by:<) //Sorting array in ascending Order // print(res) return res } let stdout = ProcessInfo.processInfo.environment["OUTPUT_PATH"]! FileManager.default.createFile(atPath: stdout, contents: nil, attributes: nil) let fileHandle = FileHandle(forWritingAtPath: stdout)! guard let inputArrayCount = Int((readLine()?.trimmingCharacters(in: .whitespacesAndNewlines))!) else { fatalError("Bad input") } var inputArray = [Int]() for _ in 1...inputArrayCount { guard let inputArrayItem = Int((readLine()?.trimmingCharacters(in: .whitespacesAndNewlines))!) else { fatalError("Bad input") } inputArray.append(inputArrayItem) } guard inputArray.count == inputArrayCount else { fatalError("Bad input") } let result = removeDuplicate(inputArray: inputArray) fileHandle.write(result.map{ String($0) }.joined(separator: "\n").data(using: .utf8)!) fileHandle.write("\n".data(using: .utf8)!)
Lab 10: Welcome to Swift- Dictionary : Authentication System.
Try-It-Out: Authentication System.
Solution 10:
import Foundation func authenticate(user: String, pass: String) -> Bool { var numbers = ["admin": "admin123", "user": "someone123", "guest": "guest999", "you": "yourpass", "me": "mypass190"] let ky = Array(numbers.keys) let val = Array(numbers.values) var con: Bool? // var con = true if numbers.keys.contains(user){ if numbers.values.contains(pass){ con = true } else{ con = false } } else{ con = false } return con! } let stdout = ProcessInfo.processInfo.environment["OUTPUT_PATH"]! FileManager.default.createFile(atPath: stdout, contents: nil, attributes: nil) let fileHandle = FileHandle(forWritingAtPath: stdout)! guard let username = readLine() else { fatalError("Bad input") } guard let pass = readLine() else { fatalError("Bad input") } let result = authenticate(user: username, pass: pass) fileHandle.write((result ? "1" : "0").data(using: .utf8)!) fileHandle.write("\n".data(using: .utf8)!)