实验7-2-函数调用
实验7-2 函数(二) 1 【实验目的】 (1)掌握函数的嵌套调用的方法 (2)掌握函数的递归调用的方法 (3)掌握全局变量和局部变量的概念和用法 【实验要求】 (1)熟练掌握函数的嵌套调用的方法 (2)熟练掌握函数的递归调用的方法 【实验环境】 (1) Microsoft XP操作系统 (2) Microsoft VC++ 6.0 【实验内容】 1、素数https://www.wendangku.net/doc/eb10452477.html,/acmhome/problemdetail.do?&method=showdetail&id=1098描述:输出100->200之间的素数的个数,以及所有的素数。 输入:无 输出:100->200之间的素数的个数,以及所有的素数。 样例输入:无 样例输出:
21 101 103 ... 197 199 2、字符串逆序https://www.wendangku.net/doc/eb10452477.html,/JudgeOnline/problem.php?id=1499 题目描述:写一函数,使输入的一个字符串按反序存放,在主函数中输入输出反序后的字符串。 输入:一行字符 输出:逆序后的字符串 样例输入:123456abcdef 样例输出:fedcba654321 3、字符串拼接https://www.wendangku.net/doc/eb10452477.html,/JudgeOnline/problem.php?id=1500 题目描述:写一函数,将两个字符串连接 输入:两行字符串 输出:链接后的字符串 样例输入: 123 abc 样例输出 123abc 4、输出元音https://www.wendangku.net/doc/eb10452477.html,/JudgeOnline/problem.php?id=1501
(完整版)Matlab实验7图形绘制
实验7:图形绘制 一、实验目的 1、 掌握绘制二维图形的常用函数。 2、 掌握绘制三维图形的常用函数。 3、 掌握绘制图形的辅助操作。 二、实验内容 1、 已知2*13),2cos(2,12 y y y x y x y ===,完成下列操作: (1) 在同一坐标系下用不同的颜色和线型绘制三条曲线。 %homework_7_1_1.m x=0:pi/100:2*pi; y1=x.*x; y2=cos(2*x); y3=y1.*y2; plot(x,y1,'r--',x,y2,'k:',x,y3,'b-.'); (2) 以子图形式绘制三条曲线。 %homework_7_1_2.m x=0:pi/100:2*pi; y1=x.*x; y2=cos(2*x); y3=y1.*y2; subplot(2, 2, 1); plot(x,y1,'r--'); subplot(2, 2, 2); plot(x,y2,'k:'); subplot(2, 2, 3); plot(x,y3,'b-.'); (3) 分别用条形图、阶梯图、杆图和填充图绘制三条曲线。 %homework_7_1_3.m %ì?D?í??¢?×ìYí??¢??í?oíì?3?í? x=0:pi/100:2*pi; y1=x.*x; y2=cos(2*x); y3=y1.*y2; %μúò?DD subplot(4, 3, 1); bar(x,y1,'r'); subplot(4, 3, 2); bar(x,y2,'k'); subplot(4, 3, 3); bar(x,y3,'b'); %μú?tDD
stairs(x,y1,'r'); subplot(4, 3, 5); stairs(x,y2,'k'); subplot(4, 3, 6); stairs(x,y3,'b'); %μúèyDD subplot(4, 3, 7); stem(x,y1,'r'); subplot(4, 3, 8); stem(x,y2,'k'); subplot(4, 3, 9); stem(x,y3,'b'); %μú??DD subplot(4, 3, 10); fill(x,y1,'r'); subplot(4, 3, 11); fill(x,y2,'k'); subplot(4, 3, 12); fill(x,y3,'b'); 2、 绘制极坐标曲线)sin(θρn b a +=,并分析参数a ,b ,n 对曲线形状的影响。 %homework_7_2.m function homework_7_2(a,b,n) theta=0:0.01:2*pi; rho=a.*sin(b+n.*theta); polar(theta,rho,'k'); %homework_7_2_tiao.m % a μ?ó°?ì subplot(3, 4, 1); homework_7_2(1,1,1) subplot(3, 4, 2); homework_7_2(2,1,1) subplot(3, 4, 3); homework_7_2(3,1,1) subplot(3, 4, 4); homework_7_2(4,1,1) % b μ?ó°?ì subplot(3, 4, 1); homework_7_2(1,1,1) subplot(3, 4, 2); homework_7_2(1,2,1) subplot(3, 4, 3); homework_7_2(1,3,1)
数学实验七: 遗传算法 实验报告
实验七遗传算法 1.用Matlab编制另一个主程序Genetic2.m,求例1的在第二种终止条件下的最优解. 提示:一个可能的函数调用形式以及相应的结果为: [Count,Result,BestMember]=Genetic2(22,6,'-x*x+2*x+0.5',-1,2,-2,0.01,0.00001) % 附录1 Genetic2.m function [Count,Result,BestMember]=Genetic2(MumberLength,MemberNumber,FunctionFitness,MinX,M axX,Fmin,MutationProbability,Precision) Population=PopulationInitialize(MumberLength,MemberNumber); Error=Precision+1; global Count; global CurrentBest; Count=1; PopulationCode=Population; PopulationFitness=Fitness(PopulationCode,FunctionFitness,MinX,MaxX,MumberLength); %用于计算群体中每一个染色体的目标函数值 PopulationFitnessF=FitnessF(PopulationFitness,Fmin); %用于计算每个染色体的适应函数值 PopulationProbability=Probability(PopulationFitnessF); %用于计算群体中每个染色体的入选概率 [Population,CurrentBest,EachGenMaxFitness]=Elitist(PopulationCode,PopulationFitness ,MumberLength); %用到最佳个体保存方法(“优胜劣汰”思想) EachMaxFitness(Count)=EachGenMaxFitness; MaxFitness(Count)=CurrentBest(length(CurrentBest)); while Error>Precision NewPopulation=Select(Population,PopulationProbability,MemberNumber); Population=NewPopulation; NewPopulation=Crossing(Population,FunctionFitness,MinX,MaxX,MumberLength); Population=NewPopulation; NewPopulation=Mutation(Population,MutationProbability); Population=NewPopulation; PopulationFitness=Fitness(Population,FunctionFitness,MinX,MaxX,MumberLength); PopulationFitnessF=FitnessF(PopulationFitness,Fmin); PopulationProbability=Probability(PopulationFitnessF); Count=Count+1; [NewPopulation,CurrentBest,EachGenMaxFitness]=Elitist(Population,PopulationFitness, MumberLength); EachMaxFitness(Count)=EachGenMaxFitness; MaxFitness(Count)=CurrentBest(length(CurrentBest)); Error=sum(abs(PopulationProbability-mean(PopulationProbability)));
《数学实验》实验指导书
《数学实验》实验指导书 2012-4-12
目录 实验一MATLAB基础 (1) 实验二曲线与曲面 (8) 实验三极限、导数和积分 (15) 实验四无穷级数 (22) 实验五微分方程 (25) 实验六线性代数 (27) 实验七概率论与数理统计 (31) 实验八代数方程与最优化问题 (32) 实验九数据拟合 (34) 实验十综合性实验 (36)
实验一MATLAB基础 【实验目的】 1. 熟悉启动和退出MATLAB的方法,及MATLAB工作窗口的组成; 2. 掌握建立矩阵的方法; 3. 掌握MATLAB的语言特点、基本功能; 4. 掌握MATLAB的文件创建、运行及保存方法; 5. 掌握MATLAB的符号运算; 6. 掌握MATLAB的平面绘图命令及辅助操作; 7. 掌握MATLAB的常用函数及命令; 8. 掌握MATLAB选择结构和循环结构程序设计。 【实验内容】 1. 熟悉MATLAB的工作界面及运行环境,熟悉MATLAB的基本操作。 2. 已知 ? ? ? ? ? ?? ? ? ? ? ? - - - -= 13 2 3 1 5 11 2 2 2 3 15 9 2 1 2 7 A (1)求矩阵A的秩(rank) (2)求矩阵A的行列式(determinant) (3)求矩阵A的逆(inverse) (4)求矩阵A的特征值及特征向量(eigenvalue and eigenvector)。 3. 在MATLAB计算生成的图形上标出图名和最大值点坐标。 4. 求近似极限,修补图形缺口。 5. 逐段解析函数的计算和表现。本例演示削顶整流正弦半波的计算和图形绘制。 6. 建立M文件,随机产生20个数,求其中最大数和最小数。要求分别用循环结构和调用MATLAB 的max和min函数来实现。 7. 建立M文件,分别用if语句和switch语句实现以下计算,其中, c b a, , 的值从键盘输入。
实验七 函数
实验七函数(一) 1.实验目的 (1)熟悉定义函数的方法 (2)熟悉声明函数的方法 (3)熟悉调用函数时实参与形参的对应关系,以及“值传递”的方式 (4)学习对多文件的程序的编译和运行 2.实验内容 编程序并上机调试运行之 (1)写一个判别素数的函数,在主函数输入一个整数,输出是否素数的信息 本程序应当准备以下测试数据: 17,34,2,1,0。分别运行并检查结果是否正确。要求所编写的程序,主函数的位置在其他函数之前,在主函数中对其所调用的函数作声明。进行以下工作:
<1>输人自己编写的程序,编译和运行程序,分析结果 <2>将主函数的函数声明删掉,再进行编译,分析编译结果 <3>把主函数的位置改为在其他函数之后,在主函数中不含函数声明 <4>保留判别素数的函数,修改主函数,要求实现输出100~200之间的素数(2)写一个函数,将一个字符串中的元音字母复制到另一字符串,然后输出 <1>输人程序,编译和运行程序,分析结果 <2>分析函数声明中参数的写法。先后用以下两种形式
i: 函数声明中参数的写法与定义函数时的形式完全相同,如 void cpy(char s[ ],char c[ ]); ii:函数声明中参数的写法与定义函数时的形式基本相同,但省略写数组名。如: void cpy(char[ ],char[ ]) ; 分别编译和运行,分析结果。 思考形参数组为什么可以不指定数组大小。 <3>如果随便指定数组大小行不行,如: void cpy(char s[40 ],char [40]) 请分别上机试一下。 (3)输人10个学生5门课的成绩,分别用函数实现下列功能: <1>计算每个学生平均分; <2>计算每门课的平均分; <3>找出所有50个分数中最高的分数所对应的学生和课程
实验7 图及图地操作实验
实验报告七图及图的操作实验班级::学号:专业: 一、实验目的: 1、掌握图的基本概念和术语 2、掌握图的存储结构及创建算法。 3、掌握图的遍历算法(递归或非递归算法)。 二、实验容: 1、图邻接矩阵存储结构表示及基本操作算法实现 (1)邻接矩阵存储结构类定义: 自定义如下: package Ex7.Ex7_1; import Ex5.Ex5_1.Matrix; import Ex7.Triple; import java.util.List; /** * Created by 74062 on 2017/5/17. */ public class MatrixGraph { private Matrix matrix; private List vertxList; private static final int MAX_WEIGHT = 0x0000ffff; private int size; public MatrixGraph(Triple[] TripleArray, List vertxList ) { this.matrix = new Matrix(vertxList.size(),vertxList.size()); this.vertxList = vertxList; for(Triple triple:TripleArray){ insertEdge(triple); } size = vertxList.size(); } public MatrixGraph(List vertxList){ this.matrix = new Matrix(vertxList.size(),vertxList.size()); size = vertxList.size(); this.vertxList = vertxList; }
实验七 公式与函数的使用
实验七公式与函数的使用 2.1实验内容 利用公式、函数对图2-1所示的“学生成绩表”实现自动计算,统计出每个学生的总分、平均分、是否通过、等级;统计各科的最高分、最低分;统计所有学生成绩的通过率、优秀率。 要求: 1.利用函数产生学生的“是否通过”结果:平均分在60分以上计为“是”,60分以下计为“否”。 2.“等级”结果分三档:平均分在80分以上计为“优秀”,60-80之间为“合格”,60分以下为“不合格”。 3.“通过率”是计算“是否通过”结果为“是”的学生占总人数的百分比。 4.“优秀率”是计算“等级”为“优秀”的的学生占总人数的百分比。 图2-1 学生成绩表 2.2 实验目的 熟练掌握工作表中公式、常用函数的使用。 熟练掌握公式的复制操作。 2.3 实验步骤 2.3.1新建工作薄,建立工作表 启动Excel2003后,在新工作簿的Sheet1中建立如图2-1所示的学生成绩表。在相应的单元格中输入数据。 2.3.2使用公式计算总分 在H3单元格中输入公式“=SUM(D3:G3)”, 按下Enter键或单击确定按钮,计算出第1个学生的总分。 当然,也可输入公式“=D3+E3+F3+G3”,或者使用“自动求和”。
利用“填充柄”复制公式到H3:H12,计算出其他学生的总分。 2.3.3使用函数计算平均分 1.使用“函数向导”输入函数 ①选定单元格I3,单击“插入”菜单 “函数”命令,或者单击工具栏上的“插入函数”按纽,屏幕显示“粘贴函数”对话框,如图2-2所示。 ②在“选择函数”列表框中选择函数“AVERAGE”,单击“确定”。 ③在弹出的“函数参数”对话框中,如图2-3所示, 单击“Number1”右侧的箭头,用鼠标在工作表中选定区域D3:G3,单击“确定”,计算结果显示在单元格中。 图2-2 “插入函数”对话框 图2-3 “函数参数”对话框 2.使用“自动求和”命令按钮输入函数 ①选定单元格I3,按下键盘上的Delete键,先删除单元格中的内容;再单击自动求和按钮右侧的向下箭头,弹出“常用函数”菜单。 ②选择“平均值”,会自动填充函数并用闪动的边框围住被选择的区域,再用鼠标选定
C语言程序实验七 函数
实验七函数 实验目的与要求: 1、掌握函数的定义方法和调用规则。 2、掌握在C语言程序中主调函数和被调用函数之间进行数据传递的规则。 3、了解函数的返回值及其类型,并正确使用它。 4、理解宏的概念,掌握定义无参宏和带参宏的方法。了解文件包含的概念,掌握其用法。实验内容: 实验6-1:1 int prime(int n) 实验6-2:1 x/1000%10 实验6-1:2 (0) 实验6-2:2 0 实验6-1:3 (1) 实验6-2:3 huiwen( x) 实验6-1程序运行结果: 实验6-2程序运行结果: 附实验:6-1的代码: #include int prime(int n); //函数的声明 void main() { int n; printf("请输入一个正整数n:"); scanf("%d",&n); if(prime(n)) printf("%d是素数\n",n); else printf("%d是非素数\n",n); } int prime(int n) { int i; for(i=2;i
int huiwen(int x) { int ge,shi,qian,wan; wan=x/10000; qian=x/1000%10; //分解出千位上的数 shi=x%100/10; ge=x%10; if(ge==wan&&shi==qian) return 1; return 0; //不满足回文数的条件返回一个值 } void main() { int x; printf("\n输入一个五位整数:"); scanf("%d ",&x); if(huiwen( x)) printf("yes!\n"); //调用函数huiwen()来判断是否是回文数 else printf("no\n"); } 2 程序代码: #include int fun(int x) { if(x%3==0&&(x%10==4||x/10==4||x==44)) return(1); return(0); } void main() { int i; for(i=10;i<=99;i++) if(fun(i)) printf("%d ",i); printf("\n"); } 程序运行结果: 附实验6-4代码: #include int fun(int x) { x%3==0; x%10==4||x/10==4||x==4 } void main()
实验七 图形、文本和位图
实验七图形、文本和位图 一实验内容 练习第7章的例Ex_Draw,Ex_Icon,Ex_Cursor 二实验步骤 例Ex_Draw课程的成绩分布直方图 1.创建工作文件夹Ex_Draw 2.在View类中添加一个成员函数DrawScore,用于根据成绩来绘制直方图,该函数代码 如下: void CEx_DrawView::DrawScore(CDC *pDC, float *fScore, int nNum) { int nScoreNum[]={0,0,0,0,0}; for(int i=0;iSelectObject(&brush1); CPen *oldPen=pDC->SelectObject(&pen); CRect rcSeg(rc); rcSeg.right=rcSeg.left+nSegWidth; CString strSeg[]={"<60","60-70","70-80","80-90",">=90"); CRect rcStr; for(i=0;i数学软件实验报告实验七
数学软件实验报告 学院名称:理学院专业年级: 姓名:学号: 课程:数学软件实验报告日期:2014年12月6日 实验七SIMULINK建模与工具箱的使用 一.实验目的 MATLAB 具有丰富的可用于各种专业方向的工具箱,这些工具箱已经形成了MATLAB 的系列产品。特别是动态仿真建模工具箱,更是成为许多工具箱的基础。本次实验的目的就是要使大家了解MA TLAB工具箱使用的基本方法,以及如何查询工具箱,主要掌握系统优化工具箱的使用和系统动态仿真建模工具箱的使用。 二.实验要求 MATLAB系统的工具箱十分的丰富,并且随着版本的不断升级,其工具箱还在不断地增加。通过本次实验,要求了解MA TLAB系统工具箱的分类与查询,会使用系统优化工具箱解决一些实际问题。能建立系统仿真方框图,并进行系统仿真模拟。 三.实验内容 最优化工具箱 非线性最小化函数 fgoalattain 多目标达到优化 constr 有约束最小化 fminbnd 有边界最小化 fminunc使用梯度法的无约束最小化 fminsearch 使用简单法的无约束最小化 fzero 非线性方程求解(数量情况) fsolve 非线性方程求解 lsqnonlin 非线性最小二乘 fminimax 最小的最大解 fseminf 半无穷区间最小化 2.矩阵问题的最小化 linprog 线性规划
quadprog 二次规划 lsqnonneg 非负线性最小二乘 lsqlin 约束线性最小二乘 第十章 10.1线性优化 >> f=[-5 4 2]; >> a=[6 -1 1;1 2 4]; >> b=[8 10]; >> 1b=[-1 0 0]; >> ib=[-1 0 0]; >> ub=[3 2]; >> [x,fval,exitflag,output,lambda]=linprog(f,a,b,[],[],ib,ub) Optimization terminated. x = 1.3333 0.0000 0.0000 fval = -6.6667 exitflag = 1 output = iterations: 7 algorithm: 'large-scale: interior point' cgiterations: 0 message: 'Optimization terminated.' constrviolation: 0 lambda = ineqlin: [2x1 double]
实验7 编写函数过程实现数制转换
实验7 编写函数过程实现数制转换 实验目的: 1、掌握通用子过程的定义和调用方法; 2、掌握函数过程的定义和调用方法; 3、了解传值和传地址的区别。 实验内容: 1、实验要求 编写并调用函数或子过程,能实现不同进制数据之间的相互转换。 2、分析设计 从键盘输入待转换的数据,将转换结果显示在文本框中。 5、源代码 Dim x%, y% Private Sub Command1_Click() x = Val(Text1) If Text1 = "" Then MsgBox "请先输入一个十进制数!" Text1.SetFocus
Exit Sub End If If Option1 = False And Option2 = False And Option3 = False Then MsgBox "请选择进制" Exit Sub End If If Option1.Value = True Then y = 2 ElseIf Option2.Value = True Then y = 8 ElseIf Option3.Value = True Then y = 16 End If Text2 = convert(x, y) End Sub Private Sub Form_Load() Text1.Text = "" Text2 = "" Option1.Value = False Option2.Value = False Option3.Value = False End Sub Public Function convert(ByVal a%, ByVal b%) As String Dim str$, temp% str = "" Do While a <> 0 temp = a Mod b a = a \ b If temp >= 10 Then str = Chr(temp - 10 + 65) & str Else str = temp & str End If Loop convert = str End Function 实验思考: 在本实验基础上,实现各种进制之间的相互转换。
单片机实验7
实验七直流数字电压表设计 姓名:田坤学号:2 专业:电子信息科学与技术 1.实验目的: 掌握LED动态显示和A/D 转换接口设计方法。 2.实验原理: 实验电路原理图如图A..94所示。图中显示器采用4位共阴极数码管,并按动态显示方式接线。A/D转换结束标志采用查询法检查,启动信号由软件模拟产生,时钟信号由Proteus的DClock信号发生器产生,频率为5kHz。电位器的输出电压送到A/D转换器中转换,转换结果以十进制形式显示在数码管上。调节电位器可使数码管的显示值发生相应变化。 图实验7的电路原理图 3.实验内容: # (1)、学习使用Proteus软件,掌握原理图绘图方法; (2)、学习使用Keil C软件,掌握C51程序编写与调试方法;(3)、理解动态显示与A/D转换工作原理,完成单片机电压采集与显示程序的编写与调试。 4.实验步骤: (1)、在Proteus中绘制电路原理图,按照表将元件添加到编辑环境中; (2)、在Keil中编写C51程序,并使之编译通过;
(3)、在Proteus中加载程序,观察仿真结果。 5.实验要求: 提交的实验报告中应包括电路原理图、含注释内容的源程序及实验结果分析。 表实验7的元器件清单 # 1)源程序如下: #include <> // 头文件 #include <> unsigned int tmp; //定义一个整形中间变量 sbit START=P2^5; //定义ADC0808启动位 sbit ad_busy=P2^6; //定义ADC0808转换结束标志位 sbit OE=P2^7; //定义ADC0808输出使能标志位