Freepascal资料详解

合集下载

free pascal编程语言

free pascal编程语言

free pascal编程语言Free Pascal编程语言是一种跨平台的编程语言,它是一种强类型、过程化的语言,它的语法与Delphi相似。

Free Pascal的目标是提供一个免费的、高效的编译器,支持多种操作系统和处理器架构。

Free Pascal的特点之一是它的跨平台性。

它可以在多种操作系统上运行,包括Windows、Linux、Mac OS等。

这使得开发者可以使用同一套代码来开发不同平台的应用程序,大大提高了开发效率。

Free Pascal也支持多种处理器架构,包括x86、ARM、PowerPC 等。

这使得开发者可以在不同的硬件平台上使用同一套代码来开发应用程序。

这种灵活性使得Free Pascal成为一个非常受欢迎的编程语言。

Free Pascal是一种强类型语言,这意味着在编译时就会进行类型检查,从而避免了许多常见的编程错误。

它还支持面向对象编程,开发者可以使用类、对象、继承等概念来组织代码,使得代码更加结构化和可维护。

Free Pascal还提供了丰富的标准库,包括文件操作、字符串处理、图形界面等功能。

开发者可以直接使用这些库来简化开发过程,提高开发效率。

在Free Pascal中,开发者可以使用各种数据类型来存储和操作数据,包括整数、浮点数、字符、字符串等。

它还提供了丰富的运算符和控制结构,可以进行各种数学运算和逻辑操作。

Free Pascal还支持多线程编程,开发者可以使用多线程来实现并发处理,提高程序的性能和响应速度。

它还提供了各种同步机制,如互斥锁、信号量等,用于处理多线程之间的数据共享和同步问题。

Free Pascal的编译器是一种高效的编译器,它可以将代码编译成本地机器代码,从而提供了很高的性能。

与解释型语言相比,Free Pascal的执行速度更快,资源占用更低。

Free Pascal是一个功能强大、灵活、高效的编程语言。

它的跨平台性和强类型特性使得开发者可以使用同一套代码来开发不同平台的应用程序。

fp01freepascal教程

fp01freepascal教程

fp01freepascal教程1、对Pacal的基本认识=某=.e某e文件是二进制代码的可执行程序=某=.Pa文件是人们能读董的Pacal源程序。

我们通过Pacal源程序来控制计算机的运行。

=某=我们用Pacal这个程序来处理.Pa文件,Pacal会帮我们运行.Pa文件2、试一试circle画圆程序。

(将k盘的circle.pa拷贝到C:\\FPC\\2.4.0\\bin\\i386-win32\\A、双击桌面快捷方式FreePacalIDEB、选择菜单[File]-[Open]-circle.pa]现在,在freepacal的工作区里可以看到circle.pa源程序。

(快捷键F3)C、选择菜单[Run],看到红色的圆(快捷键ctrl+F9)D、按回车,回到Pacal编辑界面。

E、修改颜色:找到Setcolor(red);,将red改成greenF、选择菜单[Run],看到绿色的圆G、选择菜单[Save]保存刚才的修改H、选择[File]-[E某it]退出3、编写简单的程序例.1计算半径为R的圆面积SprogramArea;{程序首部——Area是本程序的名称}contpi=3.14159;{常量说明部分——用pi代表3.14159}var,r:real;{变量说明部分——用S,R为Real类型的变量}begin{执行部分}readln(r);{等待从键盘输入数字,并保存到变量r}:=pi某r某r;{先计算pi某r某r的值然后保存到变量S,}writeln('=',);{往屏幕写字符串‘=’以及变量S的值}end.{程序结束}试着编写以上的程序。

A、打开fpB、输入以上程序代码。

大括号里是说明部分,不会被执行不用写。

注意英文的拼写,每行最后的分号,:=冒号等号,S=,S的逗号,end后面有点,有些行前面要空2格。

C、保存文件[Save]文件保存,文件名Area.paD、运行该程序[Run]E、运行后输入6回车F、查看结果:[Debug-[OutPut]](Alt+F5)看结果是不是S=1.1309724000E+02Debug是“调试”的意思,Output是“输出”的意思,结果中E+02代表某10的2次方4、计算机最基本的功能是计算,我们先学会如何让FP为我们做一些计算题1、已知梯形的上底、下底和高,求梯形的面积。

freepascal极详细资料

freepascal极详细资料

一、TP和FP的功能区别1.Free Pascal理论上可以使用4GB(2^32byte)的内存,因此实际上几乎可以使用系统中的所有剩余内存(除非赛题中有内存限制),这是因为Free Pascal使用的是32位的编译器。

但是对于Turbo Pascal来说,由于是16位的编译器,因此不能定义大小超过64KB (2^16byte)的数据类型和变量,并且在DOS实模式下可以使用的内存总数只有640KB。

但这并不是说,你可以随意定义很大的数组了,因为光读入200MB的数据就会让你的程序超时了(因为现在的7200转硬盘和133的系统总线速度决定了读取数据的速度也就100MB/秒)。

2.在Free Pascal中,如果用assign给标准输入输出文件变量input和output指定了文件,在程序结束之前一定要用close关闭input和output,否则输出文件可能不能被正确的写入。

这个问题是近几年NOIP竞赛和省队训练、选拔中选手常犯的错误。

尤其是程序非正常结束之前(如halt)会忘记。

3.如果用Rewrite打开文件,那么文件就只能被写入了。

如果需要读取这个文件,要对文件执行Reset。

所以,在Free Pascal中最好不要对一个文件同时进行读写操作。

4.在Free Pascal中,集合中的元素都是4个字节长的。

5.表达式执行的顺序是不确定的。

比如对于表达式a:=g(2)+f(3); 不保证g(2)一定在f(3)之前执行。

6.函数和过程在使用时,参数的类型必须和定义时完全一致。

原因是在Free Pascal中添加了函数重载功能。

7.PROTECTED,PUBLIC,PUBLISHED,TRY,FINALL Y,EXCEPT,RAISE成为了关键字,因此不能作为函数和过程的名字;而FAR,NEAR不再是关键字了,原因是Free Pascal是32位系统,不再需要这些关键字。

二、FP的新增功能1.函数可以返回复杂的类型,比如记录和数组。

free pascal编程基础

free pascal编程基础

(3 输出语句(写语句)
格式:
write
writeln
write (输出变量标识符); writeln <(输出变量标识符)>; 注意:write输出最后一项,不换行 writeln( )标识起换行作用 writeln则自动换行
输出格式: a.标准场宽 b.单场宽 形式:x:n x:为输出变量标识符 n:表示输出x时所占的列数,n为正整数 c.双场宽 形式:x:n1:n2 x:为输出变量标识符 n1:表示输出x时所占的列数,包括符号伟,整数 部分,小数点与小数部分 n2:表示小数部分的位数 n1,n2为正整数,n1>n2
(2 ቤተ መጻሕፍቲ ባይዱ入语句(读入语句) read
格式:
readln
read (变量名表); readln <(变量名表)>; 语义:执行该语句时,从键盘上读入数据,将其依次 赋给变量名表中的变量,其中变量名表是一串 用逗号分隔开的变量标识符。Readln后可以没 有变量名表,尖括号“< >”表示此内容可有可无, 表示读入一个回车键换行符。 注意:a.输入数值型时,数据间用空格或回车键分隔, 最后一定要有一个回车,表示输入结束。 b.输入数据要与变量类型匹配 c.输入变量为多个时,要求输入的相应数据不 能少于其变量的个数。
信息学奥赛培训 (四)
<一> 结构化程序设计
1. 顺序结构的程序设计
(1 赋值语句 “ :=” 格式: 变量标识符:=表达式;
语义:赋值语句的执行是:“先计算,后赋值”。先 计算表达式的值然后将值赋给变量标识符, 具有计算和赋值的双重功能。 注意:“:=” 称为赋值号,要注意不能与关系运算符“=” 混淆。赋值号具有方向性。一个赋值语句只能给 一个变量赋值,变量可以进行多次赋值。

freepascal语言与基础算法

freepascal语言与基础算法

freepascal语言与基础算法1. 引言1.1 概述本文将探讨Freepascal语言与基础算法的关系和应用。

Freepascal是一种强大且灵活的编程语言,被广泛应用于各个领域的软件开发中。

而基础算法则是计算机科学的核心内容,对于解决问题和优化程序至关重要。

通过结合这两者,我们可以深入理解Freepascal语言以及在实际项目中如何使用算法来提高效率和性能。

1.2 文章结构本文共分为五个部分。

首先,我们将介绍Freepascal语言的背景与发展历程,探讨其特性和优势,并列举一些应用领域和案例。

接着,我们会概述基础算法的基本概念和分类,并介绍算法设计与分析原则。

然后,我们会详细介绍几种常见的基础算法,并给出示例加以说明。

在第四部分中,我们将探讨Freepascal语言在基础算法中的具体应用,包括数据结构支持与实现方式、排序算法实现示例与性能分析以及查找算法实现示例与应用场景讨论。

最后,在结论部分,我们将总结Freepascal语言与基础算法的关系,并讨论其发展前景和实践意义,同时展望未来研究的方向。

1.3 目的本文的目的在于给读者提供有关Freepascal语言与基础算法之间联系的深入理解。

通过阐述Freepascal语言作为一种强大且广泛应用的编程语言以及基础算法作为解决问题和优化程序所必不可少的工具,我们希望读者能够了解如何利用Freepascal语言来实现各种常见的基础算法,并在实际项目中应用这些算法来提高效率和性能。

此外,本文还将探讨Freepascal语言与基础算法之间的潜在联系,以及可能产生的新思路和研究方向。

2. Freepascal语言介绍:2.1 背景与发展Freepascal是一种高级编程语言,最初由Anders Hejlsberg 发起并于1995年首次发布。

它是一种免费的、开源的、跨平台的编程语言,主要用于快速开发可靠、高效且易于维护的软件应用。

自推出以来,Freepascal得到了广泛的采用和用户社区支持。

一天学会Free Pascal

一天学会Free Pascal

程序出错了怎么办?
• 在编译的时候出的错叫做编译错误,还有种错误是在 运行的时候出错的,叫做运行时错误。比如你让计算 机去计算3除以0,语法上是没有错误但是不符合逻辑。 • 不同的错误有不同的出错代码,具体请参见附录里的 “Pascal错误码表”。 出错提示中 的(2,1)是出 错的行数和 列数。
第Байду номын сангаас章
机器语言都是相同的吗?
• 有些计算机不仅能够在屏幕上画白点, 还可以画红点、绿点和蓝点。 • 不是所有计算机懂得的机器语言都是相 同的,它们的能力有高低。 • 通常的家用计算器和笔记本计算机都懂 得X86指令集。这是一个古老的通用的指 令集,即使是今天大多数计算机都认得 它。 第一章
X86指令集包括哪些指令?
第一章
什么是计算机程序?
• 计算机程序(Computer Program,简称程序) 是语句的集合。语句是单词的集合。 • 为了编写一个机器语言程序,人类发明了汇编 语言。 • 汇编语言的词语是一些英文单词的缩略语和一 些数字。每条缩略语和一些数字的组合与机器 语言指令相对应。这样,人们就不用书写0和1 的机器语言代码了。写完程序后对照书本把英 文单词和数字翻译成0、1的代码就能完成机器 语言程序了。
第一章
汇编语言又是什么傻逼东西?
• 事实上,即使有了汇编 语言(ASM语言),能 够使用英文表达自己的 意思,计算机也只能做 些很傻逼的事。 • 如果要它在屏幕上输出 “你好,妈妈”几个汉 字,你也许需要让它发 送无数个指令给屏幕让 屏幕画很多很多点。于 是就诞生了更加高级的 语言,比如Pascal语言。 一个经过反编译的EXE程序 至少不再是乱码了
目录
目录
• • • • • • • • • 第一章 Pascal语言介绍 第二章 编译写好的程序 第三章 编写简单的程序 第四章 子程序 第五章 单元库 第六章 编译指令 第七章 子界和枚举 第八章 数组集合文件记录指针 附录

FREE-PASCAL入门-循环结构程序

循环结构程序设计第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;vars,t:integer;begins:=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后面的语句称为循环体。

其中循环控制变量可以是整型、字符或布尔型,但不能为实型。

一般地,可以是顺序类型数据。

初值、终值表达式通常要与控制变量的类型相同。

在for语句中如果使用的是to,称为递增型计数循环语句,如果使用的是downto,称为递减型计数循环语句。

3.For语句的执行过程:①先将初值表达式的值计算出来并赋给循环控制变量。

第1讲FreePascal 使用说明


Free Pascal的安装

运行fpc-2.4.0.i386-win32 去掉乱码:选中快捷方式Free Pascal IDE→单击右键 选择“属性” →弹出“属性”对话框→单击“选项” 卡→将当前代码改为“OEM-美国”就可以了。
集成环境
标题栏 菜单栏
编辑区
状态栏
集成环境
文件 编辑
查找/替换
教学教材信息

青少年信息学奥林匹克竞赛培训教材 《Pascal语言(中学版)》第2版 主编:张文双、吴树娟 北京理工大学出版社
if k>x then writeln (‘Too big. Please try again!’);
if k<x then writeln (‘Too small. Please try again!’); until (k=x) or (n=10); if (n=10) and (k<>x) then writeln (‘You are fail. The number is ’,x) end.

程序的输入和调试步骤


退出程序:Alt+x 默认扩展名:.pas
例1:输出图形
program ex1(input,output); var h,k:integer; begin for h:=1 to 8 do begin write(‘’:20-h); for k:=1 to 2*h-1 do write(‘@’); writeln; end end.
全国青少年信息学奥林匹克竞赛教程
第1讲 Free Pascal 使用说明
《Free Pascal 语言程序设计》
温州 高级讲师 何凤梅

FREEPASCAL简介

FreePascal 简介Pascal 调试步骤(1)编写程序;(2)保存程序;(3)编辑程序(compile );(4)运行程序(run);(5)通过Debug 的output 或者是userscreen 查看运行结果.Pascal 菜单介绍一、file 菜单New :新建一个文件,文件名为noname.pas 。

Open …f3:装入一个已经存在于磁盘上的文件(也可以是非pascal 源程序文件,如文本文件)。

Save f2:当前编辑的文件存盘。

Save as …:把当前文件存成另外一个文件名。

Save all :保存已经打开的所有文件。

Change dir …:改变当前目录。

Print :打印当前文件。

Printer setup …:打印机设置。

command shell :dos 外壳,暂时退出集成环境,进入dos环境,可用exit 命令回到集成环境。

Exit Alt+x :退出turbo pascal 语言集成环境。

关闭窗口窗口名称窗口扩大还原窗光标所在处水平标尺放大缩小角二、edit菜单Undo(alt+backspace):取消刚才的操作。

Redo:重复进行刚才的操作。

Cut(shift+del):把定义的块删除,存放到剪贴板中。

(定义块:用鼠标拖曳或用shift+光标键)Copy(ctrl+ins):把定义的块拷贝到剪贴板中。

Paste(shift+ins):把剪贴板中语句粘贴到当前光标位置。

Clear(crtl+del):把定义的块删除掉。

Show clipboard:显示剪贴板中的语句。

三、search菜单Find:寻找。

Replace:寻找替换。

Search again:继续寻找。

Go to line number:到某个行号。

Show last compiler error:显示最后一次编译的错误。

Find error:查找当前文件的错误。

Find procedure:查找过程。

free pascal 语言入门(1)


保留字(关键字):有特殊含义,专门用途的英文单词,不能用于 其它场合(共36个,教材P13)
程序,函数,过程的符号
program,function,procedure
说明部分专用定义符号
array, const, file, label, packed, var, record, set, type, of
以字母或下划线开头的字母,数字,下划线的序列 分为两类
标准标识符
标准常量:false,true,maxint 标准类型:integer,real,char,boolean,text 标准文件:input,output 标准函数:abs, cos, odd, ord, sin, sqr, succ, trunc 等等 标准过程:get,read,readln,write,writeln
自定义标识符
由用户在程序首部或说明部分进行定义 自定义标识符时注意点
不能与保留字名字相同 避免与标准标识符同名 有一定的含义,增加程序的可读性(见名知义) 在定义标识符时可以用的字符: _(下划线) A—Z;a—z;(26个字母) 0—9;(10个数字) 必须以下划线或字母开头 可以用 定义

自 定 义 标 识 符 注
例题分析
program p1; var a,b,max:integer; begin a:=3; b:=4; max:=a; if b>max then max:=b; writeln('max=',max); end.
写出下列标识符、保留字的中文含义: Begin ______ end ______ writeln ______ integer______ Div ______ mod ______ var______ readln________ 判断以下标识符的合法性
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Freepascall资料详解一、TP和FP的功能区别1.Free Pascal理论上可以使用4GB(2^32byte)的内存,因此实际上几乎可以使用系统中的所有剩余内存(除非赛题中有内存限制),这是因为Free Pascal使用的是32位的编译器。

但是对于Turbo Pascal来说,由于是16位的编译器,因此不能定义大小超过64KB (2^16byte)的数据类型和变量,并且在DOS实模式下可以使用的内存总数只有640KB。

但这并不是说,你可以随意定义很大的数组了,因为光读入200MB的数据就会让你的程序超时了(因为现在的7200转硬盘和133的系统总线速度决定了读取数据的速度也就100MB/秒)。

2.在Free Pascal中,如果用assign给标准输入输出文件变量input和output指定了文件,在程序结束之前一定要用close关闭input和output,否则输出文件可能不能被正确的写入。

这个问题是近几年NOIP竞赛和省队训练、选拔中选手常犯的错误。

尤其是程序非正常结束之前(如halt)会忘记。

3.如果用Rewrite打开文件,那么文件就只能被写入了。

如果需要读取这个文件,要对文件执行Reset。

所以,在Free Pascal中最好不要对一个文件同时进行读写操作。

4.在Free Pascal中,集合中的元素都是4个字节长的。

5.表达式执行的顺序是不确定的。

比如对于表达式a:=g(2)+f(3); 不保证g(2)一定在f(3)之前执行。

6.函数和过程在使用时,参数的类型必须和定义时完全一致。

原因是在Free Pascal中添加了函数重载功能。

7.PROTECTED,PUBLIC,PUBLISHED,TRY,FINALLY,EXCEPT,RAISE成为了关键字,因此不能作为函数和过程的名字;而FAR,NEAR不再是关键字了,原因是Free Pascal是32位系统,不再需要这些关键字。

二、FP的新增功能1.函数可以返回复杂的类型,比如记录和数组。

如:typearrtype=array[1..100] of longint;{必须要先定义数组基类型}vari,j,k,n:longint;a:arrtype;function sort(a:arrtype;n:longint):arrtype;var i,j,k:longint;beginfor i:=1 to n-1 dofor j:=i+1 to n doif a>a[j] thenbegink:=a;a:=a[j];a[j]:=k;end;sort:=a;end;beginread(n);for i:=1 to n do read(a);a:=sort(a,n);for i:=1 to n do write(a,' ');writeln;end.2.在函数中,函数的返回值可以作为一个变量来处理。

比如:function a : longint;begina:=12;while a>4 dobegin{...}end;end;这个例子在Turbo Pascal中,a>4会被认为是函数的递归调用,但是在Free Pascal 中会认为a只是一个变量。

如果想在Free Pascal中实现递归调用,就要写成下面的形式:function a : longint;begina:=12;if a()>4 then { 递归调用}begin{...}end;end;3.exit可以接受一个参数作为函数的返回值。

比如:function a : longint;begina:=12;if a>4 thenbeginexit(a*67); { 函数的返回值就是a*67 }end;end;4.Free Pascal支持函数重载。

可以用相同的名字定义不同的函数,只要这些函数的参数不同,就是不同的函数。

比如:procedure DoSomething (a : longint);begin{...}end;procedure DoSomething (a : real);begin{...}end;可以使用不同的参数类型longint或者real来调用不同的DoSomething过程。

由于这个功能,函数的提前声明必须有完整的参数声明:procedure x (v : longint);forward;{...}procedure x; {这里定义的过程x重载了前面声明的过程x。

因此的两个x是不同的} begin{...}end;5.Free Pascal容许运算符重载。

比如,可以自己为矩阵运算定义一个“+”运算。

格式: operator 运算符(运算数) 结果例:operator +(x:datatype; y:datatype) z:datatype;begin{……}end;6. Turbo Pascal中定义了十六进制数的表示方法,即在十六进制数前添加符号$,如:X:=$F0A;Writeln(‘X=’,x);输出结果是X=3850。

这种进制数的表述给编程者带来很多便捷,而Free Pascal扩容了此优点,除十六进制数外,二进制数也有类似的表述(添加符号%)如:X:=%101;Writeln(‘X=’,x);输出结果是X=5。

7.Turbo Pascal中注释部分可用(*comment*)或者{comment}表示,如:Var I:integer;Begin (*for I:=1 to 100 do write(i);*)writeln(‘$’);End.或者:Var I:integer;Begin{for I:=1 to 100 do write(i)}writeln(‘$’);End.Free Pascal除前面两种表述方法外,//comment也可以,但其中comment必须在同一行内,如:将3、4行都括为注释部分:VarI:integer;Begin//for I:=1 to 100 do// write(i);writeln(‘$’);End.只将第3行括为注释部分:VarI:integer;Begin//for I:=1 to 100 dowrite(i);writeln(‘$’);End.8.在Free Pascal中,编译时使用Fpc–Op3 *.pas (针对PⅡ以上的处理器进行了优化)。

但实际比赛一般没有什么用(区别不大)。

9.利用指针实现动态开辟数组vara:^longint;n,i:longint;beginreadln(n);getmem(a,sizeof(longint)*n);for I:=1 to n do a:=I;freemem(a);end.实际很少用,因为一般NOIP的比赛对空间没有限制,在程序开始时总是把数组定义的足够大。

10.强制类型转换格式:数据类型(数据) 例如:varm:longint;n:extended;beginm:=123456;n:=extended(m);writeln(n:0:6);end.注意:并不是任意两个基本数据类型之间都能进行强制转换。

一般来说,fp允许两个整型之间的强制转换(实际意义不大,因为在赋值时fp会自动进行整型之间的类型转换),但需注意数据范围,例如,把p定义为integer,语句p:=integer(123456)虽然编译可以通过,但执行过程中p会溢出。

fp也允许整型转换为实型,但有可能带来精度误差。

至于实型转整型,需要满足整型所占字节数不小于实型,如double占8个字节,因此只能转换为int64。

但实型转换为整型后,结果往往是错误的。

把字符转换成整型,得到的是字符的Ascii码值,例如,writeln(longint('a'))输出的结果是97。

11.乘方x^y可以表示成x**y。

注意:A、在x是实数但y是整数的时候是不能这样表示,其他都可以,但精度可能不符合要求。

B、x**y的结果如果是整型,不能超过longint的范围;如果是实型,不能超过extended 的范围。

一般还是用换底公式(exp(y*ln(x)))来计算x^y。

12.布尔表达式不一定要全部进行计算。

只要最终结果已经能够确定,FP就不再计算其它还没有计算的部分。

比如布尔表达式exp1 AND exp2 AND exp3,如果已知exp1的结果是false,那么整个表达式的结果肯定是false,FP对exp2和exp3就不会再进行计算。

三、FP新增数据类型1.整型名称类型表示范围占用字节Int64 整数类型-9223372036854775808 ~9223372036854775807 8 Qword Int64的无符号整数类型0 ~ 18446744073709551615 8 Cardinal Longint的无符号长整型0 ~ 4294967295 4 Smallint 几乎等同于类型Integer -32768 ~ 32767 2 注意:int64不是有序类型,所以不能作为for循环的循环变量,如:var i:int64;beginfor I:=1 to 100 do writeln(i);end.编译不能通过,但word类型(integer类型的无符号整数类型,0~65535)可以。

另外,直接给一个int64类型的变量赋值一个超过longint范围的整数是不合法的,例如:定义a为int64类型,有如下语句:a:=8000000000; 编译就通不过。

类似的,以下三条语句也通不过编译:a:=2*4000000000;a:=800000*10000;a:=a*8000000000;这是因为fp在表达式的计算过程中用来存储整数的最大默认类型为longint,而不是int64。

当表达式的中间值超过longint时,fp会用实型来储存中间值,而实型是不能直接赋给整型的。

解决方法:分成两步赋值,先执行a:=1;然后执行a:=a*800000*10000; 需要强调的是,第二步赋值中一定要把8000000000拆成若干个不超过longint型的整数的和或乘积。

如嫌上述方法麻烦,还可以利用截尾函数trunc,代码如下:vartmp:double;a:int64;begintmp:=8000000000;a:=trunc(tmp);end.2.实型FP中的双精度实数类型Double,比TP中的Real精确度更高。

名称类型表示范围占用字节精度Real 实数类型 3.4e38 处理器是16位的,则占4个字节,即Single类型;如果是32位的处理器,则占8个字节,此时范围和精度都与double一样7-8位有效数字Double 实数类型 1.7e308 8 15-16位有效数字extended 实数类型 1.1e4932 10 19-20位有效数字3.允许用户按以下方式定义枚举类型:TypeEnumerateType=(Int,Long,Double:=100,Bool,……);这是类似于C的定义方式,定义使得Double的值是100,而并非2;Bool的值为101,而并非3……以此类推。

相关文档
最新文档