您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > matlab编程练习
选择结构编程练习1.身高预测每个做父母的都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析表明,影响小孩成人后的身高的因素包括遗传、饮食习惯与体育锻炼等。小孩成人后的身高与其父母的身高和自身的性别密切相关。设faHeight为其父身高,moHeight为其母身高,身高预测公式为男性成人时身高=(faHeight+moHeight)×0.54cm女性成人时身高=(faHeight×0.923+moHeight)/2cm此外,如果喜爱体育锻炼,那么可增加身高2%;如果有良好的卫生饮食习惯,那么可增加身高1.5%。编程从键盘输入用户的性别(用字符型变量sex存储,输入字符F表示女性,输入字符M表示男性)、父母身高(用实型变量存储,faHeight为其父身高,moHeight为其母身高)、是否喜爱体育锻炼(用字符型变量sports存储,输入字符Y表示喜爱,输入字符N表示不喜爱)、是否有良好的饮食习惯等条件(用字符型变量diet存储,输入字符Y表示良好,输入字符N表示不好),利用给定公式和身高预测方法对身高进行预测。symsfmYNfaHeight=input('请输入父亲的身高:');moHeight=input('请输入母亲的身高:');x=input('请输入x的性别:');sport=input('是否喜欢运动(Y/N):');diet=input('饮食是否良好(Y/N):');ifx==mchild=(faHeight+moHeight)*0.54;elsechild=(faHeight*0.923+moHeight)/2;endifsport==Ychild=child*1.02;elsechild=child;endifdiet==Ychild=child*1.015;elsechild=child;endchild2.简单的计算器用switch语句编程设计一个简单的计算器程序,要求根据用户从键盘输入的表达式:操作数1运算符op操作数2计算表达式的值,指定的算术运算符为加(+)、减(-)、乘(*)、除(/)。m=input('操作数1运算符op操作数2:','s');q=find(m=='+'|m=='-'|m=='*'|m=='/'|m=='×'|m=='÷');a=str2num(m(1:q-1));b=m(q);c=str2num(m(q+1:end));switchbcase'+'a+ccase'-'a-ccase'*'a*ccase'×'a*ccase'/'a/ccase'÷'a/cend(1)如果要求程序能进行浮点数的算术运算,程序应该如何修改?如何比较实型变量data2和常数0是否相等?formatlongm=input('操作数1运算符op操作数2:','s');q=find(m=='+'|m=='-'|m=='*'|m=='/'|m=='×'|m=='÷');a=str2num(m(1:q-1));b=m(q);c=str2num(m(q+1:end));switchbcase'+'a+ccase'-'a-ccase'*'a*ccase'×'a*ccase'/'a/ccase'÷'a/cend(2)如果要求输入的算术表达式中的操作数和运算符之间可以加入任意多个空白符,那么程序如何修改?formatlongm=input('操作数1运算符op操作数2:','s');m(find(isspace(m)))=[]q=find(m=='+'|m=='-'|m=='*'|m=='/'|m=='×'|m=='÷');a=str2num(m(1:q-1));b=m(q);c=str2num(m(q+1:end));switchbcase'+'a+ccase'-'a-ccase'*'a*ccase'×'a*ccase'/'a/ccase'÷'a/cend(3)(选作题)如果要求连续做多次算术运算,每次运算结束后,程序都给出提示:Doyouwanttocontinue(Y/Nory/n)?用户输入Y或y时,程序继续进行其他算术运算;否则程序退出运行状态。那么,程序如何修改?symsYNynformatlonga=input('请输入操作数1:');b=input('请输入运算符op,','s');c=input('请输入操作数2:');switchbcase'+'a+ccase'-'a-ccase'*'a*ccase'×'a*ccase'/'a/ccase'÷'a/cendF=input('Doyouwanttocontinue(Y/Nory/n)');whileF==Yformatlonga=input('请输入操作数1:');b=input('请输入运算符op,','s');c=input('请输入操作数2:');switchbcase'+'a+ccase'-'a-ccase'*'a*ccase'×'a*ccase'/'a/ccase'÷'a/cendF=input('Doyouwanttocontinue(Y/Nory/n)');End(2)formatlongd='y';whiled=='Y'|d=='y'm=input('操作数1运算符op操作数2:','s');m(find(isspace(m)))=[]q=find(m=='+'|m=='-'|m=='*'|m=='/'|m=='×'|m=='÷');a=str2num(m(1:q-1));b=m(q);c=str2num(m(q+1:end));switchbcase'+'a+ccase'-'a-ccase'*'a*ccase'×'a*ccase'/'a/ccase'÷'a/cendd=input('Doyouwanttocontinue(Y/Nory/n)?','s');end循环结构编程练习猜数游戏在这个实验中,我们将尝试编写一个猜数游戏程序,这个程序看上去有些难度,但是如果按下列要求循序渐进地编程实现,会发现其实这个程序是很容易实现的。那么,现在就开始吧,先编写第1个程序,然后试着在第1个程序的基础上编写第2个程序,……程序1编程先由计算机“想”一个1~100之间的数请人猜,如果人猜对了,则计算机给出提示“Right!”,否则提示“Wrong!”,并告诉人所猜的数是大(Toohigh)还是小(Toolow),然后结束游戏。要求每次运行程序时机器所“想”的数不能都一样。程序2编程先由计算机“想”一个1~100之间的数请人猜,如果人猜对了,则结束游戏,并在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平;否则计算机给出提示,告诉人所猜的数是太大还是太小,直到人猜对为止。程序3编程先由计算机“想”一个1~100之间的数请人猜,如果人猜对了,则结束游戏,并在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平;否则计算机给出提示,告诉人所猜的数是太大还是太小,最多可以猜10次,如果猜了10次仍未猜中的话,结束游戏。程序4编程先由计算机“想”一个1~100之间的数请人猜,如果人猜对了,在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平,则结束游戏;否则计算机给出提示,告诉人所猜的数是太大还是太小,最多可以猜10次,如果猜了10次仍未猜中的话,则停止本次猜数,然后继续猜下一个数。每次运行程序可以反复猜多个数,直到操作者想停止时才结束。a=fix((100+1)*rand(1));b=input('请输入一个大于0小于100的整数:');fori=1:10ifa==bdisp('Youwin!')disp(['你总共用了',num2str(i),'次'])break;elseifbadisp(['Toohigh!Youhava',num2str(10-i),'chances!'])elsedisp(['Toolow!Youhava',num2str(10-i),'chances!'])endb=input('请再输入一个整数:')end1.猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半另一个,以后每天早晨都吃剩下的一半另一个,到第十天早晨再想吃时,就剩一个桃子。问第一天共摘了多少桃子。要求:分别用三种语句编写程序。(1)functionPeachclcnumber=1;x(10)=number;fprintf('计算结果如下:\n');fori=9:-1:1x(i)=(x(i+1)+1)*2;fprintf('第%d天有%d个桃子\n',i,x(i));end(2)i=10;x=1;whilei1i=i-1;x=(x+1)*2;end;x(3)functiony=Eatpeach(x);y=x-(1/2*x+1);forx=1:100000;y=x;fori=1:9y=Eatpeach(y);endify==1xbreakendend2.编写程序验证下列结论:任何一个自然数n的立方都等于n个连续奇数之和。例如:13=1;23=3+5;33=7+9+11。要求:程序对每个输入的自然数计算并输出相应的连续奇数,直到输入的自然数为0时止。n=input('请输入一个数字:');k=n*n*n;s=0;for1:2:k;c=i;A=[];s=0;forb=i:n;s=c+s;A=[c,A];c=c+2;endifs==kAbreak;endend函数编程练习1.给小学生出加法考试题编写一个程序,给学生出一道加法运算题,然后判断学生输入的答案对错与否,按下列要求以循序渐进的方式编程。程序1通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则显示“Notcorrect!Tryagain!”,程序结束。程序2通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则显示“Notcorrect!Tryagain!”,直到做对为止。程序3通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则提示重做,显示“Notcorrect!Tryagain!”,最多给三次机会,如果三次仍未做对,则显示“Notcorrect!Youhavetriedthreetimes!Testover!”,程序结束。程序4连续做10道题,通过计算机随机产生两个1~10之间的加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则显示“Notcorrect!”,不给机会重做,10道题做完后,按每题10分统计总得分,然后打印出总分和做错的题数。程序5通过计算机随机产生10道四则运算题,两个操作数为1~10之间的随机数,运算类型为随机产生的加、减、乘、整除中的任意一种,如果输入答案正确,则显示“Right!”,否则显示“Notcorrect!”,不给机会重做,10道题做完后,按每题10分统计总得分,然后打印出总分和做错题数。formatshortdisp('小数保留4位小数');j=0;fori=1:10;a=fix(1+9*rand(1));b=fix(1+9*rand(1));c=fix(1+4*rand(1));switchccase1d=input([num2str(a),'+',num2str(b),'='],'s');q=a+b;ifd==num2str(q)disp('youareright!');j=j+1;elsedisp('Notcorrect!');endcase2d=input([num2str(a),'-',num2str(b),'='],'s');q=a-b;ifd==num2str(q)disp('youareright!');j=j+1;elsedisp('Notcorrect!');endcase3d=input([num2str(a),'×',num2str(b),'='],'s');q=a*b;ifd==num2str(q)disp('youareright!');j=j+1;elsedisp
本文标题:matlab编程练习
链接地址:https://www.777doc.com/doc-5311664 .html