当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

上海交通大学:《程序设计思想与方法》课程教学资源(PPT课件讲稿)Chapter10 类的定义

资源类别:文库,文档格式:PPT,文档页数:38,文件大小:648KB,团购合买
点击下载完整版文档(PPT)

类的定义

回顾:对象 ■对象的构成: 一一组相关信息 ■存储在实例变量中 一处理该信息的一组方法 ■对象内的函数 对象的属性:实例变量和方法 2

2

回顾:对象 ■类决定了对象具有哪些信息和方法 一对象是类的实例 一通过类的构造器创建新对象 3

3

画圆 circ Circle(Point(50,50),40) circ: Circle center: Point radius: 40 50 X: draw() y:50 move(

Point 5050 x: y: circ: Circle40 center: radius: draw( ) move( )

回顾:对象 ■对象是一个类的实例 -类是数据类型(int,float,string)的推广 一实例/对象:是数据类型的具体化 以下通过一个实例来说明定义新类的用 处 5

5

编程实例:炮弹飞行模拟 给定发射角度、初始速度以及初始的高度,希 望计算出炮弹飞行的距离 程序规格 输入:发射角,初速度,初始高度 输出:射程 注: (1)采用微积分,可以直接导出炮弹位置的公式,但此 处我们不用微积分,而是只用一些基本常识,通过 一步一步迭代计算来解决 (2)不考虑风阻力,只考虑重力 6

6

编程实例:炮弹模拟 算法 输入模拟参数:角度,速度,高度,计算位置变化的时间间 隔 计算炮弹初始位置xpos,yPos 计算炮弹初始水平和垂直速度xvel,yvel 当炮弹还在飞行,循环: 更新一个时间间隔之后的xpos,ypos,yvel 输出xpos 7

7

编程实例:炮弹模拟(续) def main() angle input ("..(in degrees)" vel input("...(in meters/sec)") 才 ho input("...(in meters)") time input("...(in seconds)") velocity yvel=velocity*sin(theta) xpos,ypos =0.0,h0 theta ...d theta angel math.pi /180.0 xvel velocity cos(theta) xvel vel math.cos(theta) yvel vel math.sin(theta) whi1 e ypos>=0.0:#该条件允许h0=0.0 更新 print"Distance:号0.1 f meters."号(xpos) 8

8

编程实例:炮弹模拟(续) 算法核心部分:更新各值 xpos xpos xvel .time yvel new yvel -9.8 time ypos ypos time (yvelyvel new)/2 yvel yvel new 自由落体的速度计算公式选择向下方向为负) Vt=vo-9.8t y=vot-0.5gt2 10个变量,太多 可读性不够好 9

9

编程实例:炮弹模拟(续) 模块化设计:把程序分解成几个子函数 def main(): angle,vel,ho,time getInput() xpos,ypos =0,h0 xvel,yvel getxYComponents(vel, angle) while ypos >=0.0: xpos,ypos,yvel updatePos(time,xpos,ypos,xvel,yvel) print "Distance:$0.1f meters."$(xpos) 变量theta和yel newl呢? 这是自顶向下逐步求精带来的好处 10

10

点击下载完整版文档(PPT)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共38页,可试读13页,点击继续阅读 ↓↓
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有