Swift實(shí)現(xiàn)復(fù)數(shù)計(jì)算器
本文實(shí)例為大家分享了Swift實(shí)現(xiàn)復(fù)數(shù)計(jì)算器的具體代碼,供大家參考,具體內(nèi)容如下
Swift使用笛卡爾和極坐標(biāo)進(jìn)行轉(zhuǎn)換的復(fù)數(shù)計(jì)算器
import Foundation
struct Complex{
? ? //實(shí)部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))
? ? ? ??
? ? }
? ? //笛卡爾轉(zhuǎn)極坐標(biāo)
? ? 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)
? ? ? ? }
? ? }
? ? //極坐標(biāo)轉(zhuǎn)笛卡爾
? ? 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))"
? ? ? ? ? ? ? ?}
? ? ? ? ? ?}
? ? //計(jì)算前進(jìn)行格式轉(zhuǎn)換
? ? public mutating func ChangeAdd(AddNum:(mod:Double,arg:Double)){
? ? ? ? ChangePolar = FirstPolar as (Double,Double)
? ? ? ? //初始值通過(guò)set進(jìn)行了轉(zhuǎn)換
? ? ? ? let x = ChangePolar
? ? ? ? //用x進(jìn)行一個(gè)存儲(chǔ)
? ? ? ? ChangePolar = AddNum as (Double,Double)
? ? ? ? let y = ChangePolar
? ? ? ? Add(x: x, y: y)
? ? ? ? //調(diào)用Add方法,進(jìn)行運(yùn)算
? ? }
? ? 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))
? ? }
? ?}以及對(duì)應(yīng)的測(cè)試
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??##?
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Swift語(yǔ)言中字符串相關(guān)的基本概念解析
這篇文章主要介紹了Swift語(yǔ)言中字符串相關(guān)的基本概念解析,是Swift入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-11-11
Swift map和filter函數(shù)原型基礎(chǔ)示例
這篇文章主要為大家介紹了Swift map和filter函數(shù)原型基礎(chǔ)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
Swift簡(jiǎn)單快速的動(dòng)態(tài)更換app圖標(biāo)AppIcon方法示例
這篇文章主要為大家介紹了Swift動(dòng)態(tài)更換app圖標(biāo)AppIcon的簡(jiǎn)單快速方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06
swift 3.0 實(shí)現(xiàn)短信驗(yàn)證碼倒計(jì)時(shí)功能
這篇文章主要介紹了swift 3.0 實(shí)現(xiàn)短信驗(yàn)證碼倒計(jì)時(shí)功能的相關(guān)資料,需要的朋友可以參考下2017-02-02
swift3.0鍵盤(pán)彈起遮擋輸入框問(wèn)題的解決方案
這篇文章主要介紹了swift3.0鍵盤(pán)彈起遮擋輸入框問(wèn)題的解決方案,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-11-11

