A 顺序结构程序
1、 程序和程序设计
2、 程序的三种基本结构
- 顺序结构
- 选择结构
- 循环结构
3、脚本文件和函数文件
4、文件的建立
- 用
edit
命令创建文件
edit test
%创建test.m文件
例题:
5、顺序结构
x = input(prompt) %输入的东西当成数字或者矩阵
str = input(prompt,‘s’) %输入的东西当成字符串存起来fprintf也可以
x = input('请输入X的值'); if rem(x,3)==1 y = sqrt(x); elseif rem(x,3)==2 y = x^(1/3); else y = power(x,2); end fprintf('结果为%d',y); y
disp不会显示变量的名字和空格,输出格式更加紧凑。
B 用if语句实现选择结构
1、什么是选择结构
2、if语句
例题:
例题:’’s’:input()返回数据类型为字符c = input('请输入一个字符','s'); if c >= 'A' && c <='Z' disp(lower(c)); elseif c >= 'a' && c <= 'z' disp(upper(c)); elseif c >= '0' && c <= '9' disp(str2double(c)^2); % 将字符串转化为double类型的数字 else disp(c); end
C 用switch语句实现选择结构
1、switch语句的格式
- switch表达式应该是一个其值可以列举的表达式(如整形表达式,字符串表达式)。
- case结果表为switch表达式的取值,当取值有多个时,用单元数据表示,也就是将多个结果用大括号括起来。
例子:
x = input('x = ?');
switch fix(x)
case 2
disp(111);
case 2
disp(222);
case {3,4,5}
disp(333);
otherwise
disp(444)
end
%x = ?2
%111
%x = ?8
%444
输入一个英文单词i,判断它是否以元音字母开头
%法一
c = input('请输入一个单词:','s');
switch c(1)
%取单词首字母
case{'A','E','I','O','U','a','e','i','o','u'}
disp([c,'以元音字母开头']);
otherwise
disp([c,'以辅音字母开头']);
end
%法二
c = input('请输入一个单词:','s');
if strfind(c(1),'AEIOUaeiou') > 0
disp([c,'以元音字母开头']);
else
disp([c,'以辅音字母开头']);
end
例题:num2cell():将数值矩阵转化为单元矩阵
g = input('请输入PM2.5值:');
%fix() 取整
switch fix(g)
case num2cell(0:34)
disp('空气质量优');
case num2cell(35:74)
disp('空气质量良好');
case num2cell(75:114)
disp('空气质量轻度污染');
case num2cell(115:149)
disp('空气质中度污染');
case num2cell(150:249)
disp('空气质量重度污染');
otherwise
disp('空气质量严重污染');
end
D 用for语句实现循环结构
>> for k = [1,3,5,7]
k
end
k =
1
k =
3
k =
5
k =
7
>> for k = [1,3,5,7]
end
>> k
k =
7
%求圆周率pai
%法一
y = 0;
g = -1;
n = input('n=?');
for i = 1 :n
g= -g;
y = y+g*1/(2*i-1);
end
pai = 4*y
%法二 向量组
n = input('n=?');
x = 1:2:(2*n-1);
y = (-1).^(2:n+1)./x;
pai = sum(y)*4
%法三 定积分 为四分之一单位圆面积
a = 0;
b = 1;
n = input('n = ?');
h = (b - a)/n;
x = a:h:b;
f = sqrt(1-x.*x);
s = [];
for k = 1:n
s1 = (f(k)+f(k+1))*h/2;
% 梯形体积
s = [s,s1];
% s1追加到s
end
pai = 4*sum
%法四 蒙特卡洛法 撒豆 概率
s = 0;
n = input('n = ?');
for i = 1:n
x = rand(1);
y = rand(1);
if x*x+y*y <= 1
s = s+1;
end
end
pai = s/n*4
%循环四次
for k = [1,2,3,4]
%循环一次
for k = [1;2;3;4]
%MATLAB竖着读向量
for执行时是将矩阵的列向量赋给循环变量,行向量可以看成仅为一行的矩阵,每一列只有一个元素。
E 用while语句实现循环结构
%输入0结束,求平均值和他们的和
msum = 0;
n = 0;
x = input('Enter a number(end in 0):');
while x ~= 0
msum = msum + x;
n = n + 1;
x = input('Enter a number(end in 0):');
end
if n > 0
msum
mean = msum/n
end
例题:
for n =100:200
if rem(n,21)==0
n
break;
end
end
%求素数
m = input('m = ');
p = 1:m;
p(1) = 0;
for i = 2:sqrt(m)
%内循环划去i的倍数
for j =2*i:i:m
p(j) = 0;
end
end
n =find (p~=0);
p(n)