PASCAL语言 基础教程四

PASCAL语言 / 2011年03月04日 12时50分 / 13651人浏览
第十章、调试PASCAL程序 调试运行PASCAL语言程序是非常重要的,往往编一个程序不困难,但如果程序出错,要从中找出错误,使程序能正确运行,得出正确答案是很困难的。PASCAL语言提供了很强大的调试功能,使我们能很方便的找出程序的错误。 一、             程序错误: 1、  编译错误:即语法错误。如:命令错写,少分号等等。此种错误在程序编译执行就能发现,而把光标停留在错误行上,并显示出错误信息,由用户修改。 2、  运行错误:如果没有语法错误。则程序可以运行,但在运行过程中也有可能出现错误,如程序结构不合理,打印语句错误等。此时,程序将中止运行,光标停留在错误语句处,并显示错误信息,等待用户修改。 3、  逻辑错误:如:程序递归出口设置不正确,逻辑判断设置错误,这样程序虽然能够正常运行,但运行结果却不正确,这是用户最难发现有错误,也是最难查找的错误,此时计算机也无任何错误信息。 二、TURBO PASCAL的集成调试器     在TURBO PASCAL语言集成环境中,我们可以非常方便地调试程序。 1、  暂停(CTRL+BREAK):在程序运行过程中,我们可用CTRL+BREAK暂停程序的运行,此时集成环境会在当前运行到的语句上设置一条光带,表示程序可继续运行。此时,如果要程序继续执行(接着刚刚中断的语句),可用CTRL+F9(即RUN功能)继续运行程序;如果不需程序继续运行,可用CTRL+F2清除光带,这样程序将不能被继续运行。 2、  跟踪(F7):菜单RUN|TRACE INTO功能能够逐步运行程序,即使在过程中也能爱步运行。 3、  跟踪(F8):菜单RUN|STEP功能能够使我们逐段运行程序,即子程序中的语句将不会逐步执行。 4、  执行到光标处(F4):把光标移到要执行到的语句行,再用F4(菜单RUN|GOTO CRUSOR)可让程序执行到该行暂停。 5、  断点:我们可用DEBUG|BREAKPOINT功能在光标处行设置程序断点,这样,当程序运行到这里时将自动暂停。清除断点也用此功能。 6、  查看变量或表达式值(CTRL+F4):我们可以在程序未运行、运行暂停、运行结束后用此功能查看变量或表达式的值。 7、  设置动态变量查看(CTRL+F7):我们可用此功能打开WATCH窗口,在此窗口中增加要查看的变量,这样,我们在用F7或F8或在程序暂停时,就能在此窗口中看到要查看的变量的值。 8、  集成环境中的窗口操作:TURBO PASCAL语言是类似WINDOWS的,也可提供多窗口操作。如:用F3功能打开一个文件,再用F3功能打开一个文件,这时,我们就打开了两个窗口。此时,可用F6在各个窗口之间切换;用ALT+F3可把当前窗口关闭;用CTRL+F5可进入改变窗口大小、位置状态,此时,可用光标键上下左右移动当前窗口,也可用SHIFT+光标键来改变窗口大小。这样,我们就能在屏幕上同时看到文件窗口、WATCH窗口、OUTPUT窗口等。 9、  记录文件运行编译环境(CTRL+OO):因为PASCAL语言是在集成环境中来运行程序,而各台计算机的集成环境设置有可能不同,这样就使得一个文件在一台机器上运行正常,而在另一台机器上运行不正常或不能运行。所以,我们一般都会在程序的第一行用CTRL+OO键来记录下当前的程序运行环境,这此在屏幕当前行会出现两行语句,都是用“{}”括住,以“$”引导,尤其是第二行是非常重要的,如:{$16384,0,655350};是指程序中允许最多打开16384个栈,这如果是在做一些搜索问题时是不够的,所以我们都会把它改成最大的数值:65520,请大家记住这个数值,这是PASCAL语言允许打开的最大栈数。 附录一  错误信息(略) 附录二、常用ASCII码表
代码 字符 代码 字符 代码 字符 代码 字符 代码 字符
32   52 4 72 H 92 112 p
33 ! 53 5 73 I 93 ] 113 q
34 54 6 74 J 94 ^ 114 r
35 # 55 7 75 K 95 _ 115 s
36 $ 56 8 76 L 96 ` 116 t
37 % 57 9 77 M 97 a 117 u
38 & 58 : 78 N 98 b 118 v
39 59 ; 79 O 99 c 119 w
40 ( 60 80 P 100 d 120 x
41 ) 61 = 81 Q 101 e 121 y
42 * 62 82 R 102 f 122 z
43 + 63 ? 83 S 103 g 123 {
44 , 64 @ 84 T 104 h 124 |
45 - 65 A 85 U 105 i 125 }
46 . 66 B 86 V 106 j 126 ~
47 / 67 C 87 W 107 k    
48 0 68 D 88 X 108 l    
49 1 69 E 89 Y 109 m    
50 2 70 F 90 Z 110 n    
51 3 71 G 91 [ 111 o    
  附录三、TURBO PASCAL 7.0集成环境的主要菜单项 一、             FILE菜单 1、  OPEN(F3):装入一个已经存在于磁盘上的文件(也可以是非PASCAL源程序文件,如文本文件)。 2、  NEW:新建一个文件,文件名为NONAME.PAS。 3、  SAVE(F2):当前编辑的文件存盘。 4、  SAVE AS…:把当前文件存成另外一个文件名。 5、  SAVE ALL:保存已经打开的所有文件。 6、  CHANGE DIR…:改变当前目录。 7、  PRINT:打印当前文件。 8、  PRINTER SETUP:打印机设置。 9、  DOS SHELL:DOS外壳,暂时退出集成环境,进入DOS环境,可用EXIT命令回到集成环境。 10、              EXIT(ALT+X):退出TURBO PASCAL语言集成环境。 二、EDIT菜单 1、  UNDO(ALT+BACKSPACE):取消刚才的操作。 2、  REDO:重复进行刚才的操作。 3、  CUT(SHIFT+DEL):把定义的块删除,存放到剪贴板中。(定义块:用鼠标拖曳或用SHIFT+光标键) 4、  COPY(CTRL+INS):把定义的块拷贝到剪贴板中。 5、  PASTE(SHIFT+INS):把剪贴板中语句粘贴到当前光标位置。 6、  CLEAR(CRTL+DEL):把定义的块删除掉。 7、  SHOW CLEPBOARD:显示剪贴板中的语句。 三、SEARCH菜单 1、  FIND:寻找。 2、  REPLACE:寻找替换。 3、  SEARCH AGAIN:继续寻找。 4、  GO TO LINE NUMBER:到某个行号。 5、  SHOW LAST COMPILER:显示最后一次编译的错误。 6、  FIND ERROR:查找当前文件的错误。 7、  FIND PROCEDURE:查找过程。 四、RUN菜单 1、  RUN(CTRL+F9):运行当前程序。 2、  STEP OVER(F8):逐句运行程序,但运行过程或函数时不逐句。 3、  TRANCE INTO(F7):逐句进行程序,运行。 4、  GO TO CURSOR(F4):运行到光标位置。 5、  PROGRAM RESET(CTRL+F2):重设当前程序运行指针。 6、  PARAMETERS:设置命令行参数。 五、COMPILE菜单 1、  COMPILE(ALT+F9):编译当前程序,但没有生成EXE文件。 2、  MAKE(F9):编译当前文件,是否生成EXE文件要看DESTINATION项的设置。 3、  BUILD:与MAKE基本相同。但BUILD会不论单元是否编译过都会重新编译。 4、  DESTINATION:编译目标,在此项上用回车键可在MEMORY与DISK之间切换,为DISK时,编译时会在磁盘上生成EXE文件。 5、  PROMARY FILE…:指定主文件,如果指定,编译时将先编译主文件,如果不指定,编译时只编译当前文件。 6、  CLEAR PRIMARY FILE:删除指定的主文件。 7、  INFORMATION:显示编译信息。 六、DEBUG菜单 1、  BREAKPOINTS…:断点删除、设置功能。 2、  CALL STACK(CTRL+F3):定位当前的栈。 3、  REGISTER WATCH:查看寄存器值。 4、  OUTPUT:查看输出。 5、  USER SCREEN(ALT+F5):查看输出屏幕。 6、  EVALUATE/MODIFY…(CTRL+F4):查看或修改程序运行中过程中的变量或表达式的值。 7、  ADD WATCH…(CTRL+F7):增加要查看的内存变量名。 8、  ADD BREAKPOINT…:增加断点。 七、TOOLS菜单 1、  OPTIONS菜单: (1)       COMPILER…:设置编译器选项。
  • RANGE CHECKING:设为ON时,编译时将检查所有数组、字符串和下标变量的值是否越界。
  • STACK CHECHING:设为ON时,编译执行时将检查堆栈是否够用。
  • I/O CHECKING:设为ON时,将检查输入输出错误。
  • FORCE FAR CALLS:设为ON时,将允许远程调用。
  • OVERLAYS ALLOWED:设为ON时,允许覆盖一个单元。
  • ALIGN DATA:数据存放以字节对齐或是字对齐。
  • VAR-STRING CHECKING:设为ON时,则每当一个串被当作变量参数传递时,TURBO PASCAL都将检查。
  • BOOLEAN EVALUATION:设置布尔表达式计算方式:完全(COMPLETE)和短路(SHORT CIRCUIT)。
  • NUMERIC PROCESSING:设置数字协处理器。设为8087/80287时,可以利用TURBO PASCAL支持的浮点运算的数据类型(SINGLE、DOUBLE、EXTENDED、COMP);设为SOFTWARE时则只能用REAL类型。能否设为8087/80287要视EMULATION的设置。
  • EMULATION:设为ON时,可以在上一设置中设置8087/80287来提高运算精度与速度。
  • DEBUG INFORMATION:设为ON时,将产生单步调试的代码。
  • LOCAL SYMBOLS:设为ON时,允许用户检查局部符号。
  • CONDITIONAL DEFINES:定义编译指令。
(2)       MEMORY SIZES:设置程序运行中允许使用的最大栈数,最小堆数与最大堆数。即我们用CTRL+OO时得到的第一行配置。 (3)       LINKER:设置链接选项菜单。 (4)       DEBUGGER:设置调试菜单。 (5)       DIRECTORIES:设置各种文件的搜索目录。
  • TURBO DIRECTORY:告诉PASCAL语言到哪个目录中寻找TURBO.HLP及TURBO.TP文件。
  • EXE & TPU DIRECTORY:指定EXE、TPU、MAP文件的存放目录。
  • INCLUDE DIRECTORIES:指定包含文件的目录。
  • UNIT DIRECTORIES:指定单元目录。
  • OBJECT DIRECTORIES:指定外部OBJ文件的存放目录。
2、  TOOLS…:工具设置。 3、  ENVIONMENT:集成环境选项:
  • PREFERENCES:环境设置。
  • EDITOR:设置编辑器。
  • MOUSE:设置鼠标。
  • STARTUP:设置启动状态。
  • COLORS:设置环境颜色。
4、  OPEN:打开一个集成环境配置文件。 5、  SAVE TURBO.TP:把当前的设置存成TURBO.TP文件,即系统默认文件。 6、  SAVE AS:存成另起名的配置文件。 八、WINDOW菜单 1、  TILE,CASCADE:层叠或平铺已打开的窗口。 2、  CLOSE ALL:关闭所有的窗口。 3、  REFRESH DISPLAY:重新刷新显示。 4、  SIZE/MOVE(CTRL+F5):改变窗口大小(SHIFT+光标键)及移动窗口(光标键)。 5、  ZOOM(F5):把当前窗口最大化。 6、  NEXT(F6):切换到下一个窗口。 7、  PREVIOUS(SHIFT+F6):切换到上一窗口。 8、  CLOSE(ALT+F3):关闭当前窗口。 9、  LIST…(ALT+0):列出已经打开的窗口。 九、HELP菜单     大家用F1或SHIFT+F1可得到帮助。