信息学奥林匹克竞赛辅导之Pascal语言基础
- 作者: 白净, 程洁 主编
- 出版社:东北师范大学出版社
- 标准书号ISBN: 978-7-5681-2981-7
- 定价:36.00元
- 出版时间:2017年4月第1版
- 开本:16
- 用纸:胶版纸
- 页码:120
- 购买地址:http://suo.im/3pyKZ3
白净,1983年出生,华东师范大学毕业,现任深圳市龙岗区平安里学校信息教师,深圳市龙岗区教坛新秀,深圳市龙岗区信息学奥林匹克竞赛教练,带领学生多次获得信息学奥赛市级、省级奖项,主持区级科研课题研究两项,开发并参与开发两项区级校本课程,一项校级信息学竞赛课程。
程洁,1986年出生,华东师范大学毕业,现任深圳市龙岗区平安里学校信息教师,深圳市龙岗区信息骨干教师,多次承担国家级、区级公开课,开发或参与开发两项区级校本课程,热爱教学,现场课、基本功比赛多次获奖。
第 1 章?Turbo Pascal简介
1.1?学习目标
1.2?Turbo Pascal系统的使用
1.3?上机实践
第 2 章?Pascal语言程序基础
2.1?学习目标
2.2?Pascal程序的基本格式
2.3?常量
2.4?变量
2.5?Pascal语言中的运算符
2.6?Pascal标准函数的使用
2.7?课后练习
第 3 章?Pascal顺序结构程序设计
3.1?学习目标
3.2?Pascal赋值语句
3.3?输出(write、writeln)语句
3.4?输入(read、readln)语句
3.5?练习与答案
3.6?顺序结构程序设计
3.7?练习
第 4 章?Pascal选择结构程序设计
4.1?学习目标
4.2?简单的if语句
4.3?if语句的嵌套
4.4?case语句
4.5?练习
第 5 章?Pascal循环结构程序设计
5.1?学习目标
5.2?for循环
5.3?练习
5.4?while语句
5.5?repeat语句
5.6?习题
第 6 章?函数和过程
6.1?学习目标
6.2?函数
6.3?过程
6.4?习题
Turbo Pascal简介
1.1?学习目标
(1)了解Turbo Pascal的界面组成。
(2)使用Turbo Pascal完成程序的书写、编译、调试,并运行以查看结果。
(3)熟悉Turbo Pascal中的常用快捷键。
1.2?Turbo Pascal系统的使用
1.2.1?系统的启动
运行系统目录下的启动程序Turbo.exe,即可启动系统。屏幕上出现如图1-1所示的集成环境。
1.2.2?Turbo Pascal系统集成环境简介
界面最顶上一行为主菜单。中间蓝色框内为编辑窗口,在它的编辑窗口内可以进行程序的编辑。最底下一行为提示行,显示出系统中常用命令的快捷键,如,将当前编辑窗口中文件存盘的命令的快捷键为F2,获得系统帮助的快捷键为F1,等等。
1.2.3?新建程序窗口
按F10运行主菜单,选择File 菜单,执行其中的New命令,就可建立一个新的程序窗口(默认文件名为Noname00.pas或Noname01.pas等)。
1.2.4?程序的输入、编辑
在当前程序窗口中,以行为单位输入程序。事实上,程序窗口是一个全屏幕编辑器,所以对程序的编辑与其他编辑器的编辑方法类似,这里不再赘述。
1.2.5?常用命令的快捷方式(见表1-1)
表1-1?常用命令的快捷方式
快捷键 | 功能描述 |
F3 | 打开文件 |
Alt+F3 | 关闭一个文件 |
F2 | 存储 |
F6 | 切换一个窗口 |
Ctrl+Insert | 复制 |
Shift+Del | 剪切 |
Shift+Insert | 粘贴 |
Ctrl+Y | 删除一行 |
Alt+Backspace | 撤消 |
1.2.6?常用调试程序命令(见表1-2)
表1-2?常用调试程序命令
快捷键 | 功能描述 |
F9 | 编译程序 (程序有错误时光标会停在错误的地方) |
Ctrl+F9 | 运行程序 |
Alt+F5 | 查看程序运行结果 |
F7 | 单步执行 |
Ctrl+F7 | 断点调试时,添加变量名 |
Ctrl+Break | 中断程序运行 |
Ctrl+F2 | 重新执行程序 |
1.3?上机实践
请同学们在Turbo Pascal中,完成图1-1中的程序,运行并查看结果。
Pascal语言程序基础
2.1?学习目标
(1)掌握Pascal程序书写的基本格式与规范。
(2)掌握常量的定义和使用。
(3)掌握变量的定义和使用。
(4)理解计算机程序中使用常量和变量的意义。
(5)能够使用算术表达式完成相应的数学计算。
(6)掌握标准函数的使用。
(7)理解计算机程序中使用函数的意义。
2.2?Pascal程序的基本格式
学习写作文的时候,教师总是从作文的格式开始讲起,一篇好的文章,格式很重要,便于读者的阅读也便于作者思路的整理。
计算机程序同样也有自己固定的格式,书写时要严格遵循格式要求。
一般来说,一个Pascal程序包括以下几个部分:
例 1: 随机输入四个数字,倒序输出结果。
2.2.1?程序首部
program是保留字,表示程序从这个地方开始。
pname是标识符,是程序的名字,可由程序员自定。
标识符在命名的时候要注意:
名字简单且有意义。例如,汉诺塔问题的程序名可以是“hanoi”也可以是“hannuo”等。
不能用保留字、标准标识符作为自定义的标识符。例如,PROGRAM PROGRAM、PROGRAM false 就是非法情况,编译时会报错。
标识符是以字母开头的字母数字串,其长度最大为8个字符。用来表示常量、变量、类型、文件、过程、函数和程序的名字。如“pname”“i”“j”“a1”就是合法的标识符;但“1a”“#a”则是非法的标识符。
保留字是Pascal选定的,具有固定意义和用法的专用单词或缩写,这些单词不允许作其他使用。如上,“PROGRAM”就有“程序从这里开始”这样一种特别的意义,而“CONST”就有“常量说明从这里开始”的意义。我们不能再用“PROGRAM”“CONST”来作为其他变量、常量等的名字。
Pascal的35个保留字:
AND, ARRAY, BEGIN, CASE, CONST, DIV, DO, DOWNTO, ELSE, END, FILE, FOF, FUNCTION, GOTO, IF, IN, LABEL, MOD, NIL, NOT, OF, OR, PACKED, PROCEDURE, PROGRAM, RECORD, REPEAT, SET, THEN, TO, TYPE, UNTIL, VAR, WHILE, WITH.
常用的标准标识符有:
标准常量:false, true, maxint, maxlongint.
标准类型:integer, boolean, real, char, text.
标准文件:input, output.
标准函数:abs, arctan, chr, cos, eof, eoln, exp, in, odd,
ord, pred, round, sin, sqr, sqrt, succ, trunc.
标准过程:assign, get, new, dispose, pack, put, bead,
readln, reset, rewrite, unpack, write, writeln.
2.2.2?程序说明部分
程序执行部分使用的标号、常量、类型、变量、记录、文件、过程和函数,都必须在说明部分说明。
2.2.3?程序体
程序体是以“begin end.”括起来的语句系列。“end”后面是一个小圆点,标志着程序结束。
程序体以“分层缩进”的风格来写,以便提高程序的可读性。所谓的“分层缩进”是指在逻辑上同一级的语句其起始点对齐,下一级的语句向右缩进。
执行部分是Pascal程序的核心部分。执行部分必须以“begin”开始,以“end.”结束。执行部分包含的语句之间以“;”隔开。“end.”后的句点,表示整个程序的结束。“begin”和“end.”不是语句,只是作为执行部分的起止标志,因此,在最后一个语句与END之间不需要用分号。
2.3?常?量
定义符号常量的一般格式:
const <常量标识符>=<常量>
const部分是常量说明,说明一些在以下部分用到的、在整个程序执行过程中不改变值的量。这些量,Pascal称为常量。
常量说明部分以关键字const开头,后面的标识符为常量标识符,其中“=”号后的常量为整数、实数、字符、字符串(字符、字符串常量在后面章节中将做介绍)。而且,在常量说明部分可以将几个常量说明成符号常量,共用一个关键字“const”。
2.3.1?使用常量的优点
程序中用到这个值的地方均可用常量名来代替。如上题中定义“n=4”指本程序处理4个数值,在下面的程序体中就用“n”来代替具体的值(如for i:=1 to n)。如果要改变处理数据个数,则只在常量说明部分修改“n=4”这一句就行了,而不用在程序中每一个用到的地方都加以修改。这样不但在编写程序的时候很方便,也增加了程序的可读性,修改时更方便。
2.3.2?常量类型
1.?整型常量
整型常量采用我们平常使用的十进制整数表示。如138,0,-512 等都是整型常量,而18.或18.0 都不是整型常量。
Pascal 中有一个标准标识符maxint,它代表所使用的计算机系统允许的最大整型数,而最小的整型数即为-maxint-1。
Turbo Pascal还定义了长整数常量maxlongint,其值为2147483647。
2.?实型常量
实型常量包括正实数、负实数和实数零。Pascal中表示实型常量的形式有
两种。
(1)进制表示法。这是人们日常使用的带小数点的表示方法。如0.0,-0.0,+5.61,-8.0,-6.050等都是实型常量,而0.,.37都不是合法的实数形式。
(2)科学记数法。科学记数法是采用指数形式的表示方法,如1.25×105可表示成1.25e+05。在科学记数法中,字母“e”表示10 这个“底数”,而e之前为一个十进制表示的小数,称为尾数,e 之后必须为一个整数,称为“指数”。如-1234.56e+26 ,+0.268e-5,1e5 是合法形式,而.34e12 , 2.e5 , e5,e,1.2e+0.5 都不是合法形式的实数。
无论实数用十进制表示法还是科学记数法表示,它们在计算机内的表示形式是一样的,总是用浮点方式存储。
和整数相比,实数能表示的范围大得多,但值得注意的是,实数的运算比整数的运算速度慢且无法像整数那样精确表示,只能近似表示。
3.?字符常量
在Pascal 语言中,字符常量由单个字符组成,所有字符来自ASCII 字符集,共有256 个字符。在程序中,通常用一对单引号将单个字符括起来表示一个字符常量。如,'a','A','0'等。特殊地,对于单引号字符,则要表示成''''。对于ASCII字符集中,按每个字符在字符集中的位置,将每个字符编号为0~255,编号称为对应字符的序号。
4.?布尔常量
布尔型常量仅有两个值,真和假,分别用标准常量名true和false表示。它们的序号分别为1和0。
5.?符号常量
一个常量既可以直接用字面形式表示(称为直接常量, 如 124,156.8),也可以用一个标识符来代表一个常量,称为“符号常量”。
关于符号常量,应注意下列几点:
(1)符号常量一经定义,在程序的执行部分就只能使用该常量标识符,而不能修改其值。
(2)使用符号常量比直接用数值更能体现“见名知意”的原则,也便于修改参数,故一个较好的程序中,应尽量使用符号常量,在执行部分基本上不出现直接常量。
2.4?变?量
变量代表了一个存储单元,其中的值是可变的,故称为变量。
常量是有类型的数据,变量在某一固定时刻用来存放一个常量,因此也应有相应的类型。如整型变量用来存放整数,实型变量用来存放实数。
2.4.1?Pascal语言中的基本变量(见图2-1、表2-1)
表2-1?Pascal中变量的类型
Type | Description |
Character | Typically a single octet (one byte). This is an integer type |
Integer | The most natural size of integer for the machine |
Real | A single-precision floating point value |
Boolean | Specifies true or false logical values. This is also an integer type |
Enumerated | Specifies a user-defined list |
Subrange | Represents variables whose values lie within a range |
String | Stores an array of characters |
2.4.2?在Pascal语言中的变量声明
变量一定要先说明后引用。即所有在程序体中用到的“名字”必须都在说明部分说明过才能引用,否则就会出错,通不过编译,也执行不了。
所有的变量声明时,由var关键字声明指定的变量列表,后跟一个冒号(:)和类型。变量声明的语法是:
var variable_list:type;
2.4.3?Pascal语言中的变量初始化
变量被分配一个冒号和等号,后面的常量为表达式的值。分配一个值的一般形式是:
variable_name:=value;
默认情况下,在Pascal语言中的变量未初始化为零。它们可能包含垃圾值。所以,一个更好的做法是在程序中初始化变量。
age:integer =15;taxrate:real=0.5;grade:char ='A';name:string='John Smith';
2.4.4?Pascal语言中的变量应用实例
上面的代码编译和执行时,会产生以下结果:
Please enter your first name:
John
Please enter your surname:
Smith
Welcome to the world of Pascal John Smith
2.5?Pascal语言中的运算符
2.5.1?Pascal算术运算符实例
假设变量a等于10,变量b等于20:
a+b的结果为30;
a-b的结果为-10;
a*b的结果为200;
b div a的结果为2;
b mod a的结果为0。
算术运算符实例:
上面的代码编译和执行时,会产生以下结果:
Line 1 - Value of c is 31
Line 2 - Value of c is 11
Line 3 - Value of c is 210
Line 4 - Value of d is 2.10
Line 5 - Value of c is 1
Line 6 - Value of c is 2
<span style="fo