实验5 函数

实验5 函数
实验要求:
使用Visual C++ 6.0开发环境,完成以下习题。

1. 编程实现:分别编写一个求三个整数最大值的函数max,和一个求三个整数最小值的函数min,然后在主函数输入三个整数的值,分别调用max和min函数求最大最小值,并输出。

源程序保存为5_1.c文件。

2. 编程实现:编写一个函数,由实参(数组传参)传来一个字符串(字符数组),统计此字符串中字母、数字(0~9)、空格和其它字符的个数,要求在主函数中输入字符串以及输出上述结果。

字符串的大小(里面所包含的字符个数)可以是固定的,亦可以是根据输入情况变化。

源程序保存为5_2.c文件。

3. 选做题:在一体育比赛中,有10个评委为参赛选手打分(分数在1~10之间),分数使用数组保存,求选手的最后得分,选手最后得分规则:去掉一个最高分和一个最低分后其余分数的平均值。

编写一个函数;(例如:函数名为:calculator)计算选手的最后得分。

在主函数中定义分数数组,并输入分数,调用自己函数计算最后得分,输出最后得分,结果保留2位小数。

源程序保存为5_3.c
实验提交要求:
1.每位同学的文件必须严格按照题目的要求对文件进行命名,否则按不提交作
业处理。

2.每位同学的作业放在一个文件夹中提交,只需提交源文件(后缀名是.c的文
件),文件夹按以下格式命名:
“班内序号_姓名_实验5”
例如:01_黄明_实验5
3.实验完成后,提交到指定服务器。

服务器地址:
ftp://fcy:fcy@10.5.1.5
请提交到服务器的“作业→高级语言程序设计(C)→实验5”文件夹中以各自
班级名称命名的文件夹内。

(请认清楚班级名称提交,切勿提交到其他班的文件夹中。

)。

合集下载

MATLAB(实验五)

MATLAB(实验五)

实验五1、 编写程序,该程序在同一窗口中绘制函数在[]0,2π之间的正弦曲线和余弦曲线,步长为200/π,线宽为 2 个象素,正弦曲线设置为蓝色实线,余弦曲线颜色设置为红色虚线,两条曲线交点处,用红色星号标记,并通过函数方式在生成的图形中添加注释,至少应包括:标题,文本注释,图例和坐标轴标注。

x=0:pi/200:2*pi;sinx = sin(x); cosx = cos(x);k=find(abs(sinx-cosx)<1e-2); x1=x(k);figure,plot(x,sinx,'LineWidth',2) hold on ,plot(x,cosx,'r:','LineWidth',2)hold on ,plot(x(find(cosx==sinx)),cosx(find(cosx==sinx)),'r*','LineWidth',2)hold on ,plot(x1,sin(x1),'r*') xlabel('x:(0-2\pi)'); ylabel('y:sin(x)/cos(x)');title('正弦曲线和余弦曲线');text(x1+0.1,sin(x1),'sin(x)=cos(x)');gtext('sin(x)') gtext('cos(x)')legend('sin(x)','cos(x)')2、 绘制图像:双曲抛物面:22164x y z =-,1616x -<<,44y -<<,并对绘制的双曲抛物面尝试进行视点控制。

[X,Y] = meshgrid(-16:0.4:16,-4:0.1:4); Z = X.^2/16 - Y.^2/4;subplot(1,3,1),plot3(X,Y,Z),view(0,180),title('azimuth = 0,elevation = 180'); subplot(1,3,2),plot3(X,Y,Z),view(-37.5,-30),title('azimuth = -37.5,elevation = -30');subplot(1,3,3),plot3(X,Y,Z),view([3,3,2]),title('viewpoint=[3,3,1]');3、 表中列出了4个观测点的6次测量数据,将数据绘制成为分组形式和堆叠形式的条形图。

实验5__matlab自定义函数及导数应用

实验5__matlab自定义函数及导数应用

在区间 ( ,1) 与 (1, ) f ( x ) ,在区间 (1,3) f ( x ) , fmax (1) 7 fmin ( 3) 3
可建立一个名为 dandiao.m 文件,用来求函数 的单调区间。
disp('输入函数(自变量为x)'); syms x; f=input('f(x)='); df=diff(f); s=solve(df); s=eval(s) a=[]; for i=1:length(s); a(i)=s(i); end ezplot(f,[min(a)-1,max(a)+1])
grid21816141210806040215105发现在16和06附近各有一个零点我们分两个小区间分别求解fzerofun212fzerofun1201ans15956ans06180fzerofun16fzerofun06ans15956ans27656xfhfsolvefunx0返回一元或多元函数fun在x0附近的一个零点
解: 求可导函数的单调区间与极值,就是求导 函数的正负区间与正负区间的分界点。 先求导函数的零点,再画出函数图像,根据 图像可直观地看出函数的单调区间与极值。 syms x; f=x^3-6*x^2+9*x+3;df=diff(f,x);s=solve(df)
s = [ 1] [ 3]
ezplot(f,[0,4])
建立正态分布的密度函 数
( x )2 2 2
1 f ( x , , ) e 2 function y=zhengtai(x,a,b)
y=1/sqrt(2*pi)*a*exp(-(x-b)^2/2/a^2)
存为 zhengtai.m,调用时可输入命令: y=zhengtai(1,1,0) ans=0.2420

实验五(线性方程组的数值解法和非线性方程求解)

实验五(线性方程组的数值解法和非线性方程求解)

1大学数学实验 实验报告 | 2014/4/5一、 实验目的1、学习用Matlab 软件数值求解线性代数方程组,对迭代法的收敛性和解的稳定性作初步分析;2、通过实例学习用线性代数方程组解决简化问题。

二、 实验内容项目一:种群的繁殖与稳定收获:种群的数量因繁殖而增加,因自然死亡而减少,对于人工饲养的种群(比如家畜)而言,为了保证稳定的收获,各个年龄的种群数量应维持不变。

种群因雌性个体的繁殖而改变,为方便起见以下种群数量均指其中的雌性。

种群年龄记作k=1,2,…,n ,当年年龄k 的种群数量记作x k ,繁殖率记作b k (每个雌性个体1年的繁殖的数量),自然存活率记作s k (s k =1−d k ,d k 为1年的死亡率),收获量记作ℎk ,则来年年龄k 的种群数量x ̌k 应该为x ̌k =∑b k n k=1x k , x ̌k+1=s k x k −ℎk , (k=1,2,…,n -1)。

要求各个年龄的种群数量每年维持不变就是要求使得x ̌k =x k , (k=1,2,…,n -1).(1) 如果b k , s k 已知,给定收获量ℎk ,建立求各个年龄的稳定种群数量x k 的模型(用矩阵、向量表示).(2) 设n =5,b 1=b 2=b 5=0,b 3=5,b 4=3,s 1=s 4=0.4,s 2=s 3=0.6,如要求ℎ1~ℎ5为500,400,200,100,100,求x 1~x 5.(3) 要使ℎ1~ℎ5均为500,如何达到?问题分析:该问题属于简单的种群数量增长模型,在一定的条件(存活率,繁殖率等)下为使各年龄阶段的种群数量保持不变,各个年龄段的种群数量将会满足一定的要求,只要找到种群数量与各个参量之间的关系,建立起种群数量恒定的方程就可以求解出各年龄阶段的种群数量。

模型建立:根据题目中的信息,令x ̌k =x k ,得到方程组如下:{x ̌1=∑b k nk=1x k =x 1x ̌k+1=s k x k −ℎk =x k+1整理得到:{−x 1∑b k nk=1x k =0−x k+1+s k x k =ℎk2 大学数学实验 实验报告 | 2014/4/52写成系数矩阵的形式如下:A =[b 1−1b 2b 3s 1−100s 2−1…b n−1b n0000⋮⋱⋮000000000⋯00−10s n−1−1]令h =[0, ℎ1,ℎ2,ℎ3,…,ℎn−2,ℎn−1]Tx =[x n , x n−1,…,x 1]T则方程组化为矩阵形式:Ax =h ,即为所求模型。

2019年MATLAB)课后实验答案

2019年MATLAB)课后实验答案

实验一 MATLAB 运算基础1. 先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。

(1) 0122sin 851z e =+(2) 21ln(2z x =,其中2120.455i x +⎡⎤=⎢⎥-⎣⎦ (3) 0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022a a e e az a a --+=++=--(4) 2242011122123t t z t t t t t ⎧≤<⎪=-≤<⎨⎪-+≤<⎩,其中t =0:: 解:4. 完成下列操作:(1) 求[100,999]之间能被21整除的数的个数。

(2) 建立一个字符串向量,删除其中的大写字母。

解:(1) 结果:(2). 建立一个字符串向量例如:ch='ABC123d4e56Fg9';则要求结果是:实验二 MATLAB 矩阵分析与处理1. 设有分块矩阵33322322E R A O S ⨯⨯⨯⨯⎡⎤=⎢⎥⎣⎦,其中E 、R 、O 、S 分别为单位矩阵、随机矩阵、零矩阵和对角阵,试通过数值计算验证22E R RS A O S +⎡⎤=⎢⎥⎣⎦。

解: M 文件如下;5. 下面是一个线性方程组:1231112340.951110.673450.52111456x x x ⎡⎤⎢⎥⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎢⎥⎢⎥⎣⎦(1) 求方程的解。

(2) 将方程右边向量元素b 3改为再求解,并比较b 3的变化和解的相对变化。

(3) 计算系数矩阵A 的条件数并分析结论。

解: M 文件如下:123d4e56g9实验三 选择结构程序设计1. 求分段函数的值。

2226035605231x x x x y x x x x x x x ⎧+-<≠-⎪=-+≤<≠≠⎨⎪--⎩且且及其他用if 语句实现,分别输出x=,,,,,,时的y 值。

MATLAB)课后实验答案

MATLAB)课后实验答案

实验一 MATLAB 运算基础1、 先求下列表达式得值,然后显示MATLAB 工作空间得使用情况并保存全部变量。

(1) 0122sin 851z e =+(2) 21ln(2z x =+,其中2120.455i x +⎡⎤=⎢⎥-⎣⎦ (3) 0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022a a e e a z a a --+=++=--L (4) 2242011122123t t z t t t t t ⎧≤<⎪=-≤<⎨⎪-+≤<⎩,其中t =0:0、5:2、5 解:4、 完成下列操作:(1) 求[100,999]之间能被21整除得数得个数。

(2) 建立一个字符串向量,删除其中得大写字母。

解:(1) 结果:(2)、 建立一个字符串向量 例如:ch='ABC123d4e56Fg9';则要求结果就是:实验二 MATLAB 矩阵分析与处理1、 设有分块矩阵33322322E R A O S ⨯⨯⨯⨯⎡⎤=⎢⎥⎣⎦,其中E 、R 、O 、S 分别为单位矩阵、随机矩阵、零矩阵与对角阵,试通过数值计算验证22E R RS A OS +⎡⎤=⎢⎥⎣⎦。

解: M 文件如下;5、 下面就是一个线性方程组:1231112340.951110.673450.52111456x x x ⎡⎤⎢⎥⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎢⎥⎢⎥⎣⎦(1) 求方程得解。

(2) 将方程右边向量元素b 3改为0、53再求解,并比较b 3得变化与解得相对变化。

(3) 计算系数矩阵A 得条件数并分析结论。

解: M 文件如下:实验三 选择结构程序设计1、 求分段函数得值。

2226035605231x x x x y x x x x x x x ⎧+-<≠-⎪=-+≤<≠≠⎨⎪--⎩且且及其他用if 语句实现,分别输出x=-5、0,-3、0,1、0,2、0,2、5,3、0,5、0时得y 值。

实验五:遗传算法求解函数最值问题实验

实验五:遗传算法求解函数最值问题实验
//适应度巒数』为避免负值.把目标函数加Y正数
EJdoublefitness(constCh^crrcscrcRc)
{
doublek,y;
decode(cx# y);
retiurnf(x, y)+5;
2•交叉操作
首先是根据交叉概率probCross选择要交叉的个体进行交叉
//根据交叉槪率进行交叉
for(inti=pre = -1;i<N; i++)
//根据变异概率迸行变异
for (inti=0;i<N; i++)
if(randQm61() < probMutation)
mutate(group[i]);
变异时先随机生成变异的位置,然后把改位的01值翻转。
//变异操作
Hvoidmutate(ChrcfnosomeS c)
{
//随机选行翻转
inti-rand()%len; c-g[i] =
//骑越
boolflag-令;
for(inti = j=0; i<1.亡n;i++)
swap(d.g[l]Jc2.g[i]);
if(i== crosspcint[j])
//妇杲若干个交叉点重合”则效果叠加 "偃数个交叉点效果瑁当于没有交叉点while(j<
flag = [flag;
3.变异操作
首先是根据变异概率probMutation选择要变异的个体
经过一定的进化之后得到最终种群,从中选择最优的个体即可得
到最终的结果。
//获取种群最优你
-intgetOptimal(Ch^crescr:-oup[mxn]doubled—double&』doubled\)

实验训练5:存储过程与函数的构建与使用

实验训练5:存储过程与函数的构建与使用一、存储过程与函数的概念存储过程和函数都是数据库中的可执行代码,可以被多次调用和重复使用。

存储过程是一组预定义的SQL语句集合,可以在数据库中定义和存储。

而函数是一个独立的代码块,它接收输入参数并返回一个值。

二、存储过程的构建与使用1. 创建存储过程在MySQL中,创建存储过程需要使用CREATE PROCEDURE语句。

例如:CREATE PROCEDURE myproc()BEGINSELECT * FROM mytable;END;这个例子创建了一个名为myproc的存储过程,它会查询mytable表中的所有数据。

2. 调用存储过程使用CALL语句可以调用已经创建好的存储过程。

例如:CALL myproc();这个语句会执行myproc存储过程中定义的SQL语句。

3. 存储过程参数我们可以给存储过程添加参数来使其更加灵活。

例如:CREATE PROCEDURE myproc(IN p1 INT, IN p2 VARCHAR(50)) BEGINSELECT * FROM mytable WHERE column1 = p1 AND column2 = p2;END;这个例子创建了一个带有两个输入参数p1和p2的存储过程,它会查询mytable表中column1等于p1并且column2等于p2的数据。

4. 存储过程变量除了参数之外,存储过程还可以使用变量来存储中间结果。

例如:CREATE PROCEDURE myproc(IN p1 INT)BEGINDECLARE v1 INT;SET v1 = p1 * 2;SELECT * FROM mytable WHERE column1 = v1;END;这个例子创建了一个带有一个输入参数p1和一个变量v1的存储过程,它会将p1乘以2并将结果存储在v1变量中,然后查询mytable表中column1等于v1的数据。

C语言实验5-8答案(函数与数组)


任务
1.fact(j-1)*j
2.gcd(n,m%n)
m<n
3.//for(j=0;j<=n-i;j++)
//printf("");//删除这两行,因为顶格输出,不要空行了。
y==1||y==x
z=c(x-1,y-1)+c(x-1,y)
4.程序代码如下:
#include<stdio.h>
fib(int n)
#include <stdio.h>
main( )
{double fun(int m);//先调用再定义,且不是能缺省的int型,请加上函数说明。
int m;
printf("\n input m:");
scanf("%d",&m);
printf("\n t= %12.10lf \n",fun(m));
j=2
j—
i+j==2
输出为:a=13,b=14
4.i=1
x[i-1]
5.m<1000
m/10%10或m/10-x*10
a[i]=m
m<i
输出结果为:153 370 371 407
6.a
a
sum/n
x[i]<ave
任务
1.‘\0’
str1[i]-str2[i]
2.c[k]=a[i++];
c[k]=b[j++];
return yes;
}
main( )
{
int n;
scanf("%d",&n);

C语言在线实验第5次(第七章函数)-题目与答案

第五次实验题目-第七章函数教学目标31.一元二次方程的系数:a、b、c由主函数输入,编写函数求方程的根。

#include <stdio.h>#include <math.h>void root(double a, double b, double c){ double delta,x1,x2,m,n;if (fabs(a) <= 1e-6){if (fabs(b) <= 1e-6)puts("Not an equation");elseprintf("x=%.2lf",-c/b);return;}else{delta=b*b - 4*a*c;m = -b / (2*a);n = sqrt(fabs(delta)) / (2*a);x1 = m + n;x2 = m - n;if (fabs(delta) <= 1e-6)printf("x1=%.2lf, x2=%.2lf", x1, x1);else if (delta < 0)printf("x1=%.2lf+%.2lfi, x2=%.2lf-%.2lfi",m,n,m,n);elseprintf("x1=%.2lf, x2=%.2lf", x1, x2);}}int main( ){ double a,b,c;scanf("%lf%lf%lf",&a,&b,&c);root(a,b,c);return 0;}教学目标32.输入一串字符,统计其中英文字母的个数,编写统计英文字母个数的函数。

#include<stdio.h>int numberOfLetter(char str[]) {int i=0;int num = 0;//统计字母个数while (str[i]!=’\0’) {if ((str[i]>='A'&& str[i]<='Z')||( str[i]>='a'&& str[i]<='z')) num++;i++;}return num;}int main( ) {char str[100];int letterNum;printf("Enter a string: ");gets(str);letterNum = numberOfLetter(str);printf("Number of letters is %d.\n", letterNum);return 0;}教学目标33. 求100以内所有素数的和。

MATLAB程序设计与应用课后实验答案

A+6.*B
A-B+eye(3)
A*B
A.*B
A^3
A.^3
A/B
B\A
[A,B]
[A([1,3],:);B^2]
运算结果:
A=[12 34 -4;34 7 87;3 65 7];B=[1 3 -1;2 0 3;3 -2 7];
A+6.*B
A-B+eye(3)
A*B
A.*B
A^3
A.^3
A/B
B\A
0 0 0 0
ans =
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
由ans,所以
2. 产生5阶希尔伯特矩阵H和5阶帕斯卡矩阵P,且求其行列式的值Hh和Hp以及它们的条件数Th和Tp,判断哪个矩阵性能更好。为什么?
解:M文件如下:
输出结果:
H =
P =
1 1 1 1 1
Columns 57 through 60
Column 61
z4 =
0 0
2. 已知:
求下列表达式的值:
(1) A+6*B和A-B+I(其中I为单位矩阵)
(2) A*B和A.*B
(3) A^3和A.^3
(4) A/B及B\A
(5) [A,B]和[A([1,3],:);B^2]
解:
M文件:
A=[12 34 -4;34 7 87;3 65 7];B=[1 3 -1;2 0 3;3 -2 7];
实验四 循环结构程序设计
一、实验目的
1. 掌握利用for语句实现循环结构的方法。
2. 掌握利用while语句实现循环结构的方法。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档