Dave Braunschweig
Objects
// This class converts temperature between Celsius and Fahrenheit. // It may be used by assigning a value to either Celsius or Fahrenheit // and then retrieving the other value, or by calling the ToCelsius or // ToFahrenheit methods directly. class Temperature { var _celsius:Double = 0 var _fahrenheit:Double = 32 init(celsius:Double?=nil, fahrenheit:Double?=nil) { if celsius != nil { self.celsius = celsius! } if fahrenheit != nil { self.fahrenheit = fahrenheit! } } var celsius: Double { get { return self._celsius } set { self._celsius = newValue self._fahrenheit = toFahrenheit(celsius:self._celsius) } } var fahrenheit: Double { get { return self._fahrenheit } set { self._fahrenheit = newValue self._celsius = toCelsius(fahrenheit:self._fahrenheit) } } func getCelsius() -> Double { return self.celsius } func setCelsius(celsius:Double) { self.celsius = celsius self.fahrenheit = toFahrenheit(celsius:celsius) } func getFahrenheit() -> Double { return self.fahrenheit } func setFahrenheit(fahrenheit:Double) { self.fahrenheit = fahrenheit self.celsius = toCelsius(fahrenheit:fahrenheit) } func toCelsius(fahrenheit:Double) -> Double { return (fahrenheit - 32) * 5 / 9 } func toFahrenheit(celsius:Double) -> Double { return celsius * 9 / 5 + 32 } } // This program creates instances of the Temperature class to convert Celsius // and Fahrenheit temperatures. // // References: // https://www.mathsisfun.com/temperature-conversion.html // https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html func main() { let temp1 = Temperature(celsius:0); print("temp1.celsius = " + String(temp1.celsius)); print("temp1.fahrenheit = " + String(temp1.fahrenheit)); print(""); temp1.celsius = 100; print("temp1.celsius = " + String(temp1.celsius)); print("temp1.fahrenheit = " + String(temp1.fahrenheit)); print(""); let temp2 = Temperature(fahrenheit:0); print("temp2.fahrenheit = " + String(temp2.fahrenheit)); print("temp2.celsius = " + String(temp2.celsius)); print(""); temp2.fahrenheit = 100; print("temp2.fahrenheit = " + String(temp2.fahrenheit)); print("temp2.celsius = " + String(temp2.celsius)); } main()
Output
temp1.celsius = 0.0 temp1.fahrenheit = 32.0 temp1.celsius = 100.0 temp1.fahrenheit = 212.0 temp2.fahrenheit = 0.0 temp2.celsius = -17.7777777777778 temp2.fahrenheit = 100.0 temp2.celsius = 37.7777777777778