Presentation is loading. Please wait.

Presentation is loading. Please wait.

第二单元 第2课 Matlab程序控制结构 1.顺序结构 2.选择结构 3.循环结构.

Similar presentations


Presentation on theme: "第二单元 第2课 Matlab程序控制结构 1.顺序结构 2.选择结构 3.循环结构."— Presentation transcript:

1 第二单元 第2课 Matlab程序控制结构 1.顺序结构 2.选择结构 3.循环结构

2 1.顺序结构 顺序结构是指按照程序中语句的排列顺序依次执行,直到程序的最后一个语句。 例5.1 求一元二次方程 的根。
例5.1  求一元二次方程 的根。 由于Matlab能进行复数运算,所以不需要判断方程的判别式,可直接根据求根公式求根。 程序如下: a = input('a=?'); b = input('b=?'); c = input('c=?'); d = b*b-4*a*c; x = [(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)]; disp(['x1=',num2str(x(1)),',x2=',num2str(x(2))]); 程序输出为: a=?4 b=?78 c=?54 x1= ,x2=

3 2.选择结构 选择结构是根据给定的条件成立或不成立,分别执行不同的语句。
Matlab用于实现选择结构的语句有if语句,switch语句和try语句。 (1). if语句   在Matlab中,if语句有3种格式。 (1.1)单分支if语句 语句格式: if 条件    语句组 end 例5.2 :当x是整数矩阵时,输出x的值 if fix(x)==x     disp(x);

4 (1.2)双分支if语句 语句格式: if 条件    语句组 1 else    语句组 2 end 当条件成立时,执行语句组1,否则执行语句组2,然后再执行if语句的后续语句。

5 例5.3 计算分段函数: 程序如下: x = input(‘请输入x的值:'); if x == 10    y = cos(x+1)+sqrt(x*x+1); else    y = x*sqrt(x+sqrt(x)); end y 也可以用单分支if语句来实现: x =input('请输入x的值: '); y =cos(x+1)+sqrt(x*x+1); ifx~=10     y = x*sqrt(x+sqrt(x));

6 (1.3)多分支if语句 语句格式: if 条件1    语句组 1 elseif 条件2    语句组 2 elseif 条件m    语句组 m else    语句组n end

7 例5.4大小写字母的置换  输入一个字符,若为大写字母,则输出其对应的小写字母;若为小写字 母,则输出其对应的大写字母;若为数字字符则输出其对应的数值,若为其他字符则原样输出。程序如下: c = input(‘请输入一个字符’,‘s’); if c >=‘A’ & c<=‘Z’    disp(setstr(abs(c) + abs(‘a’)-abs(‘A’))); elseif c>=‘a’ & c<=‘z’    disp(setstr(abs(c)- abs(‘a’) + abs(‘A’))); elseif c>=‘0’ & c<=‘9’    disp(abs(c)-abs(‘0’)); else    disp(c); end

8 (2) switch语句 switch语句根据表达式的取值不同,分别执行不同的语句,其语句格式: switch 表达式 case 表达式1         语句组1 case 表达式2         语句组2 case 表达式m         语句组m otherwise          语句组 n end

9 例5.5 某商场对顾客所购买的商品实行打折销售,标准如下:
price<200                  没有折扣 200<=price<500        3%折扣 500<=price<1000      5%折扣 1000<=price<2500    8%折扣 2500<=price<5000    10%折扣 5000<=price              14%折扣 输入所售商品的价格,求其实际销售价格。请编程实现。

10 程序如下: price= input(‘请输入商品价格’); switchfix(price/100)     case{0,1}                       %价格小于200         rate = 0;     case{2,3,4}         rate = 3/100;             %价格大于等于200但小于500     case num2cell(5:9)       %num2cell函数是将数值矩                                        %阵转化为单元矩阵。         rate = 5/100;              %价格大于等于500但小于1000      case num2cell(10:24)         rate = 8/100;              %价格大于等于1000但小于 2500      case num2cell(25:49)         rate = 10/100;            %价格大于等于2500但小于 5000

11     otherwise          rate = 14/100;           %价格大于等于5000    end    price= price*(1-rate)       %输出商品实际销售价格 (3)try语句    try语句是一种试探性执行语句,其语句格式为:     try         语句组1    catch         语句组2    end   try语句先试探性执行语句组1,如果在执行过程中出现错误,则将     错误信息赋给保留的lasterr变量,并转去执行语句组2.

12 例5.6 矩阵乘法运算要求两矩阵的维数相容,否则会出错。先求两矩阵的
乘积,若出错则自动转去求两矩阵的点乘。 程序如下: A = [1,2,3;4,5,6]; B = [7,8,9;10,11,12]; try    C = A*B; catch    C = A.*B; end C lasterr        %显示出错原因

13 3.循环结构 循环是指按照给定的条件,重复执行指定的语句,Matlab提供了两种实现循环结构的语句:for语句和while语句。
   循环体语句 end 其中表达式1的值为循环变量的初值,表达式2的值为步长,表达式3的 值为循环变量的终值。步长为1时,表达式2可以省略。

14 例5.7已知,当n=100时,求y的值。 程序如下: y = 0;n = 100; for i=1:n    y = y+1/i/i; end y (2)、while语句 while语句的一般格式为: while条件       循环体语句 其执行过程为:若条件成立,则执行循环体语句,执行后再判断条件是否成立,如果不成立则跳出循环。

15 例5.8 从键盘输入若干个数,当输入0时结束输入,求这些数的平均值和.
sum =0; n =0; x =input(‘Enter a number(end in 0):’); while(x~=0)     sum = sum+x;     n = n+1;     x = input(‘Entera number(end in 0):’); end if(n>0)     sum     mean = sum/n

16 (3)break语句和continur语句
它们一般与if语句配合使用。 break语句用于终止循环的执行。 当在循环体内执行到该语句时,程序将跳出循环,继续执行循环语句的 下一语句。 continue语句控制跳过循环体中的某些语句。 当在循环体内执行到该语句时,程序将跳过循环体中所有剩下的语句, 继续下一次循环。

17 例5.9 求[100,200]之间第一个能被21整除的整数。 程序如下: for n = 100:200    if rem(n,21)~=0;       continue    end    break end n


Download ppt "第二单元 第2课 Matlab程序控制结构 1.顺序结构 2.选择结构 3.循环结构."

Similar presentations


Ads by Google