%顺序结构
%数据的输入input()
%a=input('请输入数值a')
%A=input('请输入矩阵A')
%数据输出disp()
%disp(A)
%程序的暂停pause(senconds)
%ex2:编写求解一元二次方程的函数
%ax^2+bx+c=0
function [solveV] = func2()
%该函数用于求解一元二次方程
a=input('请输入方程二次项系数:');
b=input('请输入方程一次项系数:');
c=input('请输入方程常数项系数:');
delta=b*b-4*a*c;
solveV=[(-b+sqrt(delta))/(2*a),(-b-sqrt(delta))/(2*a)];
end
法②:
%选择结构
%if/switch
%if-else语句
test1=input('请输入测试数据:')
if test1>=0
disp('非负数')
else
disp('负数')
end
%if-elif-else
test2=input('请输入测试数据2:')
if test2>=3&&test2<6
disp('test2>2并<6')
elif test2>=6
disp('test>6')
else
disp('test<3')
end
%switch
price=input('请输入测试数据3:');
switch price
case price<200&&price>=100
disp(1)
case price>400
disp(2)
otherwise
disp('error')
end
%循环结构
%for while
%break continue
%求阶乘
res=1
for i=1:1:10
res=res*i;
end
disp(res)
%for循环需要注意
for k=[1 2 3 5]
k
end
disp('***************************')
for k=[1 2 3 5]
k
k=20
end
disp('***************************')
n=10;
for k=1:1:n
n=5;
k
end
%注意:循环在一开始进入的时候,循环变量就已经确定,不会再随着
disp('***************************')
for k=[1 2 3 5]
end
disp(k)
%最终值就是循环向量中最后的值
disp('***************************')
for k=[]
disp('for循环已执行')
end
%注意,循环向量为空时,循环一次也不会执行
disp('***************************')
for k=[1]
disp('for循环已执行')
end
%for循环变量为矩阵时,按列循环
sum=0;
a=[1,2,3;4,5,6;7,8,9;10,11,12];
b=[1 2 3;
4 5 6;];
for k=b
k
end
disp(b)
function [s] = getIntegral(down,up)
%求解某段积分限的积分值
n=1000;
h=(up-down)/n;
x=down;
s=0;
f0=exp(-0.5*x)*sin(x+pi/6);
for i=1:n
x=x+h;
f1=exp(-0.5*x)*sin(x+pi/6);
s=s+(f0+f1)*h/2;
f0=f1;
end
end
%while语句
a=5;
n=1;
sum=1
%阶乘
while(n<=a)
sum=sum*n;
n=n+1;
end
sum
%break用于跳出一整层循环
%continue跳出一次循环
for i=1:1:10
if i==5
break
else
disp(i)
end
end
%break用于跳出一整层循环
%continue跳出一次循环
for i=1:1:10
if i==5
%break
continue
else
disp(i)
end
end
%循环嵌套
%ex1
sum=0;
for k=1:1:10
sum=sum+k;
end
disp(sum)
disp('************************')
%ex2
sum=0;
for k=1:1:10
for j=1:1:10
sum=sum+j;
end
end
disp(sum)
disp('************************')
%ex3
sum=0;
for k1=1:1:10
for k2=1:1:10
sum=sum+k2;
end
disp(sum)
sum=0;
end
disp(sum)
disp('************************')
%循环嵌套相关题目
%求解1!+2+。。。。。n!
c=5;
sum=0;
for k1=1:1:c
temp=1;
for k2=1:1:k1
temp=temp*k2;
end
sum=sum+temp;
end
sum