当前位置:文档之家› 调试 PASCAL程序

调试 PASCAL程序

调试 PASCAL程序
调试 PASCAL程序

调试PASCAL程序

任何一个天才都不敢说,他编的程序是100%正确的。几乎每一个稍微复杂一点的程序都必须经过反复的调试,修改,最终才完成。所以说,程序的调试是编程中的一项重要技术。PASCAL语言提供了很强大的调试功能,使我们能很方便的找出程序的错误。

程序错误:

编译错误:即语法错误。如:命令错写,少分号等等。此种错误在程序编译执行就能发现,而把光标停留在错误行上,并显示出错误信息

,由用户修改。

运行错误:如果没有语法错误。则程序可以运行,但在运行过程中也有可能出现错误,如程序结构不合理,打印语句错误等。此时,程序

将中止运行,光标停留在错误语句处,并显示错误信息,等待用户修改。

逻辑错误:如:程序递归出口设置不正确,逻辑判断设置错误,这样程序虽然能够正常运行,但运行结果却不正确,这是用户最难发现有

错误,也是最难查找的错误,此时计算机也无任何错误信息。

TURBO PASCAL的集成调试器

在TURBO PASCAL语言集成环境中,我们可以非常方便地调试程序。

暂停(CTRL+BREAK):在程序运行过程中,我们可用CTRL+BREAK暂停程序的运行,此时集成环境会在当前运行到的语句上设置一

条光带,表示程序可继续运行。此时,如果要程序继续执行(接着刚刚中断的语句),可用CTRL+F9(即RUN功能)继续运行程序;如

果不需程序继续运行,可用CTRL+F2清除光带并复位,这样程序将不能被继续运行。

跟踪(F7):菜单RUN|TRACE INTO功能能够逐步运行程序,即使在过程中也能逐步运行。

跟踪(F8):菜单RUN|STEP功能能够使我们逐段运行程序,即子程序中的语句将不会逐步执行。

执行到光标处(F4):把光标移到要执行到的语句行,再用F4(菜单RUN|GOTO CRUSOR)可让程序执行到该行暂停。

断点:我们可用DEBUG|BREAKPOINT功能在光标处行设置程序断点,这样,当程序运行到这里时将自动暂停。清除断点也用此功能。

查看变量或表达式值(CTRL+F4):我们可以在程序未运行、运行暂停、运行结束后用此功能查看变量或表达式的值。

设置动态变量查看(CTRL+F7):我们可用此功能打开WATCH窗口,在此窗口中增加要查看的变量,这样,我们在用F7或F8或在程

序暂停时,就能在此窗口中看到要查看的变量的值。

集成环境中的窗口操作:TURBO PASCAL语言是类似WINDOWS的,也可提供多窗口操作。如:用F3功能打开一个文件,再用F3功能打开一个文件,这时,我们就打开了两个窗口。此时,可用F6在各个窗口之间切换;用ALT+F3可把当前窗口关闭;用CTRL+F5可进入改变窗口大小、位置状态,此时,可用光标键上下左右移动当前窗口,也可用SHIFT+光标键来改变窗口大小。这样,我们就能在屏幕上

同时看到文件窗口、WATCH窗口、OUTPUT窗口等。

记录文件运行编译环境(CTRL+OO):因为PASCAL语言是在集成环境中来运行程序,而各台计算机的集成环境设置有可能不同,这样

就使得一个文件在一台机器上运行正常,而在另一台机器上运行不正常或不能运行。所以,我们一般都会在程序的第一行用CTRL+OO

键来记录下当前的程序运行环境,这此在屏幕当前行会出现两行语句,都是用“ {}”括住,以“ $”引导,尤其是第二行是非常重要的,如:

{$16384,0,655350};是指程序中允许最多打开16384个栈,这如果是在做一些搜索问题时是不够的,所以我们都会把它改成最大的数值:65520,请大家记住这个数值,这是PASCAL语言允许打开的最大栈数。

我们先编一个比较简单的程序,看看程序是如何调试的。

program tiaoshi;

var i:integer;

begin

for i:=1 to 300 do

begin

if i mod 2 = 0 then

if i mod 3 = 0 then

if i mod 5 = 0 then

writeln(i);

end;

end.

该程序是输出300以内同时能被2,3,5整除的整数。现在我们开始调试。调试有多种方法,先介绍一种,权且叫步骤法,步骤法就是模拟计算机的运算,把程序每一步执行的情况都反映出来。通常,我们有F8即STEP 这个功能来实现,如图:不断地按F8,计算机就会一步步地执行程序,直到执行到最后的“end.”为止。

可能你还没有发现F8的威力,我们不妨把上面的程序略微修改一下,再配合另外的一种调试的利器watch,你就会发现步骤法的用处。

program tiaoshi;

var i:integer;

a,b,c:boolean;

begin

for i:=1 to 300 do

begin

a:=false;

b:=false;

c:=false;

if i mod 2 = 0 then a:=true;

if i mod 3 = 0 then b:=true;

if i mod 5 = 0 then c:=true;

if a and b and c then writeln(i);

end;

end.

如图,我们单击菜单栏中debug选项,里面有一项叫watch的选项,我们单

击它。

就会出现一个watch窗口:

watch窗口可以让我们观察变量的变化情况,具体操作是在watches窗口内按Insert键:

这时,屏幕上弹出一个菜单,我们输入所需要观察的变量名,我们分别输入i,a,b,c这4个变量名,于是watches窗口内就有如下的4个变量的状态:这时,我们再次使用步骤法,我们会发现,这4个变量的状态随着程序的执行而不断变化,比如:

这样我们就可以方便地知道执行每一步之后,程序的各个变量的变化情况,从中我们可以知道我们的程序是否出错,在哪里出错,方便我们及时地修改。下一次,我们介绍另外的一种方法,断点法。

所谓断点法,就是在程序执行到某一行的时候,计算机自动停止运行,并保留这时各变量的状态,方便我们检查,校对。我们还是以前面求同时能被2,3,5整除的3000以内的自然数为例,具体操作如下:

我们把光标移动到程序的第14行,按下ctrl+F8,这时我们会发现,该行变成红色,这表明该行已经被设置成断点行,当我们每次运行到第14行的时候,计算机都会自动停下来供我们调试。

我们必须学以致用,赶快运用刚学的watch方法,看看这家伙到底有多厉害。

请记住,计算机是执行到断点行之前的一行,断点行并没有执行,所以这时b:=true这一句并没有执行。

断点行除了有以上用处之外,还有另外一个重要用处。它方便我们判断某个语句有没有执行或者是不是在正确的时刻执行,因为有时程序由于人为的疏忽,可能在循环或者递归时出现我们无法预料的混乱,这时候通过断点法,我们就能够判断程序是不是依照我们预期的顺序执行。

行了,你毕业了,程序的调试你就算是基本过关了。

Pascal语言编程基础程序

Pascal语言编程基础程序 (常州市) 十进制转二进制 var i,n,j:longint; a:array[1..100] of longint; begin readln(n); i:=1; while n<>0 do begin a[i]:=n mod 2; i:=i+1; n:=n div 2; end; write('Bin:'); for j:= i-1 downto 1 do write(a[j]) end. 数组元素删除 var a:array[1..10]of longint; i,t,x:longint; begin read(x); for i:=1 to 10 do a[i]:=2*i-1; t:=a[x]; for i:=x+1 to 10 do a[i-1]:=a[i]; for i:=1 to 9 do write(a[i]:4); end. 数组元素删除2 var a:array[1..11]of longint; i:longint; begin for i:=1 to 10 do a[i]:=i; a[11]:=a[1]; for i:= 1 to 10 do a[i]:=a[i+1]; for i:= 1 to 10 do write(a[i]:4); end. 数组元素的移动 var a:array[1..10] of longint; s,n,i,x,t:longint; begin readln(n); for i:=1 to n do read(a[i]); readln(x); s:=a[x]; for i:=x+1 to n do a[i-1]:=a[i]; for i:=1 to n-1 do write(a[i],' '); write(s); end. 排除所有异形基因 var a:array[1..100] of longint; n,g,j,i,wz:longint; begin readln(n); for i:=1 to n do read(a[i]); g:=0; for i:=1 to n do if sqr(a[i]) mod 7=1 then begin wz:=i; for j:=wz+1 to n do a[j-1]:=a[j]; g:=g+1 end; write(a[1]); for i:=2 to n-g do write(' ',a[i]); writeln; end. 排除第一个异形基因 var a:array[1..100] of longint; n,i,wz:longint; begin readln(n); for i:=1 to n do read(a[i]); for i:=1 to n do if sqr(a[i]) mod 7=1

PASCAL语言程序设计

目录 第一部分 PASCAL语言程序设计 (1) 第一章 PASCAL语言基础 (1) 第一节程序的组成与上机调试运行 (2) 第二节常量、变量与数据类型 (3) 第三节表达式与标准函数 (6) 第四节赋值语句、输入与输出语句 (9) 习题 (12) 第二章程序的三种基本结构 (15) 第一节顺序结构 (15) 第二节选择结构 (15) 第三节循环结构 (17) 习题 (20) 第三章数组 (22) 第一节一维数组 (22) 第二节二维数组及应用 (25) 习题 (26) 第四章字符与字符串操作 (29) 第一节字符和字符数组 (29) 第二节字符串变量 (29) 第三节字符串应用举例 (31) 习题 (33) 第五章函数与过程 (35) 第一节自定义函数 (35) 第二节自定义过程 (38) 第四节递归 (42) 第五节递归与回溯 (45) 习题 (50) 第一部分 PASCAL语言程序设计 第一章 PASCAL语言基础 Pascal语言是瑞士苏黎士工科大学的Niklans Wirth(沃思)1971年发表的,是为了纪念17世纪法国著名哲学和数学研究者Blaisc Pascal而将它命名为Pascal程序设计语言。Pascal语言是信息学奥赛中普遍使用的程序设计语言。

第一节程序的组成与上机调试运行 一、程序的组成 我们先看一道例题。 例1-1 输入两个整数a和b,计算a和b的和(a+b)。 【参考程序】 program a1(input,output); //程序首部 var a,b,c:integer; //程序说明部分,a,b,c被说明为整型变量 begin //程序执行部分,下面是程序的内容 write('a='); //在屏幕上输出一个字符串“a=”,输出完后不换行 read(a); //从键盘输入一个数值赋给变量a write('b='); //在屏幕上输出一个字符串“b=”,输出完后不换行 read(b); //从键盘输入一个数值赋给变量b c:=a+b; //计算a+b的和,并将这个和赋值给变量c writeln(a,'+',b,'=',c); //输出a+b=c的等式,输出完后换行 end. //程序结束 【样例输入】 a=10 b=30 【样例输出】 10+30=40 由上可以看出,一个Pascal程序由以下三部分组成: (1)由Program 引导的一行是Pascal程序的首部。 程序首部指出了源程序的名称,是由用户自己给出的,该例子称为a1。程序名后用括号括住的两个参数input与output,通常表示程序运行中的标准输入和输出文件,程序首部以分号结束。 (2)Pascal程序的第二部分是说明部分。 说明部分要求列出程序中引用的全部常量、变量、转移标号、类型、过程和函数的有关说明。若变量c在说明部分没有说明,后边的语句c:=a+b在执行时;翻译软件便能指出其错误并提醒用户加以改正,程序中每个语句都以分号表示结束。 (3)程序的第三个部分是用BEGIN和END括住的一串语句,称为程序的执行部分。有的书中将说明部分和执行部分合称为程序体。 二、PASCAL语言编辑软件的基本操作 下面我们以Free Pascal 1.10系统为例来学习一下Pascal语言编辑软件的使用。 1.Free Pascal的启动 在运行程序目录下(一般是c:\pp\bin\go32v2)运行启动程序fp.exe,即可启动系统。屏幕上出现如图1-1所示的集成环境。 图1-1 2.Free Pascal系统集成开发环境(IDE)简介 最顶上一行为主菜单,中间蓝色框内为编辑窗口,在编辑窗口内可以进行程序的编辑,最底下一行为提示行,显示出系统中常用命令的快捷键,如将当前编辑窗口中文件存盘的命令快捷键为F2,打开磁盘文件命令F3,等等。

FREE-PASCAL入门-循环结构程序(DOC)

循环结构程序设计 第1节 For循环程序实例 【问题描述】 计算一副扑克牌的点数,其中牌A为1点,牌J、Q、K分别为11、12、13点,大、小王不算点。 【问题分析】 根据题意,要计算一副扑克牌的点数,可以先求出一种花色牌的点数和,再乘以4即可。进一步分析,求一种花色牌的点数和,即是求1~13的连续自然数之和。我们用S表示所求数的和,用T表示加数,这样可以让T从1变化到13,每次让T不断加入到S中,就可以求出S的值,最后乘以4即可。 【算法设计】 ◆自然语言 ①置初值,即S=0,T=1; ②使S=S+T ,所求出的和仍放入S中; ③使T增加1,即T=T+1; ④如果T小于等于13,转第二步,否则转第五步; ⑤输出计算结果。 ◆程序流程图和结构化流程(N-S)图

【程序设计】 [程序清单] program ex3_1; var s,t:integer; begin s:=0; {S置初值为0} for t:=1 to 13 do {For循环语句} s:=s+t; writeln(‘total:’,s*4); end. [运行示例] total:364 【知识拓展】 1.在程序处理过程中,经常需要对某一条或一组语句重复执行多次,以最终完成某项任务,这就是循环。对于重复次数已知,而不依赖循环中语句的结果,常用计数循环(f or / to /do 语句)。 2.for循环语句格式: 格式一:for 控制变量:= 初值to 终值do 循环体语句; 格式二:for 控制变量:= 初值downto 终值do 循环体语句; 其中for、to、downto、do为保留字,do后面的语句称为循环体。其中循环控制变量可以是整型、字符或布尔型,但不能为实型。一般地,可以是顺序类型数据。 初值、终值表达式通常要与控制变量的类型相同。

Pascal程序基本组成与符号

Pascal程序基本组成与符号 hb007 发表于 2006-3-22 8:55:50 一、Pascal程序基本组成 例1计算半径为r的圆的周长C和面积S。 上述程序第一行称为程序首部。用花括号(注释可以用{ }或(* *)来表示)括起来的内容是注释,注释除了给人看,增加程序的可读性外,对程序编译和运行不起作用。一个程序可以包含多个出现在不同处注释,亦可无注释。程序第二行是变量说明。程序从begin到end都是执行(语句)部分。 (1)程序首部 例1的第一行称为程序首部。program是保留字,接着是程序名(由你依据“标示符”规则自行定义),最后以分号表示程序首部结束,下面是程序主体的开始。程序首部在一个Turbo Pascal(仅在Turbo Pasca l中有效)程序中并非必须出现,它是可选的。写上它仅起了文档作用。因此,时间有限的情况下,如果用Turbo Pascal编程完全可以省略程序首部。 (2)程序体 ①说明部分 说明部分用于定义和说明程序中用到的数据,由单元说明、标号说明、常量说明、类型说明、变量说明、函数或过程说明组成,并且这些数据的说明次序必须按照以上次序。但是一个简单的Turbo Pascal程序也可以不包含说明部分,也就是说说明部分是可选的。 ②执行部分 执行部分描述了程序要执行的操作。它必须以一个Turbo Pascal保留字begin开始,以保留字end后跟句点结束,其间是一些执行具体操作的语句,并且以分号作为语句之间的分隔符。begin和end必须成对出现,这是一个Turbo Pascal程序所必须有的。紧跟end之后的句号表示执行

部分的结束,也表示整个程序的结束。此后的任何语句都无效。Turbo Pascal规定紧随end之前出现的分号允许省略。 (3)一个完全的Pascal程序结构 program 程序名; uses 已知单元说明; label 标号说明; const 常量说明; type 类型说明; var 变量说明; function 函数说明; procedure 过程说明; begin 语句; 语句; …… 语句 end. 二、Pascal字符与符号 1、保留字(关键字) 所谓保留字是指在Pascal语言中具有特定的含义,你必须了解它的含义,以便于正确的使用,否则会造成错误。Turbo Pascal语言一共有5 0多个。下面是Pascal语言的保留字:

PASCAL语言复习题

《Pascal》复习题 一、选择题 1、设有如下的过程说明 PROCEDURE wri; BEGIN Writeln(‘Welcome to use pascal!!!’); End; 则下面有关过程wri的叙述中正确的是____D_____ A)过程说明有错,因为没有形式参数 B)过程说明有错,因未说明过程的类型 C)过程说明有错,因为在过程体内没有给过程名赋值的语句 D)过程说明正确 (2章赋值语句) 2、已知变量ch是字符型变量,下面PASCAL赋值语句正确的是___D_____ A)ch:=’ab cd’; B)ch:=chr(ord(succ(‘c’)+1)); C)ch:=ord(‘b ’)+ord(‘a’); D)ch:=pred(succ(succ(‘f’))); (2章赋值语句) 3、判断以下叙述,其中正确的是___A_______ A) 在pascal程序中所用到的变量必须先说明后使用 B) 在pascal程序中,允许使用的最小值是-maxint C) 在pascal程序中,分号是语句的一部分,在每个语句中不能省略 D) 在pascal程序中,符号常数的值可根据需要随时修改 (1,2章基本知识) 4、以下不符合pascal规定的字符常量是___B_________

A)‘2’ B)‘pascal’ C)’’’’ D)‘a’ (2章标准数据类型) 5、以下属非法的pascal用户自定义标识是_____A____ A)CONST B)FORMAT C) MAX D) NEXT (1章保留字) 6、下面循环语句仅执行一次的是_____A_____ A) I:=0; B) I:=0; Repeat while (I<3) do I:=I+1; I:=I+1; Writeln(i) writeln(i); Until I<3 C)for I:=0 downto 3 do D) I:=0 I:=I+1; while (I>0) or (I<3) do Writeln(i); I:=I+1; writeln(i); (4 章循环结构) 7、下面函数首部或过程首部合法的是__B_______ A)function sum; B)procedure next; C)function s(VAR s:real):integer;

Pascal基本教程

Pascal基本教程 Pascal基本教程第一章 第一章 Pascal语言概述与预备知识 1 关于Turbo Pascal Pascal是一种计算机通用的高级程序设计语言。它由瑞士Niklaus Wirth 教授于六十年代末设计并创立。 以法国数学家命名的Pascal语言现已成为使用最广泛的基于DOS的语言之一,其主要特点有:严格的结构化形式;丰富完备的数据类型;运行效率高;查错能力强。 正因为上述特点,Pascal语言可以被方便地用于描述各种算法与数据结构。尤其是对于程序设计的初学者,Pascal语言有益于培养良好的程序设计风格和习惯。IOI(国际奥林匹克信息学竞赛)把Pascal语言作为三种程序设计语言之一, NOI(全国奥林匹克信息学竞赛)把Pascal语言定为唯一提倡的程序设计语言,在大学中Pascal语言也常常被用作学习数据结构与算法的教学语言。 在Pascal问世以来的三十余年间,先后产生了适合于不同机型的各种各样版本。其中影响最大的莫过于Turbo Pascal系列软件。它是由美国Borland公司设计、研制的一种适用于微机的Pascal编译系统。该编译系统由1983年推出1.0版本发展到1992年推出的7.0版本,其版本不断更新,而功能更趋完善。 下面列出Turbo Pascal编年史 出版年代 版本名称 主要特色 1983 Turbo Pascal 1.0 Turbo Pascal 2.0 Turbo-87 Pascal 提高实数运算速度并扩大值域

1985 Turbo Pascal 3.0 增加图形功能 Turbo BCD Pascal 特别适合应用于商业 1987 Turbo Pascal 4.0 提供集成开发环境(IDE),引入单元概念 1988 Turbo Pascal 5.0 增加调试功能 1989 Turbo Pascal 5.5 支持面向对象的程序设计(OPP) 1990 Turbo Pascal 6.0 提供面向对象的应用框架和库(Turbo Vision) 1992 Turbo Pascal 7.0 面向对象的应用系统、更完善的IDE Turbo Vision 2.0 1993 Borland Pascal 7.0 开发 Object Windows库、 (For Windows) 提供对OLE多媒体应用开发的支持 1995 Delphi Visual Pascal Turbo Pascal语言是编译型程序语言,它提供了一个集成环境的工作系统,集编辑、编译、运行、调试等多功能于一体。 1.2 Turbo Pascal 或 Borland Pascal 的启动

pascal语言中的程序和单元

单元 虽然所有窗体都在单元中定义,但反之则不然。除窗体外,单元中还可以定义一系列能访问的例程。选择File > New菜单命令,然后在Object Repository 的New 页中选择Unit 图标,随即当前工程中就会加入一个空白单元。单元代码分区存放,空白单元的代码如下: unit Unit1; interface implementation end. 单元的概念比较简单,单元名与文件名相同,而且必须唯一。单元包括界面区(interface)及实现区(implementation),界面区用于声明其它单元能看到的部分;实现区存放界面的实现代码及外部不可见的声明。此外还有两个可选的区,即初始化区及结束区,其中初始化区存放初始化代码,当程序加载到内存时执行;结束区存放程序终止时执行的代码。 单元总体结构如下: unit unitName; interface // other units we need to refer to uses A, B, C; // exported type definition type newType = TypeDefinition; // exported constants const Zero = 0; // global variables var Total: Integer; // list of exported functions and procedures

procedure MyProc; implementation uses D, E; // hidden global variable var PartialTotal: Integer; // all the exported functions must be coded procedure MyProc; begin // ... code of procedure MyProc end; initialization // optional initialization part finalization // optional clean-up code end. 界面区头部的uses子句表示需要访问的外部单元,这些外部单元中定义了你需要引用的数据类型,如自定义窗体内所用的控件。 实现区头部的uses子句用于表示只在实现部分访问的单元。如果例程或方法的代码需要引用其他单元,你应该把这些单元加到实现区子句中,而不是界面区。你所引用的单元必须在工程文件目录中能找到,或在工程选项对话框的Directories/Conditionals 页设定这些单元的搜索路径。 C++程序员应该知道uses语句和include 指令是不同的。uses语句只是用于输入引用单元的预编译界面部分,引用单元的实现部分在单元编译时才考虑。你引用的单元可以是源代码格式(PAS),也可以是编译格式(DCU),但是必须用同一版本的Delphi进行编译。 在单元的界面区中可以声明许多不同的元素,包括过程、函数、全程变量及数据类型。在Delphi 应用程序中,数据类型可能用得最频繁。每创建一个窗体,Delphi 会在单元中自动建立一个新的数据类型--类(class)。在Delphi 单元中不仅能定义窗体;还能象传统单元一样,只包含过程及函数;还可以定义与窗体和任何可视控件无关的类。

PASCAL程序设计

第一章PASCAL程序设计基础 我们日常工作、学习和生活中,要做某件事,如果事先没有计划,只是想一步做一步,是达不到理想效果的。要很好地、高效率地完成某件事,必须事先有一个计划,第一步做什么,下一步做什么,最后一步做什么。即先考虑好做这件事的所有步骤,然后按部就班地完成它。在计算机系统中,能完成某项任务的一系列指令或语句就是程序。程序设计是设计、书写和调试程序的过程。 第一节程序设计语言及算法 一、程序设计语言 人们使用计算机,可以通过某种计算机语言与其交谈,用计算机语言描述所要完成的工作。为了完成某项特定任务用计算机语言编写的一组指令序列就称之为程序。编写程序和执行程序是利用计算机解决问题的主要方法和手段。程序设计语言是用来书写计算机程序的语言。程序设计语言经历了机器语言、汇编语言、高级语言到面向对象的程序设计语言等多个阶段。 1.机器语言 机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。它是计算机的设计者通过计算机的硬件结构赋予计算机的操作功能。机器语言具有灵活、直接执行和速度快等特点。 用机器语言编写程序,编程人员要首先熟记所用计算机的全部指令代码和代码的涵义。手编程序时,程序员得自己处理每条指令和每一数据的存储分配和输入输出,还得记住编程过程中每步所使用的工作单元处在何种状态。这是一件十分繁琐的工作,编写程序花费的时间往往是实际运行时间的几十倍或几百倍。而且编出的程序全是些0和1的指令代码,直观性差,还容易出错。现在,除了计算机生产厂家的专业人员外,绝大多数程序员已经不再去学习机器语言了。 2.汇编语言 为了克服机器语言难读、难编、难记和易出错的缺点,人们就用与代码指令实际含义相近的英文缩写词、字母和数字等符号来取代指令代码(如用ADD表示运算符号“+”的机器代码),于是就产生了汇编语言。汇编语言是一种用助记符表示的仍然面向机器的计算机语言。汇编语言像机器指令一样,是硬件操作的控制信息,因而仍然是面向机器的语言,使用起来还是比较繁琐费时,通用性也差。汇编语言是低级语言。 3.高级语言 20世纪50年代后期,在对低级语言的改进过程中,又研制出一种既接近于自然语言,又接近数学语言的程序设计语言。使用这种语言编写程序快捷方便,便于修改和高度,大大提高了编程的效率,同时这种语言编写的程序不依赖具体的机器,能用性好,我们称之为高级语言。用高级语言,不必考虑机器的结构和特点,可以集中精力考虑解决问题的算法,因此,高级语言也称为算法语言。 4.面向对象的程序设计语言

PASCAL基本程序结构和概念

要求: 1.程序的结构 2.了解:常量变量运算符表达式标准数据类型 3.学会安装TP并做简单的操作。 PASCAL基本程序结构和概念 标识符保留字常量变量运算符表达式标准数据类型 例1: 为了明显起见先举一个最简单的PASCAL程序例子: 例2: Program ex11; Begin Writeln(‘Hello World!’); ReadLn; End. [例3]已知一辆自行车的售价是300元,请编程计算a辆自行车的总价是多少? 解:若总售价用m来表示,则这个问题可分为以下几步处理: ①从键盘输入自行车的数目a; ②用公式m=300*a 计算总售价; ③输出计算结果。 Pascal程序: Program Ex12; {程序首部} Var a,m : integer; {说明部分} Begin {语句部分} Write(‘a=’); ReadLn(a); {输入自行车数目} M := 300*a; {计算总售价} Writeln(‘M=’,m);{输出总售价} ReadLn; {等待输入回车键} End.

[例4] 输出两个自然数相除的商和余数。 解:设被除数、除数、商和余数,分别为A,B,C,D,均为变量,且都是整数类型。题中未给出具体的自然数A、B,可采用键盘输入方式。 ①给出提示,从键盘输入a, b; ②显示两数相除的数学形式; ③求出a除以b的商c; ④求出a除以b的余数d; ⑤紧接等式后面输出显示商和余数。 Pascal程序: Program Ex14; Var a,b,c,d : integer; Begin Write('INPUT A,B:');{给出提示信息} Readln(a,b);{输入a,b} Writeln;{输出一空行} Write(a,'/',b,'=');{输出等式之后不换行} c:=a div b;{整除运算,取商的整数部分} d:=a mod b;{相除求余运算,取商的余数部分} Writeln(C,'…',d);{输出后自动换行} Readln {等待输入回车键} End. 例5:从键盘读入4个数据,逆序输出 program pname; const n=4; type ar=array [1..4] of integer; var i:integer; a:ar; begin for i:=1 to n do read(a[i]); readln; for i:=n downto 1 do write(a[i]:4); writeln; end. [例1.6]自然数的立方可以表示为两个整数的平方之差,比如43=102-62,请输出自然数1996的这种表示形式。(这里的43用自乘三次的形式4*4*4表示;102也用自乘二次的形式10*10表示) 解:此题没有现成的计算公式能直接利用,但可以自行推出处理方法或构建适当的运算公式,按着构想的处理方案编排出各步骤。 设这个自然数为N,两个平方数分别为X,Y,将问题表示为求N3=X2—Y2

C语言和Pascal语言的对比

C语言和Pascal语言的对比 林金正(2010101032) (汕头大学计算机系,广东汕头515063) 摘要:C语言和Pascal语言是目前对计算机发展影响较深的两门计算机程序设计语言。两种语言各有特点,Pascal语言是一种结构式程序设计语言,最初是为系统地教授程序设计而发明的,语法严谨,特点是简明化和结构化,适合教学,科学计算等。C语言则是国际上应用最广泛的计算机中级语言,具有语言简洁紧凑,使用方便灵活及运算符丰富等特点,语法限制不严格,程序设计自由度大,程序可移植性好。以下从程序结构、数据类型、运算和指针共四个方面对两种语言进行比较。 关键词:C语言、Pascal语言、对比、程序结构、数据类型、运算、指针。 The Comparison between Language C and language Pascal Lin Jinzheng (2010101032) (Computer Science Department Shantou University, Guangdong, Shantou 515063) Abstract: the language C and language Pascal is currently on computer development influence of deep two foreign computer programming language. Two languages have different features, Pascal language is a structured programming language, was initially for systematically professor programming and invention, grammar is rigorous, the characteristic is concise change and structured, suitable for teaching, scientific calculations, etc. C language is the most widely used on international computer intermediate language, with simple language is compact, easy to use and flexible and operators rich characteristics, such as grammar limit not strictly, program design freedom is big, program portability. The following items from the program structure, data type, computing, subroutine and pointer 5 aspects of two languages are compared. Keywords: Language C, Language Pascal, comparison, program structure, operation, pointer.

几种常用排序Pascal源程序

几种常用排序Pascal源程序 A.快速排序: procedure sort(l,r:integer); var i,j,mid:integer; begin i:=l;j:=r; mid:=a[(l+r) div 2]; {将当前序列在中间位置的数定义为中间数} repeat while a[i]< mid do i:=i+l; {在左半部分寻找比中间数大的数} while mid< a[j] do j:j-1;{在右半部分寻找比中间数小的数} if i< =j then begin {若找到一组与排序目标不一致的数对则交换它们} swap(a[i],a[j]); inc(i);dec(j);{继续找} end; until i >j; if l< j then sort(l,j); {若未到两个数的边界,则递归搜索左右区间} if i< r then sort(i,r); end;{sort} B.插入排序: procedure insert_sort(k,m:word); {k为当前要插入的数,m为插入位置的指针} var i:word; p:0..1; begin p:=0; for i:=m downto 1 do if k=a[i] then exit; repeat If k >a[m] then begin a[m+1]:=k; p:=1; end else begin a[m+1]:=a[m]; dec(m); end; until p=1; end;{insert_sort} l 主程序中为: a[0]:=0; for I:=1 to n do insert_sort(b[I],I-1);

Pascal语言小程序练习

1.输出一句话 请参考如下程序: program p1(input,output); begin writeln('WoHuiLaiLe!'); end. 请编写程序输出一句话:"HuiLaiYeMeiYong!' 2.输出两句话 请参考如下程序 program p2(input,output); begin writeln('NiShuaYa?'); writeln('WoBuHeShui!'); end. 请编写程序输出两句话:"HaoHaoBianCheng" "TianTianGaoXing" 3.请输出一个三角形 请参考如下程序 program p3(input,output); begin writeln(' 1'); writeln(' 2 3'); writeln('4 5 6'); end. 请输出一个三角形 1 2 3 4 5 6 7 8 9 10 4.输出5到15这16个数,一行一个。 请参考如下程序 program p4(input,output); var i:integer; begin for i:=1 to 10 do writeln(i); end. 请编写如下程序 输出5到15的数字(一行一个): 5

6 7 . . . 15 5.在一行输出5到15这11个数,中间有一个空格。 请参考如下程序 program p5(input,output); var i:integer; begin for i:=1 to 10 do write(i,' '); end. 请编写如下程序 输出5到15的数字(一行输出,中间有一个空格): 5 6 7 . . . 15 6.在一行输出15到5这16个数,中间有一个空格。 请参考如下程序 program p6(input,output); var i:integer; begin for i:=10 downto 1 do write(i,' '); end. 请编写如下程序 输出15到5的数字(一行输出,中间有一个空格):151413 (5) 7.输出1到100这100个数,中间有一个空格(自然换行)。请参考第5题的程序 1 2 3 (100) 8.输出1到100这100个数,10个一换行。

小学PASCAL全教程

PASCAL全教程 Pascal基本教程第一章 第一章 Pascal语言概述与预备知识 1 关于Turbo Pascal Pascal是一种计算机通用的高级程序设计语言。它由瑞士Niklaus Wirth 教授于六十年代末设计并创立。 以法国数学家命名的Pascal语言现已成为使用最广泛的基于DOS的语言之一,其主要特点有:严格的结构化形式;丰富完备的数据类型;运行效率高;查错能力强。 正因为上述特点,Pascal语言可以被方便地用于描述各种算法与数据结构。尤其是对于程序设计的初学者,Pascal语言有益于培养良好的程序设计风格和习惯。IOI(国际奥林匹克信息学竞赛)把Pascal语言作为三种程序设计语言之一, NOI(全国奥林匹克信息学竞赛)把Pascal语言定为唯一提倡的程序设计语言,在大学中Pascal语言也常常被用作学习数据结构与算法的教学语言。 在Pascal问世以来的三十余年间,先后产生了适合于不同机型的各种各样版本。其中影响最大的莫过于Turbo Pascal系列软件。它是由美国Borland公司设计、研制的一种适用于微机的Pascal编译系统。该编译系统由1983年推出1.0版本发展到1992年推出的7.0版本,其版本不断更新,而功能更趋完善。 下面列出Turbo Pascal编年史 出版年代 版本名称 主要特色 1983 Turbo Pascal 1.0 Turbo Pascal 2.0 Turbo-87 Pascal 提高实数运算速度并扩大值域 1985 Turbo Pascal 3.0 增加图形功能

Turbo BCD Pascal 特别适合应用于商业 1987 Turbo Pascal 4.0 提供集成开发环境(IDE),引入单元概念 1988 Turbo Pascal 5.0 增加调试功能 1989 Turbo Pascal 5.5 支持面向对象的程序设计(OPP) 1990 Turbo Pascal 6.0 提供面向对象的应用框架和库(Turbo Vision) 1992 Turbo Pascal 7.0 面向对象的应用系统、更完善的IDE Turbo Vision 2.0 1993 Borland Pascal 7.0 开发 Object Windows库、 (For Windows) 提供对OLE多媒体应用开发的支持 1995 Delphi Visual Pascal Turbo Pascal语言是编译型程序语言,它提供了一个集成环境的工作系统,集编辑、编译、运行、调试等多功能于一体。 1.2 Turbo Pascal 或 Borland Pascal 的启动 (1) Turbo Pascal的启动 a.DOS下的启动(适用于MS-DOS6.22之前的版本或Win 9X & Win2000 的Command Mode)

Pascal入门教程

第一章 初步认识PASCAL 语言 内容提要 本章介绍了计算机语言的分类及特点,PASCAL 源程序的调试过程。 学习要求 通过对本章的学习,要求学生对计算机语言的发展及特点有一定的了解,认识PASCAL 语言源 程序的一般结构,掌握PASCAL 源程序的调试过程。 第一节 关于计算机语言 在日常生活中,语言是人和人之间交流信息的一种工具。通过语言,我们可以把我 们的想法或要求告诉人家。众所周知,计算机的功能是非常强大的,那么,怎样充分利 用计算机为人类服务呢?其实计算机是一个非常忠实的伙伴,只要让他明白了你的意 思,他一定会又快又好地为你完成任务。但问题是:计算机和人类语言不通,难以了解 人类的意图。对应这种需求,出现了一系列的计算机语言,通过这些计算机语言,我们 便可以和计算机之间进行交流,进而轻松地驾驭计算机。 从计算机问世到现在,计算机语言的发展经历了这样几代: 一 机器语言 计算机是由电子元件构成的,这些电子元件在通电工作时一般有两种状态:导通 或截止,高电平 或低电平┈┈于是便出现了一种用数字1或0作为代码的语言,称为机器语言。这 种语言与机器工作状态相适应,计算机执行起来速度相当快,效率相当高。但因程 序全是一长串二进制代码,程序员编写起来比较吃力,调试程序也十分困难,而且 不同的计算机有不同的机器语言,不能通用。 二 汇编语言 汇编语言又叫符号语言,是用符号来代替机器语言中的二进制代码,这样看起 来就直观多了。比如要把寄存器AX 和BX 中的数相加,结果存放在寄存器AX 中, 用汇编语言就这样写:ADD AX ,BX 。这样程序员在编写时就方便多了。但 计算机不能直接执行汇编程序,必须经过汇编软件将其转换成机器语言后才能执 行。在这个过程中,汇编软件象一个桥梁,连接在机器语言和汇编源程序之间: 汇编语言还是依赖机器硬件,所以不同种类的机器有不同的汇编语言。编写汇编语 言程序需比较熟悉机器硬件短知识,而且指令较多,编写和调试都不是很容易。 三 高级语言 计算机是为人类服务的,如果为了学语言而不得不学习计算机的硬件、工作原 理,这就为许多计算机爱好者设置了不小的障碍。有没有一种语言,人们用不着学习 计算机工作的细节就可以上手?有!这就是高级语言。高级语言比较接近人们的自然 语言,学习起来要容易得多,编写和调试程序也比较方便。但高级语言程序必须先经 过编译程序将其转变成机器语言程序后方可执行。所以这种语言执行起来效率相对较 汇编语言源程序 汇编软件 机器语言

调试 PASCAL程序

调试PASCAL程序 任何一个天才都不敢说,他编的程序是100%正确的。几乎每一个稍微复杂一点的程序都必须经过反复的调试,修改,最终才完成。所以说,程序的调试是编程中的一项重要技术。PASCAL语言提供了很强大的调试功能,使我们能很方便的找出程序的错误。 程序错误: 编译错误:即语法错误。如:命令错写,少分号等等。此种错误在程序编译执行就能发现,而把光标停留在错误行上,并显示出错误信息 ,由用户修改。 运行错误:如果没有语法错误。则程序可以运行,但在运行过程中也有可能出现错误,如程序结构不合理,打印语句错误等。此时,程序 将中止运行,光标停留在错误语句处,并显示错误信息,等待用户修改。 逻辑错误:如:程序递归出口设置不正确,逻辑判断设置错误,这样程序虽然能够正常运行,但运行结果却不正确,这是用户最难发现有 错误,也是最难查找的错误,此时计算机也无任何错误信息。 TURBO PASCAL的集成调试器 在TURBO PASCAL语言集成环境中,我们可以非常方便地调试程序。 暂停(CTRL+BREAK):在程序运行过程中,我们可用CTRL+BREAK暂停程序的运行,此时集成环境会在当前运行到的语句上设置一 条光带,表示程序可继续运行。此时,如果要程序继续执行(接着刚刚中断的语句),可用CTRL+F9(即RUN功能)继续运行程序;如 果不需程序继续运行,可用CTRL+F2清除光带并复位,这样程序将不能被继续运行。 跟踪(F7):菜单RUN|TRACE INTO功能能够逐步运行程序,即使在过程中也能逐步运行。 跟踪(F8):菜单RUN|STEP功能能够使我们逐段运行程序,即子程序中的语句将不会逐步执行。 执行到光标处(F4):把光标移到要执行到的语句行,再用F4(菜单RUN|GOTO CRUSOR)可让程序执行到该行暂停。

pascal编程基础练习题

pascal编程基础练习题 一、不定项选择和填空题 1、下列关于程序语言的叙述,不正确的是() A、编写机器代码不比编写汇编代码容易 B、高级语言需要编译成目标代码或通过解释器解释后才能被CPU执行 C、同样一段高级语言程序通过不同的编译器可能产生不同的可执行程序 D、汇编代码可被CPU直接运行 E、不同的高级语言语法略有不同 2、下列哪一种程序设计语言是解释执行的() A、PascalB、GWBASICC、C++D、FORTRAN 3、解释程序的功能是() A、将高级语言程序转换为目标程序B、将汇编语言程序转换为目标程序 C、解释执行高级语言程序D、解释执行汇编语言程序4、下列中没有语法错误的PASCAL程序首都是() A、PROGRAM A1; B、PROGRAM A1(0utPut) C、PROGRAM(Input,OutPut); D、PROGRAM A1(Input OutPut); 5、结构化程序的结构由三种基本结构组成,下面哪个不属于这三种基本结构()A、顺序结构B、输入输出结构构C、分支结构D、循环结构6、Pascal程序必须包括() A、程序首部、说明部分、语句部分B、程序首部、说明部分 C、说明部分、语句部分D、程序首部、语句部分7、标准Pascal程序说明部分的正确顺序是() A、LABEL—CONST—VAR—TYPEB、VAR—CONST—LABEL—TYPE C、LABEL—CONST—TYPE—VARD、CONST—VAR—TYPE—LABEL 8、下面对Pascal程序组成结构的描述错误的是() A、程序体可以为空B、程序的注释部分只能写在程序中一条语句的最后 C、程序首都的参数部分可有可无D、一个完整的PASCAL程序的主程序只能有一个 9、要编写并执行—个PASCAL程序,—般的步骤是() A、①用编辑软件编写源程序 ②用PASCAL的编译程序把源程序转换成目标程序 ③用连接程序把目标程序转换为可执行程序 ④运行可执行程序 B、①用编辑软件编写源程序 ②修改和调试源程序 ③用PASCAL的编译程序把源程序转换成可执行程序 ④运行可执行程序 C、①用编辑软件编写源程序 ②用连接程序把源程序转换成可执行程序 ③试运行可执行程序

Pascal基本教程(循环程序)

Pascal基本教程 循环程序 for 语句 for 语句用来描述已知重复次数的循环结构。for 语句有两种形式: (1) for 控制变量:=初值to 终值do 语句; (2) for 控制变量:=初值downto 终值do 语句; 第一种形式的for 语句是递增循环。首先将初值赋给控制变量,接着判断控制变量的值是否小于或等于终值,若是,则执行循环体,在执行了循环体之后,自动将控制变量的值该为它的后继值,并重新判断是否小于或等于终值。当控制变量的值大于终值时,退出for循环,执行for语句之后的语句。第一种形式的for 语句是递减循环。首先将初值赋给控制变量,接着判断控制变量的值是否大于或等于终值,若是,则执行循环体,在执行了循环体之后,自动将控制变量的值该为它的前趋值,并重新判断是否大于或等于终值。当控制变量的值小于终值时,退出for循环,执行for语句之后的语句。for 语句中的初值、终值、控制变量的数据都必须是顺序类型。当初值和终值确定后,重复的次数就确定不变了,并且控制变量在重复语句内不能施加任何赋值操作。 例1:计算1+2+3+……+99+100 program jia; var i,sum:integer; begin sum:=0; for i:=1 to 100 do sum:=sum+i; writeln(sum); readln; end. 练习:试打印出1~20的自然数。 解:①用a代表1~20各数,同时也用a兼作计数,以控制循环次数; ②让a从1开始; ③输出a; ④a自动计数(加1),如果未超越所规定的循环范围则重复步骤③,否则结束循环。 练习:试打印出1~20的自然数。 Program Exam12; Var a:integer ; Begin for a:=1 to 20 do Writeln (a); Readln End. 例2:打印出30至60的偶数。 方法一: ①设a表示30至60的所有的数,可用for循环列出; ②用式子 a mod 2=0筛选出其中的偶数并输出。 例2:打印出30至60的偶数。 Program ex2;

相关主题
文本预览
相关文档 最新文档