pascal教程,free pascal 教程
1,free pascal 教程
第一章、pascal介绍
一、pascal的基本语法单位
1、基本符号
A——Z;a——z;0——9;+,-,*,/,=,,=,,(,),[,],{,},:=,,,;,.,:,..,',^
注意:pascal语言除了能使用以上规定的基本符号外,不得使用任何其它符号。
2、保留字
AND,ARRAY,BEGIN,CASE,CONST,DIV,DO,DIWNTO,ELSE,END,FILE,FOR,FUNTION,GOTO,IF,LABEL,MOD,NIL,OF,OR,PACKED,PROCEDURE,PROGRAM,RECORD,REPEAT,SET,THEN,TO,TYPE,UNTIL,VAR,WHILE,WITH。
注意:所起的文件名不能与保留字相同。
3、标识符
以字母打头的字母数字串,长度小于等于8。
标准标识符(共三十九个):
标准常量:
false,true,maxint
标准类型:
integer,real,char,boolean,text
标准文件:
input,output
标准函数:
abs,arctan,chr,cos,eof,eoln,exp,ln,odd,ord,ored,round,sin,sqr,
sqrt,succ,trunc
标准过程:
get,new,pack,page,put,read,readln,reset,rewrite,unpack,write, writeln
二、程序结构
1、由三大部分组成:程序首部,说明部分,语句部分。
PROGRAM 程序名(input,output);
{……} 解释
CONST
pi=3.14159;
VAR
r,l,s:real;
BEGIN
write('input r:');
read(r);
l:=2*pi*r;
write('l=',l,'s=',s);
END;
2、大量使用标点符号,保留字后不加标点符号(END除外)。
第二章、顺序结构程序设计
一、标准数据类型
1、实型(real)
小数表示法、指数表示法
2、整型(integer)
正、负整数和零
maxint=32767
pred:前导;succ:后继
[例]:pred(3)=2;succ(3)=4;
pred(true)=false;
succ(false)=true
3、字符型(char)
是指在两个单引号中的一个字符。
ord:取序数
[例]:ord('A')=65
4、布尔型(boolean)
false;true
用于布尔型的运算:NOT、AND、OR
ord(true)=1;ord(false)=0
二、常量和变量的定义
常量的定义:CONST
pi=3.14159;
blank=' ';
变量的定义:VAR
r,l,s:read;
cl:char;
三、表达式及赋值语句
[例]:b2-4ac 写成:sqt(b)-4*a*c
赋值::=
四、输入输出语句
1、输入语句:read();readln()
注:表达式里面变量与变量之间用逗号隔开;
readln表示下一个语句将从下一行开始操作;
输入时,整型或实型用空格或回车隔开,字符型之间无需分隔,一个接一
个输入。
2、输出语句:write();writeln()
注:对real或integer限定场宽:write('a=',a:2:0) {a为real型}
第三章、选择结构程序设计
一、if 语句
格式:IF
THEN
ESLE
注:1、ELSE与最近的并且未被配对的ELSE配对;
2、复合,如果THEN或ELSE带有多个语句,则要用BEGIN——END括起来。
二、CASE语句
格式:CASE OF
:
:
……
:
[ELSE]
END
注:1、值表的三种表达方式:“1:”;“2,4,6:”;“10..100:”
2、CHAR,INTEGER,BOOLEAN有序
第四章、循环结构程序设计
一、FOR语句
格式:1、FOR := TO DO ;
2、FOR:= DOWNTO DO 。
[例1]:输入10个数,求最大值、最小值、和、及平均值。
PROGRAM ten(input,output);
VAR
a,s,max,min,avg:real;
i:integer;
BEGIN
write('please input:');
read(a);
s:=a;
max:=a;
min:=a;
FOR i:=2 TO 10 DO
BEGIN
read(a);
s:=s+a;
IF a>max THEN
max:=a
ELSE
IF a<min THEN min:=a
END;
avg:=s/i;
writeln(……);
END.
[例2]:求s=1!+2!+3!+……+10!
program sum_fac(input,output);
var
i,j,s,m:integer;
begin
s:=0:
for j:=1 to 10 do
begin
m:=1;
for j:=1 to i do
m:=m*j;
s:=s+m;
end;
write(……);
end;
二、while语句
格式:WHILE DO
[例1]:输入一串字符串,求第一个“,”前的大小写字母个数和其它字符个数。
program string(input,output);
var
ch:char;
c,s,o:integer;
begin
write(……);
read(ch);
c:=0;
s:=0;
o:=0;
while ch',' do
begin
if (ch>='A')and(ch<='Z') then
c:=c+1
else if (ch>='a')and(ch<='z') then
s:=s+1
else
o:=o+1;
read(ch);
end;
write(……);
end.
三、REPEAT语句
格式:REPEAT
UNTIL
[例]:以字符(char)的形式读入一实数,以实形(real)输出该数。
第五章、函数与过程程序设计
一、函数(包括标准函数和自定义函数)
1、函数的定义
格式:FUNCTION 函数名():返回值类型;
VAR
BEGIN
END
[注]:1、形参表每个参数都写明其类型;
2、有且只有一个返回值,并且要将返回值赋值给函数名。
[例]:求五边形的面积
function area(a,b,c:real):real;
var
p:real;
begin
p:=(a+b+c)/2;
area:=sqrt(p*(p-a)*(p-b)*(p-c);
end;
2、函数的调用
1)、函数的调用必然出现在表达式中(等号的右边),不能以单独地在语句出现
2)、调用时,将每个实参传递给对应的形参
program ml_area(input,output);
var
l1,l2,l3,l4,l5,l6,l7,s:real;
function area(a,b,c:real):real;
var
p:real;
begin
p:=(a+b+c)/2;
area:=sqrt(p*(p-a)*(p-b)*(p-c);
end;
begin
write('input');
readln(l1,l2,l3,l4,l5,l6,l7);
s:=area(l1,l2,l6)+area(l2,l6,l7)+……;
writeln('s=',s:10:3);
end.
二、过程
格式:PROCEDURE()
VAR
BEGIN
END;
[例1]某过程的形参表为(var a,b:real;c,d:integer;var e:char);
主程序中有如下变量说明:x,y:real; m:integer; next:char;
则以下实参表中合法的有:(1、2、3)
1、(x,y,m+3,70,next)
2、(y,x,m,m,next)
3、(y,x,35,m DIV 10,next)
4、(m,x,30,10,next)
5、(x,y,m,10)
6、(35,0,y,m,10,next)
7、(x,y,m,m/10,next)
8、(A,B,30,10,next)
[例2]求程序输出的结果。
program ex(input,output);
var
x,y,z:integer;
procedure s(x:integer; var y:integer);
var
z:integer
begin
x:=5; y:=6; z:=7;
end;
begin
x:=1; y:=2; z:=3;
s(x,y);
writeln(x,y,z);
end.
输出结果:1 6 3
[例3]:求五个数中的最大值。
program max_in_5(input,output);
var
n1,n2,n3,n4,n5:integer;
procedure lagest_in_three(a,b,c:integer;var e:integer)
begin
e:=a;
if b>e then
e:=b;
if c>e then
e:=c;
end;
begin
write('……');
readln(n1,n2,n3,n4,n5);
lagest(n1,n2,n3,n1);
lagest(n1,n4,n5,n1);
write(n1);
end.
三、嵌套
[例]:计算、
program Cmn(input,output);
function fax(x:integer):integer:
var
i:integer;
begin
fac:=1;
for i:=1 to x do
fac:=fac*i;
end;
function c(a,b:integer):real;
begin
c:=fac(a)/fac(b)*fac(a-b)
end;
begin
writeln('c(9,3)=',c(9,3));
writeln('c(8,5=',c(8,5));
end.
四、递归
函数或过程调用它本身,称为递归。
[例1]、用递归计算n! {=m!/n!(m-n)!}
program fac_n(input,output);
var
n:integer;
function fac(n:integer):integer;
begin
if n=1 then fac:=1
else fac:=n*fac(n-1);
end;
[例2]、用递归计算
1)、function power(a,b:integer):integer;
begin
if b=1 then power:=a
else power:=a*power(a,b-1);
end;
2)、procedure power(a,b:integer;var c:integer);
begin
if b=1 then c:=a
else power(a,b-1,c);
c:=a*c;
end;
[例3]、输入一串字符串(以‘.’结束)按逆顺输出
program revers(input,output);
procedure rever;
var
c:char;
begin
read(c);
if c'.' then rever;
write(c);
end;
begin
rever;
end.
五、标识符的作用域
1、全局变量和局部变量
1)、全局变量:在主程序中被说明,作用域:整个程序;
2)、局部变量:在子程序中被说明,作用域:主程序及其下级的程序。
2、子程序(function、precedure)的作用域
一个子程序可以调用它的下一级了程序,或可以调用在它之前定义的同级子程序。
[例]写出程序运行的结果。
program range(input,output);
var
x,y:integer;
procedure p1;
var
x,z:integer;
begin
x:=10; y:=y+1; z:=10;
writeln(x,y,z);
end;
begin
x:=1; y:=1;
writeln(x,y);
p1;
writeln(x,y,z);
end.
结果为:
(x y z)
1 1
10 2 10
1 2 (error)
3、在子程序中被改变值的变量可以回传的两种方法:
a、变量参数 procedure(var 变量名);
b、在上一级程序定义了的,且在下一级程序未被重新定义的。
[注]如果主程序的变量在子程序被重新定义,在子程序中主程序的变量被稳藏,在主程序中子程序的变量无效。
2,如何使用free pascal?
右键——默认值——默认代码页——更改为‘437 (OEM - 美国)’——确定
其他的调试步骤:
例1. 1的调试:
1、Free Pascal程序的启动
双击桌面上的Free Pascal,启动后,界面如下:
2、第一次启动free pascal 时,用鼠标单击菜单不起作用,需用要进行设置。右击标题栏,选择属性:
3、在属性窗口中,去掉2个快速编辑模式和插入模式前的复选框的勾,再单击确定按纽,新弹出:将属性应用于快捷的设置,在该面板中选择:修改启动该窗口的快捷方式。设置好了,关闭free pascal窗口。再重新单击桌面上的free pascal,这时就可以用鼠标来操作了。
4、新建一程序文件:单击菜单File,选择new
5、输入代码,这里的writeln是writeLn,大小写不要紧。Writeln()后面接的是一对括号。
6、保存。按F2,或单击file/save,弹出一保存窗口。将文件保存为ex11.pas。该文件存储在free pascal的安装目录下:C:\FPC\2.0.4\bin\i386-win32
7、编译运行,按Ctrl+F9,编译后,再Alt+F5查看屏幕输出结果。
例1.2调试:
1、新建一程序文件:单击菜单File,选择new
2、以书本例1.2为例,在新建的窗口中输入如下代码:
3、代码写完后,单击file / save (或按F2),保存文件,存储为ex12.pas,该文件存储在free pascal的安装目录下:C:\FPC\2.0.4\bin\i386-win32
4、编译程序。按Ctrl+F9,弹出如下窗口:
在此窗口中输入a的值,比如输入5,输完后,敲回车键,回到程序窗口,再按Alt+F5,在屏幕上查看输出结果。
得到输出的结果值,再按回车健Enter,回到主程序界面。
3,pascal的高精度排列组合怎样处理?
加:
readln(s);
a[0]:=length(s);
for i:=1 to a[0] do
a[i]:=ord(s[a[0]-i+1])-48;
type date=array[0..100] of longint;
function add(a,b:date):date;
var i:integer;
begin
if b[0]>a[0] then a[0]:=b[0];
for i:=1 to a[0] do
begin
inc(a[i],b[i]);
inc(a[i+1],a[i] div 10);
a[i]:=a[i] mod 10;
end;
if a[i+1]>0 then inc(a[0]);
add:=a;
end;
乘:
function mul(a:data;b:integer):data;
begin
for i:=1 to a[0] do a[i]:=a[i]*b;
a[0]:=a[0]+5;
for i:=1 to a[0] do
begin
inc(a[i+1],a[i] div 10);
a[i]:=a[i] mod 10;
end;
while (a[a[0]]=0) and (a[0]>1) do dec(a[0]);
end;
function mul(a,b:data):data;
var c:data;
begin
fillchar(c,sizeof(c),0);
for i:=1 to a[0] do
for j:=1 to b[0] do inc(c[i+j-1],a[i]*b[j]);
c[0]:=a[0]+b[0];
for j:=1 to c[0] do
................
while (c[c[0]]=0) and (c[0]>1) do dec(c[0]);
end;
减:
(length(a)>length(b)) or (length(a)=length(b)) and (a>b)
function compare(a,b:data):boolean;
var i:integer;
begin
if a[0]>b[0] then exit(true);
if b[0]>a[0] then exit(false);
for i:=a[0] downto 1 do
if a[i]>b[i] then exit(true);
else if b[i]>a[i] then exit(false);
end;
除:
function chu(a:data;b:integer):data;
var x:longint;
c:data;
begin
x:=0;
fillchar(c,sizeof(c),0);
for i:=a[0] downto 1 do
begin
x:=x*10+a[i];
c[i]:=x div b;
x:=x mod b;
end;
c[0]:=a[0];
while (c[c[0]]=0) and (c[0]>1) do dec(c[0]);
end;
4,for语句(pascal)
程序中 for a:=1 to 20 do Writeln (a);是for循环语句。 for 循环语句有两种格式: (1) for 循环变量:=初值 To 终值 do 语句; (2) for 循环变量:=初值 downto 终值 do 语句; 第(1)种格式的初值小于等于终值,循环变量值按自动加1递增变化; 第(2)种格式的初值大于或等于终值,循环变量值按自动减1递减变化。for 循环是 (以递增1或以递减1) 计数型循环。 比如: 若将[例3.1]程序改为倒计数(递减)循环,则输出20~1的自然数数: Program Exam31; Var a: byte; Begin for a:=20 downto 1 do Writeln(a) ; Readln End.
5,PASCAL FOR 循环语句
循环次数已知时,可以用for语句实现循环结构。
for语句有两种格式:递增型和递减型。
(1)递增型for语句格式
for:=todo;
(2)递减型for语句格式 ,
for:=downtodo;
其中,“循环变量"为一个有序类型的数据,
在第一种形式中,使用的是保留字to,循环变量则从“初值"开始逐一增加到“终值";
在第二种形式中,使用的是保留字downto,“循环变量"则从“初值"开始逐一递减到“终值",每次执行一次循环体语句。
下面继续改写上述求1~1 O之和的程序代码如下:
var i,s:integer;
begin
s:=0;
for i:=1 to 10 do
s:=s+i;
end;
6,Pascal定义了五个标准整数类型我都混了,怎么办?
pascal 的证书类型主要就是下面这几种了
类型 数据范围 占用内存空间(字节)
Byte 0 .. 255 1
Shortint -128 .. 127 1
Smallint -32768 .. 32767 2
Word 0 .. 65535 2
Integer either smallint, longint or int64
size 2,4 or 8
Cardinal either word, longword or qword size
2,4 or 8
Longint -2147483648 .. 2147483647 4
Longword 0..4294967295 4
Int64 -9223372036854775808 ..
9223372036854775807 8
常用的主要是integer longint qword int64 byte word 这几种吧,其他的好像不常用,至少我学习的时候很少用到……
7,谁有 pascal语言的教材?我想要
我有啊 但是我不知道你的邮箱不能发给你
这里给出一部分
Pascal基础教程
第一课 初识PASCAL语言 …………………… 1
第二课 赋值语句与简单的输出语句 …………………… 5
第三课 带格式的输出语句输入语句 …………………… 12
第四课 简单的分支结构程序设计 …………………… 19
第五课 if嵌套与case语句 …………………… 23
第六课 for循环 …………………… 29
第七课 while循环与repeat-until循环 …………………30
第八课 一维数组 …………………… 35
第九课 多维数组 …………………… 39
第十课 字符数组与字符串 …………………… 45
第十一课 枚举、子界、集合及记录类型 …………………… 51
第十二课 过程与函数 …………………… 66
第十三课 动态数据类型(指针类型) …………………… 76
第十四课 文件 …………………… 89
附录一 Pascal中的字符串函数和数学函数 ……………… 111
附录二 关于fillchar的使用和讨论 …………………… 116
附录三 程序的调试技巧 …………………… 117
附录四 Pascal的多种退出语句用法 …………………… 123
第一课 初识Pascal语言
信息学奥林匹克竞赛是一项益智性的竞赛活动,核心是考查选手的智力和使用计算机解题的能力。选手首先应针对竞赛中题目的要求构建数学模型,进而构造出计算机可以接受的算法,之后要写出高级语言程序,上机调试通过。程序设计是信息学奥林匹克竞赛的基本功,在青少年朋友参与竞赛活动的第一步必须掌握一门高级语言及其程序设计方法。
一、Pascal 语言概述
PASCAL语言也是一种算法语言,它是瑞士苏黎世联邦工业大学的N.沃思(Niklaus Wirth)教授于1968年设计完成的,1971年正式发表。1975年,对PASCAL语言进行了修改,作为"标准PASCAL语言"。
PASCAL语言是在ALGOL 60的基础上发展而成的。它是一种结构化的程序设计语言,可以用来编写应用程序。它又是一种系统程序设计语言,可以用来编写顺序型的系统软件(如编译程序)。它的功能强、编译程序简单,是70年代影响最大一种算法语言。
二、Pascal 语言的特点
从使用者的角度来看,PASCAL语言有以下几个主要的特点:
⒈它是结构化的语言。PASCAL语言提供了直接实现三种基本结构的语句以及定义"过程"和"函数"(子程序)的功能。可以方便地书写出结构化程序。在编写程序时可以完全不使用GOTO语句和标号。这就易于保证程序的正确性和易读性。PASCAL语言强调的是可靠性、易于验证性、概念的清晰性和实现的简化。在结构化这一点上,比其它(如BASIC,FORTRAN77)更好一些。
⒉有丰富的数据类型。PASCAL提供了整数、实型、字符型、布尔型、枚举型、子界型以及由以上类型数据构成的数组类型、集合类型、记录类型和文件类型。此外,还提供了其它许多语言中所没有的指针类型。沃思有一个著名的公式:"算法+数据结构=程序"。指出了在程序设计中研究数据的重要性。丰富的数据结构和上述的结构化性质,使得PASCAL可以被方便地用来描述复杂的算法,得到质量较高的程序。
⒊能适用于数值运算和非数值运算领域。有些语言(如FORTRAN 66,ALGOL 60)只适用于数值计算,有些语言(如COBOL )则适用于商业数据处理和管理领域。PASCAL的功能较强,能广泛应用于各种领域。PASCAL语言还可以用于辅助设计,实现计算机绘图功能。
⒋PASCAL程序的书写格式比较自由。不象FORTRAN和COBOL那样对程序的书写格式有严格的规定。PASCAL允许一行写多个语句,一个语句可以分写在多行上,这样就可以使PASCAL程序写得象诗歌格式一样优美,便于阅读。
由于以上特点,许多学校选PASCAL作为程序设计课程中的一种主要的语言。它能给学生严格而良好的程序设计的基本训练。培养学生结构化程序设计的风格。但它也有一些不足之处,如它的文件处理功能较差等。 三、Pascal语言程序的基本结构
任何程序设计语言都有着一组自己的记号和规则。PASCAL语言同样必须采用其本身所规定的记号和规则来编写程序。尽管不同版本的PASCAL语言所采用的记号的数量、形式不尽相同,但其基本成分一般都符合标准PASCAL的规定,只是某些扩展功能各不相同罢了。下面我们首先来了解Pascal语言的程序基本结构。
为了明显起见先举一个最简单的PASCAL程序例子: 【例1】
从这个简单的程序可以看到:
⒈一个PASCAL程序分为两个部分:程序首部和程序体(或称分程序)。
⒉程序首部是程序的开头部分,它包括:
⑴程序标志。用"program"来标识"这是一个PASCAL 程序"。PASCAL规定任何一个PASCAL程序的首部都必须以此字开头。在turbo pascal语言中,首部也可省略。
⑵程序名称。由程序设计者自己定义,如例中的exam1。
在写完程序首部之后,应有一个分号。
⒊程序体是程序的主体,在有的书本里也称"分程序"。程序体包括说明部分(也可省略)和执行部分两个部分。
⑴说明部分用来描述程序中用到的变量、常量、类型、过程与函数等。本程序中第二行是"变量说明",用来定义变量的名称、类型。
PASCAL规定,凡程序中用到所有变量、符号常量、数组、标号、过程与函数、记录、文件等数据都必须在说明部分进行定义(或称"说明")。也就是说,不允许使用未说明先使用。
⑵执行部分的作用是通知计算机执行指定的操作。如果一个程序中不写执行部分,在程序运行时计算机什么工作也不做。因此,执行部分是一个PASCAL程序的核心部分。
执行部分以"begin"开始,以"end"结束,其间有若干个语句,语句之间以分号隔开。
执行部分之后有一个句点,表示整个程序结束。
⒋PASCAL程序的书写方法比较灵活。当然,书写不应以节省篇幅为目的,而应以程序结构清晰、易读为目的。在编写程序时尽量模仿本书中例题程序格式。
⒌在程序中,一对大括号间的文字称为注释。注释的内容由人们根据需要书写,可以用英语或汉语表示。注释可以放在任何空格可以出现的位置。执行程序时计算机对注释不予理睬。
四、Turbo Pascal语言系统的使用
目前,常用的Pascal语言系统有Turbo Pascal7.0与Borland Pascal 7.0,下面我们就来学习Turbo Pascal 7.0系统的使用。 1. 系统的启动
在运行系统目录下的启动程序TURBO.EXE,即可启动系统。屏幕上出现如图1所示的集成环境。
2. Turbo Pascal系统集成环境简介
最顶上一行为主菜单。中间蓝色框内为编辑窗口,在它个编辑窗口内可以进行程序的编辑。最底下一行为提示行,显示出系统中常用命令的快捷键,如将当前编辑窗口中文件存盘的命令快捷键为F2,获得系统帮助的快捷键为F1,等等。
3. 新建程序窗口
按F10进行主菜单,选择FILE菜单,执行其中New命令。就可建立一个新的程序窗口(默认文件名为Noname00.pas或Noname01.pas等)。
4. 程序的输入、编辑与运行
在当前程序窗口中,一行一行的输入程序。事实上,程序窗口是一个全屏幕编辑器。所以对程序的编辑与其它编辑器的编辑方法类似,这里不再重复。
当程序输入完毕之后,一般要先按Alt+F9(或执行compile菜单中compile命令)对程序进行编译。如果程序有语法错误,则会在程序窗口的第一行处显示第一个红色错误信息。若无语法错误,则窗口正中央会出现一个对话框,提示编译成功。接下来,我们可以运行程序了。
程序的运行可以通过按ALT+R打开RUN菜单中的RUN命令,或直接按快捷键CTRL+F9。则可以在用户窗口中输出运行结果。通常在程序运行结束后系统回到Pascal系统的集成环境,因此要查看运行结果,要按ALT+F5将屏幕切换到用户屏幕。
5.程序的保存与打开
当我们想把程序窗口中的程序存入磁盘时,可以通过按F2键(或执行File菜单中的save命令)来保存程序。第一次保存文件时屏幕上会出现一个对话框要求输入文件名(默认扩展名为.pas)。
当我们要将磁盘上的程序文件中的PASCAL程序装入窗口时,可按F3(或执行File菜单中的Open命令)来装入程序,此时系统也会弹出一个对话框要求输入要打开的文件名,或直接在文件对话框列表中选择所要的文件,然后回到打开文件。
五、第一个程序
下面程序在运行时,会提示输入一个圆的半径,然后会在屏幕上画一个圆。按回车后程序结束回到程序窗口。
Program ex1;
Uses graph;
Var Gm,Gd,R :integer;
Begin
Gd:=0;
Write('Please enter the radius:');readln(R);
Initgraph(Gm,Gd,' ');
Setcolor(Green);
Circle(320,240,R);
Readln;
Closegraph;
End.
注意,如果上面程序运行时会出现初始化图形错误,请将系统目录下BGI子目录EGAVGA.BGI和UNITS子目录中的Graph.tpu拷贝到系统目录下BIN目录即可。
请输入上面的程序,并练习将其存盘、打开与运行上面程序。
第二课 赋值语句、输出语句
上节课,我们学习了Pascal语言的程序基本结构,在一个程序中,所有的操作都由执行部分来完成,而执行部分又都是由一个个语句组成的。因此,下面开始我们要学习pascal语言的基本语句,并且在学习过程中逐步学会程序设计的基本方法。
这节课我们要学习两种语句,即赋值语句与输出语句。在语句学习之前我们要先了解一些pascal语言的基础知识。
一、 常量、变量与算术表达式
(一)常量
在程序运行过程中,其值不能被改变的量称为常量。如123,145.88,'abc',true等。
⒈整型常量
整型常量采用我们平常使用的十进制整数表示。如138,0,-512等都是整型常量,而18.或18.0都不是整型常量。
pascal中有一个标准标识符Maxint,它代表所使用的计算机系统允许的最大整型数,而最小的整型数即为-Maxint-1。
一个整型数据用来存放整数。Turbo Pascal支持五种预定义整型,它们是shortint(短整型)、 integer(整型)、 longint(长整型)、 byte(字节型)和 word(字类型),Turbo Pascal分别用相同的名字作为他们的表识符。每一种类型规定了相应的整数取值范围以及所占用的内存字节数。
类型 数值范围 占字节数 格式
shortint -128..128 1 带符号8位
inteter -32768..32767 2 带符号16位
longint -2147483648..2147483647 4 带符号32位
byte 0..255 1 带符号8位
word 0..65535 2 带符号16位
Turbo Pascal规定了两个预定义整型常量表识符maxint和maxlonint,他们各表示确定的常数值,maxint为32767, maxlongint为2147483647,他们的类型分别是integer 和longint。
⒉实型常量
实型常量包括正实数、负实数和实数零。pascal中表示实型常量的形式有两种。
⑴十进制表示法
这是人们日常使用的带小数点的表示方法。
如0.0,-0.0,+5.61,-8.0,-6.050等都是实型常量,而0.,.37都不是合法的实数形式。
⑵科学记数法
科学记数法是采用指数形式的表示方法,如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都不是合法形式的实数。
无论实数是用十进制表示法还是科学表示法,它们在计算机内的表示形式是一样的,总是用浮点方式存储。
和整数相比,实数能表示的范围大得多,但值得注意的是实数的运算整数的运算速度慢且无法像整数那样精确表示,只能近似表示。
一个实型数据用类存放实数。Turbo Pascal支持五种预定义实型,它们是real(基本实型)、 single(但精度实型)、double(双精度实型)、extended(扩展实型)、comp(装配实型),Turbo Pascal分别用相同的名字作为他们的表识符。每一种类型规定了相应的实数取值范围、所占用的内存字节数以及它们所能达到的精度。
类型 数值范围 占字节数 有效位数
real 2.9e-39..1.7e38 6 11..12
single 1.5e-45..3.4e38 4 7..8
double 5.0e-324..1.7e308 8 15..16
extended 3.4e-4932..1.1e4932 10 19..20
comp -2**63+1..2**63-1 8 19..20
Turbo Pascal支持两种用于执行实型运算的代码生成模式:软件仿真模式和80x87浮点模式。除了real可以在软件仿真模式下直接运行以外,其他类型必须在80x87浮点模式下运行。
⒊字符常量
在Pascal语言中,字符常量是由单个字符组成,所有字符来自ASCII字符集,共有256个字符。在程序中,通常用一对单引号将单个字符括起来表示一个字符常量。如:'a','A','0'等。特殊地,对于单引号字符,则要表示成''''。对于ASCII字符集中,按每个字符在字符集中的位置,将每个字符编号为0-255,编号称为对应字符的序号。
4.布尔常量
布尔型常量仅有两个值,真和假,分别用标准常量名true和false表示。它们的序号分别为1和0。
上一篇:steam错误代码-105,dota2连不上服务器怎么办?
下一篇:没有了