服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Swift - Swift实现复数计算器

Swift实现复数计算器

2022-07-27 10:12正在爬的程序猿 Swift

这篇文章主要为大家详细介绍了Swift实现复数计算器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了Swift实现复数计算器的具体代码,供大家参考,具体内容如下

Swift使用笛卡尔和极坐标进行转换的复数计算器

  1. import Foundation 
  2. struct Complex{ 
  3.     //实部real 
  4.     public var real : Double = 0 
  5.     //虚部img 
  6.     public var img : Double = 0 
  7.     public var polar :(mod:Double,arg:Double) = (0,0) 
  8.     public var Cartesian :(real:Double,img:Double) = (0,0) 
  9.     public var FirstPolar :(mod:Double,arg:Double) = (0,0) 
  10.     init(PolarNumber:(mod:Double,arg:Double)) { 
  11.         FirstPolar = PolarNumber 
  12.         ChangePolar = PolarNumber as (Double,Double) 
  13.     //  print(judgment(parameter: ChangePolar)) 
  14.          
  15.     } 
  16.     //笛卡尔转极坐标 
  17.     public var ChangeCartesian :(mod:Double,arg:Double){ 
  18.         get{ 
  19.             return polar 
  20.         } 
  21.         set(CartesianNum){ 
  22.             polar.mod = sqrt((CartesianNum.mod * CartesianNum.mod)+(CartesianNum.arg * CartesianNum.arg)) 
  23.             polar.arg = atan2(CartesianNum.arg, CartesianNum.mod) 
  24.         } 
  25.     } 
  26.     //极坐标转笛卡尔 
  27.     public var ChangePolar : (real:Double,img:Double){ 
  28.         get{ 
  29.             return Cartesian 
  30.         } 
  31.         set(PolarNum){ 
  32.             Cartesian.real = PolarNum.real * cos(PolarNum.img) 
  33.             Cartesian.img = PolarNum.real * sin(PolarNum.img) 
  34.         } 
  35.     } 
  36.     //判断 
  37.     public func judgment(parameter:(real:Double,img:Double))->String { 
  38.          
  39.             if parameter.img > 0 { 
  40.                 return "\(Double(round(parameter.real * 1000)/1000))+\(Double(round(parameter.img * 1000)/1000))i" 
  41.             } else if parameter.img < 0 { 
  42.                 return "\(Double(round(parameter.real * 1000)/1000))-\(-(Double(round(parameter.img * 1000)/1000)))i" 
  43.                } else { 
  44.                 return "\(Double(round(parameter.img * 1000)/1000))" 
  45.                } 
  46.            } 
  47.     //计算前进行格式转换 
  48.     public mutating func ChangeAdd(AddNum:(mod:Double,arg:Double)){ 
  49.         ChangePolar = FirstPolar as (Double,Double) 
  50.         //初始值通过set进行了转换 
  51.         let x = ChangePolar 
  52.         //用x进行一个存储 
  53.         ChangePolar = AddNum as (Double,Double) 
  54.         let y = ChangePolar 
  55.         Add(x: x, y: y) 
  56.         //调用Add方法,进行运算 
  57.     } 
  58.     public mutating func ChangeSubtract(SubNum:(mod:Double,arg:Double)){ 
  59.         ChangePolar = FirstPolar as (Double,Double) 
  60.         let x = ChangePolar 
  61.         ChangePolar = SubNum as (Double,Double) 
  62.         let y = ChangePolar 
  63.         Subtract(x: x, y: y) 
  64.     } 
  65.     public mutating func ChangeMultiply(MulNum:(mod:Double,arg:Double)){ 
  66.         ChangePolar = FirstPolar as (Double,Double) 
  67.         let x = ChangePolar 
  68.         ChangePolar = MulNum as (Double,Double) 
  69.         let y = ChangePolar 
  70.         Multiply(x: x, y: y) 
  71.     } 
  72.     public mutating func ChangeDiv(DivNum:(mod:Double,arg:Double)){ 
  73.         Divide(x: FirstPolar, y: DivNum) 
  74.     } 
  75.      
  76.     //加减乘除方法 
  77.     public func Add(x:(real:Double,img:Double),y:(real:Double,img:Double)){ 
  78.         let answer = (x.real + y.real,x.img + y.img) 
  79.         print(judgment(parameter: answer)) 
  80.     } 
  81.     public func Subtract(x:(real:Double,img:Double),y:(real:Double,img:Double)){ 
  82.         let answer = (x.real - y.real,x.img - y.img) 
  83.         print(judgment(parameter: answer)) 
  84.     } 
  85.     public func Multiply(x:(real:Double,img:Double),y:(real:Double,img:Double)){ 
  86.         let answer = (x.real * y.real - x.img * y.img,x.real * y.real + x.img * y.img) 
  87.         print(judgment(parameter: answer)) 
  88.     } 
  89.     public mutating func Divide(x:(mod:Double,arg:Double),y:(mod:Double,arg:Double)){ 
  90.         let answer = ((x.mod / y.mod),(x.arg - y.arg)) 
  91. //       ChangePolar = answer 
  92.         print(judgment(parameter: answer)) 
  93.     } 
  94.    } 

以及对应的测试

  1. var test = Complex(PolarNumber: (mod: 10.63, arg: 0.852))//7,8 
  2. //加法 
  3. test.ChangeAdd(AddNum: (mod: 2.2361, arg: 1.107))//8.0+10.0i 
  4. //减法 
  5. test.ChangeSubtract(SubNum:(mod: 2.2361, arg: 1.107))//5.999+6.0i 
  6. //乘法 
  7. test.ChangeMultiply(MulNum: (mod: 2.2361, arg: 1.107))//-8.997+23.001i 
  8. //除法 
  9. test.ChangeDiv(DivNum:(mod: 2.2361, arg: 1.107))//4.754-0.255i##  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/papay_Ida/article/details/109282365

延伸 · 阅读

精彩推荐
  • SwiftSwift使用CollectionView实现广告栏滑动效果

    Swift使用CollectionView实现广告栏滑动效果

    这篇文章主要为大家详细介绍了Swift使用CollectionView实现广告栏滑动效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    Stevin的技术博客11682021-01-13
  • SwiftSwift代码自定义UIView实现示例

    Swift代码自定义UIView实现示例

    这篇文章主要为大家介绍了Swift如何自定义UIView的实现示例代码,有需要的朋友可以借鉴参考下,希望能够有所帮助祝大家多多进步,早日升职加薪...

    Foreveroriginal12052021-12-24
  • Swift深入解析Swift代理模式

    深入解析Swift代理模式

    委托(代理)是一种设计模式,它允许类或结构体将一些需要它们负责的功能交由(委托)给其他的类型。下面这篇文章主要介绍了Swift代理模式的相关资料,...

    BY6592021-01-03
  • SwiftSwift 访问权限的资料整理

    Swift 访问权限的资料整理

    这篇文章主要介绍了Swift 访问权限的资料整理的相关资料,希望通过本文大家能掌握这部分内容,需要的朋友可以参考下...

    水桶前辈8842021-03-29
  • SwiftSwift 使用 Observe 监测页面滚动的实现方法

    Swift 使用 Observe 监测页面滚动的实现方法

    这篇文章主要介绍了Swift 使用 Observe 监测页面滚动的实现方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值...

    jackpu8522021-01-15
  • SwiftSwift编程中的初始化与反初始化完全讲解

    Swift编程中的初始化与反初始化完全讲解

    这篇文章主要介绍了Swift编程中的初始化与反初始化完全讲解,是Swift入门学习中的基础知识,需要的朋友可以参考下...

    Swift教程网4592020-12-23
  • Swiftswift 可选型的使用详解

    swift 可选型的使用详解

    可选性是Swift提供的一个特殊类型,它为我们编写程序提供便利的条件。这篇文章主要介绍了swift 可选型的使用详解,非常不错具有参考借鉴价值,需要的朋...

    追到梦的魔术师8912020-12-30
  • Swiftswift 单例的实现方法及实例

    swift 单例的实现方法及实例

    这篇文章主要介绍了swift 单例的实现方法及实例的相关资料,需要的朋友可以参考下...

    u0129038984582021-03-24