pascal基础编程
- 格式:docx
- 大小:39.39 KB
- 文档页数:25
pascal基础编程
第一篇:pascal基础编程
1.结构化程序设计的基本概念
请不要用GOTO。一个死循环的例子是: while true do;
2.输入/输出 几点提示:
1.输入如果很复杂,可以考虑作为字符串输入,再处理这个字符串 2.文件大的时候注意一次尽量读较多的字节,这样会比较快的。请建立一个1M的文件自己比较: var f:text;c:char;s:string;
(以下文件均已打开)while not eof(f)do read(f,c);和
while not eof(f)do read(f,s);
3.变量,数据类型
记住,使用全局变量要小心!因为作用域宽,任何地方都有可能改变它们。在使用数组的时候要尤其小心。建议打开范围检查来检测是否有下标超界。
变量的类型是一个难点。应该记住重要的类型(如integer,longint,string,real)占用的字节数和表示的数的范围。前者用来计算空间是否足够,后者考虑范围是否可能超过。注意常见的数据类型表示的范围和占用字节数。
下面介绍extended类型。是一种实型,但有效位数比较多(19-20位有效数字),可以作为大整数存储(1.1e4932范围内),可以避免一些高精度运算。如: var e:extended;begin e:=***789.0
writeln(e:0:0);end.e:=xxx.0的“.0”是必须的,因为e是实数。writeln(e:0:0)是输出e的整数部分 一个extended占用10个字节。
下面介绍Int6类型。是一种整形,占用8个字节。
范围:-***5808 ~ ***5807=263-1,4.运算:算术运算,逻辑运算,表达式 注意优先级,如果拿不准,请加括号。
还有一点,是逻辑运算的计算问题,默认方式是从左往右计算,到可以确定值时停止。如: if a and b and c then...则一旦发现b=false立刻停止计算,所以如果c的计算可能导致错误,将不会被发现。
5.选择结构:IF和CASE IF有一个需要注意的地方,是与ELSE的匹配问题。如果拿不准,请在每一个IF,ELSE处用begin...end
6.循环结构:FOR,WHILE和UNTIL 有一个地方,有关FOR的,不同的编译器可能产生不同的代码!例如: i:=0;for i:=a to b do
halt;writeln(i);
如果a=3, b=2 那么有的编译器输出3,有的输出0。请大家不要写这样的程序。
7.字符及字符串:+, 函数和存储方式
注意string的长度默认是255,不要超出了。长度储存在s[0]。看下面的代码: s:='';s[1]:='a';s[2]:='b';writeln(s);程序输出空串。知道为什么吗?原因刚刚已经说了。长度在s[0]。所以...8.数组,多维数组
数组定义时下标可以多样,如: array[char] of
integer;array['A'..'Z'] of integer;array[-5..5] of integer;注意下标不要越界,否则变量无辜改变,或者死机。
9.文件操作
注意要关闭文件。
10.子程序,过程和函数,参数和返回值,变量的作用域
子程序的使用是很重要的,注意一个子程序尽量做一个独立的工作,尽量少用 全局变量。测试的时候也便于充分的测试每一个子程序。注意变量的作用域,尽量避免用全局变量。
11.PASCAL特殊类型:子界,枚举和集合类型
要多用子界类型,因为可以利用它来检查是否越界,更快的查出错误。
12.指针 慎用!
一般在以下情况用得多:
特定的数据结构:树,图的邻接表,链表 大数组等占空间较多的数据结构 如: type ptype=^arrtype;arrtype=array[1..400] of
byte;var a:array[1..400] of ptype;定义了一个400*400的数组。但必须先:
for i:=1 to 400 do new(a);这样引用:a[i]^[j];记得把指针初始化为nil,使用之前要先new
13. 常用数据类型
名称 大小 范围 最大数常量 Shortint 1b-128~127 Integer 2b-32768~32767 MaxInt Longint 4b-2147483648~2147483647
MaxLongint Byte 1b 0~255 Word 2b 0~65535 总结:一般根据变量的取值范围确定最合适的类型。例一:
整数N满足N<=10^9, 则:N : Longint;坐标(X,Y)满足-100<=X,Y<=100, 则:X,Y:Shortint;例二:
B:longint;则:A*B div A有可能溢出。A div A * B不可能溢出。
实数
Real(11-12)6b Single(7-8)4b Double(15-16)8b
*Extended(19-20)10b 需要在协处理器($N+)Comp(19-20)8b 注:一般用Real,当要求特别精度时可以用Double,用Extended和Comp可以作高精度“整数” 例一:
N是整数,N<=10^18, 则 N:Extended;但N div 5是非法的,因为N是实数。可以用N/5代替。
输出时:writeln(n:0:0);
*boolean: 单字节,最低位为0时false,为1是TRUE 集合:一个字节8个元素。
14.控制流语句 Break 退出循环 Continue 继续循环 Exit 退出当前过程 Halt 退出整个程序;
第二篇:pascal编程基础练习题
pascal编程基础练习题
一、不定项选择和填空题
1、下列关于程序语言的叙述,不正确的是()
A、编写机器代码不比编写汇编代码容易
B、高级语言需要编译成目标代码或通过解释器解释后才能被CPU执行 C、同样一段高级语言程序通过不同的编译器可能产生不同的可执行程序
D、汇编代码可被CPU直接运行
E、不同的高级语言语法略有不同
2、下列哪一种程序设计语言是解释执行的()
A、Pascal
B、GWBASIC
C、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—TYPE B、VAR—CONST—LABEL—TYPE
C、LABEL—CONST—TYPE—VAR
D、CONST—VAR—TYPE—LABEL 8、下面对Pascal程序组成结构的描述错误的是()
A、程序体可以为空
B、程序的注释部分只能写在程序中一条语句的最后
C、程序首都的参数部分可有可无
D、一个完整的PASCAL程序的主程序只能有一个
9、要编写并执行—个PASCAL程序,—般的步骤是()
A、①用编辑软件编写源程序
②用PASCAL的编译程序把源程序转换成目标程序
③用连接程序把目标程序转换为可执行程序
④运行可执行程序
B、①用编辑软件编写源程序
②修改和调试源程序
③用PASCAL的编译程序把源程序转换成可执行程序
④运行可执行程序
C、①用编辑软件编写源程序
②用连接程序把源程序转换成可执行程序
③试运行可执行程序
④修改后再运行可执行程序
D、①用编辑软件编写源程序
②用连接程序把源程序转换为目标程序
③用PASCAL的编译程序把目标程序转换为可执行程序
④运行可执行程序
10、PASCAL源程序中不止确的注释语句是()
A、用一对“{”和“}”括起来的字符串
B、用一对“/*”和“*/”括起来的字符串
C、用—对“(*”和“*)”括起来的字符串
D、A)或 B)11、以下正确的PASCAL实数是() A、0.56E2.5B、2.56E
2C、.318ED、34.E5 E、EF、3E-G、.1
5H、15.12、每个Pascal程序的分程序中都必须包括()
A、变量说明、语句
B、语句
C、类型定义、变量说明、语句
D、常量说明、变量说明、语句 13、下列中合法的Pascal标识符是()
A、Char set
B、RECORD
C、Abs
D、π
E、A1B2C3 F、FOR
G、2ab
H、a[1] 14、设a、b、c为整型变量,并有以下程序段
Read(a);Readln(b,c);
Readln(c,b);Readln(a,b);
writeln(a,b,c)
若运行时输入:
3<ENTER>5 6<ENTER>8 9<ENTER>
其中<ENTER>表示回车符,则输出是()
A、12
3B、147
C、784 15、下列表达式中,其值为TRUE的是()
A、150>=150
B、100>150
C、Abs(-200)<>200
D、Succ('A')
E、'ab'<'abc'
F、Succ(False)=True