c语言 第四版 谭浩强 上机实验02 课件_第1页
c语言 第四版 谭浩强 上机实验02 课件_第2页
c语言 第四版 谭浩强 上机实验02 课件_第3页
c语言 第四版 谭浩强 上机实验02 课件_第4页
c语言 第四版 谭浩强 上机实验02 课件_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

1、领袖名言 “在科学上是没有平坦大道可走,只有那不畏劳苦沿着陡峭山路攀登的人,才有希望达到光辉的顶点。” 1第二次实验训练任务1. 学习程序调试的基本方法。2. 编程: 求一元二次方程的根。3. 编程: 写出屏幕上输出下列信息的语句。 C:msdosv6.22 I say : “Goodbye!”将2、3完成的两个程序,放在自己学号最后两位与自己姓名命名的文件夹中,上交到本班本次作业文件夹中。2一. 学习程序调试的基本方法参考资料第15章 程序的调试和测试 C程序设计(第4版)学习辅导 P241学习程序调试的基本方法。使用程序 C2_2.c 练习程序调试。3二.编程:求一元二次方程的根求一元二次

2、方程的根。要求:1) 系数 a, b, c 由键盘输入 2) 当判别式大于零 输出两个不同的实根 x1= x2= 当判别式小于零时,输出如下提示信息: “判别式小于零” 3) 结束时, 在自己的U盘上存储此程序文件。4编程提示-1一元二次方程系数 a, b, c 的输入语句:printf(“nplease input a b cn”);scanf(“%d%d%d”,&a,&b,&c);其中:&a、&b、&c中的“&”是“地址运算符”, &a指a在内存中的地址。运行时按以下方式输入a b c的值:3 4 5 (输入a、b、c的值)5续一元二次方程系数 a, b, c 的输入语句:printf(“

3、nplease input a, b, cn”);scanf(“%d,%d,%d”,&a,&b,&c);其中:&a、&b、&c中的“&”是“地址运算符”, &a指a在内存中的地址。运行时按以下方式输入a b c的值:3, 4, 5 (输入a, b, c的值)6编程提示-2 求 x 的平方根需使用库函数: sqrt 参考P372 sqrt(b*b-4*a*c)在程序开始增加一个新的文件包含编译预处里命令: #include 参考P3727编程提示-3求两个实根的表达式语句:x1= (-b+sqrt(b*b-4*a*c) /(2*a);x2= (-b-sqrt(b*b-4*a*c) /(2*a);

4、8编程提示-3两个实根的输出语句:printf(“nx1=%f”,x1);printf(“nx2=%f”,x1);9注意注意:用英文半角输入源程序第一个运行成功并存储后,一定要关闭工作区后,再输入第二个程序。10三. 编程编程:写出在屏幕上输出下列信息的程序。 C:msdosv6.22 I say : “Goodbye!”11第二次实验训练任务1. 学习程序调试的基本方法。2. 编程: 求一元二次方程的根。3. 编程: 写出屏幕上输出下列信息的语句。 C:msdosv6.22 I say : “Goodbye!”将2、3完成的两个程序,放在自己学号最后两位与自己姓名命名的文件夹中,上交到本班本

5、次作业文件夹中。12领袖名言 “在科学上是没有平坦大道可走,只有那不畏劳苦沿着陡峭山路攀登的人,才有希望达到光辉的顶点。” 作者:马克思13参考资料14程序调试掌握以下程序调试方法:调试运行*单步跟踪设置断点*单步跳进跟踪观察自动变量观察其他变量设置临时断点*临时断点跟踪停止调试清除断点方法15参考资料-程序调试调试程序是一个程序员最基本的技能, 其重要性甚至超过学习一门语言。不会调试程序的程序员就意味着他即使会一门语言,却不能快速、高效地编制出好的软件。16程序调试入门什么叫程序调试所谓程序调试,是将编制的程序在正式投入实际运行前,修正语法错误和逻辑错误的过程。通俗地说,程序调试就是查错与修

6、改。这是保证计算机信息系统正确性的必不可少的步骤。17错误种类(1)语法错误:词法错误和句法错误(2)逻辑错误(设计意图错)是指程序执行正常结束,但产生错误结果。(3)运行错误: 是指程序设计人员用正确地语法的程序,去执行不可能或不合法的操作。 例如: a/b 用0去除。18程序调试方法-静态跟踪用典型数据在头脑中运行程序,看能否得到预定的结果#include void main() int fac(int n); int n, y; printf(input a integer number:); scanf(%d,&n); y=fac(n); printf(n%d=%dn,n,y);int

7、 fac(int n) int i, p=1; for(i=1;i=n;i+) p*=i; return(p);19程序调试方法-动态调试插入打印语句#include void main() int fac(int n); int n, y; printf(input a integer number:); scanf(%d,&n); / printf(n*n); y=fac(n); printf(n%d=%dn,n,y); / printf(n*n);int fac(int n) int i, p=1; / printf(n*n); for(i=1;i=n;i+) / printf(n*n)

8、; p*=i; / printf(n#n); return(p);20利用工具进行调试VC+6.0环境下程序调试程序调试是程序设计中一个很重要的环节,程序调试分为源程序语法错误的修改和逻辑设计错误的修改两个阶段。修改语法错误的方法:在程序编译时,编译器可指出。修改逻辑设计错误的方法:程序员利用调试工具手工检查和修改。211.源程序中的语法错误一般错误(error)警告错误(warning)警告(warning)比一般错误(error)更难修改,因此应尽量消除警告错误(warning)双击出错提示信息或按F4可以返回到源程序编辑窗口,并通过箭头符号定位到可能产生错误的语句。222.用程序调试器D

9、ebug调试程序为了查找和修改程序中的逻辑错误,Visual C+ IDE,面向对象的集成开发环境,提供了重要的调试工具-DebugIDEIntegrated Development Environment23Debug的启动启动Debug前提。程序编译、连接、运行,发现错误后,开始调试。Debug的启动单击Build-Start Debug菜单中的菜单项,可以启动 Debug24开始调试和停止调试F5-Go 开始或继续调试程序,到某断点、程序结尾或需用户输入的地方停止。Shift+F5- Stop Debugging终止程序的调试,返回到程序的编辑状态。25调试程序的基本内容调试运行单步跟踪

10、设置断点单步跳进跟踪观察自动变量观察其他变量设置临时断点*临时断点跟踪停止调试清除断点方法26调试计算5的阶乘#include int main( ) int i=1; i = i*2; i = i*3; i = i*4; i = i*5; printf(“n 5! = %dn ”, i); return(0);27*单步跟踪1. 输入程序2. 编译、连接和运行该文件3. 调试运行该程序4. 按功能键F105. 继续按功能键F10附:如果想进入被调用函数的内部, 按功能键F11(一般不进入)28重要菜单项和组合键功能F5-Go 开始或继续调试程序,到某断点、程序结尾或需用户输入的地方停止。Sh

11、ift+F5-Stop Debugging终止程序的调试,返回到程序的编辑状态。Ctrl+Shift+F5-Restart重新启动29相关功能键的说明:F10-Step Over单步执行程序的每一条指令,当遇到一个函数时该函数被执行,单并不进入该函数内部。Run to Cursor-Ctrl+F10程序执行到当前光标处,相当在光标处设置了一个断点。30相关功能键的说明:F11-Step into 单步执行程序的每一条指令,能进入被调用函数的内部。Shift+F11- Step Out 当调试进入被调用函数的内部时,可快速执行完本函数。31观察Variable窗口用于观察变量的当前值。Watch

12、窗口观察变量和表达式的值。32单步跳进跟踪设置断点跟踪调试步骤1. 打开上述程序文件2. 编译、连接和运行该文件3. 调试运行该程序4. *设置断点5. 按F5,再次调试运行程序6. 使用单步执行程序到结束 或继续按F5,运行到下一个断点, , 直到结束。 或按Shift+F5结束调试。331:打开jiecheng程序(项目)342:运行该程序- 确定程序可以运行353:调试运行阶乘程序Go364:*设置断点将鼠标停留在程序的第8行,在第8行的任意地方单击鼠标左键 (第8行即“i = i*4;”)或单击鼠标右键,在弹出的快捷菜单中选插入断点。在工具栏上选择 按钮,为第8行设置断点,以便让程序在

13、此处暂停运行。375:再次调试运行阶乘程序注意观察,现在调试运行程序会如何?Go385:再次调试运行阶乘程序程序暂停之处调试(Debug)工具:控制程序前进步伐查看程序当前状态39使用单步执行到程序结束设置断点以后,调试运行程序时,程序开始执行,并且运行到断点处暂停下来,此时我们有机会观察程序的运行情况,并且诊断程序目前的状态是否如我们所预期的那样。继续按F5,运行到下一个断点, ,直到结束。或按Shift+F5结束调试。406. 使用单步执行到程序结束程序停下来了,如何让程序从暂停的地方继续向前执行?方法是使用单步执行手段F10(F10-Step Over)让程序向前走一步停止调试停止调试并

14、重新启动调试单步执行当前位置41熟悉调试工具栏和菜单(只在调试运行时出现)对比调试运行时出现的调试菜单“Debug”和调试工具栏,根据图标查找对应项42观察自动变量自动变量43观察变量的值及其随程序运行时的变化情况设置断点,调试运行程序,此时程序暂停在断点处等待。选择Debug菜单,找到 最后一项“Quick Watch” 并点击44观察变量的值输入想要观察的变量变量名变量的值点击Add Watch45点击Add watch看到如下画面46调试观察每一步骤变量 i 的值点击单步执行按钮或者菜单,程序则向前单独运行一个步骤每向前执行一步,就会暂停下来,这样我们就有充足的时间观察所关心的变量名称观

15、察变量 i 的值的情况47如何调出调试工具栏刚打开VC6.0+环境时,你只能看到标准工具栏和编译工具栏。在菜单栏右击鼠标在弹出的快捷菜单中选择自定义,工具栏,调试就能看见了。 48设置临时断点的方法单击要设置临时断点行的任意位置,使光标停在此行。然后按Ctrl+F10-Run to Cursor程序执行时停在当前光标处,相当在光标处设置了一个断点。或选择【 Build 】 | 【 Start Debug 】| Run to Cursor 命令。程序运行到指定行时暂停其运行,在窗口的左下方就列出了程序运行到该行时各变量的取值情况。49说明断点不能设置在空白行上面添加断点和删除断点的方法一样一个程

16、序中可以设置多个断点50清除断点(1)清除临时断点:单击“调试”菜单,然后选择Step Over 命令,则跳过刚刚设置的临时断点,继续单步调试状态。(2)清除固定性断点的两种方法:最方便的方法是,在具有圆形棕色标记的固定断点行处右键单击,在弹出的快捷菜单中选择 Remove Breakpoint命令,单击该命令;另一种通过使用菜单选项“编辑”|“断点”,在弹出的对话框,可在Breakpoint列表中先选择固定断点,之后单击Remove 按钮。51备用52小结重要菜单项和功能(一)F5-Go 开始或继续调试程序,到某断点、程序结尾或需用户输入的地方停止。Shift+F5-终止程序的调试,返回到程

17、序的编辑状态。Ctrl+Shift+F5- Restart重新启动53重要菜单项和功能(二)F10-Step Over-F10单步执行程序的每一条指令,当遇到一个函数时该函数被执行,但并不进入该函数内部。Run to Cursor-Ctrl+F10程序执行到当前光标处,相当在光标处设置了一个断点。54重要菜单项和功能(三)Step into-F11 单步执行程序的每一条指令,能进入被调用函数的内部。Step Out-Shift+F11 当调试进入被调用函数的内部时,可快速执行完次函数。55断点的设置方法1. 设置临时断点的方法单击要设置临时断点行的任意位置,使光标停在此行。然后按Ctrl+F1

18、0-Run to Cursor程序执行时停在当前光标处,相当在光标处设置了一个断点。或选择【 组建 】 | 【 开始 】|Run to Cursor 命令。程序运行到指定行时暂停其运行,在窗口的左下方就列出了程序运行到该行时隔变量的取值情况。562. 设置固定断点的方法在程序的某一行右击,弹出快捷菜单中选择Insert |remove Breakpoint命令,单击该项。此时,该行前出现了一个棕色圆点,意味着已经将该行设置为固定断点了。设置了固定断点后,通过组建|开始调试|去或调试命令|去命令运行程序,直到遇到某断点或遇到程序结束而停止。57其它设置固定断点的方法通过菜单也可设置断点,【编辑】|【断点】命令弹出对话框,在其中的Break at 文本框中输入要设置断点的行数信息,通常是先用鼠标选定某一行,在利用菜单命令进入上述对话框,在Break at 文本框右侧的下拉按钮,并选

温馨提示

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

评论

0/150

提交评论