Swift实现复数计算器

 更新时间:2022年01月27日 09:53:06   作者:正在爬的程序猿  
这篇文章主要为大家详细介绍了Swift实现复数计算器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

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

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

import Foundation
struct Complex{
    //实部real
    public var real : Double = 0
    //虚部img
    public var img : Double = 0
    public var polar :(mod:Double,arg:Double) = (0,0)
    public var Cartesian :(real:Double,img:Double) = (0,0)
    public var FirstPolar :(mod:Double,arg:Double) = (0,0)
    init(PolarNumber:(mod:Double,arg:Double)) {
        FirstPolar = PolarNumber
        ChangePolar = PolarNumber as (Double,Double)
    //  print(judgment(parameter: ChangePolar))
        
    }
    //笛卡尔转极坐标
    public var ChangeCartesian :(mod:Double,arg:Double){
        get{
            return polar
        }
        set(CartesianNum){
            polar.mod = sqrt((CartesianNum.mod * CartesianNum.mod)+(CartesianNum.arg * CartesianNum.arg))
            polar.arg = atan2(CartesianNum.arg, CartesianNum.mod)
        }
    }
    //极坐标转笛卡尔
    public var ChangePolar : (real:Double,img:Double){
        get{
            return Cartesian
        }
        set(PolarNum){
            Cartesian.real = PolarNum.real * cos(PolarNum.img)
            Cartesian.img = PolarNum.real * sin(PolarNum.img)
        }
    }
    //判断
    public func judgment(parameter:(real:Double,img:Double))->String {
        
            if parameter.img > 0 {
                return "\(Double(round(parameter.real * 1000)/1000))+\(Double(round(parameter.img * 1000)/1000))𝒊"
            } else if parameter.img < 0 {
                return "\(Double(round(parameter.real * 1000)/1000))-\(-(Double(round(parameter.img * 1000)/1000)))𝒊"
               } else {
                return "\(Double(round(parameter.img * 1000)/1000))"
               }
           }
    //计算前进行格式转换
    public mutating func ChangeAdd(AddNum:(mod:Double,arg:Double)){
        ChangePolar = FirstPolar as (Double,Double)
        //初始值通过set进行了转换
        let x = ChangePolar
        //用x进行一个存储
        ChangePolar = AddNum as (Double,Double)
        let y = ChangePolar
        Add(x: x, y: y)
        //调用Add方法,进行运算
    }
    public mutating func ChangeSubtract(SubNum:(mod:Double,arg:Double)){
        ChangePolar = FirstPolar as (Double,Double)
        let x = ChangePolar
        ChangePolar = SubNum as (Double,Double)
        let y = ChangePolar
        Subtract(x: x, y: y)
    }
    public mutating func ChangeMultiply(MulNum:(mod:Double,arg:Double)){
        ChangePolar = FirstPolar as (Double,Double)
        let x = ChangePolar
        ChangePolar = MulNum as (Double,Double)
        let y = ChangePolar
        Multiply(x: x, y: y)
    }
    public mutating func ChangeDiv(DivNum:(mod:Double,arg:Double)){
        Divide(x: FirstPolar, y: DivNum)
    }
    
    //加减乘除方法
    public func Add(x:(real:Double,img:Double),y:(real:Double,img:Double)){
        let answer = (x.real + y.real,x.img + y.img)
        print(judgment(parameter: answer))
    }
    public func Subtract(x:(real:Double,img:Double),y:(real:Double,img:Double)){
        let answer = (x.real - y.real,x.img - y.img)
        print(judgment(parameter: answer))
    }
    public func Multiply(x:(real:Double,img:Double),y:(real:Double,img:Double)){
        let answer = (x.real * y.real - x.img * y.img,x.real * y.real + x.img * y.img)
        print(judgment(parameter: answer))
    }
    public mutating func Divide(x:(mod:Double,arg:Double),y:(mod:Double,arg:Double)){
        let answer = ((x.mod / y.mod),(x.arg - y.arg))
//       ChangePolar = answer
        print(judgment(parameter: answer))
    }
   }

以及对应的测试

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

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

相关文章

  • Swift实现多个TableView侧滑与切换效果

    Swift实现多个TableView侧滑与切换效果

    这篇文章主要为大家详细介绍了Swift实现多个TableView侧滑与切换效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • 使用Swift实现iOScollectionView广告无限滚动效果(DEMO)

    使用Swift实现iOScollectionView广告无限滚动效果(DEMO)

    本文给大家分享使用Swift实现iOScollectionView广告无限滚动效果(DEMO),非常不错,具有一定的参考借鉴价值,感兴趣的朋友一起看看吧
    2016-11-11
  • 浅谈swift 4.0中private所发生的变化

    浅谈swift 4.0中private所发生的变化

    Swift 4是苹果计划于2017年秋季推出的最新版本,其主要重点是提供与Swift 3代码的源兼容性,并努力实现ABI稳定性。下面这篇文章主要给大家介绍了关于swift 4.0中private所发生的一些变化,需要的朋友可以参考下。
    2017-12-12
  • Swift中常量和变量的区别与声明详解

    Swift中常量和变量的区别与声明详解

    Swift语言同样和Java和OC等语言一样是同样是需要声明常量和变量的,下面就让我们来学习一下Swift的常量和变量。这篇文章主要给大家介绍了关于Swift中常量和变量的区别与声明的相关资料,需要的朋友可以参考下。
    2017-11-11
  • Swift 基本数据类型详解总结

    Swift 基本数据类型详解总结

    在我们使用任何程序语言编程时,需要使用各种数据类型来存储不同的信息。变量的数据类型决定了如何将代表这些值的位存储到计算机的内存中。在声明变量时也可指定它的数据类型。所有变量都具有数据类型,以决定能够存储哪种数据
    2021-11-11
  • SwiftUI中TabView组件的常规使用

    SwiftUI中TabView组件的常规使用

    这篇文章主要给大家介绍了关于SwiftUI中TabView组件的常规使用,文中通过实例代码介绍的非常详细,对大家学习或者使用SwiftUI具有一定的参考学习价值,需要的朋友可以参考下
    2022-06-06
  • swift cell自定义左滑手势处理方法

    swift cell自定义左滑手势处理方法

    这篇文章主要介绍了swift cell自定义左滑手势处理,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • Swift4.1转场动画实现侧滑抽屉效果

    Swift4.1转场动画实现侧滑抽屉效果

    这篇文章主要为大家详细介绍了Swift4.1转场动画实现侧滑抽屉效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • 深入解析Swift编程中的构造方法

    深入解析Swift编程中的构造方法

    先进的Swfit语言同样具有构造方法,构造方法在对象被创建后会首先被调用,这里我们就来深入解析Swift编程中的构造方法:
    2016-07-07
  • Swift图像处理之优化照片

    Swift图像处理之优化照片

    Core Image能通过分析图片的各个属性,人脸的区域等进行自动优化图片。我们只需要调用autoAdjustmentFiltersWithOptions这个API方法获取各个自动增强滤镜来优化图片即可。不管是人物照片还是风景照均可增强效果
    2015-11-11

最新评论