Swift实现复数计算器

 更新时间:2022年01月27日 09:53:06   作者:正在爬的程序猿  
这篇文章主要为大家详细介绍了Swift实现复数计算器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

本文实例为大家分享了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?##?

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

相关文章

  • SwiftUI 中创建反弹动画的实现

    SwiftUI 中创建反弹动画的实现

    这篇文章主要介绍了SwiftUI 中创建反弹动画的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • Swift读取App的版本信息与PCH文件详解

    Swift读取App的版本信息与PCH文件详解

    这篇文章主要介绍了Swift读取App的版本信息与PCH文件的相关资料,文中通过图文介绍的非常详细,对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-03-03
  • Swift Extension扩展得使用详细介绍

    Swift Extension扩展得使用详细介绍

    在swift中,extension与Objective-C的category有点类似,但是extension比起category来说更加强大和灵活,它不仅可以扩展某种类型或结构体的方法,同时它还可以与protocol等结合使用,编写出更加灵活和强大的代码
    2022-09-09
  • Swift实现表格视图单元格单选(1)

    Swift实现表格视图单元格单选(1)

    这篇文章主要为大家详细介绍了Swift实现表格视图单元格单选,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • 深入理解Swift中的变量与常量

    深入理解Swift中的变量与常量

    本文主要是介绍Swift中最常用的常量和变量,将从“变量常量的定义”、"如何声明变量常量"、“变量和常量的命名”,"变量常量的本质区别"四个方面入手,重点介绍变量和常量的使用以及区别,希望大家在阅读完本文后都可以熟练使用它们。有需要的朋友们下面来一起学习吧。
    2017-01-01
  • Swift进阶教程Mirror反射示例详解

    Swift进阶教程Mirror反射示例详解

    这篇文章主要为大家介绍了Swift进阶教程Mirror反射示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • Swift UIButton使用教程

    Swift UIButton使用教程

    这篇文章主要介绍了Swift UIButton的使用方法,帮助大家更好的理解和学习swift编程,感兴趣的朋友可以了解下
    2020-09-09
  • Swift3迁移至Swift4可能遇到的问题小结

    Swift3迁移至Swift4可能遇到的问题小结

    每当看到新的编程语言我总是会有相当大的兴趣,所以下面这篇文章主要给大家介绍了关于Swift3迁移至Swift4可能遇到的问题,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起学习学习吧
    2018-06-06
  • swift中defer几个简单的使用场景详解

    swift中defer几个简单的使用场景详解

    在Swift 2.0中,Apple提供了defer关键字,让我们可以实现同样的效果,这篇文章主要介绍了关于swift中defer几个简单的使用场景的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用defer具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧。
    2018-03-03
  • 浅谈swift 4.0中private所发生的变化

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

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

最新评论

?


http://www.vxiaotou.com