Presentation is loading. Please wait.

Presentation is loading. Please wait.

数学建模与MATLAB 第五讲:循环结构(1) 2017/9/12.

Similar presentations


Presentation on theme: "数学建模与MATLAB 第五讲:循环结构(1) 2017/9/12."— Presentation transcript:

1 数学建模与MATLAB 第五讲:循环结构(1) 2017/9/12

2 §5.1 循环语句 数学建模与MATLAB

3 当型循环 当满足某个特定条件时,重复执行循环体,当条件不满足时跳出循环。 条件 循环体 数学建模与MATLAB

4 直到型循环 先执行循环体,然后判断条件,若条件为真,则继续执行循环体,若条件为假,则跳出循环。 循环体 条件 数学建模与MATLAB

5 while语句 while 表达式 执行代码块; end
while 语句用于将相同的代码块执行多次,但是次数并不预先指定,当 while 的条件表达式为真时,执行代码块,直到条件表达式为假。while 语句的结构为: while 表达式 执行代码块; end 数学建模与MATLAB

6 例题 求解1+2+3+4+ ……100的和 sum=0; x=1; while x<=100 sum=sum+x; x=x+1;
end fprintf('1+2+3+……+100=%d',sum); 数学建模与MATLAB

7 变量 程序中的变量是计算过程中要用到的数据的存贮单元,通过输入指令的执行,程序将外界输入的数据存贮到指定的变量中,程序计算的结果也可以存贮到指定的变量中。 (以字母,后可跟字母、数字或下划线组成) x 存储空间 x=2 1、设置变量X,并开辟空间 2、将2赋予变量X x=x+1 1、取出X的值 2、数学运算X+1 3、将结果赋值放入X的存储空间 4、此时X的值是(2)运算后的结果 数学建模与MATLAB

8 课堂练习 1、求1+2+3+4+…+n的值(n由键盘输入) 2、求1*2*3*4*…*n的值(n由键盘输入)
clear; clc; n=1; s=0; f=1; t=1; while abs(t)>=10^(-6) t=f/n; s=s+t; f=-f; n=n+2; end s=s*4; fprintf('%2.5f\n',s); 附:书P141思考与练习第8题答案。 编写利用公式: π/4=1-1/3+1/5-1/7+…计算π的近似值的M程序,要求近似值的最后一项的绝对值小于10-6。 数学建模与MATLAB

9 §5.2 while语句应用 数学建模与MATLAB

10 练习一 取余:mod(x,y) 取整:fix(x) 输入任意一个整数,将其逆序输出,例如输入1234,输出4321。
y=input(‘请输入一个整数:’); fprintf(‘这个数字的逆序是:\n’) while ( y~=0 ) n=mod(y,10); fprintf (‘%ld’,n); y=fix(y/10); end 取余:mod(x,y) 取整:fix(x) 例:mod(7,3)= fix(2.8)=2 数学建模与MATLAB

11 练习二 fliplr(A) 数组逆序 A=input('请输入字符:','s'); n=length(A); while (n~=0)
输入任意一个字符串,将其逆序输出,例如输入 abcd,输出dcba MATLAB中字符以一维矩阵方式存储 例:A=‘sfls’; 则:A(1)=‘s’ A(2)=‘f ’ A=input('请输入字符:','s'); n=length(A); while (n~=0) fprintf('%s',A(n)); n=n-1; end fliplr(A) 数组逆序 数学建模与MATLAB

12 输入一个字符,输出字符 为奇数不变,偶数的倒序
练习三 输入一个字符,输出字符 为奇数不变,偶数的倒序 数学建模与MATLAB

13 参考代码 A=input('请输入字符:','s'); B=A; n=length(A); n=fix(n/2)*2; i=2;
%输入一个字符,输出字符为奇数位不变,偶数位的倒序 A=input('请输入字符:','s'); n=length(A); if mod(n,2)==0 i=2; j=1; while (n~=0) B(i)=A(n); B(j)=A(j); n=n-2; i=i+2; j=j+2; end fprintf('原始字串为:%s;偶数为颠倒后为:%s',A,B); else n=n-1; B(length(A))=A(length(A)); 参考代码 A=input('请输入字符:','s'); B=A; n=length(A); n=fix(n/2)*2; i=2; while (n~=0) B(i)=A(n); n=n-2; i=i+2; end fprintf('原始字串为:%s;偶数为颠倒后为:%s \n',A,B); A=input('请输入字符:','s'); A(2:2:end)=fliplr(A(2:2:end)) 数学建模与MATLAB


Download ppt "数学建模与MATLAB 第五讲:循环结构(1) 2017/9/12."

Similar presentations


Ads by Google