Error 200:Division by zero
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/08/29 11:00:29
Error 200:Division by zero
Turbo Pascal图形编程教程
Pascal是一款有很强图形功能的开发工具,它可以编制各种图形窗口,并且听说还支持鼠标.但是时过境迁,
在vb,vc一统天下的今天,关于Pascal图形操作的书已经像古董一样难于寻找了,我现在将Tp 7.0的Help文件
中的一些有关图形操作的过程与函数整理了一下,并自己写了一些例子,加入了一些自己的看法,便得到了这篇
教程.其中如有错误,望各位不吝赐教.阅读之前希望大家做好准备,比如:找一些食品放在跟前,因为你可能
因为钻研一个函数而耗费大量的时间,还有你可能因为初始化无法完成而大动肝火.
第一章 使用Pascal进行图形操作前的准备
在 Turbo Pascal 中有一个 CRT 单元及一个 GRAPH 单元,简单的说 crt 单元是为了实现
字符的显示与处理,另外的那个称为 GRAPH 单元是专门用来处理图形的.我们看到的有关图形的
程序往往都要用到.所以若是要在 Turbo Pascal 中实现图形操作,就必须要调用 CRT 单元及
GRAPH 单元.那么怎么样来调用 CRT 及 GRAPH 单元呢?现在线来介绍一下单元调用语句:USES
USES的语法:
USES 单元表识符,……,单元表识符;
说明:
扩展名为*.TPW是Windows下的单元文件,*.TPU是DOS下的单元文件.
位置:变量说明var之前.
讲到这里,我还是要顺便提一下什么是单元?是这样的:我们在编程序的时候,要用到 procedure
或者 function ,中文名称一个是过程另一个是函数.做不同的程序时,往往要用到一些相同的过程
或者相同的函数.如果统统放到程序中,程序会硕大无比,比例与调试与编译,并且在过去
“惜kb如金”的年代里,这样的程序也很浪费.于是,简单的讲,人们把它们做成“包”--我
们称之为单元.一来,免去很多重复的痛苦,大家共享代码也很简单,另外,很多不愿意让别人看
到源程序的人也很乐于如此----这只是我的杜撰.生产 pascal 语言的公司也提供一些做好的
单元,放在安装盘上方便实用. crt ,graph 即使如此,还有 dos ,system 等等.
第二章 Pascal图形模式的初始化及退出
1.初始化
Pascal的图形操作在使用之前必须先进行初始化.如果说你编写图形程序中出现问题,是有八九十卡
在这里了. 这也是非常令我头疼的问题. 用过程 initgraph(GraphDriver,GraphMode,PathToDriver)
其中 GraphDriver , GraphMode 为整形变量, PathToDriver为字符串变量, GraphDriver为图形驱动器,
GraphMode为图形模式 , PathToDriver指定的路径名中建筑图形驱动程序(以.BGI为后缀).initgraph使
用方法见下例:
program t001 (input,output);
uses crt,graph;
var
gd:gm:integer; {定义GraphDriver,GraphMode变量}
begin
gd:=detect;
initgraph(gd,gm,''); {调用initgraph过程,PathToDriver缺省则表示在当前目录中寻找
《-------这个很重要,一般也可以写成 initgraph(gd,gm,'c:\tp\bgi'); 当然
如果你是如此安装的话.}
bar(100,100,200,200); {画一个以(100,100),(200,200)为顶点的矩形,这是一个标准过程,
你在后面还会看到一个名为bar3d的东东,那个是画立体矩形的}
delay(1000); {将此图形保留一秒,10000就是10秒,依此类推}
end.
2.退出
Closegraph过程
功能:退出图形模式.
在图形模式下如果使用 write 等等文本输出可能会出问题---比如无法看到等等.好像还可能引
起显示上的问题,反正养成一个好习惯也没什么不好的.这里有一个技巧,当你发现无论如何调整都无
法显示图形时,你可以调用自带的例子,用来测试,看看是否是程序本身的问题.
注意,这里有一个不属于图形的,但是非常容易遇到的问题.前面我们说过,在图形编程使用 graph 单
元的时候,我们也常常会使用crt单元,这就有一个问题:crt 单元在主频高的机器上无法正常运行.会出
现 200 号错误!请下载补丁,在我们的网站上就有.还有一种情况,就是出了问题没有提示!表现是
运行程序什么反应也没有.如果你出现这种情况,首先检查程序,如果没有问题,非常有可能使这种情况,
也请下载补丁!据报告奔腾180以上的机器具都不同程度存在这种问题!
第三章 基本几何图形的绘制
画直线:
1.Line过程
描述:procedure Line(x1, y1, x2, y2: Integer);两点确定一直线.够简单吧!
2.Lineto过程
描述:procedure LineTo(X, Y: Integer);从当前点项目标点(x,y)作直线.
画圆:
1.Circle过程
功能:以(X,Y)为圆心、Radius为半画一圆.
描述:procedure Circle(X,Y:Integer;Radius:Word);
示例:Circle(100,100,200) {画一个以(100,100)为圆心,200为半径的圆}
画椭圆:
1. Ellipse过程
功能:画一个以(X,Y)为中心,XRadius和YRadius为半轴,StAngle和EndAngle为始角和终角的椭圆弧.
描述:procedure Ellipse(X,Y:Integer;StAngle,EndAngle:Word;XRadius,YRadius:Word);
说明:角度沿逆时针方向,单位是度.0度指向东.
画圆弧:
1.Arc过程
功能: 画一个以(X,Y)为中心,Radius为半径,StAngle和EndAngle为始角和终角 的圆弧.
描述: procedure Arc(X,Y : Integer; StAngle,EndAngle,Radius:Word);
说明: 角度沿逆时针方向,单位是度.0度指向东.
示例: Arc(100,100,0,90,50) {画出第一卦限1/4圆,半径50,圆心(100,100)}
画矩形:
1.Bar过程
功能:画一个以(x1,y1),(x2,y2)为两个对角顶点的矩形.
描述:procedure Bar(x1,y1,x2,y2:integer);
示例:Bar(100,100,200,200) {画一个以(100,100),(200,200)为对角顶点的矩形}
2.Bar3d过程
功能:画一个长方体.
描述:procedure Bar3d(x1,y1,x2,y2:integer,depth:word,top:boolean); {x1,x2,y1,y2同上,为长方体的厚度 ,top为是否画出顶面.}
线形,颜色,及填充设置
线形设置:
1.setlinestyle过程
功能:设置线形,及线宽.
描述:procedure SetLineStyle(LineStyle: Word; Pattern: Word; Thickness: Word);
说明:linestyle(线形)一共有三种.代号0,1,2;线形如下图:
Thichness(线宽)有两种.代号1,3.1为普通线.3为宽线.
2.GetLineSettings过程
功能:返回当前设置的线型设置信息.
描述:procedure GetLineSettings(var LineInfo: LineSettingsType);{参见LineSettingsType类型}
3.LineSettingsType类型
描述:LineSettingsType = record
LineStyle : Word; {线形}
Pattern : Word; {模式}
Thickness : Word; {线宽}
end;
此类型记录了一种线形的信息.
线形,颜色及线形设置
颜色设置:
在pascal中共有16种颜色可以使用.
1.setcolor过程
描述: procedure SetColor(Color: Word);
设置线的颜色.颜色代码如上图.
2.GetColor函数
功能:返回最后一次作图时的颜色值
描述:function GetColor:word
示例:color:=GetColor; {color:word}
3.GetMaxColor函数
功能:返回系统可用的最大颜色数.
描述:num:=GetMaxColor; {将最大颜色数存到num变量中}
填充设置:
1.SetFillStyle过程
功能 设置填充模式和颜色.
描述 procedure SetFillStyle(Pattern:Word;Color:Word);
说明 设置用于Bar,Bar3D的填充模式和颜色.可生系列填充模式.缺省模式是实心点,缺省模式
是实心点,缺省颜色是调色板中最大颜色序号值.如果传递给SetFillStyle的输入参数无效,
GraphResult将返回值grError,且当前填充参数不改变.
填充设置如下图:
2.FillSettingsType 类型
描述:FillSettingsType=record
Pattern:word;
Color :word;
end;
此类型记录了一种填充模式的信息.
这些知识都很简单,更多的可以在编辑环境中按下f1观看帮助文档.
更多实例在 www.cpascal.com 的自编程序中
Pascal是一款有很强图形功能的开发工具,它可以编制各种图形窗口,并且听说还支持鼠标.但是时过境迁,
在vb,vc一统天下的今天,关于Pascal图形操作的书已经像古董一样难于寻找了,我现在将Tp 7.0的Help文件
中的一些有关图形操作的过程与函数整理了一下,并自己写了一些例子,加入了一些自己的看法,便得到了这篇
教程.其中如有错误,望各位不吝赐教.阅读之前希望大家做好准备,比如:找一些食品放在跟前,因为你可能
因为钻研一个函数而耗费大量的时间,还有你可能因为初始化无法完成而大动肝火.
第一章 使用Pascal进行图形操作前的准备
在 Turbo Pascal 中有一个 CRT 单元及一个 GRAPH 单元,简单的说 crt 单元是为了实现
字符的显示与处理,另外的那个称为 GRAPH 单元是专门用来处理图形的.我们看到的有关图形的
程序往往都要用到.所以若是要在 Turbo Pascal 中实现图形操作,就必须要调用 CRT 单元及
GRAPH 单元.那么怎么样来调用 CRT 及 GRAPH 单元呢?现在线来介绍一下单元调用语句:USES
USES的语法:
USES 单元表识符,……,单元表识符;
说明:
扩展名为*.TPW是Windows下的单元文件,*.TPU是DOS下的单元文件.
位置:变量说明var之前.
讲到这里,我还是要顺便提一下什么是单元?是这样的:我们在编程序的时候,要用到 procedure
或者 function ,中文名称一个是过程另一个是函数.做不同的程序时,往往要用到一些相同的过程
或者相同的函数.如果统统放到程序中,程序会硕大无比,比例与调试与编译,并且在过去
“惜kb如金”的年代里,这样的程序也很浪费.于是,简单的讲,人们把它们做成“包”--我
们称之为单元.一来,免去很多重复的痛苦,大家共享代码也很简单,另外,很多不愿意让别人看
到源程序的人也很乐于如此----这只是我的杜撰.生产 pascal 语言的公司也提供一些做好的
单元,放在安装盘上方便实用. crt ,graph 即使如此,还有 dos ,system 等等.
第二章 Pascal图形模式的初始化及退出
1.初始化
Pascal的图形操作在使用之前必须先进行初始化.如果说你编写图形程序中出现问题,是有八九十卡
在这里了. 这也是非常令我头疼的问题. 用过程 initgraph(GraphDriver,GraphMode,PathToDriver)
其中 GraphDriver , GraphMode 为整形变量, PathToDriver为字符串变量, GraphDriver为图形驱动器,
GraphMode为图形模式 , PathToDriver指定的路径名中建筑图形驱动程序(以.BGI为后缀).initgraph使
用方法见下例:
program t001 (input,output);
uses crt,graph;
var
gd:gm:integer; {定义GraphDriver,GraphMode变量}
begin
gd:=detect;
initgraph(gd,gm,''); {调用initgraph过程,PathToDriver缺省则表示在当前目录中寻找
《-------这个很重要,一般也可以写成 initgraph(gd,gm,'c:\tp\bgi'); 当然
如果你是如此安装的话.}
bar(100,100,200,200); {画一个以(100,100),(200,200)为顶点的矩形,这是一个标准过程,
你在后面还会看到一个名为bar3d的东东,那个是画立体矩形的}
delay(1000); {将此图形保留一秒,10000就是10秒,依此类推}
end.
2.退出
Closegraph过程
功能:退出图形模式.
在图形模式下如果使用 write 等等文本输出可能会出问题---比如无法看到等等.好像还可能引
起显示上的问题,反正养成一个好习惯也没什么不好的.这里有一个技巧,当你发现无论如何调整都无
法显示图形时,你可以调用自带的例子,用来测试,看看是否是程序本身的问题.
注意,这里有一个不属于图形的,但是非常容易遇到的问题.前面我们说过,在图形编程使用 graph 单
元的时候,我们也常常会使用crt单元,这就有一个问题:crt 单元在主频高的机器上无法正常运行.会出
现 200 号错误!请下载补丁,在我们的网站上就有.还有一种情况,就是出了问题没有提示!表现是
运行程序什么反应也没有.如果你出现这种情况,首先检查程序,如果没有问题,非常有可能使这种情况,
也请下载补丁!据报告奔腾180以上的机器具都不同程度存在这种问题!
第三章 基本几何图形的绘制
画直线:
1.Line过程
描述:procedure Line(x1, y1, x2, y2: Integer);两点确定一直线.够简单吧!
2.Lineto过程
描述:procedure LineTo(X, Y: Integer);从当前点项目标点(x,y)作直线.
画圆:
1.Circle过程
功能:以(X,Y)为圆心、Radius为半画一圆.
描述:procedure Circle(X,Y:Integer;Radius:Word);
示例:Circle(100,100,200) {画一个以(100,100)为圆心,200为半径的圆}
画椭圆:
1. Ellipse过程
功能:画一个以(X,Y)为中心,XRadius和YRadius为半轴,StAngle和EndAngle为始角和终角的椭圆弧.
描述:procedure Ellipse(X,Y:Integer;StAngle,EndAngle:Word;XRadius,YRadius:Word);
说明:角度沿逆时针方向,单位是度.0度指向东.
画圆弧:
1.Arc过程
功能: 画一个以(X,Y)为中心,Radius为半径,StAngle和EndAngle为始角和终角 的圆弧.
描述: procedure Arc(X,Y : Integer; StAngle,EndAngle,Radius:Word);
说明: 角度沿逆时针方向,单位是度.0度指向东.
示例: Arc(100,100,0,90,50) {画出第一卦限1/4圆,半径50,圆心(100,100)}
画矩形:
1.Bar过程
功能:画一个以(x1,y1),(x2,y2)为两个对角顶点的矩形.
描述:procedure Bar(x1,y1,x2,y2:integer);
示例:Bar(100,100,200,200) {画一个以(100,100),(200,200)为对角顶点的矩形}
2.Bar3d过程
功能:画一个长方体.
描述:procedure Bar3d(x1,y1,x2,y2:integer,depth:word,top:boolean); {x1,x2,y1,y2同上,为长方体的厚度 ,top为是否画出顶面.}
线形,颜色,及填充设置
线形设置:
1.setlinestyle过程
功能:设置线形,及线宽.
描述:procedure SetLineStyle(LineStyle: Word; Pattern: Word; Thickness: Word);
说明:linestyle(线形)一共有三种.代号0,1,2;线形如下图:
Thichness(线宽)有两种.代号1,3.1为普通线.3为宽线.
2.GetLineSettings过程
功能:返回当前设置的线型设置信息.
描述:procedure GetLineSettings(var LineInfo: LineSettingsType);{参见LineSettingsType类型}
3.LineSettingsType类型
描述:LineSettingsType = record
LineStyle : Word; {线形}
Pattern : Word; {模式}
Thickness : Word; {线宽}
end;
此类型记录了一种线形的信息.
线形,颜色及线形设置
颜色设置:
在pascal中共有16种颜色可以使用.
1.setcolor过程
描述: procedure SetColor(Color: Word);
设置线的颜色.颜色代码如上图.
2.GetColor函数
功能:返回最后一次作图时的颜色值
描述:function GetColor:word
示例:color:=GetColor; {color:word}
3.GetMaxColor函数
功能:返回系统可用的最大颜色数.
描述:num:=GetMaxColor; {将最大颜色数存到num变量中}
填充设置:
1.SetFillStyle过程
功能 设置填充模式和颜色.
描述 procedure SetFillStyle(Pattern:Word;Color:Word);
说明 设置用于Bar,Bar3D的填充模式和颜色.可生系列填充模式.缺省模式是实心点,缺省模式
是实心点,缺省颜色是调色板中最大颜色序号值.如果传递给SetFillStyle的输入参数无效,
GraphResult将返回值grError,且当前填充参数不改变.
填充设置如下图:
2.FillSettingsType 类型
描述:FillSettingsType=record
Pattern:word;
Color :word;
end;
此类型记录了一种填充模式的信息.
这些知识都很简单,更多的可以在编辑环境中按下f1观看帮助文档.
更多实例在 www.cpascal.com 的自编程序中
"Floating point division by zero"什么意思
开机弹出floating point division by zero怎么处理
floating point division by zero请高手翻译一下..
装软件出现Floating point division by zero怎么办
谢谢帮忙翻译下floating point division by zero
怎么解决floating point division by zero,我在看流星网络电视的时候出现这个问题,就不能连接
floating point division by
division
翻译ALL materials to the Graduate Division by February 15.
Find the remainder R by long division and by the remainder t
英语翻译The error of measurement of a zero-type MH in a NC machi
"The model is constituted by one-dimensional and zero-dimens