实验4函数文件

合集下载

C++语言程序设计实验4(类和对象)

C++语言程序设计实验4(类和对象)

是:用初始对象的每个数据成员的值,初始化将要建立的对象的对应数据成员。
构造函数和拷贝构造函数的声明格式如下:
class 类名
{
public: 类名(形参); 类名(类名 &对象名);
//构造函数 //拷贝构造函数
... ...
}; 类名::类名()
//构造函数的实现
{ 函数体;
} 类名::类名(类名 &对象名)
6. 本章小结
本章主要介绍了面向对象的基本概念、类和对象的声明、构造函数、析构函数、内联成 员函数、拷贝构造函数、类的组合。
类是面向对象程序设计中最重要、最基本的概念,也是学习面向对象方法时遇到的第 1 个难点。类是对逻辑上相关的函数和数据的封装,是对问题的抽象描述。
要理解类与对象,必须要结合实例来学习,读者可以思考:除了书中列出的例子,现实 世 界 中 还 有 哪 些 有 形 或 无 形 的 事 务 可 以 被 抽 象 为 程 序 中 的 类 ,每 个 类 又 存 在 哪 些 对 象( 实 体 )。 这样可以对类的概念了解的快一些。
本章开始的每章的最后有一个实例——人员信息管理程序,这个例子贯穿后续各章,利 用每章介绍的只是不断丰富程序的功能,建议课后仔细阅读、体会,并尝试修改、补充程序 的功能。
另外,本章中还介绍了利用 UML 语言表示类与对象的方法,以后各章还将进一步介绍 用 UML 语言表示类之间的关系,但这远不是 UML 语言的全部,这方面的内容也不是初学者 学习的重点,读者可以不必深究,了解一下就可以了。如果有需要,可以另外学习软件工程 的课程。
面向对象的程序设计目的是:实现软件设计的产业化。主要观点是认为自然界是由实体 (对象)所组成。程序设计的出发点是:使用面向对象的观点来描述模仿并处理现实问题。 他要求:高度概括、分类、抽象。

《C语言程序设计》实验四

《C语言程序设计》实验四

电子科技大学计算机学院标准实验报告(实验)课程名称C语言程序设计电子科技大学教务处制表电子科技大学实验报告四学生姓名:学号:指导教师:王瑞锦实验地点:实验日期:年月日一、实验室名称:软件实验室二、实验项目名称:函数的应用及预处理三、实验学时:2四、实验原理:使用Turbo C软件(简称TC),在微型计算机上,对其程序进行编辑、编译、连接与运行。

Turbo C是一个集成环境,它具有方便、直观、易用的界面和丰富的库函数。

通过上机练习掌握在TC环境下编辑、编译、连接、和运行C程序的方法和过程。

五、实验目的1.掌握C语言中定义函数的方法;2.掌握函数传值调用的方法;3.掌握函数传址调用的方法;4.掌握递归函数的设计方法;5.掌握命令行参数的使用方法;6.掌握函数在不同文件中的编译、链接方法。

六、实验内容编程实验,完成以下上机内容,调试运行程序并完成报告1)、教材第七章习题7.4;2)、编写一个实现冒泡法排序的函数,并在主函数中从键盘上输入6个数后进行排序输出;3)、教材第七章习题7.11;4)、教材第七章习题7.15;5)、教材第七章习题7.24;6)、求解汉渃塔(tower of Hanoi)问题。

在一块平板上立有3根立柱,从左到右分别标记为A,B,C。

最初在A柱上放有6个大小不等的圆盘,并且大盘在下面,小盘在上面。

要求将这些盘从A移到C(可以借助B柱)。

条件是:每次只能移动一个盘,并且不允许把大盘放在小盘的上面。

(提示:利用函数的递归调用);七、实验器材(设备、元器件):pc硬件要求:CPU PII 以上,64M 内存,1OOM 硬盘空间即可。

软件要求:DOS3.0以上/Windows98/Me/XP/NT/2000。

八、实验步骤:实验编程与运行结果⑴编写一个求两个整数的最小公倍数的函数,两个整数由键盘输入,用主函数调用这个函数,并输出结果。

程序文件名为7_4.c,源程序清单如下:#include<stdio.h>lcd(int a,int b){int temp,num1,num2;num1=a;num2=b;while(num2!=0){temp=num1%num2;num1=num2;num2=temp;}return(a*b/num1);}main(){int t,x,y;printf("Please input two integers:");scanf("%d,%d",&x,&y);if(x>y){t=x;x=y;y=t;}printf("lcd(%d,%d)=%d\n",x,y,lcd(x,y));}运行结果:⑵编写一个实现冒泡法排序的函数,并在主函数中从键盘上输入6个数后进行排序输出。

Python程序设计实验四

Python程序设计实验四

Python程序设计实验四Python程序设计实验四实验四:Python程序设计引言:本实验主要内容是从实践出发,通过编写Python程序来学习与巩固Python程序设计的知识。

通过实验,我们将了解如何定义函数、使用条件语句与循环语句、处理异常等,并能够熟练使用Python语言进行程序设计。

具体实验内容如下:实验目的:1. 熟悉Python程序设计的基本语法和原理;2. 掌握使用Python编写函数、条件语句和循环语句的方法;3.学会处理异常和错误,增强程序的健壮性;4.提高编程能力,培养解决问题的思维。

实验内容:本实验中,我们将通过实例代码演示如何定义函数、使用条件语句与循环语句、处理异常等,具体实验内容如下:一、定义函数1.基本函数定义:我们首先会了解函数的基本定义方法,如何定义函数、传入参数和返回值等;2.函数的类型:这一部分我们会了解内置函数、匿名函数、递归函数等不同类型的函数。

二、条件语句1. if语句:我们将学习使用if语句来进行条件判断,并根据判断结果执行不同的代码;2. elif语句:在需要判断多个条件时,我们可以使用elif语句来进行连续条件判断;3. else语句:当所有条件判断都不满足时,我们可以使用else语句来执行默认的代码。

三、循环语句1. for循环:我们将学习使用for循环来遍历序列,如字符串、列表等,并执行相应的代码;2. while循环:当需要在满足一些条件时一直执行代码块时,我们可以使用while循环。

四、异常处理1. try-except语句:当我们预测到一些代码块可能会产生错误时,可以使用try-except语句来捕获并处理异常;2. finally语句:如果有代码需要被无论是否发生异常都执行的情况,可以使用finally语句。

五、实例演示本次实验中,我们将通过编写几个实例来演示如何使用函数、条件语句与循环语句等。

以一个计算器程序为例,我们将用Python编写一个简单的四则运算程序,可以实现输入两个数和运算符后进行运算,并输出结果。

实验四 基于感知函数准则线性分类器设计

实验四 基于感知函数准则线性分类器设计

实验四、基于感知函数准则线性分类器设计4.1 实验类型:设计型:线性分类器设计(感知函数准则)4.2 实验目的:本实验旨在让同学理解感知准则函数的原理,通过软件编程模拟线性分类器,理解感知函数准则的确定过程,掌握梯度下降算法求增广权向量,进一步深刻认识线性分类器。

4.3 实验条件:matlab 软件4.4 实验原理:感知准则函数是五十年代由Rosenblatt 提出的一种自学习判别函数生成方法,由于Rosenblatt 企图将其用于脑模型感知器,因此被称为感知准则函数。

其特点是随意确定的判别函数初始值,在对样本分类训练过程中逐步修正直至最终确定。

感知准则函数利用梯度下降算法求增广权向量的做法,可简单叙述为: 任意给定一向量初始值)1(a ,第k+1次迭代时的权向量)1(+k a 等于第k 次的权向量)(k a 加上被错分类的所有样本之和与k ρ的乘积。

可以证明,对于线性可分的样本集,经过有限次修正,一定可以找到一个解向量a ,即算法能在有限步内收敛。

其收敛速度的快慢取决于初始权向量)1(a 和系数k ρ。

4.5 实验内容已知有两个样本空间w1和w2,这些点对应的横纵坐标的分布情况是:x1=[1,2,4,1,5];y1=[2,1,-1,-3,-3];x2=[-2.5,-2.5,-1.5,-4,-5,-3];y2=[1,-1,5,1,-4,0];在二维空间样本分布图形如下所示:(plot(x1,y1,x2,y2))2 -6-4-20246-6-4-22464.6 实验任务:1、 用matlab 完成感知准则函数确定程序的设计。

2、 请确定sample=[(0,-3),(1,3),(-1,5),(-1,1),(0.5,6),(-3,-1),(2,-1),(0,1),(1,1),(-0.5,-0.5),( 0.5,-0.5)];属于哪个样本空间,根据数据画出分类的结果。

3、 请分析一下k ρ和)1(a 对于感知函数准则确定的影响,并确定当k ρ=1/2/3时,相应的k 的值,以及)1(a 不同时,k 值得变化情况。

matlab实验四 数据可视化方法

matlab实验四 数据可视化方法

实验四数据可视化方法[实验目的]1.掌握曲线绘制的基本技法和指令,会使用线形、色彩、数据点标记表现不同数据的特征,掌握生成和运用标识注释图形。

2.进一步掌握函数编写及数据可视化方法。

[实验原理]MATLAB 提供了相当强大的可视化指令,通过这些指令,我们可以非常简单地实现数据的可视化。

首先我们来看离散数据和离散函数的可视化方法。

对于离散实函数y n=f(x n),当x n以递增(或递减)次序取值时,根据函数关系可以求得同样数目的y n,当把这两组向量用直角坐标中的点次序图示时,就实现了离散函数的可视化。

当然这种图形上的离散序列所反映的只是某确定的有限区间内的函数关系,不能表现无限区间上的函数关系。

通常我们可以采用plot 或者stem 来实现。

只是需要注意的是使用plot 时,需要使用星号或者点等标识来表示数据点,比如plot(x n,y n,’r*’,’MarkerSize’,20),就表示用字号20的红色星点来标识数据点,此时为了便于观察,通常随后加上一条语句“grid on”,即给图形加上坐标方格。

而采用stem 标识数据点的格式是stem(x n,y n)。

连续函数的可视化与离散函数可视化类似,也必须先在一组离散自变量上计算相应的函数值,并把这一组“数据点”用点图示。

但这些离散的点不能表现函数的连续性。

为了进一步表示离散点之间的函数函数情况,MATLAB 有两种常用处理方法:一是对区间进行更细的分割,计算更多的点,去近似表现函数的连续变化;或者把两点用直线连接,近似表现两点间的(一般为非线性的)函数形状。

但要注意,倘若自变量的采样点不足够多,则无论哪种方法都不能真实地反映原函数。

对于二维数据,常用指令仍旧是plot。

对于离散数据,plot指令默认处理方法是:自动地把这些离散数据用直线(即采用线性插值)连接,使之成为连续曲线。

对于三维图形的表示,通常有plot3 等指令。

通常,绘制二维或三维图形的一般步骤如下表所示:说明:●步骤1、3 是最基本的绘图步骤,一般来说,由这两步所画出的图形已经具备足够的表现力。

实验四 函数

实验四  函数
return 0;
}
int area(int x)
{
return PI*x*x;
}
float area(float x)
{
return PI*x*x;
}
思考:
编写重载函数实现对两个整型数、三个整型数、两个实型数、三个实型数等求最小值。
5.使用内联函数计算长方形的面积。
分析:C++编译器在调用遇到内联函数的地方,会用函数体中的代码替换函数。
5、编写一个用户自定义函数,该函数有一个整数参数,函数的功能是:判断这个整数是否素数,函数的返回值为判断结果。编写一个程序,求3到100之间的所有素数。
解:
阶乘函数定义如下:
double fact(int k)
{
int p=1;
if((k==0)||(k==1))
return p;
else
{
for(int i=1;i<=k;i++)
p=p*i;
return p;
}
}
一个完整的参考程序如下:
#include <iostream.h>
double fact(int);
return p;
}
}
思考:
分别输入n=0,1,3,m=0,1,2测试程序。
试用静态存储变量设计阶乘函数。
3.编写程序,求两个自然数m和n的最大公约数和最小公倍数。
分析:
最大公约数就是能同时整除m和n的最大正整数,可用欧几里德算法(也称辗转相除法)求解。应用欧几里德算法计算两个数的最大公约数的方法是:求两个数(m、n)相除的余数r(r=m/n m>n),当余数不为零时,m取n的值,n取r的值,再求两个数相除的余数,反复进行直到余数为零,除数n是最大公约数。

实验四Hash算法和密码应用网络与信息安全实验报告

实验四Hash算法和密码应用网络与信息安全实验报告

实验四Hash算法和密码应用同组实验者实验日期成绩练习一MD5算法实验目的1理解Hash函数的计算原理和特点,2理解MD5算法原理实验人数每组2人系统环境Windows网络环境交换网络结构实验工具密码工具实验类型验证型一、实验原理详见“信息安全实验平台”,“实验4”,“练习一”。

二、实验步骤本练习主机A、B为一组,C、D为一组,E、F为一组。

首先使用“快照X”恢复Windows 系统环境。

1.MD5生成文件摘要(1)本机进入“密码工具”|“加密解密”|“MD5哈希函数”|“生成摘要”页签,在明文框中编辑文本内容:__________________________________________________________________________。

单击“生成摘要”按钮,生成文本摘要:__________________________________________________________________________。

单击“导出”按钮,将摘要导出到MD5共享文件夹(D:\Work\Encryption\MD5\)中,并通告同组主机获取摘要。

(2)单击“导入摘要”按钮,从同组主机的MD5共享文件夹中将摘要导入。

在文本框中输入同组主机编辑过的文本内容,单击“生成摘要”按钮,将新生成的摘要与导入的摘要进行比较,验证相同文本会产生相同的摘要。

(3)对同组主机编辑过的文本内容做很小的改动,再次生成摘要,与导入的摘要进行对比,验证MD5算法的抗修改性。

2.MD5算法本机进入“密码工具”|“加密解密”|“MD5哈希函数”|“演示”页签,在明文输入区输入文本(文本不能超过48个字符),单击“开始演示”,查看各模块数据及算法流程。

根据实验原理中对MD5算法的介绍,如果链接变量的值分别为(其中,M[1]=31323334):A: 2B480E7CB: DAEAB5EFC: 2E87BDD9D: 91D9BEE8请写出第2轮第1步的运算过程以及经过运算后的链接变量。

C语言_实验四、函数程序设计

C语言_实验四、函数程序设计

实验四函数一、实验目的1.掌握函数的定义、函数的说明和调用。

2.掌握函数的参数及其传递方式,函数值的正确返回。

二、实验内容1.[目的]掌握标准库函数的说明和调用方法。

[题目内容]编写一个程序,首先显示一个菜单,然后根据用户的选择,输入数据后,执行相应的操作。

[输入]用户选择和函数自变量值[输出]如下菜单:=======MENU======1.。

sin2.。

cos3.。

pow4.。

sqrt0.。

exit==================[提示]使用标准库函数、多分支选择结构。

2.[目的]掌握用户自定义函数的定义、函数的说明和调用方法。

[题目内容]编写一个用户自定义函数,该函数有一个整型参数,函数的功能是:当这个整型数的值是偶数时,函数的返回值为0,当这个整型数的值是奇数时,返回值为1 。

编写一个程序,从键盘输入任意10个整数,分别调用用户自定义函数来判断这10个整数的奇偶性。

[输入]任意10个整数[输出]这10个整数的奇偶性[提示]在主函数中使用循环结构输入10个整数。

根据子函数的返回值输出相应的判断结果信息。

3.[目的]掌握用户自定义函数的定义、函数的说明和调用方法。

[题目内容]编写一个用户自定义函数,该函数有三个整数参数,函数的功能是:求解这三个整数的最大值,函数的返回值为三个参数的最大值。

编写一个程序,从键盘输入任意5个整数,分别两次调用用户自定义函数来求出这5个整数中的最大值。

[输入]任意5个整数[输出]这5个整数的最大值[提示]先用前三个整数调用函数,求出的最大值作为参数之一,再与另两个整数一起求出最大值即为所求。

4.[目的]掌握用户自定义函数的定义、函数的说明和调用方法。

[题目内容]nA表示从m各元素中抽出n个元素的排列的个数。

它的计算公式为:m)!(!n m m A n m -=。

编写一个用户自定义函数,该函数有一个整数参数,函数的功能是:求解这个整数的阶乘,函数的返回值为这个整数的阶乘。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验四 函数文件
1.定义一个函数文件,求给定复数的指数、对数、正弦和余弦,并在命令文件中调用该函数文件。

函数文件:
function [e,ln,s,c]=plural(x)
e=exp(x);
ln=log(x);
s=sin(x);
c=cos(x);
End
命令文件:
x=input('请输入一个复数:');
[e,ln,s,c]=plural(x);
e
ln
s
c
运行结果:
请输入一个复数:3+4i
e =
-13.1288 -15.2008i
ln =
1.6094 + 0.9273i
s =
3.8537 -27.0168i
c =
-27.0349 - 3.8512i
2.一物理系统可用下列方程组来表示:

⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡----g g m m N N a a m m m m 2121212111001cos 000sin 00cos 0sin 0sin cos θθ
θθ
θθ 从键盘输入m 1、m 2和θ的值,求N a a 121、、和N 2的值。

其中g 取9.8,输入
θ时以角度为单位。

函数文件:
function [a1,a2,N1,N2]=physis(m1,m2,t)
g=9.8;
A=[m1*cos(t*pi/180),-m1,-sin(t*pi/180),0;...
m1*sin(t*pi/180),0,cos(t*pi/180),0;...
0,m2,-sin(t*pi/180),0;...
0,0,-cos(t*pi/180),1];
B=[0;m1*g;0;m2*g];
x=inv(A)*B;
a1=x(1);
a2=x(2);
N1=x(3);
N2=x(4);
命令文件:
m1=input('请输入m1:');
m2=input('请输入m2:');
t=input('请输入角度t :');
[a1,a2,N1,N2]=physis(m1,m2,t);
a1
a2
N1
N2
运行结果:
请输入m1:3
请输入m2:4
请输入角度t :30
a1 =
7.2211
a2 =
2.6801
N1 =
21.4410
N2 =
57.7684
3.设f(x)=01.011.01
)3()2(4
2+++--x x ,编写一个MATLAB 函数文件fx.m ,使得调用f(x)时,x 可用矩阵代入,得出的f(x)为同阶矩阵。

函数文件:
function [f]=fx(x)
a=0.1+(x-2).^2;
b=0.01+(x-3).^4;
f=1./a+1./b;
end
命令文件:
x=input('请输入矩阵x:');
f(x)=fx(x);
disp(f(x))
运行结果:
请输入矩阵x:[1 2 3;4 5 6]
0.9716 10.9901 100.9091
1.2340 0.1724 0.0745
4.已知y=)
20()30()40(f f f + (1)当f(n)=n+10ln(n 2+5)时,求y 的值。

函数文件:
function t=fn(x)
t=x+10*log(x*x+5);
命令文件:
[t(40)]=fn(40);
[t(30)]=fn(30);
[t(20)]=fn(20);
y=t(40)/(t(30)+t(20));
Y
运行结果:
y =
0.6390
(2)当f(n)=1⨯2+2⨯3+3⨯4+…+n ⨯(n+1)时,求y 的值。

函数文件:
function f=fn2(n)
if n<=0
f=0;
else
f=fn2(n-1)+n*(n+1);
end
命令文件:
[f(40)]=fn2(40);
[f(30)]=fn2(30);
[f(20)]=fn2(20);
y=f(40)/(f(30)+f(20));
Y
运行结果:
y =
1.7662
5.假设银行利率为常数,根据公式*(1)n FV PV i =+可以计算出存款余额。

其中:FV 是存款余额;PV 是最初的存款额;i 是每个复利计算期的利率,用分数表示,如5%表示为0.05;n 是复利计算期的数量。

(1)创建MATLAB 函数future_value ,函数的三个输入参数分别是:最初的存款额,分数表示的利率和复利计算期的数量。

函数文件:
function FV=future_value(PV,i,n)
FV=PV*(1+i)^n;
end
(2)利用函数计算¥1000资金在银行中存10年,账户中应有多少存款。

假设月利率为0.5%,利息按月结算。

命令文件:
pv=input('请输入最初的存款额:');
i=input('请输入复利计算期的利息:');
n=input('请输入复利计算期的数量:');
[fv]=future_value(pv,i,n);
fv
format bank
运行结果:
请输入最初的存款额:1000
请输入复利计算期的利息:0.005
请输入复利计算期的数量:10
fv =
1051.14
6.创建函数polygon,画出任意边数的多边形。

函数将给定的边数作为仅有的输入变量,没有输出变量,能够在极坐标系中画出所要求的多边形。

函数文件:
function polygon(n)
if n>=3
t=2*pi/n;
theta=0:t:2*pi;
rho=2*ones(size(theta));
polar(theta,rho);
else
disp('您的输入不正确!')
end
命令文件:
n=input('请输入多边形的边数:');
polygon(n)
运行结果:
7.由物理学中的著名方程2
可知,物体具有的能量E等于物体质量m乘以光
E mc
速的平方。

真空中光的传播速度是2.9979×108m/s。

(1)创建函数energy,根据物体质量(单位kg)计算物体具有的能量。

能量的单位用焦耳表示,1kg m2/s2=1J。

函数文件:
function E=energy(m)
c=2.9979e8;
E=m*c^2;
调用文件:
m=input('请输入物体的质量,单位为kg:');
E=energy(m);
disp(['质量为',num2str(m),'的物体具有的能量为: ',
num2str(E),'J'])
运行结果:
请输入物体的质量,单位为kg:1
质量为1的物体具有的能量为:89874044100000000J
(2)利用函数计算质量为1kg到106kg的物体所具有的能量。

用函数logspace创建物体质量的矢量,函数语法可参考help/logspace。

调用命令:
m=logspace(0,6,10); %生成10的0次方到10的6次方之间按对数等分
的6个元素的行向量
E=energy(m);
E
运行结果:
E =
1.0e+022 *
0.0000 0.0000 0.0002 0.0009 0.0042
0.0194 0.0899 0.4172 1.9363 8.9874
(3)将计算结果绘图。

对比几种对数坐标作图方法(如semilogy、semilogx和loglog),比较哪种图形效果最好。

命令文件:
m=logspace(0,6,10);
E =energy(m);
subplot(2,2,1);
semilogx(m,E);
title('semilogx(m,E)');
grid on;
subplot(2,2,2);
semilogy(m,E);
title('semilogy(m,E)');
subplot(2,2,[3,4]);
loglog(m,E);
title('loglog(m,E)')
运行结果:
在全对数坐标系中是线性的递增的。

相关文档
最新文档