01-Swift 基础

01-第一个Swift小程序

// 打印一行文字
println("Hello Swift") // Hello Swift

02-常量与变量

// 常量:一旦设定不允许更改
let maxLoginAttempts = 5

// 变量:设定后仍可根据需要修改
var currentLoginAttempt = 0
currentLoginAttempt = 3

// 在一行定义多个常量,建议常量的名称使用大写字母
let PI = 3.14, SPEEDOFLIGHT = 300_000

// 在一行定义多个变量
var x = 1.0, y = 2.0, z = 3.0

// 指定常量(变量)的类型
let num : Int = 8

// 常量(变量)的名称支持中文
let 最大允许尝试登录次数 = 5

// 打印常量(变量)的值
println(最大允许尝试登录次数) // 5

// 字符串插值
println("最大允许尝试登录次数为\(最大允许尝试登录次数)次") // 最大允许尝试登录次数为5次

03-整数类型

// 整数类型建议使用int类型

// int类型的极值
let minValue = Int.min
let maxValue = Int.max

04-浮点数类型

// 浮点数类型推荐使用double类型

// float类型与double类型的精度比较
let num1 : Float = 0.123456789012345
let num2 : Double = 0.123456789012345

05-类型推断

// 类型推断:根据初值推断类型

// int类型
let num1 = 6

// double类型
let num2 = 3.14

// double类型
let num3 = 3 + 0.14

06-数值型字面量

// 各种进制的表示方法
let 十进制的10 = 10
let 二进制的2 = 0b10
let 八进制的8 = 0o10
let 十六进制的16 = 0x10

// 使用科学计数法时,类型推断为double类型
let 一百万 = 1e6
let 一百万分之一 = 1e-6
let 十六进制的15以2为底的3次方 = 0xFp3

// 数值型字面量的格式化
let 十亿元 = 1_000_000_000
let 五块钱 = 0_000_000_005

07-数值类型转换与类型别名

let num1 = 3
let num2 = 0.14

// double类型与int类型进行运算时,需要将int类型 -> double类型
let PI = Double(num1) + num2

// double类型 -> int类型:直接截取整数部分
let PI整数部分 = Int(PI)

// 类型别名
typealias 整数类型 = Int
let maxValue : 整数类型 = 整数类型.max

08-布尔类型

// 布尔类型只有两种取值:true与false
let 橘子是橙色的 = true
let 萝卜好吃 = false

if (萝卜好吃) {
    println("萝卜好吃")
} else {
    println("萝卜不好吃") // 萝卜不好吃
}

// 在C语言中,任何非0的数都可以代表true,0代表false,但在Swift语言中不允许这样表示
let num = 2

if (num == 2) {
    println("num等于2") // num等于2
} else {
    println("num不等于2")
}

09-元组类型

// 元组类型:临时将几种类型组合到一起,并不建议长久使用
let 衬衫 = (价格 : 70, 颜色 : "黑色", 合身 :true)

if (衬衫.合身) {
    println("\(衬衫.颜色)的衬衫很合身,价格为\(衬衫.价格)元") // 黑色的衬衫很合身,价格为70元
} else {
    println("衬衫不合身")
}

10-Optional类型的拆包与绑定

let 彩票 = "5000000"

// Optional类型
let 中奖金额 = 彩票.toInt()

// 拆包:访问Optional类型的值,如果Optional类型的值为nil会出错,所以必须进行判断
if (中奖金额 != nil) {
    println("恭喜你,中奖\(中奖金额!)元") // 恭喜你,中奖5000000元
} else {
    println("没中奖")
}

// 绑定:在拆包时将值保存
if var 临时金额 = 中奖金额 {
    var 税后金额 = Double(临时金额) * 0.8
    println("恭喜你,中奖\(中奖金额!)元, 税后\(税后金额)元") // 恭喜你,中奖5000000元,税后4000000元
} else {
    println("没中奖")
}

11-Optional类型的间接拆包

let 彩票 : String? = "5"
println("恭喜你,中奖\(彩票!)元") // 恭喜你,中奖5元

// 间接拆包:当Optional类型一定有值时可以使用间接拆包
let 百分百中奖彩票 : String! = "5"
println("恭喜你,中奖\(百分百中奖彩票)元") // 恭喜你,中奖5元

if let 临时金额 = 百分百中奖彩票 {
    println("恭喜你,中奖\(临时金额)元") // 恭喜你,中奖5元
} else {
    println("没中奖")
}

12-断言

// 断言:只有达到底线条件程序才能运行,用于调试
var 年龄 = 19
assert(年龄 > 18, "必须年满18岁才能使用该程序")


内容概要:本文详细介绍了一种基于节点不连续伽辽金方法(Discontinuous Galerkin Method)在求解线性和非线性平流方程中的一维数值实现方案,并提供了完整的MATLAB代码实现。该方法在处理偏微分方程特别是具有间断解或高梯度特征的问题时展现出优异的稳定性和精度。文中系统阐述了算法的核心原理、空间离散化策略、时间推进机制以及边界条件的处理方式,通过具体编程实例展示如何在MATLAB环境中实现该数值方法,并辅以典型算例验证其有效性和可靠性。此外,文章还强调科研工作中“借力”与创新思维的重要性,鼓励研究者在夯实理论基础的同时勇于探索新思路。; 适合人群:具备偏微分方程数值解法基础知识、熟悉MATLAB编程,从事计算数学、流体力学、物理建模及相关领域的研究生、科研人员及工程技术开发者。; 使用场景及目标:① 学习并掌握节点不连续伽辽金方法的基本理论与实现流程;② 利用所提供的MATLAB代码开展线性和非线性平流方程的数值模拟实验;③ 将该方法作为基础算法应用于高分辨率数值模拟、守恒律方程求解等科研项目中的扩展与改进; 阅读建议:建议读者结合经典数值分析教材深入理解DG方法的数学背景,逐段调试并运行所附MATLAB代码,通过调整初始条件、网格划分和时间步长等方式观察算法表现,从而深化对数值稳定性与计算精度之间平衡关系的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值