粤教版高中信息技术选修1算法与程序设计:程序调试的方法课件_第1页
粤教版高中信息技术选修1算法与程序设计:程序调试的方法课件_第2页
粤教版高中信息技术选修1算法与程序设计:程序调试的方法课件_第3页
粤教版高中信息技术选修1算法与程序设计:程序调试的方法课件_第4页
粤教版高中信息技术选修1算法与程序设计:程序调试的方法课件_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

程序调试的方法程序调试的方法1程序调试的主要任务:查找程序的错误和排除错误主要内容:VB程序中的错误类型程序工作模式程序调试错误处理程序调试的主要任务:查找程序的错误和排除错误2错误的类型:编译错误,逻辑错误和运行错误1.编译错误编译错误是指在程序编译过程中出现的错误。通常是由于不正确书写代码而产生的。例:关键字写错,遗漏标点符号,括号不匹配等,较为容易。VB提供了自动语法检查功能,能指出并显示这些错误,帮助用户纠正语法错误。例子:Foort=1To100错误的类型:32.运行错误

运行时的错误是指应用程序在运行期间执行了非法操作所发生的错误。例:除法运算中除数为零,访问文件时文件夹或文件找不到等。这种错误只有在程序运行时才能被发现。举例(“下标越界”):PrivateSubForm_Load()

DimD(20)AsInteger,kAsInteger

Fork=1To30

D(k)=k*K

Nextk

EndSub2.运行错误

运行时的错误是指应用程序在运行期间43.逻辑错误

逻辑错误使程序运行时得不到预期的结果。这种程序没有语法错误,也能运行,但却得不到正确的结果。例:在一个算术表达式中,把乘号“*”写成了加号“+”,条件语句的条件写错,循环次数计算错误等

3.逻辑错误

逻辑错误使程序运行时得不到预期的结5例如,要求10,若采用:

PrivateSubForm_Load()

DimtAsInteger

Fori=1To10

t=t*i

Nexti

Show:Printt

EndSub

运行程序时输出的结果是0通常,调试程序过程中所花的大部分时间和精力都在逻辑错误上例如,要求10,若采用:

Private6程序工作模式:设计模式、运行模式和中断模式1.设计模式

在设计模式下,可以建立应用程序的用户界面,设置控件的属性,编写程序代码等程序工作模式:72.运行模式

在运行模式下,可以测试程序的运行结果,可以与应用程序对话,还可以查看程序代码,但不能修改程序3.中断模式

在中断模式下,可以利用各种调试手段检查或更改某些变量或表达式的值,或者在断点附近单步执行程序,以便发现错误或改正错误2.运行模式

在运行模式下,可以测试程序的运行结果8

进入中断模式的方法:

(1)在代码中插入Stop语句;

(2)在代码窗口中设置断点(用菜单命令);

(3)在代码窗口中设置断点(鼠标操作);

(4)在程序运行时强制“中断”;

(5)当程序运行出现错误。

当检查调试通过后,需要清除断点进入中断模式的方法:

(1)在代码9粤教版高中信息技术选修1算法与程序设计:程序调试的方法课件10使用“调试”菜单或“调试”工具栏

1.切换断点

“切换断点”按钮用来设置断点2.逐语句

VB允许逐条语句执行程序,每执行一条语句后就返回中断模式。

如果执行的是过程调用的代码(如Call),“逐语句”操作也会跟踪到被调过程中继续一条语句一条语句的执行

使用“调试”菜单或“调试”工具栏

1.113.逐过程逐过程执行是以整个函数或过程为一个整体,一次执行。逐过程与逐语句一样,能够一条语句一条语句地执行代码。把被调用的函数或过程当作一个语句来看待。4.跳出

单击“调试”工具栏上的“跳出”按钮,则VB将连续执行完该过程的其余部分,返回调用过程的下一条语句并回复中断模式。3.逐过程12

5.本地窗口

显示当前过程中所有变量和活动窗体的所有属性值

Me代表当前窗体;单击“+”号或“-”号6.立即窗口

可以检查某个属性或者变量的值,也可以对表达式求值,或为变量或属性赋值等7.监视窗口

对用户定义的表达式进行监视

5.本地窗口13

例1计算t=0.1+0.2+0.3+……+0.9+1

编写的程序代码如下:

PrivateSubForm_Load()ShowDimtAsSingle,iAsSinglet=0Fori=0.1To1Step0.1t=t+iNextiPrint"总和:";tEndSub

运行结果为:总和:4.5

这不是正确的答案,正确结果应是5.5例1计算t=0.1+0.2+0.3+14

1.在代码窗口中设置断点。为了了解循环过程中变量i和t的变化情况,可在语句t=t+i

处设置断点。

1.在代码窗口中设置断点。为了了解循环15

2.重新运行程序。程序在断点处中断运行,进入中断模式

2.重新运行程序。程序在断点处中断运行,进入中断模式16

3.单击“调试”工具栏上的“本地窗口”按钮,利用本地窗口来监视过程中各量及属性值的变化情况3.单击“调试”工具栏上的“本地窗口”174.单击“调试”工具栏上的“逐语句”按钮,让程序单步执行。“本地窗口”会显示出程序中所用变量的当前值

5.连续单击“逐语句”按钮,使程序在For语句循环执行9次,此时本地窗口显示的变量值如图所示

4.单击“调试”工具栏上的“逐语句”按钮,让程序单步18

6.再次单击“逐语句”按钮。程序不再继续循环,而是退出循环,去执行Nexti下一个的Print语句。

可以发现上述循环语句只是循环9次。本来应该循环10次,但由于小数点在机器内存储和处理会发生微小误差,当执行到第9次循环时,循环变量i的值为0.9000001,再加上步长值0.1时,已经超过1,往下就不再执行循环体了。所以实际上才循环9次,即只计算0.1+0.2+0.3+…+0.9(=4.5)6.再次单击“逐语句”按钮。程序不19

当步长值为小数时,为了防止丢失循环次数,可将终值适当增加,一般是加上步长值的一半,例如:

Fori=0.1To1.05Step0.1

调试程序往往比写程序更难当步长值为小数时,为了防止丢失循环20

由于应用环境等的改变,有时程序还会出现错误。例如文件未找到等。这类“运行时错误”并非致命的错误。

对于这些可预见的错误,可以利用VB的错误处理程序捕获它,对其进行适当的处理,并使程序继续执行。这样就能够使开发的软件具有更强的适应性。由于应用环境等的改变,有时程序还会21错误处理的步骤:

(1)利用Err对象记录错误的类型、出错原因等。

(2)强制转移到用户自编的“错误处理程序段”的入口。

(3)在“错误处理程序段”内,根据具体错误进行处理,如果问题有解决方法,则在处理后返回原程序某处继续执行,否则,停止程序执行错误处理的步骤:22退出错误处理语句(Resume)

当指定的错误处理完成后,应该控制程序返回到合适的位置继续执行。返回语句Resume有三种用法:

(1)Resume[0]:程序返回到出错语句处继续执行。

(2)ResumeNext:程序返回到出错语句的下一语句。

(3)Resume标号:程序返回到标号处继续执行。退出错误处理语句(Resume)23输入某个数,求该数的平方根。当用户输入负数时,使用OnError...Resume进行处理PrivateSubForm_Load()DimxAsSingle,yAsSingle,iAsStringOnErrorGoTo

errln'以下出错时转移到errlnShow:i=""‘i

为实数标记x=Val(InputBox("请输入一个数"))y=Sqr(x)Printy;i:ExitSub‘显示及退出过程errln:'标号IfErr.Number=5Then'本错误的错误码为5x=-x'转换为正数

i="i"'复数标记Resume'返回Else'其他错误处理MsgBox("错误发生在"&Err.Source&",代码为"&_

Err.Number&",即"&Err.Description)EndEndIfEndSub错误处理程序示例输入某个数,求该数的平方根。错误处理程序示例24

程序运行时,当用户输入一个正数时,则显示出该数的平方根;如果输入的是一个负数,则因求负数的平方根(通过函数Sqr())而出错,此时会跳转到错误处理程序段。在错误处理程序段中,先判断错误码,若是5(即发生求负数的平方根的错误),则将该负数转换为正数,设置复数标记,然后执行Resume语句返回到原出错处继续执行。如果发生的不是错误5,则显示有关信息后强制结束程序运行时,当用户输入一个正数时,则显示25常见错误1.使用中文标点符号系统产生“无效字符”,红色表示2.字母和数字形状相似如’1’和’l’,’0’和’o’3.对象名称(Name)写错4.对象属性名、方法名或标准函数名写错尽量使用自动列出成员功常见错误1.使用中文标点符号265.无意形成控件数组建立控件时小心使用复制、粘贴功能6.打开工程时找不到对应文件保存文件时先保存窗体文件(.frm),再保存工程文件(.vbp),注意路径常见错误5.无意形成控件数组常见错误27谢谢!谢谢!28程序调试的方法程序调试的方法29程序调试的主要任务:查找程序的错误和排除错误主要内容:VB程序中的错误类型程序工作模式程序调试错误处理程序调试的主要任务:查找程序的错误和排除错误30错误的类型:编译错误,逻辑错误和运行错误1.编译错误编译错误是指在程序编译过程中出现的错误。通常是由于不正确书写代码而产生的。例:关键字写错,遗漏标点符号,括号不匹配等,较为容易。VB提供了自动语法检查功能,能指出并显示这些错误,帮助用户纠正语法错误。例子:Foort=1To100错误的类型:312.运行错误

运行时的错误是指应用程序在运行期间执行了非法操作所发生的错误。例:除法运算中除数为零,访问文件时文件夹或文件找不到等。这种错误只有在程序运行时才能被发现。举例(“下标越界”):PrivateSubForm_Load()

DimD(20)AsInteger,kAsInteger

Fork=1To30

D(k)=k*K

Nextk

EndSub2.运行错误

运行时的错误是指应用程序在运行期间323.逻辑错误

逻辑错误使程序运行时得不到预期的结果。这种程序没有语法错误,也能运行,但却得不到正确的结果。例:在一个算术表达式中,把乘号“*”写成了加号“+”,条件语句的条件写错,循环次数计算错误等

3.逻辑错误

逻辑错误使程序运行时得不到预期的结33例如,要求10,若采用:

PrivateSubForm_Load()

DimtAsInteger

Fori=1To10

t=t*i

Nexti

Show:Printt

EndSub

运行程序时输出的结果是0通常,调试程序过程中所花的大部分时间和精力都在逻辑错误上例如,要求10,若采用:

Private34程序工作模式:设计模式、运行模式和中断模式1.设计模式

在设计模式下,可以建立应用程序的用户界面,设置控件的属性,编写程序代码等程序工作模式:352.运行模式

在运行模式下,可以测试程序的运行结果,可以与应用程序对话,还可以查看程序代码,但不能修改程序3.中断模式

在中断模式下,可以利用各种调试手段检查或更改某些变量或表达式的值,或者在断点附近单步执行程序,以便发现错误或改正错误2.运行模式

在运行模式下,可以测试程序的运行结果36

进入中断模式的方法:

(1)在代码中插入Stop语句;

(2)在代码窗口中设置断点(用菜单命令);

(3)在代码窗口中设置断点(鼠标操作);

(4)在程序运行时强制“中断”;

(5)当程序运行出现错误。

当检查调试通过后,需要清除断点进入中断模式的方法:

(1)在代码37粤教版高中信息技术选修1算法与程序设计:程序调试的方法课件38使用“调试”菜单或“调试”工具栏

1.切换断点

“切换断点”按钮用来设置断点2.逐语句

VB允许逐条语句执行程序,每执行一条语句后就返回中断模式。

如果执行的是过程调用的代码(如Call),“逐语句”操作也会跟踪到被调过程中继续一条语句一条语句的执行

使用“调试”菜单或“调试”工具栏

1.393.逐过程逐过程执行是以整个函数或过程为一个整体,一次执行。逐过程与逐语句一样,能够一条语句一条语句地执行代码。把被调用的函数或过程当作一个语句来看待。4.跳出

单击“调试”工具栏上的“跳出”按钮,则VB将连续执行完该过程的其余部分,返回调用过程的下一条语句并回复中断模式。3.逐过程40

5.本地窗口

显示当前过程中所有变量和活动窗体的所有属性值

Me代表当前窗体;单击“+”号或“-”号6.立即窗口

可以检查某个属性或者变量的值,也可以对表达式求值,或为变量或属性赋值等7.监视窗口

对用户定义的表达式进行监视

5.本地窗口41

例1计算t=0.1+0.2+0.3+……+0.9+1

编写的程序代码如下:

PrivateSubForm_Load()ShowDimtAsSingle,iAsSinglet=0Fori=0.1To1Step0.1t=t+iNextiPrint"总和:";tEndSub

运行结果为:总和:4.5

这不是正确的答案,正确结果应是5.5例1计算t=0.1+0.2+0.3+42

1.在代码窗口中设置断点。为了了解循环过程中变量i和t的变化情况,可在语句t=t+i

处设置断点。

1.在代码窗口中设置断点。为了了解循环43

2.重新运行程序。程序在断点处中断运行,进入中断模式

2.重新运行程序。程序在断点处中断运行,进入中断模式44

3.单击“调试”工具栏上的“本地窗口”按钮,利用本地窗口来监视过程中各量及属性值的变化情况3.单击“调试”工具栏上的“本地窗口”454.单击“调试”工具栏上的“逐语句”按钮,让程序单步执行。“本地窗口”会显示出程序中所用变量的当前值

5.连续单击“逐语句”按钮,使程序在For语句循环执行9次,此时本地窗口显示的变量值如图所示

4.单击“调试”工具栏上的“逐语句”按钮,让程序单步46

6.再次单击“逐语句”按钮。程序不再继续循环,而是退出循环,去执行Nexti下一个的Print语句。

可以发现上述循环语句只是循环9次。本来应该循环10次,但由于小数点在机器内存储和处理会发生微小误差,当执行到第9次循环时,循环变量i的值为0.9000001,再加上步长值0.1时,已经超过1,往下就不再执行循环体了。所以实际上才循环9次,即只计算0.1+0.2+0.3+…+0.9(=4.5)6.再次单击“逐语句”按钮。程序不47

当步长值为小数时,为了防止丢失循环次数,可将终值适当增加,一般是加上步长值的一半,例如:

Fori=0.1To1.05Step0.1

调试程序往往比写程序更难当步长值为小数时,为了防止丢失循环48

由于应用环境等的改变,有时程序还会出现错误。例如文件未找到等。这类“运行时错误”并非致命的错误。

对于这些可预见的错误,可以利用VB的错误处理程序捕获它,对其进行适当的处理,并使程序继续执行。这样就能够使开发的软件具有更强的适应性。由于应用环境等的改变,有时程序还会49错误处理的步骤:

(1)利用Err对象记录错误的类型、出错原因等。

(2)强制转移到用户自编的“错误处理程序段”的入口。

(3)在“错误处理程序段”内,根据具体错误进行处理,如果问题有解决方法,则在处理后返回原程序某处继续执行,否则,停止程序执行错误处理的步骤:50退出错误处理语句(Resume)

当指定的错误处理完成后,应该控制程序返回到合适的位置继续执行。返回语句Resume有三种用法:

(1)Resume[0]:程序返回到出错语句处继续执行。

(2)ResumeNext:程序返回到出错语句的下一语句。

(3)Resume标号:程序返回到标号处继续执行。退出错误处理语句(Resume)51输入某个数,求该数的平方根。当用户输入负数时,使用OnError...Resume进行处理PrivateSubForm_Load()DimxAsSingle,yAsSingle,iAsStringOnErrorGoTo

errln'以下出错时转移到errlnShow:i=""‘i

为实数标记x=Val(InputBox("请输入一个数"))y=Sqr(x)Printy;i:ExitSub‘显示及退出过程errln:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论