noip计算机基础.ppt
全国奥林匹克信息学联赛初赛(普及组)培训,NOIP简介,NOIP简介 NOIP是指全国青少年信息学奥林匹克联赛(National Olympiad in Informatics in Provinces简称NOIP)。每年由中国计算机学会统一组织。NOIP是在同一时间、不同地点以各省市为单位由特派员组织。每年的9月110日报名,初赛定于每年10月的第二个星期六下午,复赛定于每年11月的最后第二个星期六举行。全国统一大纲、统一试卷。初、高中或其他中等专业学校的学生可报名参加联赛。联赛分初赛和复赛两个阶段。初赛以通用和实用的计算机知识为考试内容,重在考察基础与实用的知识,以笔试为主。复赛为程序设计。参加初赛者须达到一定分数线后才有资格参加复赛。各省市、自治区都应参加联赛,参加联赛是参加NOI的必要条件。,知识范围,计算机的基本组成;计算机工作的基本原理;计算机程序设计的基本方法;至少一门高级程序设计语言;程序设计中常用的数据结构。,初试:初试全部为笔试,1、选择题:共20题,每题15分,共30分。每题有4个备选方案。试题内容包括计算机基本组成与原理、计算机基本操作、信息科技与人类社会发展的关系等等。2、问题求解题:共2题,每题5分,共10分。试题给出一个叙述较为简单的问题,要求学生对问题进行分析,找到一个合适的算法,并推算出问题的解。答案以字符串方式给出,考生给出的答案与标准答案的字符串相同,则得分;否则不得分。3、程序阅读理解题:共4题,每题8分,共32分。题目给出一段程序(没有关于程序功能的说明),有时也会给出程序的输入,要求考生通过阅读理解该段程序给出程序的输出。输出以字符串的形式给出,如果与标准答案一致,则得分;否则不得分。4、程序完善题:共 2题,第一题10分,共4空,没空2.5分;第二题18分,共6空,每空3分。两题共28分。题目给出一段关于程序功能的文字说明,然后给出一段程序代码,在代码中略去了若干个语句并在这些位置给出空格,要求考生根据程序的功能说明和代码的上下文,填出被略去的语句。填对的,则得分;否则不得分。,计算机基础,一、计算机硬件二、计算机网络技术三、数据编码和进制转换四、数据结构,计算机的发展历史,1946年2月5日,出于美国军方对弹道研究的计算需要,世界上第一台电子计算机ENIAC问世。这个重达30吨,由18800个电子管组成的庞然大物就是所有现代计算机的始祖。,理论基础,电子计算机的问世,最重要的奠基人是英国科学家艾兰 图灵(Alan Turing)和美籍匈牙利科学家冯 诺依曼(John Von Neuman)。图灵的贡献是建立了图灵机的理论模型,奠定了人工智能的基础。冯 诺依曼则是首先提出了计算机体系结构的设想。,冯诺依曼体系结构,冯诺依曼理论的要点是:数字计算机的数制采用二进制;计算机应该按照程序顺序执行。,从ENIAC到当前最先进的计算机都采用的是冯诺依曼体系结构。所以冯诺依曼是当之无愧的数字计算机之父。,运算器和控制器统称为CPU,计算机的发展,计算机的特点,1运算速度快2计算精度高3具有记忆(存储)能力4具有逻辑判断能力5高度自动化与灵活性,计算机的分类,1、按信息的表示和处理方式分 分为:数字电子计算机、模拟电子计算机及数字模拟混合电子计算机。2、按计算机用途分分为:专用计算机与通用计算机3、按计算机规模与性能分巨型机:银河、曙光、神火、联想深腾6800、曙光4000A大型机:IBM4831中型机小型机:IBM AS400微型机:70年代,计算机技术的第二次飞跃,计算机的应用,1科学计算2、实时控制3数据处理4计算机辅助设计(CAD)、辅助制造(CAM)和辅助教学(CAI)5文字处理和办公室自动化6人工智能7计算机网络应用,计算机发展的趋势,巨型化高性能开放式多媒体化智能化网络化,计算机系统,计算机系统是由硬件系统和软件系统两部分组成,计算机的基本结构,冯.诺依曼提出的存储程序计算机的组成及其功能:,1、运算器(ALU):对二进制数码进行算术运算或逻辑运算2、控制器(CU):指挥全机各部件自动、协调地工作3、存储器(memory):用于保存程序和数据4、输入设备(Input Devices):用来向计算机输入命令、数据、文本、图形、图像、音频和视频等信息。5、输出设备(Output Devices):将计算机处理后的各种内部信息转换为人们能识别的形式(如文字、图形、图像和声音等)表达出来。,中央处理器CPU,运算器和控制器合称为中央处理单元,简称CPU。CPU的作用是处理数据、存取数据或指令、协调各部件工作等。CPU相关术语:1、主频 主频是衡量CPU运行速度的重要指标。它是指系统时钟脉冲发生器输出周期性脉冲的频率。通常以赫兹(Hz)为单位。2、字长 字长是CPU可以同时处理的二进制数据位数。如64位微处理器,一次能够处理64位二进制数据。常用的有16位、32位、64位微处理器。,存储器,存储器用于保存数据和程序,存储器分类:(1)内部存储器:ROM(只读存储器)、RAM(随机存储器)、Cache(高速缓冲存储器)它们的特点:访问速度快、信息暂时性、相对价格高(2)外部存储器:软盘(分三寸盘和五寸盘)、硬盘、光盘(分为只读光盘CD-ROM、一次性写入光盘CD-R、DVD-ROM)、硬盘、优盘(闪盘)、可移动硬盘等。它们的特点:访问速度慢、信息永久性、相对价格低,只读存储器:(ROM-Read Only Memory)):是一种只能读取资料的内存。在制造过程中,将资料以一特制光罩(mask)烧录于线路中,其资料内容在写入后就不能更改,常用于电脑中的开机启动,断电后信息不会丢失。随机存储器:(RAM-Random Access Memory):储存的信息可以读出,也可以写入,断电后存储的信息会丢失。,SDR内存,DDR内存,内存:组成:是由RAM组成的 分类:SDR、DDR 容量:1G、2G、4G、8G等,外存:硬盘 500G、1T 软盘 1.44M 光盘 650M U盘 8G,16G,32G,硬盘,软盘,光盘,U盘,USB接口,存储器相关术语,位(Bit):存放一位二进制数即0或1。位是计算机中存储信息的最小单位。字节(Byte):8个二进制位为一个字节。为了便于衡量存储器的大小,统一以字节(Byte简写为B)为单位。字节是计算机中存储信息的基本单位地址:整个内存被分成若干个存储单元,每个存储单元一般可存放8位二进制(字节编址)。每个存储单元可以存放数据或程序代码。为了能有效地存取该单元内的内容,每个单元必须有唯一的编号(称为地址)来标识。读操作(Read):按地址从存储器中取出信息,不破坏原有的内容,称为对存储器进行“读”操作。写操作(Write):把信息写入存储器,原来的内容被覆盖,称为对存储器进行“写”操作。,存储器的容量单位,计算机存储单位一般用bit、B、KB、MB、GB、TB、PB、EB、ZB、YB、BB、NB、DB来表示,它们之间的关系是:位 bit(比特)(Binary Digits):存放一位二进制数,即 0 或 1,最小的存储单位。英文缩写:b(固定小写)字节byte:8个二进制位为一个字节(B),最常用的单位。,单位换算,1 Byte=8 bit 注意1b不等于1B1 KB=1024(210)byte1 MB=1024 KB1 GB=1024 MB1 TB=1024 GB1 PB=1024 TB1 EB=1024 PB,输入输出设备,输入设备输入设备用来接受用户输入的原始数据和程序,并将它们转变为计算机可以识别的二进制形式存放到内存中。常用的输入设备有键盘、鼠标、扫描仪、光笔、数字化仪、麦克风等。输出设备输出设备用于将存放在内存中由计算机处理的结果转变为人们所能接受的形式。常用的输出设备有:显示器、打印机、绘图仪、音箱等。,输入设备,输出设备,显示器 阴极射线管显示器(CRT),液晶显示器LCD,系统软件,(1)操作系统:是管理和控制计算机的全部硬件、软件资源的程序。主要功能有:用户与计算机硬件的接口、硬件功能的扩充、计算机系统的控制及管理等。按应用领域划分主要有三种:,1、桌面操作系统2、服务器操作系统3、嵌入式操作系统,操作系统,桌面操作系统,桌面操作系统主要用于个人计算机上。个人计算机市场从硬件架构上来说主要分为两大阵营,PC机与Mac机,从软件上可主要分为两大类,分别为类Unix操作系统和Windows操作系统:Unix和类Unix操作系统:Mac OSX,Linux发行版(如Debian,Ubuntu,Linux Mint,openSUSE,Fedora等);微软公司Windows操作系统:Windows 98,Windows XP,Windows Vista,Windows 7,Windows 8,Windows 8.1等。,操作系统,服务器操作系统,服务器操作系统一般指的是安装在大型计算机上的操作系统,比如Web服务器、应用服务器和数据库服务器等。服务器操作系统主要集中在三大类:Unix系列:SUNSolaris,IBM-AIX,HP-UX,FreeBSD,OS X Server等;Linux系列:Red Hat Linux,CentOS,Debian,Ubuntu Server等;Windows系列:Windows NT Server,Windows Server 2003,Windows Server 2008,Windows Server 2008 R2等。,操作系统,嵌入式操作系统,嵌入式操作系统是应用在嵌入式系统的操作系统。嵌入式系统广泛应用在生活的各个方面,涵盖范围从便携设备到大型固定设施,如数码相机、手机、平板电脑、家用电器、医疗设备、交通灯、航空电子设备和工厂控制设备等,越来越多嵌入式系统安装有实时操作系统。在嵌入式领域常用的操作系统有嵌入式Linux、Windows Embedded、VxWorks等,以及广泛使用在智能手机或平板电脑等消费电子产品的操作系统,如Android、iOS、Symbian、Windows Phone和BlackBerry OS等。,系统软件,(2)语言处理程序:除机器语言外,其他任何语言编写的程序都不能直接在计算机上执行,需要先对它们进行适当的变换,而这个任务就是由语言处理程序承担。计算机语言包括:1、机器语言 2、汇编语言 3、高级语言:Basic语言、Pascal语言、C语言、Java语言等。(3)数据库管理系统数据库系统:按数据模型的不同分为三种类型:层次型、网状型、关系型。目前比较流行的数据库系统有 FoxPro、Oracle、SQL等。,应用软件,应用软件是在计算机硬件和系统软件的支持下,为解决各类专业和实际问题而设计开发的一类软件。如Office、WPS等文字处理、电子表格、多媒体制作工具、各种工程设计和数学计算软件、模拟过程、辅助设计和管理程序等。,计算机病毒,定义:破坏计算机功能或者毁坏数据、影响计算机使用,并能自我复制的一组计算机指令或者程序代码。特征:传染性、潜伏性、隐蔽性、破坏性分类:传染途径:,按寄生方式分为:引导型病毒、文件型病毒、复合型病毒按破坏情况分类:良性病毒、恶性病毒,1、光盘/U盘传染2、机器传染3、网络传染,真题练习,真题练习,第二节计算机网络知识,网络组成,1、通信主体:服务器和工作站2、通信设备:传输介质、网络设备3、通信协议:通常是TCP/IP,网络分类,按传输距离分:按网络结构分:,1、局域网(LAN)2、城域网(MAN)3、广域网(WAN),1、总线型2、星型3、环型4、树型,网络拓扑结构,OSI网络协议的层次,国际标准化组织(ISO)提出的“开放系统互连模型(OSI)”是计算机网络通信的基本协议。该协议分为七层。如下表:,第三节数据编码和进制转换,编码,在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示1和0),例如,像a、b、c、d这样的52个字母(包括大写)、以及0、1等数字还有一些常用的符号(例如*、#、等)在计算机中存储时也要使用二进制数来表示,而具体用哪些二进制数字表示哪个符号,当然每个人都可以约定自己的一套(这就叫编码).,ASCII编码,如果要想互相通信而不造成混乱,那么大家就必须使用相同的编码规则,于是美国有关的标准化组织就出台了ASCII编码,统一规定了常用符号用哪些二进制数来表示。,ASCII:American Standard Code for Information Interchange,标准ASCII码,标准ASCII 码也叫基础ASCII码,使用7 位二进制数来表示所有的大写和小写字母,数字0 到9、标点符号,以及在美式英语中使用的特殊控制字符。其中:031及127(共33个)是控制字符或通信专用字符(其余为可显示字符),如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(响铃)等;通信专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;ASCII值为8、9、10 和13 分别转换为退格、制表、换行和回车字符。它们并没有特定的图形显示,但会依不同的应用程序,而对文本显示有不同的影响。32126(共95个)是字符(32是空格),其中4857为0到9十个阿拉伯数字6590为26个大写英文字母,97122号为26个小写英文字母,其余为一些标点符号、运算符号等。,进制,进制是一种记数方式,故亦称进位记数法,可使用数字符号的数目称为基数或底数,基数为n,即可称n进位制,简称n进制。现在最常用的是十进制,通常使用10个阿拉伯数字0-9进行记数。计算机是信息处理的工具,任何信息必须转换成二进制形式数据后才能由计算机进行处理,存储和传输。,常见进制,十进制:日常计数二进制:它由两个基本数字0,1组成,二进制数运算规律是逢二进一。八进制:八进制有数码0、1、2、3、4、5、6、7,并且每个数码正好对应三位二进制数,所以八进制能很好地反映二进制。16进制:十六进制数由十六个字符09以及A,B,C,D,E,F组成。,位权,在数制中,各位数字所表示值的大小不仅与该数字本身的大小有关,还与该数字所在的位置有关,我们称这关系为数的位权。,一个十进制数110,其中百位上的1表示1个102,既100,十位的1表示1个101,即10,个位的0表示0个100,即0。一个二进制数110,其中高位的1表示1个22,即4,低位的1表示1个21,即2,最低位的0表示0个20,即0。一个十六进制数110,其中高位的1表示1个162,即256,低位的1表示1个161,即16,最低位的0表示0个160,即0。,进制转换,1、R进制转换为十进制 基数为R的数字,只要将各位数字与它的权相乘,其积相加,和数就是十进制数:(xpx0.x-1x-k)R=()10例:1101101.01012=12021122+123十024125126+02-1+12-202-3+12-4=109.3125,当从R进制转换到十进制时,可以把小数点作为起点,分别向左右两边进行,即对其整数部分和小数部分分别转换。对于二进制来说,只要把数位是1的那些位的权值相加,其和就是等效的十进制数。,2、十进制转换为R进制 进制整数转换成R进制的整数,可用十进制数连续地除以R,其余数即为R系统的各位系数。此方法称之除R取余法。例如:将5710转换为二进制数十进制小数转换成R进制时,可连续地乘以R,直到小数部分为0,或达到所要求的精度为止(小数部分可能永不为零),得到的整数即组成R进制的小数部分,此法称为“乘R取整”例:将0.312510转换成二进制数 0.31252=0.625 0.6252=1.25 0.252=0.5 0.52=1.0,将此数分成整数与小数两部分分别转换,然后再拼接起来。,整数,小数,二、八、十六进制的相互转换即每位八进制数相当于三位二进制数,每位十六进制数相当于四位二进制数。在转换时,位组划分是以小数点为中心向左右两边延伸,中间的0不能省略,两头不够时可以补0。例如:将1011010.102转换成八进制和十六进制数 001 011 010.100 1011010.102132.481 3 2.40101 1010.1000 1011010.102=5A.816 5 A.8将十六进制数F7.28变为二进制数 F 7.2 8 F7.2816=11110111.0010121111 0111.0010 1000 将八进制数25.63转换为二进制数2 5 6 3 25.63810101.110011210 101.110 011,二进制与八进制,二进制与十六进制,二进制度可以和八与十六进制直接互相转化请同学们仔细观察1967=(7AF)16=(11110101111)2=(11110101111)2=(3657)8 那么在做这类运算的时候我们可以抓住上面的特点进行运算,这样可以大大减少我们的运算量,原码,反码和补码,相关概念,1、机器数一个数在计算机中的二进制表示形式,叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号,正数为0,负数为1.比如,十进制中的数+3,计算机字长为8位,转换成二进制就是00000011。如果是-3,就是 10000011。那么,这里的 00000011 和 10000011 就是机器数。2、真值因为第一位是符号位,所以机器数的形式值就不等于真正的数值。例如上面的有符号数 10000011,其最高位1代表负,其真正数值是-3 而不是形式值131(10000011转换成十进制等于131)。所以,为区别起见,将带符号位的机器数对应的真正数值称为机器数的真值。例:0000 0001的真值=+000 0001=+1,1000 0001的真值=000 0001=1,原码,反码和补码,原码,原码就是符号位加上真值的绝对值,即用第一位表示符号,其余位表示值.比如如果是8位二进制:+1原=0000 0001-1原=1000 0001第一位是符号位.因为第一位是符号位,所以8位二进制数的取值范围就是:1111 1111,0111 1111即-127,127原码是人脑最容易理解和计算的表示方式.,原码,反码和补码,反码,反码的表示方法是:正数的反码是其本身负数的反码是在其原码的基础上,符号位不变,其余各个位取反.+1=00000001原=00000001反-1=10000001原=11111110反可见如果一个反码表示的是负数,人脑无法直观的看出来它的数值.通常要将其转换成原码再计算.,原码,反码和补码,补码,补码的表示方法是:正数的补码就是其本身负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+1.(即在反码的基础上+1)+1=00000001原=00000001反=00000001补-1=10000001原=11111110反=11111111补对于负数,补码表示方式也是人脑无法直观看出其数值的.通常也需要转换成原码在计算其数值.,真题练习,第四节数据结构,二叉树,二叉树是每个节点最多有两个子树的有序树。,二叉树是递归定义的,其结点有左右子树之分,逻辑上二叉树有五种基本形态:(1)空二叉树如图(a);(2)只有一个根结点的二叉树如图(b);(3)只有左子树如图(c);(4)只有右子树如图(d);(5)完全二叉树如图(e),二叉树,重要概念,(1)完全二叉树若设二叉树的高度为h,除第 h 层外,其它各层(1h-1)的结点数都达到最大个数,第h层有叶子结点,并且叶子结点都是从左到右依次排布,这就是完全二叉树。(2)满二叉树除了叶结点外每一个结点都有左右子叶且叶子结点都处在最底层的二叉树。(3)深度二叉树的层数,就是深度。(4)度数二叉树结点的度数指该结点所含子树的个数,特殊形态,二叉树,性质1 在非空二叉树中,第i层的结点总数不超过2i-1(i1)。性质2 深度为k的二叉树至多有2k-1个结点(k1)。性质2 对于任意一棵二叉树,如果其叶结点数为N0,而度数为2的结点总数为N2,则N0=N2+1;性质4 具有n个结点的完全二叉树的深度为:,前序遍历,前序遍历也叫先根遍历,首先访问根结点然后遍历左子树,最后遍历右子树。在遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。,中序遍历,中序遍历也叫做中根遍历,可记做左根右。首先遍历左子树,然后访问根结点,最后遍历右子树。在遍历左、右子树时,仍然先遍历左子树,再访问根结点,最后遍历右子树,后序遍历,后序遍历也叫做后根遍历、后序周游,可记做左右根,栈,定义:栈是限定仅在表头进行插入和删除操作的线性表,允许进行插入或删除的一端叫栈顶(top)不允许进行插入或删除的一端叫栈底(bottom)不含元素的栈叫空栈往栈中存入元素叫入栈从栈中输出元素叫出栈特点:先进后出(或 后进先出),真题练习,Pascal基础,初始Pascal语言赋值语句与输入输出语句常见的数据类型算术表达式与运算符简单的if分支结构if嵌套与case语句For循环While循环与repeat-until循环,Pascal语言概述,Pascal是一种计算机通用的高级程序设计语言。它是瑞士苏黎世联邦工业大学的N沃思(Niklaus Wirth)教授于1968年设计完成的,1971年正式发表。为纪念法国数学家Pascal,把此高级语言命名为Pascal语言。其主要特点有:严格的结构化形式;丰富完备的数据类型;运行效率高;查错能力强。,第一个Pascal程序,Pascal程序组成,1.一个PASCAL程序由程序首部和程序体两部分组成。程序首部以分号结束,程序体以圆点结束。2.程序首部包括三项内容,其顺序是:,(1)Program:Pascal程序标志,写在程序的开头。(2)程序名:必须由英文字母开头,由作者自行定义。(3)参数表:由INPUT,OUTPUT组成,表示输入、输出文件。,程序体,程序体是程序的主体,也称“分程序”。程序体由说明部分和语句部分(执行部分)组成。说明部分:常量说明、变量说明、类型说明、函数说明、过程说明等,分别以分号结尾。语句部分是程序的执行部分,以BEGIN开始,END.结尾,用来描述程序所执行的算法和操作。中间的每一语句均须以分号结尾。语句部分中,变量赋值用:=,而不是,输出用WRITE,而不是用PRINT。注释语句:注释用 或(*)。,常量,在程序运行过程中,其值不能改变的量成为常量。如:123,abc等。字符常量 一个常量可以直接用字面形式表示(成为直接常量,如124,56),也可以用一个标识符来代表一个常量,称为“符号常量”,但是符号常量必须在程序的说明部分定义,也就是先定义,后使用。定义符号常量的一般格式:CONST=Eg:CONST PI=3.14;,在本程序中pi和zero作为符号常量,分别代表实数3.14159和整数0。也就是说,常量说明部分既定义了常量名及其值,又隐含定义了常量的类型。,关于符号常量,应注意下列几点:,符号常量一经定义,在程序的执行部分就只能使用该常量标识符,而不能修改其值。使用符号常量比直接用数值更能体现见名知义的原则,也便于修改参数,故一个较好的程序中,应尽量使用符号常量,在执行部分基本上不出现直接常量。,变量,变量代表了一个存储单元,其中的值是可变的,即在程序运行过程中,其值可以改变的量,故称为变量。在程序中若要使用变量,变量的名称及类型在程序的变量说明部分加以定义,变量的值则在程序的执行部分中才能赋给。变量说明的一般格式:VAR,:;(中括号内部分表示可省),变量三个要素,变量名变量类型变量值,变量名应遵循自定义标识符的命名规则,自定义标识符必须以字母或下划线_开头,后面的字符可以是字母或数字。标识符长度不超过63个字符。,常量是有类型的数据,变量在某一固定时刻用来存放一个常量,因此也应有相应的类型。如整型变量用来存放整数,实型变量用来存放实数。,变量赋值,1、赋值语句的格式 变量名:=表达式;(其中“:=”称为赋值号。)2、执行过程 计算机先计算赋值号右边表达式的值,然后将表 达式的值赋给变量名代表的变量。如:A:=(9*8)-(2-1);B:=B+1;,算术表达式,算术表达式的定义pascal语言中的算术表达式是由符合pascal语法规定的运算对象(包括常量、变量、函数)、算术运算符、圆括号组成的有意义的式子。如:A+3.14159*5/8.4-Abs(-1123),算术运算符,常用的有以下6个算术运算符:(加)(减)(乘)(实数除)得到结果为实型.如5.0/2.0=2.5,5/2=2.5,4/2=2.0而不等于2。DIV(整除)DIV它要求除数和被除数均为整型,结果也为整型。如10 DIV 2=5,10 DIV 3=3,5 DIV 10=0.-15 DIV 4=-3。DIV运算只取商的整数部分,参与DIV运算的两个对象不能为实型。mod(求余),也只能用于整数运算,结果为整数。例如:10 mod 4=2,-17 mod 4=-1,4 mod(-3)=1,-4 mod 3=-1,即 a mod b=a-(a div b)*b。,运算优先顺序,如果一个表达式里出现两个或两个以上的运算符,则必须规定它们的运算次序。pascal规定:表达式中相同优先级的运算符,按从左到右顺序计算;表达式中不同优先级的运算符,按从高到低顺序计算;括号优先级最高,从内到外逐层降低;在算术运算中运算符的优先顺序与数学上的四则运算一致,即先乘除后加减(注:MOD、DIV运算的优先级与、/相同)。,关系表达式,1、什么是关系表达式用小括号、=、将两个算术表达式连接起来的式子就称为关系表达式(比较式)。如:3+78,x+y10,2*7=13等都是关系表达式。,关系表达式的值,很显然,前面个关系表达式中第一个是正确的,第三个是错误的,而第二个表达式可能是对的,也可能是错的。所以我们很容易发现,这些表达式的值是对的或不对的(或者说,是真的或假的),即关系表达式的值为布尔值。表示该比较式两端式子的大小关系是否成立。如3+26是错的,故它的值为FALSE。同样,45=32是对的,故该表达式的值为true。,布尔运算及布尔表达式,为了表示更复杂的命题,Pascal还引入三种逻辑运算符:not、and、or。它们分别相当于数学上的“非”、“且”和“或”的意义。xor:“异或”,如果两个表达式同时为True或同时为False,则结果为False;否则为True 这三个运算符的运算对象为布尔量,其中not为单目运算,只有一个运算对象,and与or为双目运算,有两个运算对象。它们的运算真值表如下:,布尔(逻辑)运算真值表,输入语句,输入语句也叫读语句,在程序中变量获得一个确定的值,固然可以用赋值语句,但是如果需要赋值的变量较多,或变量的值经常变化,使用输入语句将更为方便。读语句是在程序运行时由用户给变量提供数据的一种很灵活的输入动作。,输入语句格式,读语句的一般格式:read();readln();其中变量名表是用逗号隔开的若干个变量名组成的。功能:从标准输入文件(即INPUT,一般对应着键盘)中读入数据,并依次赋给相应的变量。,read语句与readln,read语句是一个接一个地读数据,在执行完本Read语句(读完本语句中变量所需的数据)后,下一个读语句接着从该数据输入行中继续读数据,也就是说,不换行。Readln则不同,在读完本Readln语句中变量所需的数据后,该数据行中剩余的数据多余无用,或者说,在读完本Readln语句中变量所需数据后,一定要读到一个回车,否则多余的数据无用。read 后一定要有参数表,而readln可以不带参数表,即可以没有任何输入项,只是等待读入一个换行符(回车)。经常用于暂停程序的运行,直到输入一个回车。,说明:,read和readln是标准过程名,它们是标准标识符。执行到read或readln语句时,系统处于等待状态,等待用户从键盘上输入数据,系统根据变量的数据类型的语法要求判断输入的字符是否合法。如执行read(a)语句,a是整型变量,则输入的字符为数字字符时是合法的,当输入结束时,则自动将刚接受的一串数字字符转换为整数赋给变量a。在输入数值型(整型或实型)数据时,数据间要用空格或回车分隔开各个数据,输入足够个数的数据,否则仍要继续等待输入,但最后一定要有回车,表示该输入行结束,直到数据足够,该读语句执行结束,程序继续运行。,输出语句,输出语句的作用是将程序运算的结果输出到屏幕或打印机等输出设备。通常指输出到屏幕。输出语句的两种格式,1、write语句格式Write(表达式1,表达式2,);如:write(1,2,3,4);write(My name is Liping);2、writeln语句格式:writeln(表达式1,表达式2,),输出语句的功能,计算机执行到某一输出语句时,先计算出输出语句中的每个表达式的值,并将每一个表达式的值一个接一个地输出到屏幕上。Write语句与writeln语句格式上都相似,但它们在功能上有所不同,两个语句的区别在于,write语句将其后括号中的表达式一个接一个输出后,没有换行。而writeln语句则在输出各个表达式的值后换行。,顺序结构程序设计,到目前为止,我们可以用读、写语句和赋值语句编写一些简单的程序。通过阅读这些程序,可以逐步熟悉pascal程序的编写方法和应遵循的规则,为以后各章的学习打基础。,例题,试编一程序,输入一梯形的上底、下底、高,求该梯形的面积。,分析:整个程序分为三段:输入、计算、输出。程序中用a,b,h三个变量分别存放梯形的上、下底与高,S存放面积。要而使用这些变量都要先说明,程序的执行部分中先输入上、下底与高,接着求面积S,最后输出结果S。,例题,源程序如下:program Tixing;程序首部var a,b,h,s:real;程序说明部分beginwrite(Input a,b,h:);readln(a,b,h);程序执行部分s:=(a+b)*h/2;write(s=,s);end.,简单的分支结构程序设计,IFCASEFOR,IF语句,、格式、IF 布尔表达式THEN 语句;、IF 布尔表达式THEN 语句 ELSE 语句;(注意型IF语句中语句后无;号)、功能、执行IF语句时,先计算布尔表达式的值,若为TRUE则执行语句,否则不执行任何操作。、执行IF语句时,先计算布尔表达式的值,若为TRUE则执行语句,否则执行语句;,示例,Program ex4;Var a:integer;Begin Write(a=);readln(a);If(a mod 2=0)then writeln(yes)Else writeln(no);Readln;End.,例:输入一个整数,判断是否为偶数。(是输出否则输出)。,示例2,2)超市里卖电池,每个电池元钱,若数量超过10个,则可打75折。Program ex4_3;Var Num:integer;Price,Total:real;BeginWrite(Num=);readln(Num);Price:=8;If Num10 then Price:=Price*0.75;Total:=Num*Price;Writeln(Total=,Total:0:2);Readln;End.,IF语句的嵌套,在if语句中,如果then子句或else子句仍是一个if语句,则称为if语句的嵌套。,分析:根据输入的x值,先分成x0与x0两种情况,然后对于情况x0,再区分x是小于0,还是等于0。,源程序如下:program ex;varx:integer;y:integer;begin wrtie(Input x:);readln(x);if x0then y:=1x0时,y的值为1else x0时if x=0then y:=0else y:=-1;writeln(x=,x,y=,y);end.,for循环语句,for语句的一般格式1.for:=to do;2.for:=downto do;其中for、to、downto和do是Pascal保留字。表达式1 与表达式2的值也称为初值和终值。,For语句执行过程,For语句执行过程先将初值赋给左边的变量(称为循环控制变量);判断循环控制变量的值是否已超过终值,如已超过,则跳到步骤;如果末超过终值,则执行do后面的那个语句(称为循环体);循环变量递增(对to)或递减(对downt o);返回步骤;循环结束,执行循环下面的一个语句。,示例,例1输出1100之间的所有偶数。var i:integer;beginfor i:=1 to 100 doif i mod 2=0 then write(i);end.,示例,例2求N!123N,这里N不大于10。分析:程序要先输入N,然后从1累乘到N。程序如下:var n,i:integer;i为循环变量S:longint;s作为累乘器beginwrite(Enter n=);readln(n);输入ns:=1;for i:=2 to n do从2到n累乘到s中s:=s*i;writeln(n,!=,s);输出n!的值end.,