MATLAB编程练习

上传人:tang****xu1 文档编号:132724672 上传时间:2020-05-19 格式:DOC 页数:17 大小:87.50KB
返回 下载 相关 举报
MATLAB编程练习_第1页
第1页 / 共17页
MATLAB编程练习_第2页
第2页 / 共17页
MATLAB编程练习_第3页
第3页 / 共17页
MATLAB编程练习_第4页
第4页 / 共17页
MATLAB编程练习_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《MATLAB编程练习》由会员分享,可在线阅读,更多相关《MATLAB编程练习(17页珍藏版)》请在金锄头文库上搜索。

1、编程训练实例你玩过牌吗?把13张牌反过来(背面朝上)按一定的顺序排列,先把你已经排好的牌第一张取出放在这叠牌的最底层,拿出第二张放在桌面上,然后将第三张取出又放在最底层,取出第四张放在桌子上直到游戏结束,你依次取出放在桌子上的牌刚好为K,Q,J,10,9,8,7,6,5,4,3,2,A。问你一开始时这13张牌的顺序是怎样的?请你用MATLAB编程解决这个问题?请把程序附上。%调用格式为chengxufunction chengxua=1,13;k=2;j=1;b=K,Q,J,10,9,8,7,6,5,4,3,2,A;%for c=1:4for i=1:13if mod(i,2)=0 ai=bj

2、;j=j+1;endendfor i=2:2:13if mod(i,4)=0 ai=bj; j=j+1; endendfor i=4:4:13if mod(i,8)=0 ai=bj; j=j+1; endenda8=b13;a或function f=card()a=1:13;i=1;for j=1:13 n=numel(a); %目前的片数;numle为元数的个数。 a(n+1)=a(1); %在多少张里面取第一张。 a(1)=; %将上面取出的第一张牌所在空格剪掉。 b(i)=a(1); %翻出来时桌面上亮出来的牌。 i=i+1; a(1)=;%随着i自增,取出现的空格为空。(即删除)。en

3、dc=K,Q,J,10,9,8,7,6,5,4,3,2,A;%因为10占两位,故用单元d=cell(1,13);%由BC对应的数,将C中字符型的牌放入由B决定对应的D中。for k=1:13 r=b(k); dr=ck;endf=d;如果把第一张牌放在最底层,第二张放在最底层,取出第三张放在桌子上,依此类推,你最后把所有的牌取出刚好依次是A,2,3,4,5,6,7,8,9,10,J,Q,K.%调用格式为card2function f=card2()a=1:13;i=1;for j=1:13 n=numel(a); a(n+1)=a(1); a(n+2)=a(2); a(1)=; a(1)=;

4、b(i)=a(1) i=i+1; a(1)=;。endc=A,2,3,4,5,6,7,8,9,10,J,Q,K;d=cell(1,13);for k=1:13 r=b(k); dr=ck;endf=d;课外拓展按照取出第一张放到最后,然后抽出第二张放在桌子上,依次类推,并且桌子上的牌可以从键盘输入,依次类推,求原来牌的排列。%调用格式为chengxufunction y=chengxua=input(请输入摆在桌子上的牌,s);b=numel(a);c=cell(1,b);for i=1:b ci=a(i);ende=;f=1:b;i=1;for j=1:b n=numel(f); %目前的片

5、数;numle为元数的个数。 f(n+1)=f(1); %在多少张里面取第一张。 f(1)=; %将上面取出的第一张牌所在空格剪掉。 e(i)=f(1); %翻出来时桌面上亮出来的牌。 i=i+1; f(1)=;%随着i自增,取出现的空格为空。(即删除)。endg=cell(1,b);%由BC对应的数,将C中字符型的牌放入由B决定对应的D中。for k=1:b r=e(k); gr=ck;endy=g;1 学校要举行篮球循环赛,共有十个队参加比赛,请你安排一下比赛场次,使每队每次打完比赛后至少能隔一场不比赛,以便得到休息保持体力,请你用MATLAB解决这个问题,并给出至少一个比赛日程表。(每队

6、休息的场次越多越好,但每队都应得到的休息大体相同,不能出现某队刚打完比赛,马上和另一个已经休息了若干场的球队比赛,这是不公平的)。1.编写一个程序,要求输入五个整数,然后由小到大排序再输出1.1 %调用形式为:chengxu2(a b c d e f)function f=chengxu1(x)for i=1:4for j=(i+1):5if x(i)x(j) a=x(i); x(i)=x(j); x(j)=a;endendend f=(x);1.2%编写一个程序,要求输入五个整数,然后由小到大排序再输出function h=chao1()a=cell(1,5);a=input(Please

7、input five number:,s);b=str2num(a)fprintf(从小到大排序为:)g=sort(b,ascend);disp(g)1.3%编写一个程序,要求输入五个整数,然后由小到大排序再输出function chen1()a=input(Please input Num1:);b=input(Please input Num2:);c=input(Please input Num3:);d=input(Please input Num4:);e=input(Please input Num5:);f=a b c d e;fprintf(从小到大排序为:)2.将一个整型数组

8、的元素按逆序重新存放(如原序为:8,6,5,4改为:4,5,6,8)。2.1 % 将一个整型数组的元素按逆序重新存放%调用形式为:chengxu2(a b c dn)function f=chengxu2(x)a=numel(x);b=fix(a/2);for i=1:b; j=a-i+1; t=x(i); x(i)=x(j); x(j)=t;enddisp(x)2.2%将一个整型数组的元素按逆序重新存放function chao2()a=input(请输入一个数组:);rot90(a,2)3.输入一个字符,如果是大写字母,则将其转换成小写并输出;若是小写则直接输出;若是非字母字符则打印:“D

9、ataerror!”。3.1%输入形式为chengxu3(x)其中x为从键盘输入的数字或字母。 function chengxu3(x)if x=48 fprintf(“Dataerror!”n)elseif x=65 fprintf(%cn,x+32)elseif x=97 xend3.2function f=chao3m=input(请输入一个字符:,s);i=isletter(m);if i=0 fprintf(“Dataerror!”n) else n=lower(m); disp(n)end4.输入一个整数,写一程序输出它是几位数。 %输入形式为chengxu4(x),x为数字。fu

10、nction f=chengxu4(x)i=0;for j=1:10000 %此处表示可以容纳10000位数字的位数求解 x=x/10; a=fix(x);if a0 i=i+1;endif a=0 i=i+1;breakendendfprintf(你输入的是%d位数字n,i); %或写成 i5.写一程序求1!+2!+10!%调用形式为chengxu5function chengxu5()j=1;sum=0;for i=1:10 j=i*j; sum=sum+j;endfprintf(10以内的阶乘为 %dn,sum)%最后一条语句也可为 sum6.从键盘上输入a与n的值,计算sum=a+aa

11、+aaa+aaaa+(共n项)的和。例a=2,n=4,则sum=2+22+222+2222.%调用形式为chengxu6(x,y),其中x y均为数字function chengxu6(x,y)sum=x;t=x;for i=1:(y-1) t=t+10i*x; sum=sum+t;endsum7.编程求数列1,1/2,1/3 ,1/4 ,1/5 ,的所有大于等于0.000001的数据项之和并输出结果%d调用格式为chengxu7function chengxu7()sum=0;for i=1:106 a=1/i; sum=sum+a;endfprintf(所求大于等于0.000001的数据项

12、之和为%dn,sum);8.求3*3矩阵的主对角线元素之和。%调用形式为必须chengxu8(x1,x2,x3;x4,x5,x6;x7,x8,x9)function chengxu8(x)sum=0;for i=1:3; j=i; sum=sum+x(i,j);endsum9.从键盘输入的10个整数中,找出第一个能被7整除的数。若找到,打印此数后退出循环;若未找到,打印“notexist”。%调用形式为chengxu9(x1,x2,x3x10)function chengxu9(x)for i=1:10 a=x(i)/7; b=fix(a);if a-b=0 disp(x(i)breakend

13、if i=10 fprintf(not existn);endend10.设计一个用于计算个人所有税的程序。假设个人所得税的缴纳标准为:月收入少于等于800元者不纳税;超出800元的部分,纳税5%;超出2000元的部分,纳税10%;超出5000元的部分,纳税20%;超出10000元的部分,纳税30%;超出100000元的部分,纳税40%。%调用形式为chengxu10(x)function chengxu10(x)if x=800 g=0;elseif x=2000 g=(x-800)*0.05;elseif x=5000 g=1200*0.05+(x-2000)*0.10;elseif x=10000 g=1200*0.05+3000*0.10+(x-5000)*0.20;elseif x=100000 g=1200*0.05+3000*0.10+5000*0.20+(x-10000)*0.30;e

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 商业计划书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号