()
程序结构设计
程序的三个基本结构:序列结构、选择结构和循环结构。1.序列结构的编程是最简单的,只要把对应的语句按照解决问题的顺序写就行了,而且它的执行顺序是从上到下,其次是执行。
(1)数据输入:
A=输入('请输入变量A的值:')
请输入变量A的值:100。
A=
100
(2)数据输出:
s=' Hello World
显示
你好世界
a=[1 2 3;4 5 6];
显示(a)
1 2 3
4 5 6
(3)节目暂停
暂停(以秒为单位的延迟)要强制停止程序,请使用Ctrl-C命令。
示例:
a=输入(' a=');
b=输入(' b=');
c=a 0.618 *(B- a);
s=ABS(a-b);
显示
显示(c)
a=1 i
b=4.5 4.5i
4.9497
3.1630 3.1630i
第二,使用if语句实现选择结构:
1.单分支if语句:条件结构为标量时,非零表示条件有效,零表示条件无效;当条件为矩阵时,如果矩阵非空且不包含零元素,则条件成立,否则不成立。例如:[1 2;当0]表示条件时,该条件无效;[1 2;3]当条件被表达时,条件成立。
2.双分支if语句:(if else)
例1:输入一个整数,如果是奇数,输出其平方根,否则输出其立方根。
x=输入('请输入x的值:')
如果rem(x,2)=1
y=sqrt(x);
其他
y=x^(1/3);
结束
y
3.多分支if语句(if elseif elseif else)
示例:输入一个字符,如果是大写字母,输出其对应的小写字母;如果是小写字母,输出其对应的大写字母;如果是数字字符,则输出其对应数字的平方;如果是其他字符,将按原样输出。
c=输入('请输入一个字符:',' s ');
如果c='A'c='Z '
disp(下(c))
elseif c='a'c='z '
显示(上(c))
elseif c='0'c='9 '
disp(str2double(c)^2)
其他
显示(c)
结束
第二,使用switch语句实现选择结构
例如:输入一个英语单词来确定它是否以元音开头。
方法1:
c=输入('请输入一个单词:',' s ');
开关c(1)
大小写{'a ',' E ',' I ',' O ',' U ',' A ',' E ',' I ',' O ',' U'}
Disp([c,'以元音']开头);
否则
Disp([c,'不以元音']开头);
结束
方法2:
c=输入('请输入任意单词:',' s ');
如果findstr(c(1),' aeiouaiou ')0
Disp([c,'以元音']开头);
其他
Disp([c,'不以元音']开头);
结束
例2:
PM2.5是指直径小于或等于2.5微米的气载颗粒物,是空气质量的重要指标。假设空气质量等级以PM2.5为基准分为6个等级,PM2.5值在[0,35]为优,在[35,75]为良,在[75,115]为轻度污染,在[115,150]为中度污染,在[150,250]为重度污染。编写程序,输入PM2.5值,输出空气质量等级。
回答:
g=输入('请输入PM2.5的值:');
开关固定(g)
case num2cell(0:34)
Disp('优秀空气质量');
case num2cell(35:74)
Disp('空气质量好');
case num2cell(75:114)
Disp('空气质量轻度污染');
案例号2cell(115:149)
Disp('空气质量中度污染');
案例号2cell(150:249)
Disp('空气质量严重污染');
否则
Disp('严重空气污染');
/p>end
三、用for语句实现循环结构:
格式:
for 循环变量=表达式1(初值):表达式2(步长):表达式3(终值)
循环体语句
end
说明:
for语句针对向量的每一个元素执行一次循环体。
退出循环之后,循环变量的值就是向量中最后的元素值。
当向量为空时,循环体一次也不执行。
例题:计算圆周率:
(蒙特卡洛法)
s=0;
n=input('n=');
for n=1:n
x=rand(1);
y=rand(1);
if (x*x+y*y<1)
s=s+1;
end
end
pai=s/n*4
按照MATLAB的定义,for语句的循环变量也可以是一个列向量,其格式为:
for循环变量=矩阵表达式
循环体语句
end
用while语句实现循环结构:
格式:
while条件
循环体语句
end
例一:从键盘输入若干个数,当输入0时结束输入,求这些数的平均值和它们之和。
x=input('请输入数据:');
s=0;
i=1;
while(x~=0)
s=s+x;
p=s/i;
i=i+1;
x=input('请输入数据:');
end
s
p
while语句多用于循环次数不确定的情况,而对于循环次数确定的情况,使用for语句更为方便。
针对不同情况可以选择不同的循环语句,但从功能上讲两种循环语句可以相互替代。
补充:
break语句和continue语句:
break语句用来跳出循环体,结束整个循环。
continue语句用来结束本次循环,接着进行下一次是否执行循环的判断。
例题:求[100,200]之间第一个能被21整除的整数。
for n=100:200
if rem(n,21)~=0
continue
end
n
break
end
如果一个循环结构的循环体又包含一个循环结构,就称为循环的嵌套,或称为多重循环结构。
例题:用筛选法thdkh自然数范围内的全部素数。
分析:筛选法求素数的基本思想是要找出2~m之间的全部素数,首先在2~m中划去2的倍数(不包括2),然后划去3的倍数(不包括3),由于4已被划去,再找5的倍数(不包括5),……,直到再划去不超过 的倍数,剩下的就都是素数。
m=input('m=');
p=1:m;
p(1)=0;
for i=2:sqrt(m)
for j=2*i:i:m
p(j)=0;
end
end
n=find(p~=0);
p(n)