tceic.com
简单学习网 让学习变简单
当前位置:首页 >> 学科竞赛 >>

pascal语法讲义-第三讲


百度 Pascal 吧公开培训教材-Pascal 培训课程普及讲义-第三讲

第三讲 顺序结构的程序设计
一、顺序结构
顺序结构(Sequence Structure)是最简单的程序结构,也是最 常用的程序结构,它的执行顺序是自上而下,依次执行。顺序结构有 且只有一个入口,有且只有一个出口。 下面我们举一个例子来说明顺序结构的程序: 程序

早上安排; 开始 起床; 读英语; 吃早饭; 去学校; 结束。 结合上节课我们所讲的内容, 将本程序转换为 Pascal 的伪代码, 我们可以看到下面的程序: program p1_3_1_1_1(input,output); begin GetUp(); ReadingEnglish(); HaveBreakfast(); GoToSchool(); end.//Arrangement of Mornings
第 1 页,共 17 页

百度 Pascal 吧公开培训教材-Pascal 培训课程普及讲义-第三讲

由于本程序中 GetUp(); ReadingEnglish(); HaveBreakfast(); GoToSchool()这些子程序均未有定义, 所以自然是不能执行的。 但是, 从上述的程序我们可以看到顺序结构的一般形式: 语句 1; 语句 2; 语句 3; ………… 语句 n; 若运行时的顺序是语句 1→语句 2→语句 3→…→语句 n, 那么这 一段程序便为顺序结构的部分,是结构化程序设计的基础。 Pascal 语句分为简单语句和构造语句两大类。所谓简单语句, 又称为基本语句是指不能再分解的语句, 而构造语句则是由若干其他 语句组成的语句串。本节课我们先介绍 Pascal 语言中最简单常用的 基本语句。

二、赋值语句
对于程序已经创建的变量, 如何取值?通常使用赋值语句来给变 量提供数据,它具有计算和赋值的功能,程序中所进行的各种运算, 大多数是在赋值语句中实现的。 1)格式 变量标识符:=表达式; 2)语义 赋值语句的执行是“先计算,后赋值” 。即先计算表达式的值,
第 2 页,共 17 页

百度 Pascal 吧公开培训教材-Pascal 培训课程普及讲义-第三讲

然后将值赋给变量标识符,具有计算和赋值的双重功能。 例题 1.3.1.2.1:已知圆半径为 4,在π取 3.14 时编程求圆的面 积 S。 program p1_3_1_2_1(input,output); const pi=3.14; r=4; var s:real; begin s:=pi*sqr(r); end.

例题 1.3.1.2.2:已知 a=3,b=2,编程交换 a,b 的值。 方法一:中间变量法 program p1_3_1_2_2_1(input,output); var a,b,c:longint; begin a:=3; b:=2; c:=a; a:=b; b:=c; end.
第 3 页,共 17 页

百度 Pascal 吧公开培训教材-Pascal 培训课程普及讲义-第三讲

方法二:加减转换法 program p1_3_1_2_2_2(input,output); var a,b:longint; begin a:=3; b:=2; a:=a+b; b:=a-b; a:=a-b; end. 方法三:异或转换法 program p1_3_1_2_2_2(input,output); var a,b:longint; begin a:=3; b:=2; a:=a xor b; b:=a xor b; a:=a xor b; end. 以上是交换两数最最常用的三种方法。当然,将加减转换中的+改为*、div 效果不变,又,在这三种交换方法中,把 a、b 的位置进
第 4 页,共 17 页

//此时 a=5,b=2 //此时 a=5,b=3 //此时 a=2,b=3

//此时 a=1,b=2 //此时 a=1,b=3 //此时 a=2,b=3

百度 Pascal 吧公开培训教材-Pascal 培训课程普及讲义-第三讲

行交换也完全不影响结果。值得注意的是,以上三种交换方法的适用 范围是不同的。 首先我们论证一下三种交换方法的正确性(算法的正确性) 。 方法一:中间变量法 设 a 初值为 a0,b 初值为 b0。 即 Variable Value a a0 b b0 c 未初始化

第一步 c:=a;执行结束后 Variable Value a a0 b b0 c a0

第二步 a:=b;执行结束后 Variable Value a b0 b b0 c a0

第一步 b:=c;执行结束后 Variable Value a b0 b a0 c a0

很明显,交换成功。 值得注意的是,c 变量在程序开始时并未初始化,当然由于 c 变 量的特殊情况,其并不需要初始化。然而,一部分变量是需要初始化 的。虽然,在 FreePascal 等编译器中默认认为这些变量的初始值为 0,但是,在某些特殊情况下,是可能导致错误的。
第 5 页,共 17 页

百度 Pascal 吧公开培训教材-Pascal 培训课程普及讲义-第三讲

方法二:加减转换法 设 a 初值为 a0,b 初值为 b0。 即 Variable Value a a0 b b0

第一步 a:=a+b;执行结束后 Variable Value a a0+b0 b b0

第二步 b:=a-b;执行结束后 Variable Value a a0+b0 b a0

第一步 a:=a-b;执行结束后 Variable Value a b0 b a0

很明显,交换成功。 然而,这种交换方法并不是处处通用的。中间变量法仅仅基于赋 值运算,故其适用于除文件类型外全部数据类型,包括集合、数组、 记录等构造类型。显然,加减交换法的适用对象仅为整数类型与实数 类型。值得注意的是,加减交换法由于会出现加法运算,所以有可能 导致溢出。例如,当 a,b 类型均为 shortint 时,而其初值均为 127, 在执行完加法后就会溢出(127*2>127),这是中间变量法所不会出现 的问题。当然,加减转换法也有其优势:省去一个变量,节省空间。
第 6 页,共 17 页

百度 Pascal 吧公开培训教材-Pascal 培训课程普及讲义-第三讲

方法三:异或交换法 设 a 初值为 a0,b 初值为 b0。 即 Variable Value a a0 b b0

第一步 a:=a xor b;执行结束后 Variable Value a a0 xor b0 b b0

第二步 b:=a xor b;执行结束后 Variable Value a a0 xor b0 b a0

第一步 a:=a xor b;执行结束后 Variable Value a b0 b a0

很明显,交换成功。 这里需要注明的是,xor 运算有以下性质: 1)符合交换律 a xor b=b xor a 2)符合结合律 (a xor b)xor c=a xor(b xor c) 3) A xor A = 0 4) A xor 0 = A
第 7 页,共 17 页

百度 Pascal 吧公开培训教材-Pascal 培训课程普及讲义-第三讲

与中间变量法相比,异或交换法可以省去一个变量,但是适用范 围变得仅仅适合于整数类型。 与加减交换法相比,异或交换法可以避免溢出的问题,但是却不 再适用于实数类型。 这也正符合了马克思主义哲学中对于事物的两面性阐述。 没有哪 样东西是完美的,程序中也不会出现完美的算法,读者必须根据编程 的实际需要,权衡利弊,选择相对较优的方式方法。

三、读入与输出
1)输入语句 要使变量获得一个确定的值,在实际的应用中,更多的情况是: 程序中需要赋值的变量往往很多或变量的值经常变化。 如果输入数据 有所改变时,程序不必进行修改就可以得到所要处理的不同结果,也 就是说, 是程序具有通用性。 此时, 使用赋值语句显然已经不适宜了, 需要一个灵活的提供数据的语句, 能够在程序运行后从键盘读入变量 的值,这就是我们要介绍的语句——输入语句。 1.格式 格式 1:read(变量名表); 格式 2:readln(<变量名表>); 需要注明的是,<>表示其中的变量名表可以为空。 另外,当 readln(<变量名表>);的变量名表为空时,readln 可以 看做是一个无参过程,所以()亦可省略。 另外,我们可以将带不同参数的过程看作为某一过程的重载。
第 8 页,共 17 页

百度 Pascal 吧公开培训教材-Pascal 培训课程普及讲义-第三讲

2.语义 执行该语句时,从键盘上读入数据,将其值依次付给变量名表中 的变量,其中变量名表是一串用逗号分隔开的变量标识符。保留字 readln 后可以没有变量名表。如果没有变量名表,这时该语句的作 用仅表示读入一个回车换行符。当输入的数据个数多于变量个数时, 这两条语句对其的处理为:执行 readln 后多余的数据被忽略;执行 read 后多余的数据要么被忽略,要么被下一个 read 或 readln 语句 所读入。如下面举例: 语句 read(a1,a2,…,an); 它等价于 read(a1);read(a2);…;read(an); 语句 readln(a1,a2,…,an); 它等价于 read(a1);read(a2);…;read(an);readln(); 3.说明
1 输入项中的括号内应是一组变量。 ○ 这里一组的含义是可以为一
E A

个,也可以是多个。若是多个时,各变量之间必须用逗号隔开,最后 一个没有符号。如:read(a,b,c,d);或 read(m,n,l)
2 程序运行后,执行到 read 或 readln 语句时,系统处于等待状 ○
E A A

态,等待用户从键盘上输入数据。 值得注意的是,输入数值型(整型或实型)数据时,数据间用空 格或回车符分隔,最后一定有一个回车,表示输入结束。输入字符型 数据时,数据间不能有空格分隔,也不能用回车分隔符,因为计算机 默认空格、回车也是自负,因此需按照 read 和 readln 括号内变量的
第 9 页,共 17 页

百度 Pascal 吧公开培训教材-Pascal 培训课程普及讲义-第三讲

个数,一一对应输入字符,无需分隔符。
3 程序运行后,从键盘输入的数据必须是常量,且输入的数据一 ○
E A A

定要与变量类型保持一致。
4 当输入项中的变量为多个时, ○ 要求输入的相应数据个数不能少
E A A

于其变量个数。当输入的数据个数少于变量个数时,系统仍处于等待 状态,接着输入的数据无论是换行输入还是不换行,输入均有效。 2)输出语句 利用计算机解题时,首先需要将解题的程序装入计算机,运行程 序并输入程序中所要用到的相应数据,然后有程序来处理,最后要有 相应的语句来输出处理后的结果。也就是说,一个能解决实际问题的 程序是不可以没有输出语句的。 1.格式 格式 1:write(输出项); 格式 2:writeln(<输出项>); 需要注明的是,<>表示其中的变量名表可以为空。 另外,当 writeln(<输出项>);的输出项为空时,writeln 可以看 做是一个无参过程,所以()亦可省略。 2.语义 执行该语句时,按指定的格式将输出项的内容输出。write 语句 是一项接一项地输出,输出完最后一项不换行,write 语句至少必须 输出一项内容;writeln 语句也是一项接一项地输出,但是输出完最 后一项后自动换行,writeln 语句允许没有输出项,只起换行作用。
第 10 页,共 17 页

百度 Pascal 吧公开培训教材-Pascal 培训课程普及讲义-第三讲

3.说明 输入语句的本质是一个过程, 它的参数是变参, 所以必须是变量。 而输出语句的本质也是一个过程,他的参数是值参,所以不一定必须 是变量,也可以是表达式。若要输出多个输出项,则在相邻两表达式 之间添入一个逗号。 值得注意的是, 本节所讨论的输入输出均指不带文件类型的输入 输出,若含有文件类型,则会有所不同。 例题 1.3.1.3.1:读入两个正数,输出较大的数。 program p1_3_1_3_1(input,output); var a,b:real; begin readln(a,b); writeln(abs(a+b)/2+abs(a-b)/2); readln(); end. 算法正确性证明: 1°当 a>b 时 | + b| | ? | + ? 2 + = + = = = max(a, b) 2 2 2 2 2 | + b| | ? | + ? 2 + = + = = = max(a, b) 2 2 2 2 2
第 11 页,共 17 页

2°当 a<b 时

3°当 a=b 时

百度 Pascal 吧公开培训教材-Pascal 培训课程普及讲义-第三讲

证毕。

| + b| | ? | 2 0 + = + = = = max(a, b) 2 2 2 2

值得注意的是, 若是输出较小值, 则为 abs(a+b)/2-abs(a-b)/2, 算法正确性的证明希望由读者自行完成。另外,a,b 必须均为非负实 数,具体原因希望也由读者自行完成。 3)场宽 1.单场宽 形式: x:n

x 表示要输出的项目,可以为整型、Boolean、字符型、字符串 型,但不能是实型。n 表示输出 x 所占的列数,n 应为正整数。 若 x 的位数>n,则正常输出 x,若 x 的位数<n,则在 x 前补空格 使之满 n 位。 2.双场宽 形式: x:n1:n2

双场宽只适用于实数类型。 n1 表示总共所占位数(包括整数部分、符号位、小数部分),n2 表示小数点后位数。 例如:a=5.3 write(a:6:3) 结果是:<空格>5.300 与单长宽相同,若总长超过 n1 则直接输出整数部分,n2 仍控制 小数部分。不足时在前面补空格。
第 12 页,共 17 页

百度 Pascal 吧公开培训教材-Pascal 培训课程普及讲义-第三讲

四、操作系统
操作系统(英语:Operating System,简称 OS)是管理和控制 计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最 基本的系统软件, 任何其他软件都必须在操作系统的支持下才能运行。 操作系统是用户和计算机的接口, 同时也是计算机硬件和其他软 件的接口。操作系统的功能包括管理计算机系统的硬件、软件及数据 资源,控制程序运行,改善人机界面,为其它应用软件提供支持等, 使计算机系统所有资源最大限度地发挥作用, 提供了各种形式的用户 界面,使用户有一个好的工作环境,为其它软件的开发提供必要的服 务和相应的接口。实际上,用户是不用接触操作系统的,操作系统管 理着计算机硬件资源, 同时按着应用程序的资源请求, 为其分配资源, 如:划分 CPU 时间,内存空间的开辟,调用打印机等。 下面介绍一些重要的常见操作系统: 1)MS-DOS 微 软 磁 盘 操 作 系 统 (Microsoft Disk Operating System) ,美国微软公司提供的磁盘 操作系统。在 Windows 95 以前,磁盘操作系统 是 IBM PC 及兼容机中的最基本配备,而 MS-DOS 则是个人电脑中最普 遍使用的磁盘操作系统之一。 2)Windows Microsoft Windows,是微软公司研发的一套桌面操作系统,它问 世于 1985 年,起初仅仅是 Microsoft-DOS 模拟环境,后续的系统版
第 13 页,共 17 页

百度 Pascal 吧公开培训教材-Pascal 培训课程普及讲义-第三讲

本由于微软不断的更新升级,不但易用,也慢慢的成为家家户户人们 最喜爱的操作系统。 Windows 采用了图形化模 式 GUI, 比起从前的 DOS 需要键 入指令使用的方式更为人性化。 随着电脑硬件和软件的不断升 级,微软的 Windows 也在不断升级,从架构的 16 位、32 位再到 64 位,甚至 128 位,系统版本从最初的 Windows 1.0 到大家熟知的 Windows 95、 Windows 98、 Windows ME、 Windows 2000、 Windows 2003、 Windows XP、Windows Vista、Windows 7、Windows 8、Windows 8.1、 Windows 10(预览版)和 Windows Server 服务器企业级操作系统, 不断持续更新,微软一直在致力于 Windows 操作系统的开发和完善。 值得注意的是,Windows1.0 与 2.0 均非独立操作系统,为 DOS 下一应用程序,真正的 Windows 操作系统是从 3.0 开始的。 3) Unix UNIX 操作系统 (尤尼斯) , 是一个强大 的多用户、多任务操作系统,支持多种处 理器架构,按照操作系统的分类,属于分 时操作系统,最早 由 KenThompson 、 Dennis Ritchie 和 Douglas McIlroy 于 1969 年在 AT&T 的贝尔实验室开发。目前它的商标权由国 际开放标准组织所拥有, 只有符合单一 UNIX 规范的 UNIX 系统才能使 用 UNIX 这个名称,否则只能称为类 UNIX(UNIX-like) 。
第 14 页,共 17 页

百度 Pascal 吧公开培训教材-Pascal 培训课程普及讲义-第三讲

4) Linux Linux 是一套免费使用和自由传 播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支 持多线程和多 CPU 的操作系统。它能 运行主要的 UNIX 工具软件、应用程序 和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络 为核心的设计思想,是一个性能稳定的多用户网络操作系统。 Linux 操作系统诞生于 1991 年 10 月 5 日(这是第一次正式向 外公布时间) 。Linux 存在着许多不同的 Linux 版本,但它们都使用 了 Linux 内核。Linux 可安装在各种计算机硬件设备中,比如手机、 平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计 算机。 严格来讲,Linux 这个词本身只表示 Linux 内核,但实际上人们 已经习惯了用 Linux 来形容整个基于 Linux 内核,并且使用 GNU 工 程各种工具和数据库的操作系统。 4)Mac OS Mac OS 是一套运行于苹果 Macintosh 系列电脑上的操作系统。 Mac OS 是首个在商用领域成功的图形用户界面操作系统。现行的最 新的系统版本是 OS X 10.10 Yosemite,且网上也有在 PC 上运行的 Mac 系统,简称 Mac PC。 Mac 系统是基于 Unix 内核的图形化操作系统;一般情况下在普
第 15 页,共 17 页

百度 Pascal 吧公开培训教材-Pascal 培训课程普及讲义-第三讲

通 PC 上无法安装的操作系统。由苹果公司自行开发。苹果机的操作 系统已经到了 OS 10,代号为 MAC OS X(X 为 10 的罗马数字写法) , 这是 MAC 电脑诞生 15 年来最大的变化。新系统非常可靠;它的许多 特点和服务都体现了苹 果 公司的理念。 另外, 疯狂肆虐的电脑 病毒几乎都是针对 Windows 的 , 由 于 MAC 的 架 构 与 Windows 不同,所以很少受 到病 毒 的袭 击 。 MAC OS X 操作系统界面非常独特,突出了形象的图标和人机对话。苹果公司不 仅自己开发系统,也涉及到硬件的开发。 2011 年 7 月 20 日 Mac OS X 已经正式被苹果改名为 OS X。最新 版本为 10.10,2014 年 10 月 21 日凌晨 1 点发布。 5) Android Android 是一种基于 Linux 的 自由及开放源代码的操作系统,主 要使用于移动设备,如智能手机和 平板电脑,由 Google 公司和开放 手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使 用“安卓”或“安致” 。Android 操作系统最初由 Andy Rubin 开发, 主要支持手机。 2005 年 8 月由 Google 收购注资。 2007 年 11 月, Google
第 16 页,共 17 页

百度 Pascal 吧公开培训教材-Pascal 培训课程普及讲义-第三讲

与 84 家硬件制造商、软件开发商及电信营运商组建开放手机联盟共 同研发改良 Android 系统。 随后 Google 以 Apache 开源许可证的授权 方式,发布了 Android 的源代码。第一部 Android 智能手机发布于 2008 年 10 月。 Android 逐渐扩展到平板电脑及其他领域上, 如电视、 数码相机、游戏机等。2011 年第一季度,Android 在全球的市场份额 首次超过塞班系统,跃居全球第一。 2013 年的第四季度,Android 平台手机的全球市场份额已经达到 78.1%。 2013 年 09 月 24 日谷歌开 发的操作系统 Android 在迎来了 5 岁生日, 全世界采用这款系统的设 备数量已经达到 10 亿台。 2014 第一季度 Android 平台已占所有移动广告流量来源的 42.8%, 首度超越 iOS。但运营收入不及 iOS。 6) iOS iOS 是由苹果公司开发的移动操作系统。 苹果公司最早于 2007 年 1 月 9 日的 Macworld 大会上公布这个系统,最初是设计给 iPhone 使用的,后来陆续套用到 iPod touch 、 iPad 以及 Apple TV 等产品上。iOS 与苹果的 Mac OS X 操作系统一样, 属于类 Unix 的商业操作系统。 原本这个系统名为 iPhone OS ,因为 iPad , iPhone,iPod touch 都使用 iPhone OS,所以 2010WWDC 大会上宣布 改名为 iOS(iOS 为美国 Cisco 公司网络设备操作系统注册商标,苹 果改名已获得 Cisco 公司授权) 。
第 17 页,共 17 页


推荐相关:

PASCAL讲义

PASCAL讲义_IT/计算机_专业资料。编程必备第...pascal 语言中的算术表达式是由符合 pascal 语法规定...pascal第三讲 20页 免费 pascal 14页 免费 初一Pascal...


法语语法及词汇讲义

法语语法及词汇讲义 欢迎使用新东方在线电子教材 第 2 章 语法及词汇 第九课 ...C’est voiture de Pascal. b. Voici parfum. C’est parfum de Marie. c...


PL0语言编译程序分析和详细注释(Pascal版

(* 原程序在此使用 object 作为类型名称, 在支持面向对象的 Turbo Pascal 7....(也就是第一个分程序)的语法分析 *) 72729320.doc - 35 - (* 主程序所在...


Lazarus讲义(基本知识)

Lazarus讲义(基本知识)_政史地_高中教育_教育专区。讲义信息学奥赛讲义前言 关于...3、 注重语言熟练程度 语法熟:熟练掌握 Pascal 语言的语法和逻辑结构。 输入熟...


pascal错误表

pascal错误表_专业资料。pascal中英错误对照河东一中 信息学奥林匹克竞赛讲义 编译...Too many files 内存溢出 缺标识符 未定义的标识符 重复定义的标识符 语法错误...


二外法语讲义—词汇语法篇-1

二外法语讲义—词汇语法篇-1 Episode 0 第0节 学习要点:与人打招呼;说明自己...C’est la chambre de Pascal. 2. 不定冠词 L’article indéfini 表示它所...


编译原理课程设计 C语言编译器的实现

通过设计一个简单的 PASCAL 语言(EL 语言)的编译...语法分析程序 ? 语义分析程序 ?编译器。不断完善,...//把 t 填进四元式 circle 的第四分量 sprintf(...


Pascal语言基础教程

Pascal 语言基础教程 第 3 页共 124 页 4. 程序的输入、编辑与运行 在当前...算术表达式的定义 pascal 语言中的算术表达式是由符合 pascal 语法规定的运算对象...


pascal语言基本知识

目前信息学竞赛 可以使用的语言有 Pascal、C、C++,本期将进行 Pascal 语言教学。 2、数据结构: 将数学对象和事物对象表达成计算机可以接受的形式, 并根据特点把...


pascal语言中的语句

简单语句和复合语句 Pascal 简单语句中不包含任何别的语句,赋值语句和过程调用即...注意的是,不能在第一句之后、else 关键词之前加分号,否则编译器将 告知语法...

网站首页 | 网站地图
All rights reserved Powered by 简单学习网 www.tceic.com
copyright ©right 2010-2021。
文档资料库内容来自网络,如有侵犯请联系客服。zhit325@126.com