第3章 M文件设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
theta=30*pi/180;fai=104*pi/180; x1=R*cos(theta)*cos(fai); y1=R*cos(theta)*sin(fai); z1=R*sin(theta); p1=[x1,y1,z1]; theta=40*pi/180;fai=116*pi/180; x2=R*cos(theta)*cos(fai); y2=R*cos(theta)*sin(fai); z2=R*sin(theta); p2=[x2,y2,z2]; d=R*acos(p1*p2'/(R*R))
5.修改“例6 用试商法判断素数”的程序,产生 修改“ 用试商法判断素数”的程序,产生100
以内的全部素数。 以内的全部素数。
6.用help命令获取primes的使用方法,用求素数函 的使用方法, 产生100以内的全部素数。 以内的全部素数。 数primes()产生 以内的全部素数
第3章 M文件设计 I 章 文件设计
命令文件(程序文件) 命令文件(程序文件) 表达式和运算符 程序设计中的流程控制 练习与思考题
————命令文件————
计算机程序主要功能——接收数据和处理数据 并将 接收数据和处理数据,并将 计算机程序主要功能 接收数据和处理数据 处理后的数据完整有效地提供给用户 成都:北纬 北纬30 东经 东经104 o,北京 北纬 o,东经 o 北京:北纬 东经116 例1 成都 北纬 o,东经 北京 北纬40 东经 计算两城市的距离 R=6400; 在编辑窗口编写文 编辑窗口编写文 件distance.m 命令窗口键入 在命令窗口键入 distance 结果显示: 结果显示 d = 1.5634e+003
n=input(‘input n=’); while n~=1 r=rem(n,2); if r = =0 n=n/2 else n=3*n+1 end end n=5
%输入数据 输入数据 %求n/2的余数 求 %第一种操作 第一种操作 %第二种操作 第二种操作
16, 8, 4, 2, 1
11/16
14/16
————程序设计中的流程控制————
调整程序, 调整程序,使输入数据能完整有效地提供给用户 画圆为方问题。求作一正方形,使其面积等于单 例8. 画圆为方问题 。求作一正方形 使其面积等于单 位圆的面积.对边长取不同位数 显示计算结果误差。 对边长取不同位数,显示计算结果误差 位圆的面积 对边长取不同位数 显示计算结果误差。 L=sqrt(pi);D=1; 1.70000000 -2.51e-001 for k=1:8 1.77000000 -8.69e-003 D=D*10; 1.77200000 -1.60e-003 a=fix(L*D)/D; 1.77240000 -1.90e-004 S(k)=a*a;d(k)=a; 1.77245000 -1.36e-005 end 1.77245300 -3.01e-006 format long e 1.77245380 -1.80e-007 [d',S'-pi] 1.77245385 -3.20e-009
15/16
练习与思考题
1.叙述古希腊三大难题之一的倍立方体问题 并用实验 叙述古希腊三大难题之一的倍立方体问题,并用实验
数据显示误差。 数据显示误差。
2. 用Switch / case 语句重新设计生肖问题程序。 语句重新设计生肖问题程序。
3.用一句话说明循环控制语句的特点。 用一句话说明循环控制语句的特点。 用一句话说明循环控制语句的特点 4.说明 循环 说明for循环 循环语句的相同和不同之处。 说明 循环while循环语句的相同和不同之处。 循环语句的相同和不同之处
f(44)=701408733
9/16
————程序设计中的循环控制————
2. while循环
将循环体中语句循环执行直到条件不成立为止。 将循环体中语句循环执行直到条件不成立为止。 语法: 语法: while 条件表达式 可执行语句 end
条件表达式一般由变量、数字、逻辑运算、关系运 条件表达式一般由变量、数字、逻辑运算、 算符和一般运算符组成, 算符和一般运算符组成,以判断循环的进行和停止; 只要表达式的值(逻辑值)结果为正确(非0),循环继 , 直到表达式值为0,循环停止。 续;直到表达式值为 ,循环停止。
3.逻辑运算符 逻辑运算符 & 与 | 或 ~ 非
(and) (or) (not)
5/16
运算优先级
①函数运算 exp()、log()、sin()、abs()、fix()、 、 、 、 、 、 ②算术运算 .^、^、.*、./、*、/、+、–、; 、 、 、 、 、 、 、 、; ③关系运算 <、<=、>、>=、==、~= 、 、 、 、 、 ④逻辑运算 &、| 、 (1+fix(pi))*mod(2,4)+2*3^2结果为 结果为ans=26; 表达式 (1+fix(pi))*mod(2,4)+2*3^2结果为ans=26; 三角形任意两边之和大于第三边的逻辑表达式 (A) a+b>=c | a+c>=b | b+c>=a (B) a+b<=c | a+c<=b | b+c<=a (C) a+b>c | a+c>b | b+c>a (D) a+b>c & a+c>b & b+c>a
7/16
————程序设计中的流程控制————
2. Switch / case 语句 例3 生肖问题修改 程序运行: n=input('input n='); input n=2007 switch mod(n,12) 2007 不是 的倍数 不是12的倍数 case 0 fprintf(‘%d 是12的倍数',n) otherwise fprintf(‘%d 不是12的倍数',n) end
3/16
————表达式和运算符 表达式和运算符———— 表达式和运算符
用赋值语句创建变量 用赋值语句创建变量 变量名=数据 变量名 数据
变量名=表达式 变量名 表达式
表达式——由变量、运算符、函数、数字组成 由变量、运算符、函数、 表达式 由变量 R=6400; %将数据赋值给变量名 将数据赋值给变量名 theta=30*pi/180; fai=104*pi/180; x1=R*cos(theta)*cos(fai); y1=R*cos(theta)*sin(fai); z1=R*sin(theta); p1=[x1,y1,z1];
6/16
————程序设计中的流程控制————
条件控制; 循环控制; 错误控制;终止运行控制 条件控制 循环控制 错误控制 终止运行控制 条件控制——有选择地运行程序块 有选择地运行程序块 条件控制 year=input('input year:='); 1. if / elseif 语句 n1=year/4; 例2 判润年程序 n2=year/100; n3=year/400; 润年条件有二 if n1==fix(n1)&n2~=fix(n2) 能被4整除 整除, ①能被 整除,但 disp('是润年 是润年') 是润年 elseif n1==fix(n1)&n3==fix(n3) 不能被100整除; 不能被 整除; 整除 disp('是润年 是润年') 是润年 能被4整除 整除, ②能被 整除,又 else 能被400整除。 整除。 能被 整除 disp('不是润年 不是润年') 不是润年 end
————程序设计中的流程控制————
3. continue 命令
循环语句中,与 通常用于 for 或 while 循环语句中 与 if 语句一起使 跳过本次循环,去执行下一轮循环 用,跳过本次循环 去执行下一轮循环 跳过本次循环 4. break命令 命令 通常用于for或 循环语句中,与 语句一起使用 语句一起使用,中 通常用于 或while循环语句中 与if语句一起使用 中 循环语句中 止本次循环,跳出最内层循环 止本次循环 跳出最内层循环 If 条件表达式,break, end 条件表达式, 5. error(‘message’) 显示文本 message,并中断程序执行 , If 条件表达式 error(‘message’), end 条件表达式,
8/16
————程序设计中的循环控制————
1. for 循环 语法: 初值:步长: 语法: for 变量 =初值:步长:终值
可执行语句
end
例4. 计算裴波拉奇数列 n=input('input n:='); f(1)=1;f(2)=1; for k=3:n f(k)=f(k-1)+f(k-2); end f(n)
4/16
————表达式和运算符 表达式和运算符———— 表达式和运算符
1 .算术运算符 算术运算符
+ * / \ ^ 加 乘 右除 左除 矩阵幂 减 .* 点乘 ./ 点右除 .\ 点左除 .^ 点幂
2.关系运算符 关系运算符
< > == 小于 大于 等于 不等于 <= 小于等于 >= 大于等于 ~=
10/16
————程序设计中的流程控制————
例5 3n + 1 问题. 对任一自然数n,按如下法则进行运算:若 为偶数 为偶数, 对任一自然数 ,按如下法则进行运算 若n为偶数 则将n除 若 为奇数 则将n乘 加 。 为奇数, 则将 除2;若n为奇数,则将 乘3加1。将运算结果按 上面法则继续运算, 重复若干次后结果最终是1. 上面法则继续运算 重复若干次后结果最终是
12/16
பைடு நூலகம்
————程序设计中的流程控制————
只能被1和它自身整除 和它自身整除, 如果一个正整数 n 只能被 和它自身整除,则称这个 数为素数(或质数 例如: 、 、 、 、 、 或质数)。 数为素数 或质数 。例如:2、3、5、7、11、 例6 用试商法判素数 n=input('input n:='); for k=2:n-1 if mod(n,k)==0,break,end end if k <n-1 disp('不是素数 不是素数') 不是素数 else disp('是素数 是素数') 是素数 end
%条件满足则中止循环
13/16
例7.海伦公式 海伦公式
S=
p( p a )( p b)( p c )
其中, 其中, 分别为三条边长。 其中,p = (a + b + c)/2,其中,a,b,c分别为三条边长。 其中 分别为三条边长 if a+b<c | a+c<b | b+c<a error('输入错误 三角形两边之和大于第三边 输入错误,三角形两边之和大于第三边 输入错误 三角形两边之和大于第三边') end >> hero input a:=3 input b:=4 input c:=8 ??? Error using ==> hero 输入错误, 输入错误,三角形两边之和大于第三边
2/16
M文件分为命令文件和函数文件两种 文件分为命令文件和函数文件两种 文件分为命令文件 命令文件——MATLAB命令的有序集合。 命令的有序集合。 命令文件 命令的有序集合 文件执行——对文件中命令进行批处理,即从第一 对文件中命令进行批处理, 文件执行 对文件中命令进行批处理 条命令开始按顺序执行,直到最后一条命令。如果 条命令开始按顺序执行,直到最后一条命令。 中间某条命令出错, 中间某条命令出错,则中断并输出错误信息 ①在编辑窗口中编写; 在编辑窗口中编写 保存并对文件命名; ②保存并对文件命名; ③命令窗口键入文件 名运行; 名运行; 观察运行结果; ④观察运行结果;
相关文档
最新文档