【转】Pascal用到的数和符号

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

转载自http://hi.baidu.com/liuzexin5847/item/6d7b004ef278cfeda4c0667b

 

Pascal用到的数和符号

1、PASCAL语言的字符表

是ASCII字符集,主要有:

 ⑴26个英文字母(不分大小写)

 ⑵十个数字符号

 ⑶特殊符号。如+-*/=><][:;.等

2、标识符

以字母开头的字母数字序列(大小写等效,可跟下划线_),用来标识常量、变量、程序、函数等。

自定义标识符时要注意遵循此规则。

3、标准标识符与保留字

标准标识符有40个,五类(false true maxint Boolean real integer char abs trunc read write)详见书P16。

保留字是Pascal语言中具有特定的含义的字符。在PASCAL7.0中书写保留字的时候,字符颜色会变为白色。
一共36个保留字:
(program function begin end procedure var const array if then else case for to do repeat until while and div in mod not or nil

4、常量和变量:

程序设计中经常要用到常量和变量,这些都必须先定义后才能使用。

PASCAL语言的常量与变量都必须在程序头部先加以说明,即说明常量、变量的的名称及数据类型。
PASCAL语言的数据类型很多,最常用的有以下几种:

  • 整数类型(没有小数部分)

INTEGER:取值范围 [-32768, 32767]。占用内存 2个字节( 16位)。

WORD:取值范围 [0, 65535]。占用内存 2个字节( 16位)。

BYTE:取值范围 [0, 255]。占用内存 1个字节( 8位)。

LONGINT:取值范围 [-2147483648, 2147483647]。占用内存 4个字节( 32位)。

SHORTINT:取值范围 [-128, 127]。占用内存 1个字节( 8位)。

特点:

  1. 可进行+、-、*、DIV(整除)、MOD(取余)
  2. 注意不能用/,因为得到的结果可能不为整型。
  • 实数类型

REAL:取值范围 [2.9E-39, 1.7E+38]。占用内存 6个字节( 48位)。

实数的表示法有两种:

1、十进制表示法,如: -0.4576, 123.567, -234, 0

2、科学计数法,如: 1.234E-4, -3.546E12

表示 1.234乘 10的负 4次 .方; -3.546乘 10的 12次方。

特点:

  1. 包括正实数、负实数和零。运算慢,无法精确表示。
  2. 可进行+、-、*、/运算。整数与实数运算时自动转为实数进行运算。
  • 字符类型

CHAR:单字符型,即取 1个字符,如‘ A’, ‘ 1’。

STRING:字符串型,即多个字符,如‘ ABCD! 123’,‘ %¥ #DS12’。

如果一个常 /变量只要用到 1个字符,则可把它定义成 CHAR型;如果是多个字符,但不知确切多少个,则定义成 STRING型,如果知道确切有 N个字符,则定义成 STRING[N]型。字符串在 PASCAL中使用都是加上单引号。

特点:

  1. 字符常 /变量是由单个字符组成的,所有字符都来自ASCII字符集。字符的数据是用两个单引号把单个字符括起来表示的。
  2. 每个字符都有一个序值(在ASCII字符集的位置),可以用六个关系运算符(>,=,<,>=,<=,!=)来比较大小。
  • 布尔型

BOOLEAN:布尔型即为逻辑型,取值为 TRUE、 FALSE, 即真、假。也有序,true 为1,false为0。

      布尔型有三个运算符:and or not

常量:指程序运行过程中,其值不能改变的量。 在程序头部中说明,以 CONST引导。

分为四类:

⑴整型常量

⑵实型常量

⑶字符常量

⑷布尔型常量

格式:
   const <常量标识符>=<常量>;
  例:const pi:=3.14;

变量:是指在程序执行过程中,其值可以改变的量。 在程序头部中加以说明,以 VAR引导。

变量三要素:变量名、变量类型、变量值。

⑴变量名用一个合法的标识符来表示。

⑵变量在某一固定时刻是用来存放常量的,而常量是有类型的数据,因而变量也是有类型的。类型不能有两义性。

⑶变量值。在程序中由赋值语句来赋值。

var <变量标识符列表>:<类型>;
   例:var a,b:integer; c,d:real;

5、表达式

由算术运算符( +,—, *, /)及数字、常量、变量、标准函数所组成的式子中心表达式。

如: 5+9; A*B-34*ABS( -34) /INT( B)

另外, PASCAL中有两个很有用的运算符, DIV:求商的整数值; MOD:求余数。如:

8 DIV 3 的值是 2, 10 DIV 3 的值是 3;

8 MOD 3的值是 2, 10 MOD 3的值是 1;

在 PASCAL的表达式中,不允许出现我们日常生活中的那种分式或根号等式子,我们必须按照 PASCAL的语法把它们改写成 PASCAL表达式。

Pascal语言中的运算符及其优先级

单目运算符 (最高优先级) @ 取变量或函数的地址(返回一个指针) not 逻辑取反或按位取反 乘除及按位运算符 * 相乘或集合交集 / 浮点相除 div 整数相除 mod 取模 (整数相除的余数) as 程序运行阶段类型转换 (RTTI运算符) and 逻辑或按位求和 shl 按位左移 shr 按位右移 加减运算符 + 相加、集合并集、字符串连接或指针增加一个偏移量 - 相减、集合差集或指针减少一个偏移量 or 逻辑或按位或运算 xor 逻辑或按位异或运算 关系及比较运算符(最低优先级) = 判断是否相等 <> 判断是否不相等 < 判断是否小于 > 判断是否大于 <= 判断是否小于或等于,或是否是一个集合的子集 >= 判断是否大于或等于,或是否是一个集合的父集 in 判断是否是集合成员 is 判断对象是否类型兼容 (又一个RTTI运算符)

具体优先顺序:

⑴括号内先算

⑵函数

⑶运算符优先顺序

⑷同级运算按从左到右的次序。

注意:

1、与大多数编程语言相反,Pascal语言中and和or运算符的优先级比关系运算符高。因此,如果你的代码为a < b and c < d,编译器首先会编译and运算符,由此导致编译出错。为此你应该把每个 < 表达式用小括号括起来: (a < b) and (c < d)。 
2、 同一种运算符用于不同数据类型时它的作用不同。例如,运算符 + 可以计算两个数字的和、连接两个字符串、求两个集合的并集、甚至给PChar 指针加一个偏移量。然而,你不能象在C语言中那样将两个字符相加。
3、 另一个特殊的运算符是 div。在Pascal 中,你能用 / 计算两个数字(实数或整数)的商,而且你总能得到一个实型结果。如果计算两个整数的商并想要一个整型结果,那么就需要用 div 运算符。


  • 运算符两端,除实型和整数型外不允许为两种不同的数据类型。
  • PASCAL表达式中没有分式,只能以除号“ /”来隔开;
  • PASCAL表达式中的分子与分母应该用括号括开;
  • PASCAL表达式中只有小括号,不能有中括号或大括号,小括号可以有很多层;
  • PASCAL表达式中没有乘幂,只能用乘法来表达;
  • PASCAL*表达式中任意两个常量、变量、数值、括号、函数之间都必须不能缺省运算符,即乘号必不可少;

这些要求希望大家记熟,这是我们编写 PASCAL程序的必要基础。

表达式的数据类型根据它的值来划分。(所以表达式分为算术表达式、字符表达式、布尔表达式)

6、标准函数的使用。

PASCAL语言提供数量非常大的标准函数供我们使用,这些函数有些可以直接调用,有些放在另外的单元( UNIT)中。 PASCAL也提供了大量的标准过程,和标准函数一样供用户直接或间接调用。

如果一个函数或过程不在 SYSTEM(即默认调用的单元)中,而在其它单元中话,即在程序头部的第一行正式行中加上 USES 单元名;如,如果要使用 CLRSCR(清屏过程,在 DOS单元中)的话,就必须在程序头部加上: USES DOS;

函数的调用:如: A: =ABS( -34),即把 -34的绝对值赋给变量 A;(注意:函数只能出现在表达式中,即赋值语句中)。此时: A的数据类型与括号中的参数 -34是一致的。函数的语法中都会说明,这个函数的参数的类型及这个函数的值(结果)的类型。

过程的调用:过程即命令,如: CLRACR; 程序运行结果是清屏。

常用标准函数与过程很多,这里只列出最常用的几个。

标准函数

函数名

语法

说明

Abs

Abs ( r:real/integer) :real/integer

返回参数 R的绝对值,类型与参数相同

Chr

chr ( i: integer): char

返回参数所对应的 ASCII码值,类型为 CHAR

Copy

Copy(s:string;n,m:integer):string

返回字串 S的第 N个字符开始的 M个字符

Cos

Cos(r:real):real

返回参数 R的余弦值

Exp

Exp(r:real):real

返回参数 R的以 e为底的幂

Int

Int(r:real):real

返回参数 R的整数部分,返回的值是实数类型

Length

Length(s:string):integer

返回字串 S的长度

Ln

Ln(r:real):real

返回参数 R的自然对数

odd

Odd(I:integer):boolean

判断参数 I是否奇数,如是,则返回 TRUE

ord

Ord(s:scalar):integer

返回任意有序量的序值

random

Random

返回 0至于间的任意一个小数(随机数)

round

Round(r:real):longint

返回参数 R的四舍五入取整值

sin

Sin(r:real):real

返回参数 R的正弦值

sqrt

sqrt(r:real):real

返回参数 R的平方根

sqr 返回参数 R的平方

trunc

Trunc(r:real):integer

返回参数 R的整数部分,返回的值是整数类型

标准过程

过程名

语法

说明

Delay (CRT 单元 )

Delay(ms:word)

延迟发声 MS毫秒

Delete

Delete(s:string;n,m:integer)

把串 S中的第 N个字符开始的 M个字符删除

Exit

Exit

从当前执行的程序中退出

Gotoxy (CRT 单元 )

Gotoxy(x,y:integer)

把光标定位到第 X列 Y行处

halt

Halt

中断程序的运行

nosound

Nosound

关闭机器喇叭

Sound (CRT 单元 )

Sound(f:word)

让机器喇叭发出频率为 F的声音,直到 nosound

str

Str(I:integer;var s:string)

把数值 I转换为字符串 S

val

Val(s:string;var r:real;var c:word)

把字符串 S转换为数值 R,并返回错误代码 C

Pascal C++ 教程1 Pascal C++ 教程1 C++ 程序结构、据结构、语法、函 一个标准的C++程序: #include &amp;lt;cstdio&amp;gt; #define maxn 1000 // 预处理指令 using namespace std; int a[maxn]; // maxn被替换为1000 int main() { ... 阅读详情

相关推荐

PASCAL语言编程全解电子书

在计算机科学的海洋中,PASCAL语言犹如一束光芒,在早期编程教学软件开发领域扮演了举足轻重的角色。作为一门结构化编程语言,PASCAL的设计初衷是促进更严谨的编程习惯,并且在教育界得到了广泛应用。尽管它的光芒可能被后来的诸如C、Java等更现代的语言所遮盖,PASCAL的影响力依旧深远,它的原则思想仍对今天编程实践产生着影响。本章节将对PASCAL语言的起源、特点、及它在现代编程教育中的地位进行简要回顾分析。

weixin_28968525的博客 992

pascal语言基础(一)

该内容为学习 《PASCAL程序设计第2版》郑启华编著 的笔记,部分与c语言对比学习,方便记忆。 基本介绍 保留字(35个) AND、ARRAY、BEGIN、CASE、CONST、DIV、DO、DOWNTO、ELSE、END、FILE、FOR、FUNCTION、GOTO、IF、IN、LABEL、MOD、NIL、NOT、OF、OR、PACKED、PROCEDURE、PROGRAM、R...

络小绎 1万+

流行语言的比较

流行语言的比较我大白鲨是C++builder 中人. 看过太多的比较,太多的初学者的询问,太多高手的之间的争辩 无聊啊红尘多可笑 痴情最无聊..... 无钱 无势 无学问 聊天 聊地 聊女人,无聊的你在大学里我学过basic;pasic;foxbase;tubro c;masm;lisp; visual foxpro; 现在忘了差不多了看了一看 vb vc deiphi c++builder

shak的专栏 2009

Delphi 单元

单元(unit)是组成Pascal程序的单独的源代码模块,单元有函过程组成,这些函过程能被主程序调用。一个单元至少要有unit语句,interface,implementation三部分,也能可选的包含initializationfinalization两部分: 一、必含部分 1、unit语句 每一个单元都必须在开头有这样一条语句,以标识单元的名称,单元的名称必须文件名相...

weixin_30861459的博客 142

C语言已死,思想不死

C语言已死,思想不死

littlezhuhui的专栏 887

计算输入的字母,字,其他符号的个

代码展示 #include <stdio.h> int main() { int s=0,z=0,q = 0; int sr; while ((sr = getchar()) != '\n') { if (sr <= 57 && sr>=48) { s++; } else if (sr >= 65 && s...

醉与浮的博客 529

Free Pascal 学习笔记 第一章 语言符号 Pascal Tokens

第一章 语言符号 Pascal Tokens 第一节 语言符号 保留字 reserved words 这些单词具有固定的含义,不能被改变或重新定义 标识符 identifiers 程序员定义的符号,可以改变或重用,是语法规则的主体 操作符 operators 通常是符号或其它操作,如+ - * 等 分隔符 separators 通常是空格 常量 constants 在源码中通常用字或字符常量来定义确定值 第二节 符号 symbols Free P

sq8706的专栏 1082

PASCAL语言的基本知识

Pascal是一种计算机通用的高级程序设计语言。它由瑞士Niklaus Wirth教授于六十年代末设计并创立。 以法国学家命名的Pascal语言。现已成为使用最广泛的基于DOS的语言之一。其主要特点有:严格的结构化形式;丰富完备的据类型;运行效率高;查错能力强。 pascal语法图 程序组成 例1.1计算半径为R的圆面积S program Area; {程序首部} {已知半径求圆的面积} const pi=3.14159; {说明部分——据描述} var s,r:real; begin 

顺其自然~专栏 2万+

Pascal语言的人工智能

在计算机科学的广泛领域中,人工智能(AI)无疑是当今最令人振奋的话题之一。从机器学习到自然语言处理,AI正以前所未有的速度改变着各行各业。尽管Python、JavaC++等语言在人工智能开发中占据着主导地位,但Pascal语言作为一种经典的程序设计语言,依然具有其独特的价值应用空间。本文将探讨Pascal语言在人工智能领域的应用,历史背景及其在教学研究中的重要性。

2501_90443729的博客 424

Pascal基础

Pascal基础语法(一) 序言 有时无聊,翻看pascal,奈何看完即忘.于是记录之 pascal听说将被NOIP停用,我没有去验证.管他呢,本来只是好奇 环境 用的免费的编译器 fpc [https://www.freepascal.org/] 编辑器随便找个自己喜欢的就行, IDE 可以选 lazarus[https://www.lazarus-ide.org/],跨平台 pascal版本有更迭,支持的方言很多,基于目前的最佳实践,所有代码里使用 ${mode objfpc } {$H+}{$J-}{

happytor的专栏 2332

Pascal 编程语言:从辉煌到传承

随着时间的推移,Free Pascal不仅保持了与Turbo Pascal的兼容性,而且还引入了许多新的特性改进,比如支持复杂类型的函返回值等。后来他的学生Philipe Kahn毕业后Anders Hejlsberg(Delphi之父)创办了Borland公司,靠Turbo Pascal起家,很快成为了将Borland发展成为全球最大的开发工具厂商,这一切都不得不说要归功于Pascal语言的魅力。尽管随着时间的推移,Pascal语言的流行度有所下降,但它对后续编程语言的发展产生了深远的影响。

2404_87526689的博客 3589

Pascal基础教程

第一课 初识Pascal语言   信息学奥林匹克竞赛是一项益智性的竞赛活动,核心是考查选手的智力使用计算机解题的能力。选手首先应针对竞赛中题目的要求构建学模型,进而构造出计算机可以接受的算法,之后要写出高级语言程序,上机调试通过。程序设计是信息学奥林匹克竞赛的基本功,在青少年朋友参与竞赛活动的第一步必须掌握一门高级语言及其程序设计方法。 一、Pascal 语言概述   PASCAL语言也

bytxl的专栏 3万+

Pascal

Pascal简介<br />  Pascal是一种计算机通用的高级程序设计语言。Pascal的取名是为了纪念十七世纪法国著名哲学家学家Blaise Pascal。它由瑞士Niklaus Wirth教授于六十年代末设计并创立。1971年,瑞士联邦技术学院尼克劳斯·沃尔斯(N.Wirth)教授发明了另一种简单明晰的电脑语言,这就是以电脑先驱帕斯卡的名字命名的Pascal语言。Pascal语言语法严谨,层次分明,程序易写,具有很强的可读性,是第一个结构化的编程语言。它一出世就受到广泛欢迎,迅速地从欧洲传到美国

敏于思,慎于行 1312

【Code】深谈PascalC++

PascalC++sacnf() printf()#define 宏定义三目运算符结构体 struct文件操作命名空间 在浅谈了PascalC++后,我们深谈PascalC++。 sacnf() printf() scanf 与 printf 其实是 C 语言提供的函,保存在<cstdio>或<stdio.h>头文件中。一般情况下,它们的速度比 cin ...

Ljnoit 760

PASCAL变量与据类型

PASCAL中,我们可以使用type关键字定义自己的据类型。typeend;var在上述代码中,我们定义了一个名为TPerson的据类型,它包括三个成员变量:name、agegender。myPerson是一个TPerson类型的变量。在PASCAL中,变量的定义赋值使用:=运算符。varbeginend.在上述代码中,我们定义了一个名为myInt的整变量,并将其赋值为10。可以在程序中使用这个变量来存储操作据。可以使用const关键字来定义用户自定义常量。const。

weixin_46121540的博客 1455

PASCAL运算符

PASCAL中支持各种不同类型的运算符,包括算术、比较、逻辑位运算符等。算术运算符用于对值类型的据执行加、减、乘、除等操作。比较运算符用于比较两个值之间的关系。逻辑运算符用于对两个或更多的布尔类型的值进行操作。位运算符用于对二进制位的值进行操作。赋值运算符用于将一个值分配给一个变量。PASCAL中还支持其他一些运算符,例如成员运算符圆括号运算符等。熟练掌握PASCAL中各种运算符的使用方法对于编写高效、可读性强的代码非常重要。

weixin_46121540的博客 987

Pascal实用代码模板

部分同学对在写Pascal时常常感觉无从下手,忘记某些单词,时不时向老师求助,这些基本上是语法基本功不到位。 解决这类问题方法我认为有两个: 第一,保存好你所有写过并且调试成功的程序代码(pascal文件),一旦遇到同类的程序,可以翻找以前的代码看。 第二,也是我认为学编程最好的方法,就是经常整理一些实用的代码片段,虽不一定要像英语单词那样去背诵,但是你至少要做到信手拈来!不应该常犯一些低级

一生悬命 3150

VB用户型到Free PascalLazarus

Free PascalLazarus专门创建了一个wiki页面,帮助大家从从 Visual Basic 切换到 Free Pascal(Lazarus 使用的 Pascal 方言编译器)。尽管 VB Pascal 有表面上的相似之处,但这两种语言却有很大的不同。由于开始使用 Pascal 的 VB 程序员在尝试做一些在 VB 中具有 Pascal 不提供的好语法的事情时立即面临困难,wiki专门帮大家关注了解这些差异。

skywalk8163的专栏 2177

PASCAL据类型详解

在这个例子中,我们定义了一个布尔变量"flag",并给它赋了一个值,这个值取决于条件"(5 > 3)“是否为真。然后我们使用if语句来检查"flag"的值,如果为True,就输出"条件满足”,否则输出"条件不满足"。这种类型的整在内存中占用2个字节,因此它是一种比较节省内存的选项,特别适用于存储量较小的整值。7.记录类型:在PASCAL语言中扮演着重要的角色,它用于定义一个据结构,将一组相关的字段组合在一起。我们可以使用枚举类型来比较输入的值枚举类型的值,从而确定今天是星期几。

weixin_46121540的博客 1122
上一篇: 【动态规划进阶-背包型】钱币系统
下一篇: 2012年09月24日
m42ping
博客等级 码龄12年 5粉丝 64原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值