《可视化计算》第8章计算工具的评估和选择培训讲学.pptVIP

  • 3
  • 0
  • 约4.75千字
  • 约 54页
  • 2020-06-01 发布于天津
  • 举报

《可视化计算》第8章计算工具的评估和选择培训讲学.ppt

RAPTOR-C++(随机漫步) * RAPTOR 转换的C++图形指令与WinBGIm图形库的对比 RAPTOR转换的C++图形指令 WinBGIm图形库指令 备注 - #include winbgim.h 包含需要的C++头文件 open_graph_window(field_width,field_height); set_window_title(Random Walk); initwindow(field_width,field_height,Randem Walk); 初始化图形视窗并设置其标题栏 draw_circle(Center_x,Center_y,10,green,true); circle(center_x,center_y,10); 绘制圆形 display_text(10,400,This time the distance is +getdist,black); outtextxy(10,400,This time the distance is: ); 在图形视窗显示文字 * C++的薄弱环节 在于不同类型变量的转换 WinBGIm图形库支持字符串的显示,但不支持数值变量直接在图形视窗输出 须将数值类的变量—getdist(漫步终点与出发点的距离),转变成为字符串之后才能显示,C++实际上也没有此类函数 最后使用了变通的办法sprint()(格式化输出函数),将getdist的输出结果变成字符串,再调用outtextxy()函数将串里的字符显示在C++图形视窗中 * C++的随机数函数 在C++的随机数应用中,需要用到随机数种的函数,其作用是为每一次随机函数的调用,给出一个与上一次应用不同的初值 本例的循环进行了2000次,就需要2000个不同的种子,否则随机数列就会出现一致性的现象 另一方案,是采用系统时间值,这也是最容易取得的不同种子初值:srand(int time(0)); * RAPTOR的转换和编译问题 RAPTOR除了可以将其环境中的算法转换成高级语言后编译之外,也支持直接进行编译 在不少情况下,在RAPTOR中运行并得到结果的算法,但就是无法通过编译或转换为高级语言的代码 * 不可编译和转换的状况 通过应用实验,目前可以归纳出三类不可编译的RAPTOR算法: 第一种是子图的递归调用; 第二种是子图和过程的相互调用; 第三种是变量未赋初值问题 在这三种问题的算法要实现编译和转换,必须做一些调整 * RAPTOR子图递归的调整策略 * RAPTOR子图交叉调用调整策略 * 子程序输出变量赋初值调整策略 1、在RAPTOR子程序中,输出变量在调用程序中不必赋初值,也可以运行,但无法通过编译; 2、只要在调用程序程序中,加上赋初值的语句,即可通过编译。 * 选择计算工具的理由 1、动态语言和静态语言 动态类型语言指在运行期间才去做数据类型检查的语言,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来 静态类型语言:静态类型语言的数据类型是在编译其间检查的,也就是说在写程序时要声明所有变量的数据类型 * 选择计算工具的理由 2、强类型和弱类型语言 任何程序变量都有两个属性:类型和值;也就是说,弱类型的变量同样有类型 强类型的变量类型,必须在源代码中明确定义,称之为“变量声明” 弱类型的变量类型则是无需声明的,由解释器解释 强类型的变量类型是不能改变的,弱类型变量是随需改变的,这是强弱类型语言的主要区别 * 选择计算工具的理由 动态类型语言,特别是高级动态类型语言,由于取消了变量的限制,能够让人们可以集中精力思考业务逻辑实现 强类型语言的优势究竟是什么呢? 显然就是执行效率非常高。例如,C/C++的特点,使它成为Unix操作系统的基石和大部分工业控制系统的主要程序设计语言 * RAPTOR与面向对象 面向对象程序设计(Object-Oriented Programming,OOP) 作为另一类编程思想,它将一个系统看成是一个个对象组成,这些对象包含了数据和与其相关操作 * OOP要素 对象(Object):包含一定的数据结构和状态的实体 操作(Operation):作用于对象的行为,如访问和处理对象的状态 封装(Encapsulation):定义对象和操作,只提供抽象的接口,并隐藏它们的具体实现 * OOP要素 继承(Inheritance):通过继承现有类型的性质,创建新的数据类型,而不影响原有数据类型 多态性(Polymorphism):判定数据类型集合中各类型的区别,使程序可以按照它们的共同特性来书写 * RAPTOR对OOP的支持 RAPTOR中的面向对象的模式 允许用户创建类(Class)及其方法(Method)和属性(attribute

文档评论(0)

1亿VIP精品文档

相关文档