文档库 最新最全的文档下载
当前位置:文档库 › 实验二MAPLE的函数

实验二MAPLE的函数

实验二MAPLE的函数
实验二MAPLE的函数

实验二 MAPLE 的函数、向量与矩阵

一、实验目的

1、熟悉并掌握Maple 的自定义函数及调用。

2、熟习并掌握Maple 的向量运算。

3、熟悉并掌握Maple 的矩阵运算 二、实验内容

在MAPLE 上求解下题:

1、设5

3

()258f x x x x =--,()3g x x =+,求解x =1时f (x )、g (x )、f (g (x ))的值

2、求向量u=(3,2,4)、v=(1,-1,-2)、w=(0,3,2),求u 的模,u 、v 的夹角和内外积,计算u 、v 、w 的混合积。

3、计算4

cos sin sin cos ?

???-??

?

???

4、已知223110121A ????=-????-??,111210110B -??

??=??

??-??,计算22A B -、

AB BA -、1A -。 5、求解矩阵4210437317-????-????-??

的特征值、特征向量、秩和迹。 6、求解线性方程121

232414561560

050

x x x x x x x x x +=??++=??+=??+=? >

>

>

>

>

> >

>

>

三、实验原理

1、自定义函数及调用

(1)函数定义

单/多变量函数定义:

函数名:=变量(或变量序列)->表达式

函数名:=unapply(表达式,变量)

复合函数定义:

函数名(复合函数)

(函数名@复合函数名)(变量)

(2)函数调用

在函数调用时,将形式参数换成实在参数。系统函数和用户自定义函数都被允许嵌套调用。

2、向量和矩阵

(1)函数包

在Maple提供了5个矩阵和向量的函数包linagle、LinearAlgebra等,linagle基本被LinearAlgebra取代。

linagle函数包常用的数据类型为matrix、array和vector,在计算后表达式的值不被立即计算出来,必须通过eval、print或evalm才能显示出来。

LinearAlgebra函数包常用的数据类型为Array、Matrix、Vector[Rom]、Vector[Column],运算结果立即显示出来。

(2)输入向量

方法一:对于维数较小并具有值的向量和矩阵可以直接使用尖括号构造,用“<,>”构造列向量,用“<|>”构造行向量。

方法二:V ector[类型](维数,初值,选项)

类型:row-行向量,column-列向量,缺省值为column

选项:指顶向量属性为只读型等类型

(3)向量的加减和数乘

方法一:

加减:U±V

数乘:c*U,c为常数,U、V为向量

方法二:

调用LinearAlgebra函数包中的函数计算向量U、V的线性组合c1*U+c2*V

语法:VectorAdd(U,V,c1,c2,选项)

(4)向量的内积和外积

内积:U.V 或者DotProduct(U,V)

外积:U &. V 或者CrossProduct(U,V)

(5)向量的模和角度

模:Norm(V,p)或VectorNorm(V,p),

夹角:VectorAngle(U,V),在LinearAlgebra函数包中缺省值为无穷大

3、矩阵

(1)定义矩阵

方法一:Matrix(行数,列数,初值,选项),其中选项用于定义特殊形式的矩阵。

方法二:面板输入,点击元素进行值修改。

(2)矩阵的基本运算

调用

(3)常用的矩阵函数

(4)线性方程组

利用LinearAlgebra函数包中的函数:

对于给定的矩阵A、B,函数GenerateEquations()来构造线性方程组AX=B,语法:GenerateEquations(A,变量列表,B)

对于给定的线性方程组,函数GenerateMatrix()可以提取方程组的系数矩阵,将方程组转化为矩阵乘积AX=B

的形式,语法:GenerateMatrix(方程组,变量列表)

利用LinearAlgebra 函数包中的函数求解线性方程组的解。

eg :求解线性方程组1111234234

234234232633325323334

x x x x x x x x x x x x x x x x -++=??-++=??--+=??-+-=?

四、实验报告要求

1.按教务处印发的标准的计算机实验报告格式填写实验报告 (1)字迹工整,内容属实规范;

(2)报告不得打印或复印,也不得抄袭或有雷同。

2.避免纯粹的抄写源程序,应适当地填写一些调试情况以及问题的产生原因和处理办法;

3.设计感想可包括你对本次实验的收获、启示以及不足和希望。

Maple基础

1 初识计算机代数系统Maple 1.1 Maple简说 1980年9月, 加拿大Waterloo大学的符号计算机研究小组成立, 开始了符号计算在计算机上实现的研究项目, 数学软件Maple是这个项目的产品. 目前, 这仍是一个正在研究的项目. Maple的第一个商业版本是1985年出版的. 随后几经更新, 到1992年, Windows系统下的Maple 2面世后, Maple被广泛地使用, 得到越来越多的用户. 特别是1994年, Maple 3出版后, 兴起了Maple热. 1996年初, Maple 4问世, 1998年初, Maple 5正式发行. 目前广泛流行的是Maple 7以及2002年5月面市的Maple 8. Maple是一个具有强大符号运算能力、数值计算能力、图形处理能力的交互式计算机代数系统(Computer Algebra System). 它可以借助键盘和显示器代替原来的笔和纸进行各种科学计算、数学推理、猜想的证明以及智能化文字处理. Maple这个超强数学工具不仅适合数学家、物理学家、工程师, 还适合化学家、生物学家和社会学家, 总之, 它适合于所有需要科学计算的人. 1.2 Maple结构 Maple软件主要由三个部分组成: 用户界面(Iris)、代数运算器(Kernel)、外部函数库(External library). 用户界面和代数运算器是用C语言写成的, 只占整个软件的一小部分, 当系统启动时, 即被装入, 主要负责输入命令和算式的初步处理、显示结果、函数图象的显示等. 代数运算器负责输入的编译、基本的代数运算(如有理数运算、初等代数运算等)以及内存的管理. Maple的大部分数学函数和过程是用Maple 自身的语言写成的, 存于外部函数库中. 当一个函数被调用时, 在多数情况下, Maple会自动将该函数的过程调入内存, 一些不常用的函数才需要用户自己调入, 如线性代数包、统计包等, 这使得Maple在资源的利用上具有很大的优势, 只有最有用的东西才留驻 Maple可以在较小内存的计算机上正常运行. 用户可以查看Maple的非内存函数的源程序, 也可以将自己编的函数、过程加到Maple的程序库中, 或建立自己的函数库. 1.3 Maple输入输出方式 为了满足不同用户的需要, Maple可以更换输入输出格式: 从菜单“Options | Input Display和Out Display下可以选择所需的输入输出格式. Maple 7有2种输入方式: Maple语言(Maple Notation)和标准数学记法(Standard Math Notation). Maple语言是一种结构良好、方便实用的内建高级语言, 它的语法和Pascal或C有一定程度的相似, 但有很大差别. 它支持多种数据操作命令, 如函数、序列、集合、列表、数组、表, 还包含许多数据操作命令, 如类型检验、选择、组合等. 标准数学记法就是我们常用的数学语言. 启动Maple, 会出现新建文档中的“[>”提示符, 这是Maple中可执行块的标志, 在“>”后即可输入命令, 结束用“;”(显示输出结果)或者“:”(不显示输出结果). 但是, 值得注意的是, 并不是说Maple的每一行只能执行一句命令, 而是在一个完整的可执行块中健入回车之后, Maple会执行当前执行块中所有命令(可以是若干条命令或者是一段程序). 如果要输入的命令很长, 不能在一行输完, 可以换行输入, 此时换行命令用“shift+Enter”组合键, 而在最后一行加入结束标志“;”或“:”, 也可在非末行尾加符号“\”完成. Maple 7有4种输出方式: Maple语言、格式化文本(Character Notation)、固定格式记法(Typeset Notation)、标准数学记法(Standard Math Notation). 通常采用标准数学记法. Maple会认识一些输入的变量名称, 如希腊字母等. 为了使用方便, 现将希腊字母表罗列如下,输入时只需录入相应的英文,要输入大写希腊字母, 只需把英文首字母大写: 的函数或程序设计方式控制其输出方式,如下例:> for i to 10 do printf("i=%+2d and i^(1/2)=%+6.3f", i, eval(sqrt(i))); od; +2d的含义是带符号的十进位整数,域宽为2. 显然,这种输出方式不是我们想要的,为了得到更美观> for i to 10 do printf("i=%+2d and i^(1/2)=%+6.3f\n", i, eval(sqrt(i))); od; 再看下例:将输入的两个数字用特殊形式打印:> niceP:=proc(x,y) printf("value of x=%6.4f, value of y=%6.4f",x,y);

实验二

实验二C++基础实验目的 类定义;类对象使用;类成员变量、成员函数的定义和使用;观察类的组合使用;理解类的作用域;理解类的声明;理解类中 private 和 public 权限;掌握拷贝构造函数的定义和使用;掌握构造函数的重载;掌握析构函数的定义和使用;理解构造函数和析构函数的执行过程 实验过程设计.1.// 试设计一个复数类,该类有实部和虚部两个成员数据,成员数据采用私有访问权限,同时该类有两个共有成员函数,//分别用来设置成员数据和输出成员数据,//在主函数中分别采用对象方式,指针方式和引用方式来调用该类的公有函数设置和输出成员数据。 #include #include using namespace std; class Complex{ public: void Init(double x,double y ) { a=x; b=y; } double Real(){return a;}; double Image(){return b;}; private: int a; int b; }; void main() { Complex m; m.Init(3,1); cout<<"The complex is "<Init(3,1); cout<<"The complex is "<Real()<<"+"<Image()<<"i"<

Maple常用计算命令..

常用计算命令 《Maple 指令》7.0版本 第1章章数 1.1 复数 Re,Im - 返回复数型表达式的实部/虚部 abs - 绝对值函数 argument - 复数的幅角函数 conjugate - 返回共轭复数 csgn - 实数和复数表达式的符号函数 signum - 实数和复数表达式的sign 函数5 1.2 MAPLE 常数 已知的变量名称 指数常数(以自然对数为底) I - x^2 = -1 的根 infinity 无穷大 1.3 整数函数 ! - 阶乘函数 irem, iquo - 整数的余数/商 isprime - 素数测试 isqrfree - 无整数平方的因数分解 max, min - 数的最大值/最小值 mod, modp, mods - 计算对 m 的整数模 rand - 随机数生成器 randomize - 重置随机数生成器 1.4 素数 Randpoly, Randprime - 有限域的随机多项式/首一素数多项式ithprime - 确定第 i 个素数 nextprime, prevprime - 确定下一个最大/最小素数 1.5 数的进制转换 convert/base - 基数之间的转换 convert/binary - 转换为二进制形式 convert/decimal - 转换为 10 进制 convert/double - 将双精度浮点数由一种形式转换为另一种形式convert/float - 转换为浮点数 convert/hex - 转换为十六进制形式 convert/metric - 转换为公制单位

convert/octal - 转换为八进制形式 1.6 数的类型检查 type - 数的类型检查函数 第2章初等数学 2.1 初等函数 product - 确定乘积求和不确定乘积 exp - 指数函数 sum - 确定求和不确定求和 sqrt - 计算平方根 算术运算符+, -, *, /, ^ add, mul - 值序列的加法/乘法 2.2 三角函数 arcsin, arcsinh, . - 反三角函数/反双曲函数 sin, sinh, . - 三角函数/双曲函数 2.3 LOGARITHMS 函数 dilog - Dilogarithm 函数 ln, log, log10 - 自然对数/一般对数,常用对数 2.4 类型转换 convert/`+`,convert/`*` - 转换为求和/乘积 convert/hypergeom - 将求和转换为超越函数 convert/degrees - 将弧度转换为度 convert/expsincos - 将trig 函数转换为exp, sin, cos convert/Ei - 转换为指数积分 convert/exp - 将trig 函数转换为指数函数 convert/ln - 将arctrig 转换为对数函数 polar - 转换为极坐标形式 convert/radians - 将度转换为弧度 convert/sincos - 将trig 函数转换为sin, cos, sinh, cosh convert/tan - 将trig 函数转换为tan convert/trig - 将指数函数转换为三角函数和双曲函数 第3章求值 3.1 假设功能 3.2 求值 Eval - 对一个表达式求值 eval - 求值

实验二

实验二类定义、构造函数、静态成员编程实验 实验目的 掌握类的定义方法,构造函数、析构函数、拷贝构造函数,静态成员的使用方法。 进一步熟悉Visual C++的编程环境 实验内容 1.定义一个描述通讯录的类,数据成员包括通信录名称(类静态数据成员),姓 名、单位、电话号码、邮编,成员函数有输出各项数据、分别置各项数据、分别获取各项数据,同时包括构造函数、拷贝构造函数、析构函数,以及获取和修改通信录名称的静态成员函数。 实验要求: (1)通讯录类的定义如下:  class COM{ static char COMName[100]; //通讯录名称 char *pname; //姓名 char *punit; //单位 char *pnum; //电话号码 char box[6]; //邮编 public: COM(); COM(char *name,char *unit,char *num,char *b); COM(const COM &p); ~COM(); void print(); void setname(char *name); void setuint(char *unit); void setnum(char *num); void setbox(char *b); char *getname(); char *getuint(); char *getnum(); char *getbox(); static char *getCOMName(); static void setCOMName(char *CName); }; (2)在缺省构造函数中,姓名、单位、电话号码、邮编初始化为空。  (3)在构造函数和拷贝构造函数中都要为pname、punit和pnum动态申请空间,即通过new运算申请空间。  (4)在析构函数中要根据pname、punit和pnum是否占有空间确定是否需要删除空间,如果需要则要用delete运算回收空间。

excel基础应用实验报告

Excel电子表格实验报告 姓名(学号):________201302020112____ 年级(专业):_____ 电商1301 ________成绩:________ 实验时间:_______________________ _实验地点:__________________________ _ 实验1-1: 一、实验目的: 掌握使用Excel进行电子表格处理的基本操作,编辑与格式化工作表和单元格。 二、实验内容: 1.在Excel中新建一个空白工作簿,文件名为“学号.xls”,保存在文件夹“实验4”中; 学号姓名性别班级平时成绩期中成绩期末成绩 男一班85 72 80 女一班86 68 72 男二班76 80 84 女二班89 82 80 女一班92 94 91 女二班98 96 92 男二班60 59 60 女一班90 82 88 男一班71 74 70 65 58 54 男 二班 3.在工作表“成绩1”的最右侧插入两列,标题依次为“总评成绩”、“等级”; 4.调整“学号”、“姓名”、“性别”、“班级”、“等级”列的列宽为80个像素,调整“平时成绩”、“期中成绩”、“期末成绩”、“总评成绩”列的列宽为85个像素; 5.设置“平时成绩”只能为[60-100]的整数,“期中成绩”和“期末成绩”只能为[0-100]的整数; 6.设置标题行:行高为20磅,水平居中,垂直居中,字体为新宋体,字形为加粗,字号为12磅,底纹图案为25%灰色,颜色为浅橙色; 7.在工作表“成绩1”顶部插入一行,输入“学生成绩表”,字体为黑体,字号为20磅,颜色为蓝色,跨列居中(使它位于所制作表格的上方中央位置)。 8.为表格添加表格框线,内部为单实线,外部为双实线。 9.在“学号”列从上到下依次填充文本数据“2009001”至“2009010”,要求水平居中。10.在“姓名”列从上到下依次填充文本数据“某一”至“某十”,要求水平居中。11.要求“期末成绩”列能自动识别高于90分的成绩,并将其显示成蓝色粗体。 12.保存修改后的文件。 三、实验步骤:(学生自己填写) 1.桌面——右键——新建——文件夹——改名为“实验1”——Excel空白工作簿——改名为“20091060257”;

maple-图形制作

第五章Maple图形绘制 图形无疑是数学中最令人着迷的部分, 一些枯燥的公式可以从图形看出其美. 历史上有许多学者利用函数图形解决了学科中的许多难题. 客观地说, Maple不是一种可视化的语言—它不会产生出版品质的图形. 然而, 它的图形功能非常强大, 足以提供更多的关于函数的信息. 当然, 如果需要, 它的图形作适当改进即可满足出版要求. 限于篇幅, 本章所有图形未作打印, 读者只需在计算机上按照书中语句操作即可观其效果, 更多图形功能可通过Maple帮助获得. 1二维图形制作 Maple所提供的二维绘图指令plot可以绘制二维的函数图、参数图、极坐标图、等高线图、不等式图,等等. 这些绘图指令有些已经内嵌在其核心程序里, Maple启动时即被装入,直接调用函数命令即可,有些则需要使用with(plots)调用plots函数库才能完成. 1.1 基本二维绘图指令 plot (f(x), x=xmin .. xmax); plot (f(x), x=xmin .. xmax, y=ymin .. ymax); plot ([f1(x), f2(x), …], x=xmin .. xmax); plot (f(x), x=xmin .. xmax, option); 其中,xmin..xmax为x的变化范围,ymin..ymax为y(即f(x))的变化范围.option 选项参数主要有: axes:设定坐标轴的显示方式, 一般有FRAME(坐标轴在图形的左边与下面)、BOXED(坐标轴围绕图形)、NORMAL(一般方式显示)或NONE(无) color:设定图形所要涂的颜色(可选用也可自设) coords:指定绘图时所用的坐标系(笛卡尔坐标系(cartesian,默认)、极坐标系

实验2 类的定义与应用

实验2 类的定义与应用 1、实验目的和要求: 掌握类定义的方法,理解类类型,实例的含义,体会面向对象程序设计中数据隐藏的概念。理解构造函数和析构函数的作用和运行实际,掌握拷贝构造函数的作用。并熟练掌握复杂对象类型的运用。 2、实验内容: (1)定义一个时间类Time,它能提供由时分秒组成的时间。要求能够修改时间和打印出时间。 数据成员:时、分、秒 成员函数: 各种构造函数 析构函数 可以通过函数分别设置时间的各个组成部分 也可以整体设置时间 有一个tick函数,负责给当前时间加1秒钟,然后输出新的时间 要保证测试下列情况: a)递增到下一分钟。 b)递增到下一小时。 c)递增到下一天(即11:59:59PM到12:00:00AM)。 (2)定义并测试日期类Date ,包括私有数据成员year, month, day; 公有成员函数实现以下功能: 各种构造函数 设置时间,并对该时间的有效性进行检测 输出时间,按mm/ dd / yyyy方式打印 判断该日期是一年的第几天 (3) 设计并测试complex类,进行复数的四则运算。包括私有数据成员:real, imag;公有成员函数:

Show方法:打印形如(real,imag)的complex值 Set方法: 设置负数的实部和虚部值 get方法:分别获取实部和虚部值 编写一个驱动程序,测试这个类。 class Complex { public: //默认构造函数 //有参构造函数 //复制构造函数 // 析构函数 // 输出复数-5+3i,4 - i 形式的show // 实现四则运算的成员函数 private: double real; //实部 double imag; //虚部 }; (4)定义一个分数类如下,要求实现各个成员函数,并在主函数中测试两个分数的加减乘除等运算。 class Rational{ public: Rational(int nn=1,int mm=1); //构造 Rational R_add(Rational & A); //加 Rational R_sub(Rational & A); //减 void R_mul(Rational & A); //乘 void R_div(Rational & A, Rational &B); //除 void simple( ); //约分 void print(); //以分数形式显示,注意约分 private:

C上机实验报告实验四

实验四数组、指针与字符串 1.实验目的 1.学习使用数组 2.学习字符串数据的组织和处理 3.学习标准C++库的使用 4.掌握指针的使用方法 5.练习通过Debug观察指针的内容及其所指的对象的内容 6.联系通过动态内存分配实现动态数组,并体会指针在其中的作用 7.分别使用字符数组和标准C++库练习处理字符串的方法 2.实验要求 1.编写并测试3*3矩阵转置函数,使用数组保存3*3矩阵。 2.使用动态内存分配生成动态数组来重新完成上题,使用指针实现函数的功能。 3.编程实现两字符串的连接。要求使用字符数组保存字符串,不要使用系统函数。 4.使用string类定义字符串对象,重新实现上一小题。 5.定义一个Employee类,其中包括姓名、街道地址、城市和邮编等属性,以及change_name()和display()等函数。Display()显示姓名、街道地址、城市和邮编等属性,change_name()改变对象的姓名属性。实现并测试这个类。 6.定义包含5个元素的对象数组,每个元素都是Employee类型的对象。 7. (选做)修改实验4中的选做实验中的people(人员)类。具有的属性如下:姓名char name[11]、编号char number[7]、性别char sex[3]、生日birthday、身份证号char id[16]。其中“出生日期”定义为一个“日期”类内嵌对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、聚集。在测试程序中定义people类的对象数组,录入数据并显示。 3.实验内容及实验步骤 1.编写矩阵转置函数,输入参数为3*3整形数组,使用循环语句实现矩阵元素的行列对调,注意在循环语句中究竟需要对哪些元素进行操作,编写main()函数实现输入、输出。程序名:lab6_1.cpp。 2.改写矩阵转置函数,参数为整型指针,使用指针对数组元素进行操作,在main()函数中使用new操作符分配内存生成动态数组。通过Debug观察指针的内容及其所指的对象中的内容。程序名:lab6_2.cpp。 3.编程实现两字符串的连接。定义字符数组保存字符串,在程序中提示用户输入两个字符串,实现两个字符串的连接,最后用cout语句显示输出。程序名:lab6_3.cpp。用cin实现输入,注意,字符串的结束标志是ASCII码0,使用循环语句进行字符串间的字符拷贝。 4.使用string类定义字符串对象,编程实现两字符串的连接。在string类中已重载了运算符“+=”实现字符串的连接,可以使用这个功能。程序名:lab6_4.cpp。 5.在employee.h文件中定义Employee类。Employee类具有姓名、街道地址、城市和邮编等私有数据成员,在成员函数中,构造函数用来初始化所有数据成员;display()中使用cout显示

Maple的常用内部数学函数

吉林大学公共数学实验中心数学实验 >> 首页> 微积分> 实验2 Maple简介 一、Maple操作界面介绍 1、编辑功能: 编辑功能中查找模块,可以帮助查找你所需要的关键字节.具体操作如图所示: 按上述操作完成后,出现下图所示的对话框: 在文本框中输入你要查找的字符或者符号,可以通过findprevious上下翻看,也可以通过replacewith 操作替代你所查找的字符或者符号.cancle表示取消操作. 其他编辑操作包括分割或连接(splitorjoin)分为一个执行过程(快截键为f3、f4)和选定块(shift+f3、

shift+f4)过程四个操作块 运行操作(Execute):运行选定或者当前的maple中的语句; 删除运行结果操作(Removeoutput):将选定或者当前的maple中运行结果从工作爷中删除或者不显示; 2、示图操作(VIEW) 文档在屏幕上的显示模式称为“示图”,maple示图菜单主要设置工作爷文档的一些视图属性,所包括菜单如上图所示。 工具条(toolbar)的功能和其他系统一样,主要包括打开文件、创建新文档、存盘、打印当前页面、复制、剪切、粘贴、撤消操作等。 内容工具条: “枫叶”表示设置工作页和标准公式和maple语言之间的转换 “X”表示设置工作页和标准公式在活动和非活动方式之间的转换 “(对号)”表示标准公式有效时自动检查输入表达式的正确性 “!”表示运行当前表达式 3、插入操作(INSERT)

插入操作比较简单这里就不做详细介绍,主要功能分为: 文本插入(textinput); 标准maple数学表达式插入; 运行单元executegroup插入其中包括在光标前插入和光标后插入 图形插入plot,其中包括两维和三维图象的插入 电子表格插入spreadsheet 段落插入parigraph,其中包括光标前插入和光标后插入 数学输入对象(image)插入 插入超级连接hyperlink 4、其他操作窗口的功能和其他软件基本相同,这里就不做详细介绍了。 二、基本语法规则 MaPle的科学计算功能主要是以命令输入的方式来实现的。Map1e 的命令有自己的使用规则和语法。在使用Maple进行科学计算之前,首先要了解Map1ev命令使用的基本规则。下面给出了利用Maple进行科学计算时的—些基本语法规则 ·MapleV的命令在提示符“>”的右边键入,每行命令要以分号“;”结尾。 ·命令输入结束按回车键,maple就立即执行该命令 ·如果命令以分号结尾,Maple将在下一行给出相应的输出结果,并把光标移到下—个程序段的

《面向对象程序设计》实验指导书(实验二)

实验二类与对象㈡——对象初始化、对象数据与指针 一、实验目的 1.理解构造函数、析构函数的意义及作用,掌握构造函数、析构函数的定义及调用时间,熟悉构造函数的种类; 2.理解this指针及使用方法,熟悉对象数组、对象指针、对象引用的定义及使用方法,熟悉对象作为函数参数的使用方法; 3.熟悉类与对象的应用及编程。 二、实验学时 课内实验:2课时课外练习:2课时 三本实验涉及的新知识 ㈠构造函数与析构函数 在C++中,提供了两个特殊的成员函数,即构造函数和析构函数。 构造函数用于对象的初始化,即在定义一个类对象时,计算机在给对象分配相应的存储单元的同时,为对象的数据成员赋初值。 析构执行的是与构造函数相反的操作,用于撤销对象的同时释放对象所占用的内存空间。 1.构造函数 ⑴构造函数的定义 格式: 类名(形参表) { 构造函数体} ⑵构造函数的调用 构造函数的调用是在定义对象时调用的。 格式:类名对象名(实参表); 类名对象名=构造函数名(实参表); ⑶说明 ①构造函数必须与类同名。 ②构造函数没有返回值,但不能在构造函数前加void类型符(其他没有返回值的成员函数必须加类型符void)。 ③在实际应用中,在定义类时通常应定义一至多个构造函数(重载),以对各数据成员进行初始化;如果不给出构造函数,系统将自定义一个构造函数。 ④构造函数可以可以带参数,也可不带任何参数(称无参构选函数),还可以使用缺省参数。 ⑤不能象普通成员函数一样单独调用。 2.析构函数 ⑴析构函数的定义 格式: ~类名(void) { 析构函数体} ⑵析构函数的调用 析构函数是在撤销对象时自动调用的。 ⑶说明

电路实验二实验报告仪器仪表的使用

电路实验二实验报告 实验题目:仪器仪表的使用 实验内容: 1.熟悉示波器和函数信号发生器的使用; 2.测量示波器自带的校准信号; 3.用示波器测量函数信号发生器提供的正弦波、三角波和方波; 4.在面包板上搭接一个积分电路,用示波器观测其波形。 实验环境: 示波器DS1052E,函数发生器EE1641D,面包板SYB-130。 实验原理: 1.示波器是一种用途十分广泛的电子测量仪器。把肉眼看不见的电信号变换成看得见的 图象,便于研究各种电现象的变化过程。利用狭窄的、由高速电子组成的电子束,打在涂有荧光物质的屏面上,产生细小的光点。在被测信号的作用下,电子束就好像一支笔的笔尖,可以在屏面上描绘出被测信号的瞬时值的变化曲线。利用示波器能观察各种不同信号幅度随时间变化的波形曲线,还可以用它测试各种不同的电量,如电压、电流、频率、相位差、调幅度等等。 2.函数发生器是一种多波形的信号源。它可以产生正弦波、方波、三角波、锯齿波,甚

至任意波形。有的函数发生器还具有调制的功能,可以进行调幅、调频、调相、脉宽调制和VCO控制。 3.面包板是专为电子电路的无焊接实验设计制造的。由于各种电子元器件可根据需要随 意插入或拔出,免去了焊接,节省了电路的组装时间,而且元件可以重复使用,所以非常适合电子电路的组装、调试和训练。 实验记录及结果分析: 1.示波器自带的校准信号: 2.函数发生器提供正弦波: 3.函数发生器提供的方波: 最大值:2.40V 最小值:-2.64V 峰峰值:5.04V 频率:2.016kHz 周期:496.0μs 占空比:48.0% 4.函数发生器提供的三角波: 最大值:2.40V 最小值:-2.64V 峰峰值:5.04V 频率:2.016kHz 周期:496.0μs 实验总结: 示波器能够产生波形,把肉眼看不见的电信号转为我们很容易看见的图形,而函数发生器则会产生不同类型的电信号,这样利用示波器和函数发生器就可以对函数发生器所发

C++ 实验二 类与对象(附答案)

实验二类与对象 实验目的和要求 1.掌握类、类的数据成员、类的成员函数的定义方式。 2.理解类成员的访问控制方式。 3.掌握对象的定义和操作对象的方法。 4.理解构造函数和析构函数的定义与执行过程。 5.掌握重载构造函数的方法。 6.了解拷贝构造函数的定义方法。 实验内容 1.下面程序中有错,在不删除和增加代码行的情况下,改正错误语句,使其正确运行。#include class Aa { public: Aa(int i=0) { a=i; cout<<"Constructor "<

(1) #include class Date { void set_date(); void show_date(); int year; int month; int day; }; Date d; int main() { set_date(); show_date(); } void set_date() { cin>>d.year; cin>>d.month; cin>>d.day; } void show_date() { cout< class A { public: void A(int i=0) { m=i; } void show() { cout<

MATLAB程序设计实验报告

MATLAB实验报告 一、实验名称 实验4图形绘制(1) 二、实验目的: 熟悉和掌握MA TLAB基本的二维图形绘制函数。 三、实验内容: 1.绘制简单的二维图形 2.一个坐标系绘制多幅图形 3.图形标识和坐标控制 4.交互式图形指令 四、回答问题: (本次实验未预留问题) 五、遇到的问题及解决: 遇到了求y=lnx时,输入“y=ln(x)”不被软件识别的问题,查看常用数学函数表后改为y=log(x)成功解决。 在求10x时不知道用什么函数,函数表里也查不到,在老师的点拨下用“y=10.^x”解决。 在绘图时发现默认线型不够明显,查表后使用尖三角、叉号代替默认线型。 六、体会: 本次实验我学会了利用MATLAB绘制图形的基本方法,以及相应的备注方法。 难点是了解各种函数的具体作用并熟练掌握。 体会是:多学多练,孰能生巧,日积月累,必有提高。

思考题: 1.在同一坐标系绘制t3,-t2,t2sint在[0,2π]内的曲线图。 x=0:pi/50:2*pi; y1=t.*t.*t; y2=-t.*t; y3=t.*t.*sin(t); plot(t,y1,'^k',t,y2,'.k',t,y3,'xk'); legend('\ity=t^3','\ity=-t^2','\itt^2*sint'); 2.在一幅图中画出4幅子图,分别绘制sin2x,tanx,lnx,10x的图形,并加上适当的图形注释。注意:把函数变成MATLAB对应的形式。 x=0:pi/50:2*pi; y1=sin(2*t); y2=tan(x); y3=log(x); y4=10.^x; subplot(2,2,1) plot(x,y1); legend('y=sin2x'); subplot(2,2,2) plot(x,y2) legend('y=tanx'); subplot(2,2,3) plot(x,y3)

计算机图形学 实验二要点

计算机科学系实验报告 课程名 称计算机图形学班 级12网络2 实验名称VC存取BMP图像及其几何变 换 教导教 师吴志攀 姓名李文森学号1214080613213 日 期2014 .11.21 一、实验目的 1. 掌握VC中BMP图像的存取方法; 2. 掌握BMP图像平移、旋转、变比等几何变换。 二、实验设备与环境 TC2.0,Windows XP 三、实验内容、程序清单及运行结果 1.打开VC++ 6.0,选择File|New进入界面。在Projects中选择MFC AppWinzard(exe),在Project name中输入项目名称,本例为ReadBMP,在Location中输入项目要保存的文件夹。点击“OK”进入下一步。如下图2-1所示。 图2-1 2.选择文档类型。在本例中使用的是单文档视图结构,所以这里选择Single

document。其余部分设置使用VC++ 6.0的默认设置,点击“Finish”完成项目创建。如下图2-2所示: 图2-2 3.为了将BMP中的数据读入到内存中,在项目中导入专门处理BMP文件头和数据的文件:DIBAPI.H和DIBAPI.CPP,在其中实现对BMP文件的大部分处理。 在工作区“FileView”选项卡的“Header Files”中点右键,在“添加文件到目录”添加“DIBAPI.H”文件。如下图2-3所示: 图2-3

在工作区“FileView”选项卡的“Source Files”中点右键,在“添加文件到目录”添加“DIBAPI.CPP”文件。 并在“ReadBMPDoc.h”添加头文件"dibapi.h",如下所示: #include "dibapi.h" 4.在CReadBMPDoc类中添加保护成员变量CPalette* m_palDIB,HDIB m_hDIB和CSize m_sizeDoc。m_hDIB用于保存当前BMP图像句柄,m_palDIB用于指向BMP图像对应的调色板。 protected: HDIB m_hDIB; CPalette* m_palDIB; CSize m_sizeDoc; 5.为了取得保存在当前文档中的HDIB和Palette数据,在“ReadBMPDoc.h”的CReadBMPDoc类中添加方法:GetHDIB,GetDocPalette和GDocSize。如下所示:// Attributes public: HDIB GetHDIB() const { return m_hDIB; } CPalette* GetDocPalette() const { return m_palDIB; } CSize GetDocSize() const { return m_sizeDoc; } 在CReadBMPDoc.cpp的构造函数中初始化: // 初始化变量 m_hDIB = NULL; m_palDIB = NULL; m_sizeDoc = CSize(1,1); 6.响应类CReadBMPDoc OnOpenDocument事件,以实现打开文件的操作。 从View|ClassWizard进入MFC ClassWizard界面,在Message Maps选项中完成消息映射。下图2-4所示:

数学软件Maple使用教程

数学软件Maple使用教程 序言 一.什么是数学实验? 我们都熟悉物理实验和化学实验,就是利用仪器设备,通过实验来了解物理现象、化学物质等的特性。 同样,数学实验也是要通过实验来了解数学问题的特性并解决对应的数学问题。过去,因为实验设备和实验手段的问题,无法解决数学上的实验问题,所以,一直没有听说过数学实验这个词。随着计算机的飞速发展,计算速度越来越快,软件功能也越来越强,许多数学问题都可以由计算机代替完成,也为我们用实验解决数学问题提供了可能。 数学实验就是以计算机为仪器,以软件为载体,通过实验解决实际中的数学问题。 二.常用的数学软件 目前较流行的数学软件主要有四种: 1.MathACD 其优点是许多数学符号键盘化,通过键盘可以直接输入数学符号,在教学方面使用起来非常方便。缺点是目前仅能作数值运算,符号运算功能较弱,输出界面不好。 2.Matlab 优点是大型矩阵运算功能非常强,构造个人适用函数方便很方便,因此,非常适合大型工程技术中使用。缺点是输出界面稍差,符号运算功能也显得弱一些。不过,在这个公司购买了Maple公司的内核以后,符号运算功能已经得到了大大的加强。再一个缺点就是这个软件太大,按现在流行的版本5.2,自身有400多兆,占硬盘空间近1个G,一般稍早些的计算机都安装部下。我们这次没用它主要就是这个原因。 3.Mathematica 其优点是结构严谨,输出界面好,计算功能强,是专业科学技术人员所喜爱的数学软件。缺点是软件本身较大,目前流行的3.0版本有200兆;另一个缺点就是命令太长,每一个命令都要输入英文全名,因此,需要英语水平较高。 4.Maple 优点是输出界面很好,与我们平常书写几乎一致;还有一个最大的优点就是它的符号运算功能特别强,这对于既要作数值运算,又要作符号运算时就显得

C++实验三 构造函数和析构函数题目+答案

实验三构造函数和析构函数 班级:B135A2 学号: 201322688 姓名:杨弘成绩: 一.实验目的 1.理解构造函数和析构函数作用; 2.掌握各种类型的构造函数和析构函数的使用; 3.掌握构造函数和析构函数的调用顺序。 二.使用的设备和仪器 计算机+Windows XP +Visual C++6.0 三.实验内容及要求 1.阅读程序,写出运行结果,然后上机运行,将机器运行结果与人工运行的结果进行比较,并对每一行输出做出分析。 (1) #include using namespace std; class MyClass { public: MyClass(); MyClass(int xx); MyClass(int xx,int yy); MyClass(MyClass &); void Display(); void Set(int, int); ~ MyClass(); private: int x,y; }; MyClass:: MyClass() { cout<<"执行无参构造函数:" ; x=0;y=0; cout<<"x="<

cout<<"执行一个参数构造函数:" ; x=xx;y=0; cout<<"x="<