实验6 函数的定义和调用1
- 格式:doc
- 大小:31.00 KB
- 文档页数:2
Python实验指导书马川燕山大学计算机教学实验中心2017.5目录目录实验一:P YTHON程序设计之初窥门径 (2)实验二:P YTHON程序设计之结构与复用 (2)实验三:P YTHON程序设计之组合数据类型 (3)实验四:P YTHON程序设计之文件 (4)1实验一:Python程序设计之初窥门径一、实验目的:1.了解Python的基本编程环境,熟悉其主要组成部分和使用。
2.熟悉turtle库语法元素,了解其绘图坐标体系、画笔控制函数和运动命令函数。
通过程序实例,初步掌握Python程序设计的基本概念、编程规则和开发过程。
3.掌握Python的基本数据类型的概念和使用;运用Python的标准数学库进行数值计算;掌握字符串类型的格式化操作方法和应用。
二、知识要点:1、一张图尽览Python:2.Turtle库语法元素3.基本数据类型三、实验内容及步骤:基础实验:1.启动 IDLE,新建文件,请根据课本中内容,将“蟒蛇绘制”程序逐行输入其中,并运行效果。
2. 正方形螺旋线的绘制。
(1)利用turtle库绘制一个正方形螺旋线,效果如下图所示。
(2)修改上面程序,绘制斜螺旋线,效果如下图所示。
(3)修改上面程序,绘制彩色斜螺旋线,效果如下图所示。
3.彩色蟒蛇绘制。
修改1中“蟒蛇绘制”程序,对 Python 蟒蛇的每个部分采用不同颜色,绘制一条彩色蟒蛇。
(提示:参考彩色斜螺旋线绘制程序。
实现方法有很多,按照你自己的思路发挥吧)程序完成后,上传提交。
4.绘制奥运五环图,其中五种颜色分别为蓝色、黑色、红色、黄色和绿色。
注意根据实际效果调整圆形的大小和位置。
效果如图所示。
请补全绿色环的代码,将程序上传提交。
5.参照课本中带刷新的文本进度条例子,制作一个模拟windows启动界面的文本进度条,执行效果如下图所示。
源码如下:实验二:Python程序设计之结构与复用一.实验目的1.掌握程序的分支、循环等控制结构;2.掌握random随机库的使用方法;3.了解程序的异常处理及用法;4.掌握函数的定义和调用方法。
实验一C程序的运行环境及简单程序编写一、实验目的1.了解tc2.0编译系统的基本操作方法,学会独立使用该系统。
2.了解在该系统上如何编辑、编译、连接和运行一个C程序。
3.通过运行简单的C程序,初步了解C源程序的特点。
二、实验内容1.编写一个计算球体体积的程序,要求用户自行录入球体的半径。
参考公式V=4/3πr3.。
2.编写一个程序,要求用户输入一个美金数量,然后显示出如何用最少的20美元、10美元、5美元和1美元来付款。
运行结果:Ener a dollar amount:93$20 bills:4$10 bills:1$5 bills:0$1 bills:3实验二顺序结构程序设计一、实验目的1.熟悉C语言中的基本数据类型,掌握定义常量和变量以及对它们赋值的方法,了解数据输出时所用格式转换符。
2.掌握格式输入/输出函数的用法。
3.学会简单顺序程序的设计。
4.养成良好的程序设计习惯。
二、实验内容1.编写一个程序,对用户录入的产品信息进行格式化。
Enter item number:583Enter unit price:13.5Enter purchase date(mm/dd/yyyy):3/24/2010Item Unit PurchasePrice date583 $ 13.50 3/24/20102.编写一个程序,要求用户输入一个两位数,然后按数位的逆序打印出这个数。
Enter a two-digit number:28The reversal is :82实验三选择结构程序设计一、实验目的1.熟练使用if、switch编写程序。
二、实验内容1.编写一个程序,确定一个数的位数。
Enter a number:374The number 374 has 3 digits假设输入的数最多不超过4位。
提示:利用if语句进行数的判定。
例如,如果数在0到9之间,那么位数为1;如果数在10到99之间,那么位数为2。
实验六基于MATLAB的离散系统时域分析一、实验名称基于MATLAB的离散系统时域分析二、实验目的1.掌握离散时间序列卷积和MATLAB实现的方法。
2.掌握离散系统的单位响应及其MATLAB的实现方法。
3.掌握用MATLAB表示离散系统的时域响应。
三、实验器材安装MATLAB软件的电脑一台四、预习要求1.熟悉离散时间序列的卷积和原理2.熟悉编程实现离散时间序列的卷积和3.熟悉离散系统的单位响应及其常用函数的调用格式五、实验原理1. (1)单位序列(单位脉冲序列)MATLAB描述。
MATLAB函数可写为k=[k1:k2]; %k1,k2为时间序列的起始及终止时间序号fk=[(k-k0)==0]; %k0为§(k)在时间轴上的位移量stem(k,fk)(2)单位阶跃序列MATLAB描述。
MARLAB函数可写为k=[k1:k2] %k1,k2为时间序列的起始及终止时间序号fk=[(k-k0)>=0] %k0为 (k)在时间轴上的位移量stem(k,fk)2. 离散系统的时域响应MATLAB提供了求离散系统响应的专用函数filter()filter函数能求出差分方程描述的离散系统在指定时间范围内的输入序列所产生的响应序列的数值解。
其调用格式如下:filter(b,a,x)其中,b 和a 是由描述系统的差分方程的系数决定的、表示离散系统的两个行向量;x 是包含输入序列非零样点的行向量。
上述命令将求出系统在与x 的取样时间点相同的输出序列样值。
3.离散时间序列的卷积设序列f1(k)在1n ~2n 范围内非零,f2(k)在1m ~2m 范围内非零,则f1(k)时域宽度为L1=2n -1n +1,f2(k)的时域宽度为L2=2m -1m +1。
由卷积和的定义可得,序列y(k)=f1(k)*f2(k)的时域宽度为L=L1+L2-1,且只在(1n +1m )~(1n +1m +L1+L2-2)范围内非零。
面向对象程序设计实验指导书(适用:电子信息11级)彭召意陶立新编写计算机与通信学院2014.9目录实验一 C++基础的应用 (1)实验二类和对象的应用 (3)实验三类的构造函数、析构函数的应用 (4)实验四友员和运算符重载 (5)实验五类的继承与派生 (6)实验六类的多态性与虚函数 (7)附录:各实验的程序代码 (8)实验一 C++基础的应用(实验课时:2 实验性质:设计)实验名称: C++基础的应用实验目的: (1)进一步学习VC++6.0开发环境及程序调试方法。
(2)练习C++函数的定义及使用;(3)练习C++数组的定义及使用;(4)练习C++指针的定义及使用;(5)练习C++结构体的定义及使用;(6)练习多文件的程序的编译和运行方法;实验设备:(1)硬件:个人微机(配置不低于:CPU为P4,主频1.6G,内存256MB,硬盘40GB);(2)软件:操作系统为WindowsXP(或2000、server2003等),工具软件为Visual C++6.0。
实验内容: (1)熟悉Visual C++6.0编译系统的常用功能,特别是debug调试功能;(2)编程1:编写一个程序c1.cpp,用来求2个或3个整数的最大数。
要求:用重载函数的方法来求最大数;函数原型:int max( int a, int b) 和int max( int a, int b,int c)。
(3)编程2:编写一个程序c2.cpp,求:a!+ b! + c!的值。
要求:使用递归函数。
主程序和函数分开到两个源程序文件中,分别进行编译后,再运行;(4)编程3:有一个3*4的矩阵,要求编程求出其中值最大的那个元素的值,以及其所在的行号和列号;(5)编程4:建立一个动态链表并进行输出和删除管理。
链表的每个节点为学生信息,包括:学号,姓名,性别,下一学生信息的指针。
程序的工作:(a)建立三个学生信息的节点,然后顺序输出该三个学生信息;(b)删除中间的节点,再顺序输出学生信息。
函数调用【实验目的】:1. 掌握函数的定义和调用方法。
2. 练习重载函数的使用。
3. 练习有默认参数值的函数的使用。
4. 练习使用系统函数。
5. 熟悉多文件工程结构。
【实验内容】:1.编写函数int add(int x, int y),实现两个整型数据x,y的求和功能。
·要求:使用Visual C++的Debug调试功能,记录在函数调用时实参和形参的值的变化。
2.编写一个求x的n次方的程序int pow(int m, int n),计算m的n次方的结果。
3.利用上题中设计两个函数,设计一个求两个整数的平方和的程序。
要求如下:a)主函数中调用求和函数: int add(int x, int y);b)求和函数add中调用上题设计的int pow(int m, int n)函数来计算其平方。
4.多文件程序结构:一个文件可以包含多个函数定义,但是一个函数的定义必须完整的存在于一个文件中。
要求:a)将add函数的声明部分放在头文件(add.h)中,实现部分放在源文件(add.cpp)中。
b)将pow函数的声明部分放在头文件(pow.h)中,实现部分放在源文件(pow.cpp)中。
c)在main函数中调用add函数,计算从屏幕终端输入的两个数据之和。
(main函数的实现在main.cpp中)5.将第2题设计的pow函数修改成为递归函数。
6.设计一个函数int fac(int n),利用函数的递归调用,来计算n!(n的阶乘)。
·要求:单步调试程序,记录递归函数的调用过程。
7.使用系统函数pow(x,y)计算x y的值,注意包含头文件cmath。
8.从键盘输入两个数字,分别赋值给变量a、b,设计一个子函数swap,实现这两个数字交换次序。
(注:根据需要自己设计函数的参数及返回值)·要求:使用Visual C++的Debug调试功能,记录在函数调用时实参和形参的值的变化。
9.设计一个函数,求圆的面积。
实验六函数一,实验目的:1,掌握定义函数的方法.2,掌握函数实参与形参的对应关系,以及"值传递"的方式.3,掌握函数的嵌套调用和递归调用的方法.4,掌握全局变量和局部变量动态变量,静态变量的概念和使用方法.二,实验准备:1,复习函数调用的基本理论知识.2,复习函数的嵌套调用和递归调用的方法.3,复习全局变量,局部变量;静态变量,动态变量;外部变量等概念和具体使用. 4,源程序.三,实验步骤及内容:1,运行程序并回答问题(1)程序main(){ play(3);}void print_star(){ printf("* * * * * * * * * *\n")}void print_message(){ printf("Good Friend! \n");}void play(n)int n;{ int i;for(i=1;i<=n;++i){ print_star();print_message();}}问题:运行后出现什么错误为什么应如何修改请上机调试.修改:main(){ play(3);}void print_star(){ printf("* * * * * * * * * *\n");(缺少分号)}void print_message(){ printf("Good Friend! \n");}play(n)(原先void的与声明类型不同)int n;{ int i;for(i=1;i<=n;++i){ print_star();print_message();}getch();}运行结果(2)以下程序用于计算1+2+3+4+5.main(){ int i,sum;for(i=1;i<=5;++i)sum=add(i);printf("sum=%d\n",sum);getch();}add (a)int a;{static int s=0;s=s+a;return(s);}运行结果:问题:此程序能否得到正确结果为什么请在不增加语句的条件下,修改程序并上机调试.(3)程序int x=567,y=890;main(){ printf("x=%d,y=%d\n",x,y);}运行结果:问题:运行程序后出现什么错误为什么如何修改答:定义位置出错,y的定义在主函数之后了,将y的定义改在和x一样的位置处。
太原理工大学现代科技学院C语言程序设计课程实验报告专业班级学号姓名指导教师焦雄5.#include <stdio.h> void main(){int a=10,n=5;a+=a;printf("%d\n",a);a=10,a-=2;printf("%d\n",a);a=10,a*=2+3;printf("%d\n",a);a=10,a/=a+a;printf("%d\n",a);a=10,a%=(n%=2);printf("%d\n",a);a=10,a+=a-=a*=a;printf("%d\n",a); }遇到的问题和解决方法心得体会实验三简单程序、分支程序和循环程序设计实验名称实验目的和要求1.理解C语言程序的基本结构和实现基本结构的语句;2.熟练应用赋值、输入和输出语句;3.理解并掌握关系运算符、逻辑运算符及其表达式的使用;4.熟练掌握if语句、switch语句、while语句、do—while语句和for语句的用法;实验内容1.输入并运行第3章例3-3、例3-6中的程序,通过输出结果理解对应的格式说明。
2.输入并运行第3章例3-8、例3-10中的程序,注意输入数据的格式。
3.已知圆柱半径r=1.5,圆柱高h=3,编程求圆周长,圆面积和圆柱体积。
4.输入一百分制成绩,输出成绩等级A、B、C、D、E。
90分以上为A,80~89为B,70~79分为C,60~69分为D,60分以下为E。
要求程序能处理错误的输入数据。
5.利用公式:π/4=1-1/3+1/5-1/7+……,求π的近似值,直到最后一项的绝对值小于10-6为止。
(fabs(t)表示t的绝对值,1e-6=1*10-6)。
6.求100-200间所有素数。
7.输出三角形的九九乘法口诀表。
8.打印水仙花数。
水仙花数是指一个3位数,其各位数字立方和等于该数本身。
《C语言程序设计》实验报告2012~2013学年第二学期班级姓名学号指导教师实验一实验项目名称:C程序的运行环境和运行C程序的方法所使用的工具软件及环境:Visual C++ 6.0一、实验目的:1.了解在Visual C++ 6.0环境下如何编辑、编译、连接和运行一个C程序;2.通过运行简单的C程序,初步了解C源程序的特点。
二、预习内容:教材《C语言程序设计教程》第1章。
三、实验内容:1. 在Visual C++ 6.0环境下输入并运行下面的程序:#include <stdio.h>int main( ){printf("This is a C program.\n");return 0;}2. 在Visual C++ 6.0环境下输入下面的程序(有语法错误),编译、连接、调试该程序,直至程序无语法错误,然后运行程序,并观察分析运行结果。
#include <stdio.h>int main( ){int a,b,suma=3;b=4;sun=a+b;print(“%d+%d=%d\n”,a,b,sum);return 0;}四、实验结果:1. 运行结果(或截图):2. (1) 改正后的源程序:(2) 运行结果(或截图):五、思考题:1. 一个C程序上机的步骤有哪些?答:2. 组成C程序的基本单位是函数,一个函数包括哪几个部分?答:成绩指导教师签名实验二实验项目名称:数据类型、运算符和表达式所使用的工具软件及环境:Visual C++ 6.0一、实验目的:1.掌握整型、实型与字符型这三种基本类型的概念;2.掌握常量及变量的使用方法;3. 掌握基本算术运算符及其表达式的使用方法;4. 掌握++、--运算符、赋值运算符及其表达式的使用方法。
二、预习内容:教材《C语言程序设计教程》第2章。
三、实验内容:1. 在Visual C++ 6.0环境下输入下面的程序,编译、连接、调试该程序。
青岛理工大学课程实验报告步骤调试过程及实验结果1 2总结掌握了掌握C语言基本数据类型,变量的定义及变量的初始化和赋值操作,不同的类型数据之间赋值的规律。
了解了C语言的算术运算符的使用以及算术表达式的使用,自加自减运算符的特点及使用。
附录实验一 1#include<>void main(){int a,b,s;scanf("%d%d",&a,&b);printf("s=%d\n",a+b);}实验一 2#include<>#include<>void main(){double a,b,c,d,x1,x2;printf("a b c :");scanf("%lf%lf%lf",&a,&b,&c);d=b*b-4*a*c;if (d<0)printf("无解\n");else if (d==0){x1=(-b)/(2*a);printf("一个解:x=%g\n",x1);}else{x1=(-b+sqrt(d))/(2*a);x2=(-b-sqrt(d))/(2*a);printf("两个解:x1=%g,x2=%g\n",x1,x2);}}青岛理工大学课程实验报告课程名称计算机程序设计 (C) 班级软件 111 实验日期姓名赵亚东学号实验成绩实验名称实验二选择结构程序设计实验目的及要求1.掌握赋值语句的使用方法。
2.掌握各种类型数据的输入输出方法,能正确使用各种格式转换符。
3.能正确使用关系运算符及表达式、逻辑运算符及表达式。
4.熟练掌握if语句,学会使用if-else语句设计双分支和多分支结构程序。
5.熟练掌握switch语句的特点,学会使用switch语句设计多分支结构程序。
实验环境Visual ++ Windows 7实验内容3.编写程序,根据输入的学生成绩,给出相应的等级。
⾃动控制原理实验1-6实验⼀MATLAB 仿真基础⼀、实验⽬的:(1)熟悉MATLAB 实验环境,掌握MATLAB 命令窗⼝的基本操作。
(2)掌握MATLAB 建⽴控制系统数学模型的命令及模型相互转换的⽅法。
(3)掌握使⽤MATLAB 命令化简模型基本连接的⽅法。
(4)学会使⽤Simulink 模型结构图化简复杂控制系统模型的⽅法。
⼆、实验设备和仪器 1.计算机;2. MATLAB 软件三、实验原理函数tf ( ) 来建⽴控制系统的传递函数模型,⽤函数printsys ( ) 来输出控制系统的函数,⽤函数命令zpk ( ) 来建⽴系统的零极点增益模型,其函数调⽤格式为:sys = zpk ( z, p, k )零极点模型转换为多项式模型[num , den] = zp2tf ( z, p, k ) 多项式模型转化为零极点模型 [z , p , k] = tf2zp ( num, den )两个环节反馈连接后,其等效传递函数可⽤feedback ( ) 函数求得。
则feedback ()函数调⽤格式为: sys = feedback(sys1, sys2, sign )其中sign 是反馈极性,sign 缺省时,默认为负反馈,sign =-1;正反馈时,sign =1;单位反馈时,sys2=1,且不能省略。
四、实验内容:1.已知系统传递函数,建⽴传递函数模型2.已知系统传递函数,建⽴零极点增益模型3.将多项式模型转化为零极点模型12s 2s s 3s (s)23++++=G )12()1()76()2(5)(3322++++++=s s s s s s s s G 12s 2s s 3s (s)23++++=G )12()1()76()2(5)(3322++++++=s s s s s s s s G4. 已知系统前向通道的传递函数反馈通道的传递函数求负反馈闭环传递函数5、⽤系统Simulink 模型结构图化简控制系统模型已知系统结构图,求系统闭环传递函数。
C语言上机实验指导实验一熟悉C语言程序开发环境一.目的要求1.熟悉在所用的计算机系统上如何编辑、编译、连接和运行一个C语言程序。
2.掌握C语言的数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法。
3.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加和自减运算符的使用。
4.通过运行简单的C语言程序,初步了解C语言程序的结构特点。
二.实验内容1.调用编辑程序,输入以下程序,并进行编译和运行。
熟悉所用的系统使用什么命令进行编译和连接运行的。
编译和连接后所得到的目标程序的后缀是什么形式?main( ){printf(“This is a c program.\n”);}2.从键盘依次输入两个整数,计算并输出这2个整数之差。
# include “stdio.h”main(){ float a,b,c;printf(“input a,,b,:\n”);scanf(“%d, %d,”,&a,&b);c=a-b;printf(“c=%d\n”,c);}具体要求:①在Turbo C或其他编译环境编辑窗口输入该程序,然后进行编译连接。
如果在编译过程中有错误发生,则仔细检查并修改程序,再进行编译连接,直到没有错误为止。
②运行时按程序中要求的格式依次输入下列2个数:212,843.输入并运行以下程序,分析结果,体会自增自减运算符的特点,上机验证;main( ){int i,j,m,n,u=0,v=0;i=8;j=10;m=++i;n=j++;u+=i--;n-=--j;pr intf(“i=%d,j=%d,m=%d,n=%d,u=%d,v=%d\n”,i,j,m,n,u,v);}4.输入并运行下面的程序。
main(){int m,n;m=120;n=112;printf(“%d\t%d\n”,m,n);}要求:①运行程序记下结果。
②在程序的最后增加一句:printf(“%c\t%c\n”,m,n);再运行程序,并分析结果。
Python实验报告一实验目的:通过完成Python编程实验,掌握Python基本语法和常用数据类型的使用方法,培养解决问题的思维能力。
实验过程:1. 编写第一个Python程序首先,我们在PyCharm等Python集成开发环境下打开一个新的Python文件,然后输入以下代码:```print("Hello World!")```运行程序后,控制台将输出"Hello World!"。
这样我们就完成了第一个Python程序的编写和运行。
2. 基本数据类型的使用Python中有多种基本数据类型,包括整型、浮点型、字符串、布尔型等。
我们通过以下实验来熟悉它们的使用方法。
- 整型:定义一个整数变量并进行一系列基本操作,如加减乘除、取余等。
```a = 10b = 5print(a + b) # 输出15print(a - b) # 输出5print(a * b) # 输出50print(a / b) # 输出2.0print(a % b) # 输出0```- 浮点型:定义一个浮点数变量并进行运算。
```a = 3.14b = 2.71print(a + b) # 输出5.85```- 字符串:定义一个字符串变量,并进行字符串的拼接和切片操作。
```s1 = "Hello"s2 = "World"print(s1 + " " + s2) # 输出"Hello World"print(s1[0]) # 输出'H'print(s2[2:]) # 输出'rld'```- 布尔型:定义一个布尔变量,并进行与或非等逻辑运算。
```a = Trueb = Falseprint(a and b) # 输出Falseprint(a or b) # 输出Trueprint(not b) # 输出True```3. 列表和字典的使用列表和字典是Python中的常用数据结构。
实验六函数的定义和调用
一、实验实训目的及要求
1、掌握C语言函数的定义方法、函数的声明及函数的调用方法。
2、了解主调函数和被调函数之间的参数传递方式。
二、实验实训内容
1、写一个判断素数的函数,在主函数输入一个整数,输出是否素数的信息。
2、写两个函数,分别求两个正数的最大公约数和最小公倍数,用主函数调用这两个函数并输出结果。
两个正数由键盘输入。
三、实验实训指导
1、程序清单:
mian()
{
int number;
printf(“请输入一个正整数:\n”);
scanf(“%d”,&number);
if (prime(number))
printf(“\n %d是素数.”,number);
else
printf(“\n %d不是素数.”,number);
}
int prime(int number) /*此函数用于判别素数*/
{
int flag=1,n;
for(n=2;n<number/2&&flag==1;n++)
if (number%n==0)
flag=0;
return(flag);
}
判断素数的算法,我们在以前学习循环的时候已经学过了,在这里只是把这个算法用函数的形式表示出来。
这里我们要注意函数的定义、声明的方法和格式。
2、程序清单:
#include "stdio.h"
2
hcf(int u,int v)
{ int a,b,t,r;
if(u>v)
{ t=u; u=v; v=t; }
a=u; b=v;
while((r=b%a)!=0)
{ b=a; a=r; }
return(a);
}
lcd(int u,int v,int h)
{ return(u*v/h); }
main()
{
int u,v,h,l;
scanf("%d,%d",&u,&v);
h=hcf(u,v);
printf("H.C.F=%d\n",h);
l=lcd(u,v,h);
printf("L.C.D=%d\n",l);
}
这是一个十分典型的算法,同学们一定要认真分析、学习。
四、实训思考题
1编写函数,求1!+2!+…+n!的和。
N的值有键盘输入。
实验指导书。