matlab程序设计cx2完整版.docx
- 文档编号:9883290
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:20
- 大小:34.33KB
matlab程序设计cx2完整版.docx
《matlab程序设计cx2完整版.docx》由会员分享,可在线阅读,更多相关《matlab程序设计cx2完整版.docx(20页珍藏版)》请在冰豆网上搜索。
matlab程序设计cx2完整版
程序练习题2
1.假定输入的字符串中只包含字母和*号。
请编写函数fun1,它的功能是:
只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。
形参n给出了字符串的长度,形参h给出了字符串中前导*号的个数,形参e给出了字符串中最后*号的个数。
例如,字符串中的内容为:
****A*BC*DEF*G*******,
删除后,字符串中的内容应当时:
A*BC*DEF*G。
functiony=fun1(s)
functiony=fun1(s)
n=length(s);
b=isletter(s);
j=0;
t=n;
fori=1:
n
ifb(i)==0
j=j+1;
elsebreak;
end
end
fori=1:
n
ifb(n-i)==0
t=t-1;
else
break;
end
end
str=s(j+1:
t-1)
>>s=input('输入一个字符串:
','s');
fun1(s)
输入一个字符串:
****adsfr**detr***
str=
adsfr**detr
2.学生的记录由学号和成绩组成,N名学生的数据s中,请编写函数fun2,它的功能是:
把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。
例如,输入的分数是6069,则应当把分数在60到69的学生数据进行输出,包含60分和69分的学生数据。
functiony=fun1(n1,n2)
xuehao=['GA005';'GA003';'GA002';'GA004';'GA001';'GA007';'GA008';'GA006';'GA015';'GA013';'GA012';'GA014';'GA011';'GA017';'GA018';'GA016'];
fenshu=[85,76,69,85,96,72,64,87,85,94,64,91,90,64,64,72];
r=find(fenshu
g=length(r);
fori=1:
g
disp(xuehao(i,:
));
disp(fenshu(i));
end
>>clearall
n1=input('输入一个n1值:
');
n2=input('输入一个n2值:
');
fun1(n1,n2)
输入一个n1值:
60
输入一个n2值:
69
GA005
85
GA003
76
GA002
69
GA004
85
3.函数fun3的功能是:
将两个两位数的正整数a、b合并形成一个整数放在c中。
合并的方式是:
将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的十位和千位上。
例如,当a=45,b=12,调用该函数后c=2514。
functiony=fun3(a,b)
functiony=fun1(a,b)
y1=floor(a/10);
y2=floor(b/10)*10;
y3=rem(a,10)*100;
y4=rem(b,10)*1000;
y=y1+y2+y3+y4;
>>clearall
a=input('输入一个数a:
');
b=input('输入一个数b:
');
fun1(a,b)
输入一个数a:
45
输入一个数b:
12
ans=
2514
4.函数fun4的功能是:
将两个两位数的正整数a、b合并形成一个整数放在c中。
合并的方式是:
将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和千位上。
例如,当a=45,b=12。
调用该函数后,c=2415。
functiony=fun4(a,b)
functiony=fun1(a,b)
y1=floor(a/10)*100;
y2=floor(b/10)*10;
y3=rem(a,10);
y4=rem(b,10)*1000;
y=y1+y2+y3+y4;
5.假定输入的字符串中只包含字母和*号。
请编写函数fun5,它的功能是:
除了尾部的*之外,将字符串中其他*号全部删除。
例如,字符串中的内容为:
****A*BC*DEF*G*******,删除后,字符串中的内容应当是:
ABCDEFG*******.
functiony=fun5(s)
functiony=fun1(s)
n=length(s);
b=isletter(s);
j=1;
t=n;
fori=1:
n
ifb(i)==1
str(j)=s(i);
j=j+1;
elsecontinue;
end
end
fori=1:
n
ifb(n-i+1)==0
str(j)=s(t);
j=j+1;
t=t-1;
else
break;
end
end
disp(str)
>>clearall
s=input('输入一个字符串:
','s');
fun1(s)
输入一个字符串:
****adsfr**detr***
adsfrdetr***
6.请编写函数fun6,其功能是计算并输出当x<0.97时下列多项式的值
直到
为止。
例如,给x输入0.21后,输出为:
s=1.100000。
functiony=fun6(n)
functiony=fun1(x)
i=1;
p=1;
s=1;
whilei>=0
p=p*(0.5-i+1)/i;
s=s+p*x^i;
ifabs(p*x^i)<0.000001
fprintf('n=%d\n',i);
fprintf('s=%d\n',s);
break;
end
i=i+1;
end
>>clearall
x=input('输入一个x值:
');
fun1(x)
输入一个x值:
0.21
n=7
s=1.100000
7.学生的记录由学号和成绩组成,N名学生的数据已放入数组s中,请编写函数fun7,它的功能是:
把高于等于平均分k的学生数据放在y中,输出y和k。
已知
s=['GA005',85,'GA003',76,'GA002',69,'GA004',85,
'GA001',96,'GA007',72,'GA008',64,'GA006',87,
'GA015',85,'GA013',94,'GA012',64,'GA014',91,
'GA011',90,'GA017',64,'GA018',64,'GA016',72];
function[y,k]=fun7(s)
functiony=fun1(xuehao,fenshu)
r=length(fenshu);
sum=0;
fori=1:
r
sum=sum+fenshu(i);
end
ave=sum/r;
t=find(fenshu>=ave);
k=length(t)
fori=1:
k
disp(xuehao(i,:
));
disp(fenshu(i));
end
>>clearall
xuehao=['GA005';'GA003';'GA002';'GA004';'GA001';'GA007';'GA008';'GA006';'GA015';'GA013';'GA012';'GA014';'GA011';'GA017';'GA018';'GA016'];
fenshu=[85,76,69,85,96,72,64,87,85,94,64,91,90,64,64,72];
fun1(xuehao,fenshu)
k=
8
GA005
85
GA003
76
GA002
69
GA004
85
GA001
96
GA007
72
GA008
64
GA006
87
8.函数fun8的功能是:
将两个两位数的正整数a、b合并形成一个整数放在c中。
合并的方式是:
将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的百位和个位上。
例如,当a=45,b=12。
调用该函数后,c=5142。
functiony=fun8(a,b)
functiony=fun1(a,b)
y1=floor(a/10)*1000;
y2=floor(b/10)*100;
y3=rem(a,10)*10;
y4=rem(b,10);
y=y1+y2+y3+y4;
>>clearall
a=input('输入一个数a:
');
b=input('输入一个数b:
');
fun1(a,b)
输入一个数a:
45
输入一个数b:
12
ans=
4152
9.假定输入的字符串中只包含字母和*号。
请编写函数fun9,它的功能是:
将字符串中的前导*号全部移到字符串的尾部。
例如,字符串中的内容为:
*******A*BC*DEF*G****
移动后,字符串中的内容应当是:
A*BC*DEF*G***********。
functiony=fun9(s)
functiony=fun1(s)
n=length(s);
b=isletter(s);
fori=1:
n
ifb(i)==1
j=i;
break;
elsecontinue;
end
end
str=strcat(s(j:
n),s(1:
j-1))
>>clearall
s=input('输入一个字符串:
','s');
fun1(s)
输入一个字符串:
****adsfr**detr***
str=
adsfr**detr*******
10.请编写函数fun10,函数的功能是:
使矩阵右上半三角元素中的值乘以m。
例如:
若m的值为2,a数组中的值为
a=
,则返回主程序后a数组中的值应为
functiony=fun10(a,m)
n=size(a);
fori=1:
n
(1)
forj=1:
n
(2)
ifi<=j
a(i,j)=a(i,j)*m;
end
end
end
disp(a)
11.请编写一个函数fun11,它的功能是:
找出数组元素x中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。
function[y,k]=fun11(x)
functiony=fun1(s)
n=length(s);
max=s
(1);
j=0;
fori=1:
n
ifs(i)>max
max=s(i);
j=i;
end
end
max
j
>>clearall
s=input('输入一个数组:
');
fun1(s)
输入一个数组:
[876675896101301401980431451777]
max=
980
j=
7
12.学生的记录由学号和成绩组成,已知学生的数据s,请编写函数fun12,它的功能是:
把低于平均分的学生数据放在y中,低于平均分的学生人数k,返回y和k。
s=['GA005',85,'GA003',76,'GA002',69,'GA004',85,
'GA001',96,'GA007',72,'GA008',64,'GA006',87,
'GA015',85,'GA013',94,'GA012',64,'GA014',91,
'GA011',90,'GA017',64,'GA018',64,'GA016',72];
function[y,k]=fun12(s)
functiony=fun1(xuehao,fenshu)
r=length(fenshu);
sum=0;
fori=1:
r
sum=sum+fenshu(i);
end
ave=sum/r;
t=find(fenshu k=length(t) fori=1: k disp(xuehao(i,: )); disp(fenshu(i)); end >>clearall xuehao=['GA005';'GA003';'GA002';'GA004';'GA001';'GA007';'GA008';'GA006';'GA015';'GA013';'GA012';'GA014';'GA011';'GA017';'GA018';'GA016']; fenshu=[85,76,69,85,96,72,64,87,85,94,64,91,90,64,64,72]; fun1(xuehao,fenshu) k= 8 GA005 85 GA003 76 GA002 69 GA004 85 GA001 96 GA007 72 GA008 64 GA006 87 13.假定输入的字符串中只包含字母和*号。 请编写函数fun13,它的功能是: 使字符串的前导*号不得多于n个;若多于n个,则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。 例如,字符串中的内容为: *******A*BC*DEF*G**** 若n的值为4,删除后,字符串中的内容应当是: ****A*BC*DEF*G****; 若n的值为8,则字符串中的内容仍为: *******A*BC*DEF*G****。 functiony=fun13(s,n) functiony=fun1(s,n) t=length(s); b=isletter(s); j=0; fori=1: t ifb(i)==0 j=j+1; str(j)=s(i); else a=s(i: t); break; end end ifj<=n disp(s); else strcat(str(1: n),a) end >>clearall s=input('输入一个字符串: ','s'); n=input('字符串前的*不得多于: '); fun1(s,n) 输入一个字符串: ****adsfr**detr*** 字符串前的*不得多于: 2 ans= **adsfr**detr*** 14.假定输入的字符串中只包含字母和*号。 请编写函数fun14,它的功能是: 除了字符串前导的*号之外,将串中其它*号全部删除。 例如,字符串中的内容为: ****A*BC*DEF*G*******。 删除后,字符串中的内容应当是: ****ABCDEFG。 functiony=fun14(s) functiony=fun1(s) n=length(s); b=isletter(s); j=1; t=n; fori=1: n ifb(i)==0 str(j)=s(i); j=j+1; else break; end end fori=j: n ifb(i)==1 str(j)=s(i); j=j+1; elsecontinue; end end disp(str) >>clearall s=input('输入一个字符串: ','s'); fun1(s) 输入一个字符串: ****adsfr**detr*** ****adsfrdetr 15.请编写函数fun15,其功能是: 将所有大于1小于整数m的非素数输出。 例如,若输入: 17,则应输出: 46891012141516。 functiony=fun15(n) functiony=fun1(n) fori=n-1: -1: 3 forj=i-1: -1: 2 ifrem(i,j)==0 disp(i); break; end end end >>clearall n=input('输入一个数: '); fun1(n) 输入一个数: 17 16 15 14 12 10 9 8 6 4 16.请编写一个函数fun16,它的功能是: 求出1到m之内(含m)能被7或11整除的所有整数放在y中. 例如,若传送给m的值为50,则程序输出: 711142122283335424449 functiony=fun16(n) functiony=fun1(m) j=0; fori=1: m if(rem(i,7)==0)||(rem(i,11)==0) j=j+1; y(j)=i; end end >>clearall m=input('输入一个数: '); fun1(m) 输入一个数: 50 ans= 711142122283335424449 17.编写函数fun17,它的功能是计算下列级数和,和值由函数值返回。 例如,当n=10,x=0.3时,函数值为1.349859。 functiony=fun17(n) functiony=fun1(x,n) p=1; s=1; fori=1: n p=p/i; s=s+x^i*p; end s >>clearall x=input('输入一个x值: '); n=input('输入一个n值: '); fun1(x,n) 输入一个x值: 0.3 输入一个n值: 10 s= 1.349858807575957 18.函数fun18的功能是: 将两个两位数的正整数a、b合并形成一个整数放在c中。 合并的方式是: 将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的千位和十位上。 例如,当a=45,b=12。 调用该函数后,c=1524。 functiony=fun18(a,b) functiony=fun1(a,b) y1=floor(a/10); y2=floor(b/10)*1000; y3=rem(a,10)*100; y4=rem(b,10)*10; y=y1+y2+y3+y4; 19.编写函数fun20,它的功能是: 计算并输出下列级数和: 例如,当n=10时,函数值为: 0.909091。 functiony=fun20(n) functiony=fun20(n) s=0; fori=1: n s=s+1/(n*(n+1)); end disp(s) clearall n=input('输入一个数字: '); fun20(n) 输入一个数字: 10 0.0909 20.请编写一个函数fun20,其功能是: 将字符串s中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。 例如,若输入"abc4EFg",则应输出"aBc4EFg"。 functiony=fun20(s) functiony=fun1(str) n=length(str); fori=1: n ifrem(i,2)==0 s(i)=str(i); else s(i)=upper(str(i)); end end fprintf('%s\n',s) >>clearall str=input('输入一个字符串: ','s'); fun1(str) 输入一个字符串: ahebgurt AhEbGuRt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 程序设计 cx2 完整版
![提示](https://static.bdocx.com/images/bang_tan.gif)