1.输入三角形的三条边,求三角形的面积。如果输入的三个数不能构成三角形要求输出“不能构成一个三角形”这样的提示信息。(提示: area= √(s(s-a)(s-b)(s-c)),s=(a+b+c)/2)
a = input('请输入三角形的第一条边长: ');
b = input('请输入三角形的第二条边长:') ;
c = input('请输入三角形的第三条边长:');
if a+b>c && a+c>b && b+c>a s= (a+b+c)/2;
area = sqrt(s*(s-a)*(s-b)*(s-c));
fprintf('可以组成三角形,面积为: %f\n',area);
else fprintf('不能构成一个三角形\n');end
2.编写一个程序计算下式,其中x的值为-10 到 10 之间,以0.5 为步长,使用循环语句加以实现。
y(x)= -3x'+5(x>=0);y(x)= 3x' +5(x < 0)
x=-10:0.5:10;for i=1:length(x)if x(i)<=0
y(i)=-x(i)^3+5
else
y(i)=x(i)^3+5
end
end
3.编写一程序,求出[100 1000]以内的全部素数。
for i = 100 : 1000 %外层循环,i的初值为100,终值为1000
for j = 2 : 1000 %内层循环,j的初值为2,终值为1000
if(~mod(i,j)) % i除以j取余后再取反
break; % 跳出循环
end
end
if(j > (i/j)) %检查是否有其他除数
fprintf('%d is prime \n',i); %输出素数
end
end
4.建立函数 count(x),其中x 为一个班的学生成绩,统计该班学生成绩,其中优秀:成绩>90,良好:80≤成绩<90,中等: 70≤成绩<80,及格:60≤成绩<70,不及格: 成绩<60,分别输出优秀、良好、中等、不及格的人数,要求有输入、输出提示语句。例如:
>> count
请输入该班学生成绩:
[34 67 98 89 78]
成绩优秀:2
%输出提示
%输入成绩
%输出结果
成绩良好:2
成绩中等:2
成绩及格:2
成绩不及格:1
function f=score()
z=0;
j=0;
k=0;
l=0;
s=0;
n=input('班级的总人数为;');
v='成绩优秀:%d人,成绩良好:%d,成绩中等:%d,成绩及格:%d,成绩不及格:%d,\n';
for i=1:n
c=input('成绩是:');
switch 1<= c && c<=100
case 90 <= c && c <= 100
z=z+1;
fprintf(v,z,j,k,l,s);
case 80<= c && c<90
j=j+1;
fprintf(v,z,j,k,l,s);
case 70<= c && c<80
k=k+1;
fprintf(v,z,j,k,l,s);
case 60<= c && c<70
l=l+1;
fprintf(v,z,j,k,l,s);
case 0<= c && c<60
s=s+1;
fprintf(v,z,j,k,l,s);
end
end
5.某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用 price 来表示):
price<1000
没有折扣
1000≤price<20003%折扣
2000≤price<3000
3000≤price
5%折扣
8%折扣
输入所售商品的价格,求其实际销售价格(使用 switch 结构编程)。
price=input('请输入商品价格');
switch fix(price/100) %截尾取整
case {0,1} %价格小于200
rate=0;
case {2,3,4} %价格大于等于200但小于500
rate=3/100;
case num2cell(5:9) %价格大于等于500但小于1000
rate=5/100;
case num2cell(10:24) %价格大于等于1000但小于2500
rate=8/100;
case num2cell(25:49) %价格大于等于2500但小于5000
rate=10/100;
otherwise %价格大于等于5000
rate=14/100;
end
price=price*(1-rate); %输出商品实际销售价格
fprintf('%d\n',price );