noip计算机基础

申明敬告: 本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。

文档介绍

noip计算机基础

全国奥林匹克信息学联赛初赛(普及组)培训\nNOIP简介NOIP简介NOIP是指全国青少年信息学奥林匹克联赛(NationalOlympiadinInformaticsinProvinces简称NOIP)。每年由中国计算机学会统一组织。NOIP是在同一时间、不同地点以各省市为单位由特派员组织。每年的9月1—10日报名,初赛定于每年10月的第二个星期六下午,复赛定于每年11月的最后第二个星期六举行。全国统一大纲、统一试卷。初、高中或其他中等专业学校的学生可报名参加联赛。联赛分初赛和复赛两个阶段。初赛以通用和实用的计算机知识为考试内容,重在考察基础与实用的知识,以笔试为主。复赛为程序设计。参加初赛者须达到一定分数线后才有资格参加复赛。各省市、自治区都应参加联赛,参加联赛是参加NOI的必要条件。\n知识范围计算机的基本组成;计算机工作的基本原理;计算机程序设计的基本方法;至少一门高级程序设计语言;程序设计中常用的数据结构。\n初试:初试全部为笔试1、选择题:共20题,每题1.5分,共30分。每题有4个备选方案。试题内容包括计算机基本组成与原理、计算机基本操作、信息科技与人类社会发展的关系等等。2、问题求解题:共2题,每题5分,共10分。试题给出一个叙述较为简单的问题,要求学生对问题进行分析,找到一个合适的算法,并推算出问题的解。答案以字符串方式给出,考生给出的答案与标准答案的字符串相同,则得分;否则不得分。3、程序阅读理解题:共4题,每题8分,共32分。题目给出一段程序(没有关于程序功能的说明),有时也会给出程序的输入,要求考生通过阅读理解该段程序给出程序的输出。输出以字符串的形式给出,如果与标准答案一致,则得分;否则不得分。4、程序完善题:共2题,第一题10分,共4空,没空2.5分;第二题18分,共6空,每空3分。两题共28分。题目给出一段关于程序功能的文字说明,然后给出一段程序代码,在代码中略去了若干个语句并在这些位置给出空格,要求考生根据程序的功能说明和代码的上下文,填出被略去的语句。填对的,则得分;否则不得分。\n计算机基础一、计算机硬件二、计算机网络技术三、数据编码和进制转换四、数据结构\n计算机的发展历史1946年2月5日,出于美国军方对弹道研究的计算需要,世界上第一台电子计算机ENIAC问世。这个重达30吨,由18800个电子管组成的庞然大物就是所有现代计算机的始祖。\n理论基础电子计算机的问世,最重要的奠基人是英国科学家艾兰·图灵(AlanTuring)和美籍匈牙利科学家冯·诺依曼(JohnVon·Neuman)。图灵的贡献是建立了图灵机的理论模型,奠定了人工智能的基础。冯·诺依曼则是首先提出了计算机体系结构的设想。\n冯·诺依曼体系结构冯·诺依曼理论的要点是:数字计算机的数制采用二进制;计算机应该按照程序顺序执行。从ENIAC到当前最先进的计算机都采用的是冯·诺依曼体系结构。所以冯·诺依曼是当之无愧的数字计算机之父。运算器和控制器统称为CPU\n计算机的发展\n计算机的特点1.运算速度快2.计算精度高3.具有记忆(存储)能力4.具有逻辑判断能力5.高度自动化与灵活性\n计算机的分类1、按信息的表示和处理方式分分为:数字电子计算机、模拟电子计算机及数字模拟混合电子计算机。2、按计算机用途分分为:专用计算机与通用计算机3、按计算机规模与性能分巨型机:银河、曙光、神火、联想深腾6800、曙光4000A大型机:IBM4831中型机小型机:IBMAS400微型机:70年代,计算机技术的第二次飞跃\n计算机的应用1.科学计算2、实时控制3.数据处理4.计算机辅助设计(CAD)、辅助制造(CAM)和辅助教学(CAI)5.文字处理和办公室自动化6.人工智能7.计算机网络应用\n计算机发展的趋势巨型化高性能开放式多媒体化智能化网络化\n计算机系统计算机系统是由硬件系统和软件系统两部分组成\n计算机的基本结构冯.诺依曼提出的存储程序计算机的组成及其功能:1、运算器(ALU):对二进制数码进行算术运算或逻辑运算2、控制器(CU):指挥全机各部件自动、协调地工作3、存储器(memory):用于保存程序和数据4、输入设备(InputDevices):用来向计算机输入命令、数据、文本、图形、图像、音频和视频等信息。5、输出设备(OutputDevices):将计算机处理后的各种内部信息转换为人们能识别的形式(如文字、图形、图像和声音等)表达出来。\n中央处理器CPU运算器和控制器合称为中央处理单元,简称CPU。CPU的作用是处理数据、存取数据或指令、协调各部件工作等。CPU相关术语:1、主频主频是衡量CPU运行速度的重要指标。它是指系统时钟脉冲发生器输出周期性脉冲的频率。通常以赫兹(Hz)为单位。2、字长字长是CPU可以同时处理的二进制数据位数。如64位微处理器,一次能够处理64位二进制数据。常用的有16位、32位、64位微处理器。\n存储器存储器用于保存数据和程序,存储器分类:(1)内部存储器:ROM(只读存储器)、RAM(随机存储器)、Cache(高速缓冲存储器)它们的特点:访问速度快、信息暂时性、相对价格高(2)外部存储器:软盘(分三寸盘和五寸盘)、硬盘、光盘(分为只读光盘CD-ROM、一次性写入光盘CD-R、DVD-ROM)、硬盘、优盘(闪盘)、可移动硬盘等。它们的特点:访问速度慢、信息永久性、相对价格低只读存储器:(ROM-ReadOnlyMemory)):是一种只能读取资料的内存。在制造过程中,将资料以一特制光罩(mask)烧录于线路中,其资料内容在写入后就不能更改,常用于电脑中的开机启动,断电后信息不会丢失。随机存储器:(RAM-RandomAccessMemory):储存的信息可以读出,也可以写入,断电后存储的信息会丢失。\nSDR内存DDR内存内存:组成:是由RAM组成的分类:SDR、DDR容量:1G、2G、4G、8G等\n外存:硬盘500G、1T软盘1.44M光盘650MU盘8G,16G,32G硬盘软盘光盘U盘USB接口\n存储器相关术语位(Bit):存放一位二进制数即0或1。位是计算机中存储信息的最小单位。字节(Byte):8个二进制位为一个字节。为了便于衡量存储器的大小,统一以字节(Byte简写为B)为单位。字节是计算机中存储信息的基本单位地址:整个内存被分成若干个存储单元,每个存储单元一般可存放8位二进制(字节编址)。每个存储单元可以存放数据或程序代码。为了能有效地存取该单元内的内容,每个单元必须有唯一的编号(称为地址)来标识。读操作(Read):按地址从存储器中取出信息,不破坏原有的内容,称为对存储器进行“读”操作。写操作(Write):把信息写入存储器,原来的内容被覆盖,称为对存储器进行“写”操作。\n存储器的容量单位计算机存储单位一般用bit、B、KB、MB、GB、TB、PB、EB、ZB、YB、BB、NB、DB……来表示,它们之间的关系是:位bit(比特)(BinaryDigits):存放一位二进制数,即0或1,最小的存储单位。[英文缩写:b(固定小写)]字节byte:8个二进制位为一个字节(B),最常用的单位。\n单位换算1Byte=8bit注意1b不等于1B1KB=1024(2^10)byte1MB=1024KB1GB=1024MB1TB=1024GB1PB=1024TB1EB=1024PB……\n输入输出设备输入设备输入设备用来接受用户输入的原始数据和程序,并将它们转变为计算机可以识别的二进制形式存放到内存中。常用的输入设备有键盘、鼠标、扫描仪、光笔、数字化仪、麦克风等。输出设备输出设备用于将存放在内存中由计算机处理的结果转变为人们所能接受的形式。常用的输出设备有:显示器、打印机、绘图仪、音箱等。\n输入设备\n输出设备显示器阴极射线管显示器(CRT)液晶显示器LCD\n系统软件(1)操作系统:是管理和控制计算机的全部硬件、软件资源的程序。主要功能有:用户与计算机硬件的接口、硬件功能的扩充、计算机系统的控制及管理等。按应用领域划分主要有三种:1、桌面操作系统2、服务器操作系统3、嵌入式操作系统\n操作系统桌面操作系统桌面操作系统主要用于个人计算机上。个人计算机市场从硬件架构上来说主要分为两大阵营,PC机与Mac机,从软件上可主要分为两大类,分别为类Unix操作系统和Windows操作系统:Unix和类Unix操作系统:MacOSX,Linux发行版(如Debian,Ubuntu,LinuxMint,openSUSE,Fedora等);微软公司Windows操作系统:Windows98,WindowsXP,WindowsVista,Windows7,Windows8,Windows8.1等。\n操作系统服务器操作系统服务器操作系统一般指的是安装在大型计算机上的操作系统,比如Web服务器、应用服务器和数据库服务器等。服务器操作系统主要集中在三大类:Unix系列:SUNSolaris,IBM-AIX,HP-UX,FreeBSD,OSXServer等;Linux系列:RedHatLinux,CentOS,Debian,UbuntuServer等;Windows系列:WindowsNTServer,WindowsServer2003,WindowsServer2008,WindowsServer2008R2等。\n操作系统嵌入式操作系统嵌入式操作系统是应用在嵌入式系统的操作系统。嵌入式系统广泛应用在生活的各个方面,涵盖范围从便携设备到大型固定设施,如数码相机、手机、平板电脑、家用电器、医疗设备、交通灯、航空电子设备和工厂控制设备等,越来越多嵌入式系统安装有实时操作系统。在嵌入式领域常用的操作系统有嵌入式Linux、WindowsEmbedded、VxWorks等,以及广泛使用在智能手机或平板电脑等消费电子产品的操作系统,如Android、iOS、Symbian、WindowsPhone和BlackBerryOS等。\n系统软件(2)语言处理程序:除机器语言外,其他任何语言编写的程序都不能直接在计算机上执行,需要先对它们进行适当的变换,而这个任务就是由语言处理程序承担。计算机语言包括:1、机器语言2、汇编语言3、高级语言:Basic语言、Pascal语言、C语言、Java语言等。(3)数据库管理系统数据库系统:按数据模型的不同分为三种类型:层次型、网状型、关系型。目前比较流行的数据库系统有FoxPro、Oracle、SQL等。\n应用软件应用软件是在计算机硬件和系统软件的支持下,为解决各类专业和实际问题而设计开发的一类软件。如Office、WPS等文字处理、电子表格、多媒体制作工具、各种工程设计和数学计算软件、模拟过程、辅助设计和管理程序等。\n计算机病毒定义:破坏计算机功能或者毁坏数据、影响计算机使用,并能自我复制的一组计算机指令或者程序代码。特征:传染性、潜伏性、隐蔽性、破坏性分类:传染途径:按寄生方式分为:引导型病毒、文件型病毒、复合型病毒按破坏情况分类:良性病毒、恶性病毒1、光盘/U盘传染2、机器传染3、网络传染\n真题练习\n真题练习\n第二节计算机网络知识\n网络组成1、通信主体:服务器和工作站2、通信设备:传输介质、网络设备3、通信协议:通常是TCP/IP\n网络分类按传输距离分:按网络结构分:1、局域网(LAN)2、城域网(MAN)3、广域网(WAN)1、总线型2、星型3、环型4、树型\n网络拓扑结构\nOSI网络协议的层次国际标准化组织(ISO)提出的“开放系统互连模型(OSI)”是计算机网络通信的基本协议。该协议分为七层。如下表:\n第三节数据编码和进制转换\n编码在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示1和0),例如,像a、b、c、d这样的52个字母(包括大写)、以及0、1等数字还有一些常用的符号(例如*、#、@等)在计算机中存储时也要使用二进制数来表示,而具体用哪些二进制数字表示哪个符号,当然每个人都可以约定自己的一套(这就叫编码).\nASCII编码如果要想互相通信而不造成混乱,那么大家就必须使用相同的编码规则,于是美国有关的标准化组织就出台了ASCII编码,统一规定了常用符号用哪些二进制数来表示。ASCII:AmericanStandardCodeforInformationInterchange\n标准ASCII码标准ASCII码也叫基础ASCII码,使用7位二进制数来表示所有的大写和小写字母,数字0到9、标点符号,以及在美式英语中使用的特殊控制字符。其中:0~31及127(共33个)是控制字符或通信专用字符(其余为可显示字符),如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(响铃)等;通信专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;ASCII值为8、9、10和13分别转换为退格、制表、换行和回车字符。它们并没有特定的图形显示,但会依不同的应用程序,而对文本显示有不同的影响。32~126(共95个)是字符(32是空格),其中48~57为0到9十个阿拉伯数字65~90为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。\n进制进制是一种记数方式,故亦称进位记数法,可使用数字符号的数目称为基数或底数,基数为n,即可称n进位制,简称n进制。现在最常用的是十进制,通常使用10个阿拉伯数字0-9进行记数。计算机是信息处理的工具,任何信息必须转换成二进制形式数据后才能由计算机进行处理,存储和传输。\n常见进制十进制:日常计数二进制:它由两个基本数字0,1组成,二进制数运算规律是逢二进一。八进制:八进制有数码0、1、2、3、4、5、6、7,并且每个数码正好对应三位二进制数,所以八进制能很好地反映二进制。16进制:十六进制数由十六个字符0~9以及A,B,C,D,E,F组成。\n位权在数制中,各位数字所表示值的大小不仅与该数字本身的大小有关,还与该数字所在的位置有关,我们称这关系为数的位权。一个十进制数110,其中百位上的1表示1个10^2,既100,十位的1表示1个10^1,即10,个位的0表示0个10^0,即0。一个二进制数110,其中高位的1表示1个2^2,即4,低位的1表示1个2^1,即2,最低位的0表示0个2^0,即0。一个十六进制数110,其中高位的1表示1个16^2,即256,低位的1表示1个16^1,即16,最低位的0表示0个16^0,即0。\n进制转换1、R进制转换为十进制基数为R的数字,只要将各位数字与它的权相乘,其积相加,和数就是十进制数:(xp…x0.x-1…x-k)R=()10例:1101101.01012=1×2°+0×21+1×22+1×23十0×24+1×25+1×26+0×2-1+1×2-2+0×2-3+1×2-4=109.3125当从R进制转换到十进制时,可以把小数点作为起点,分别向左右两边进行,即对其整数部分和小数部分分别转换。对于二进制来说,只要把数位是1的那些位的权值相加,其和就是等效的十进制数。\n2、十进制转换为R进制+进制整数转换成R进制的整数,可用十进制数连续地除以R,其余数即为R系统的各位系数。此方法称之除R取余法。例如:将5710转换为二进制数十进制小数转换成R进制时,可连续地乘以R,直到小数部分为0,或达到所要求的精度为止(小数部分可能永不为零),得到的整数即组成R进制的小数部分,此法称为“乘R取整”例:将0.312510转换成二进制数0.3125×2=0.6250.625×2=1.250.25×2=0.50.5×2=1.0将此数分成整数与小数两部分分别转换,然后再拼接起来。\n整数\n小数\n二、八、十六进制的相互转换即每位八进制数相当于三位二进制数,每位十六进制数相当于四位二进制数。在转换时,位组划分是以小数点为中心向左右两边延伸,中间的0不能省略,两头不够时可以补0。例如:将1011010.102转换成八进制和十六进制数001011010.1001011010.102=132.48132.401011010.10001011010.102=5A.8165A.8将十六进制数F7.28变为二进制数F7.28F7.2816=11110111.00101211110111.00101000将八进制数25.63转换为二进制数25.6325.638=10101.110011210101.110011\n二进制与八进制\n二进制与十六进制\n二进制度可以和八与十六进制直接互相转化请同学们仔细观察1967=(7AF)16=(11110101111)2=(11110101111)2=(3657)8那么在做这类运算的时候我们可以抓住上面的特点进行运算,这样可以大大减少我们的运算量\n原码,反码和补码相关概念1、机器数一个数在计算机中的二进制表示形式,叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号,正数为0,负数为1.比如,十进制中的数+3,计算机字长为8位,转换成二进制就是00000011。如果是-3,就是10000011。那么,这里的00000011和10000011就是机器数。2、真值因为第一位是符号位,所以机器数的形式值就不等于真正的数值。例如上面的有符号数10000011,其最高位1代表负,其真正数值是-3而不是形式值131(10000011转换成十进制等于131)。所以,为区别起见,将带符号位的机器数对应的真正数值称为机器数的真值。例:00000001的真值=+0000001=+1,10000001的真值=–0000001=–1\n原码,反码和补码原码原码就是符号位加上真值的绝对值,即用第一位表示符号,其余位表示值.比如如果是8位二进制:[+1]原=00000001[-1]原=10000001第一位是符号位.因为第一位是符号位,所以8位二进制数的取值范围就是:[11111111,01111111]即[-127,127]原码是人脑最容易理解和计算的表示方式.\n原码,反码和补码反码反码的表示方法是:正数的反码是其本身负数的反码是在其原码的基础上,符号位不变,其余各个位取反.[+1]=[00000001]原=[00000001]反[-1]=[10000001]原=[11111110]反可见如果一个反码表示的是负数,人脑无法直观的看出来它的数值.通常要将其转换成原码再计算.\n原码,反码和补码补码补码的表示方法是:正数的补码就是其本身负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+1.(即在反码的基础上+1)[+1]=[00000001]原=[00000001]反=[00000001]补[-1]=[10000001]原=[11111110]反=[11111111]补对于负数,补码表示方式也是人脑无法直观看出其数值的.通常也需要转换成原码在计算其数值.\n真题练习\n第四节数据结构\n二叉树二叉树是每个节点最多有两个子树的有序树。二叉树是递归定义的,其结点有左右子树之分,逻辑上二叉树有五种基本形态:(1)空二叉树——如图(a);(2)只有一个根结点的二叉树——如图(b);(3)只有左子树——如图(c);(4)只有右子树——如图(d);(5)完全二叉树——如图(e)\n二叉树重要概念(1)完全二叉树——若设二叉树的高度为h,除第h层外,其它各层(1~h-1)的结点数都达到最大个数,第h层有叶子结点,并且叶子结点都是从左到右依次排布,这就是完全二叉树。(2)满二叉树——除了叶结点外每一个结点都有左右子叶且叶子结点都处在最底层的二叉树。(3)深度——二叉树的层数,就是深度。(4)度数——二叉树结点的度数指该结点所含子树的个数\n特殊形态\n二叉树性质1在非空二叉树中,第i层的结点总数不超过2i-1(i≥1)。性质2深度为k的二叉树至多有2k-1个结点(k≥1)。性质2对于任意一棵二叉树,如果其叶结点数为N0,而度数为2的结点总数为N2,则N0=N2+1;性质4具有n个结点的完全二叉树的深度为:\n前序遍历前序遍历也叫先根遍历,首先访问根结点然后遍历左子树,最后遍历右子树。在遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。\n中序遍历中序遍历也叫做中根遍历,可记做左根右。首先遍历左子树,然后访问根结点,最后遍历右子树。在遍历左、右子树时,仍然先遍历左子树,再访问根结点,最后遍历右子树\n后序遍历后序遍历也叫做后根遍历、后序周游,可记做左右根\n栈定义:栈是限定仅在表头进行插入和删除操作的线性表允许进行插入或删除的一端叫栈顶(top)不允许进行插入或删除的一端叫栈底(bottom)不含元素的栈叫空栈往栈中存入元素叫入栈从栈中输出元素叫出栈特点:先进后出(或后进先出)\n真题练习\nPascal基础初始Pascal语言赋值语句与输入输出语句常见的数据类型算术表达式与运算符简单的if分支结构if嵌套与case语句For循环While循环与repeat-until循环\nPascal语言概述Pascal是一种计算机通用的高级程序设计语言。它是瑞士苏黎世联邦工业大学的N.沃思(NiklausWirth)教授于1968年设计完成的,1971年正式发表。为纪念法国数学家Pascal,把此高级语言命名为Pascal语言。其主要特点有:严格的结构化形式;丰富完备的数据类型;运行效率高;查错能力强。\n第一个Pascal程序\nPascal程序组成1.一个PASCAL程序由程序首部和程序体两部分组成。程序首部以分号结束,程序体以圆点结束。2.程序首部包括三项内容,其顺序是:(1)Program:Pascal程序标志,写在程序的开头。(2)程序名:必须由英文字母开头,由作者自行定义。(3)参数表:由INPUT,OUTPUT组成,表示输入、输出文件。\n程序体程序体是程序的主体,也称“分程序”。程序体由说明部分和语句部分(执行部分)组成。说明部分:常量说明、变量说明、类型说明、函数说明、过程说明等,分别以分号结尾。语句部分是程序的执行部分,以BEGIN开始,END.结尾,用来描述程序所执行的算法和操作。中间的每一语句均须以分号结尾。语句部分中,变量赋值用:=,而不是=,输出用WRITE,而不是用PRINT。注释语句:注释用{}或(**)。\n常量在程序运行过程中,其值不能改变的量成为常量。如:123,‘abc’等。字符常量一个常量可以直接用字面形式表示(成为直接常量,如124,56),也可以用一个标识符来代表一个常量,称为“符号常量”,但是符号常量必须在程序的说明部分定义,也就是先定义,后使用。定义符号常量的一般格式:CONST<标识符号>=<常量>Eg:CONSTPI=3.14;\n在本程序中pi和zero作为符号常量,分别代表实数3.14159和整数0。也就是说,常量说明部分既定义了常量名及其值,又隐含定义了常量的类型。\n关于符号常量,应注意下列几点:⑴符号常量一经定义,在程序的执行部分就只能使用该常量标识符,而不能修改其值。⑵使用符号常量比直接用数值更能体现"见名知义"的原则,也便于修改参数,故一个较好的程序中,应尽量使用符号常量,在执行部分基本上不出现直接常量。\n变量变量代表了一个存储单元,其中的值是可变的,即在程序运行过程中,其值可以改变的量,故称为变量。在程序中若要使用变量,变量的名称及类型在程序的变量说明部分加以定义,变量的值则在程序的执行部分中才能赋给。变量说明的一般格式:VAR <变量标识符>[,<变量标识符>]:<类型>;(中括号内部分表示可省)\n变量三个要素变量名变量类型变量值变量名应遵循自定义标识符的命名规则,自定义标识符必须以字母或下划线"_"开头,后面的字符可以是字母或数字。标识符长度不超过63个字符。常量是有类型的数据,变量在某一固定时刻用来存放一个常量,因此也应有相应的类型。如整型变量用来存放整数,实型变量用来存放实数。\n变量赋值1、赋值语句的格式变量名:=表达式;(其中“:=”称为赋值号。)2、执行过程计算机先计算赋值号右边表达式的值,然后将表达式的值赋给变量名代表的变量。如:A:=(9*8)-(2-1);B:=B+1;\n算术表达式⑴算术表达式的定义pascal语言中的算术表达式是由符合pascal语法规定的运算对象(包括常量、变量、函数)、算术运算符、圆括号组成的有意义的式子。如:A+3.14159*5/8.4-Abs(-1123)\n算术运算符常用的有以下6个算术运算符:①+(加)②-(减)③*(乘)④/(实数除)得到结果为实型.如5.0/2.0=2.5,5/2=2.5,4/2=2.0而不等于2。⑤DIV(整除)DIV它要求除数和被除数均为整型,结果也为整型。如10DIV2=5,10DIV3=3,5DIV10=0.-15DIV4=-3。DIV运算只取商的整数部分,参与DIV运算的两个对象不能为实型。⑥mod(求余),也只能用于整数运算,结果为整数。例如:10mod4=2,-17mod4=-1,4mod(-3)=1,-4mod3=-1,即amodb=a-(adivb)*b。\n运算优先顺序如果一个表达式里出现两个或两个以上的运算符,则必须规定它们的运算次序。pascal规定:①表达式中相同优先级的运算符,按从左到右顺序计算;②表达式中不同优先级的运算符,按从高到低顺序计算;③括号优先级最高,从内到外逐层降低;在算术运算中运算符的优先顺序与数学上的四则运算一致,即"先乘除后加减"(注:"MOD"、"DIV"运算的优先级与"*"、"/"相同)。\n关系表达式1、什么是关系表达式   用小括号、>、<、>=、<=、=、<>将两个算术表达式连接起来的式子就称为关系表达式(比较式)。   如:3+7>8,x+y<10,2*7<=13等都是关系表达式。\n关系表达式的值很显然,前面个关系表达式中第一个是正确的,第三个是错误的,而第二个表达式可能是对的,也可能是错的。所以我们很容易发现,这些表达式的值是"对"的或"不对"的(或者说,是"真"的或"假"的),即关系表达式的值为布尔值。表示该比较式两端式子的大小关系是否成立。如3+2>6是错的,故它的值为FALSE。同样,45>=32是对的,故该表达式的值为true。\n布尔运算及布尔表达式为了表示更复杂的命题,Pascal还引入三种逻辑运算符:not、and、or。它们分别相当于数学上的“非”、“且”和“或”的意义。xor:“异或”,如果两个表达式同时为True或同时为False,则结果为False;否则为True这三个运算符的运算对象为布尔量,其中not为单目运算,只有一个运算对象,and与or为双目运算,有两个运算对象。它们的运算真值表如下:\n布尔(逻辑)运算真值表abNotaaandbaorbaxorbfalsefalsetruefalsefalsefalsefalsetruetruefalseturetruetruefalsefalsefalsetruetruetruetruefalsetruetruefalse\n输入语句输入语句也叫读语句,在程序中变量获得一个确定的值,固然可以用赋值语句,但是如果需要赋值的变量较多,或变量的值经常变化,使用输入语句将更为方便。读语句是在程序运行时由用户给变量提供数据的一种很灵活的输入动作。\n输入语句格式读语句的一般格式:read(<变量名表>);readln[(<变量名表>)];其中变量名表是用逗号隔开的若干个变量名组成的。功能:从标准输入文件(即INPUT,一般对应着键盘)中读入数据,并依次赋给相应的变量。\n\nread语句与readlnread语句是一个接一个地读数据,在执行完本Read语句(读完本语句中变量所需的数据)后,下一个读语句接着从该数据输入行中继续读数据,也就是说,不换行。Readln则不同,在读完本Readln语句中变量所需的数据后,该数据行中剩余的数据多余无用,或者说,在读完本Readln语句中变量所需数据后,一定要读到一个回车,否则多余的数据无用。read后一定要有参数表,而readln可以不带参数表,即可以没有任何输入项,只是等待读入一个换行符(回车)。经常用于暂停程序的运行,直到输入一个回车。\n说明:①read和readln是标准过程名,它们是标准标识符。②执行到read或readln语句时,系统处于等待状态,等待用户从键盘上输入数据,系统根据变量的数据类型的语法要求判断输入的字符是否合法。如执行read(a)语句,a是整型变量,则输入的字符为数字字符时是合法的,当输入结束时,则自动将刚接受的一串数字字符转换为整数赋给变量a。③在输入数值型(整型或实型)数据时,数据间要用空格或回车分隔开各个数据,输入足够个数的数据,否则仍要继续等待输入,但最后一定要有回车,表示该输入行结束,直到数据足够,该读语句执行结束,程序继续运行。\n输出语句输出语句的作用是将程序运算的结果输出到屏幕或打印机等输出设备。通常指输出到屏幕。输出语句的两种格式1、write语句格式Write(表达式1,表达式2,……);如:write(1,2,3,4);write('MynameisLiping'); 2、writeln语句格式:writeln(表达式1,表达式2,……)\n输出语句的功能计算机执行到某一输出语句时,先计算出输出语句中的每个表达式的值,并将每一个表达式的值一个接一个地输出到屏幕上。Write语句与writeln语句格式上都相似,但它们在功能上有所不同,两个语句的区别在于,write语句将其后括号中的表达式一个接一个输出后,没有换行。而writeln语句则在输出各个表达式的值后换行。\n\n顺序结构程序设计到目前为止,我们可以用读、写语句和赋值语句编写一些简单的程序。通过阅读这些程序,可以逐步熟悉pascal程序的编写方法和应遵循的规则,为以后各章的学习打基础。\n例题试编一程序,输入一梯形的上底、下底、高,求该梯形的面积。分析:整个程序分为三段:输入、计算、输出。程序中用a,b,h三个变量分别存放梯形的上、下底与高,S存放面积。要而使用这些变量都要先说明,程序的执行部分中先输入上、下底与高,接着求面积S,最后输出结果S。\n例题源程序如下:programTixing;{程序首部}vara,b,h,s:real;{程序说明部分} beginwrite('Inputa,b,h:');readln(a,b,h);{程序执行部分}s:=(a+b)*h/2;write('s=',s); end.\n简单的分支结构程序设计IFCASEFOR\nIF语句1、格式Ⅰ、IF<布尔表达式>THEN语句;Ⅱ、IF<布尔表达式>THEN语句1ELSE语句2;   (注意Ⅱ型IF语句中语句1后无";"号)2、功能Ⅰ、执行IF语句时,先计算<布尔表达式>的值,若为TRUE则执行语句,否则不执行任何操作。Ⅱ、执行IF语句时,先计算<布尔表达式>的值,若为TRUE则执行语句1,否则执行语句2;\n示例Programex4;Vara:integer;BeginWrite('a=');readln(a);If(amod2=0)thenwriteln('yes')Elsewriteln('no');Readln;End.例:输入一个整数a,判断是否为偶数。(是输出"yes"否则输出"no")。\n示例22)超市里卖电池,每个电池8元钱,若数量超过10个,则可打75折。Programex4_3;VarNum:integer;Price,Total:real;BeginWrite('Num=');readln(Num);Price:=8;IfNum>10thenPrice:=Price*0.75;Total:=Num*Price;Writeln('Total=',Total:0:2);Readln;End.\nIF语句的嵌套在if语句中,如果then子句或else子句仍是一个if语句,则称为if语句的嵌套。分析:根据输入的x值,先分成x>0与x≤0两种情况,然后对于情况x≤0,再区分x是小于0,还是等于0。\n源程序如下:programex;varx:integer;y:integer;beginwrtie('Inputx:');readln(x);ifx>0theny:=1{x>0时,y的值为1}else{x≤0时}ifx=0theny:=0elsey:=-1;writeln('x=',x,'y=',y);end.\nfor循环语句for语句的一般格式1.for<控制变量>:=<表达式1>to<表达式2>do<语句>; 2.for<控制变量>:=<表达式1>downto<表达式2>do<语句>;其中for、to、downto和do是Pascal保留字。表达式1与表达式2的值也称为初值和终值。\nFor语句执行过程For语句执行过程①先将初值赋给左边的变量(称为循环控制变量);   ②判断循环控制变量的值是否已"超过"终值,如已超过,则跳到步骤⑥;   ③如果末超过终值,则执行do后面的那个语句(称为循环体);   ④循环变量递增(对to)或递减(对downto)1;   ⑤返回步骤②;   ⑥循环结束,执行for循环下面的一个语句。\n示例例1.输出1-100之间的所有偶数。vari:integer;beginfori:=1to100doifimod2=0thenwrite(i);end.\n示例例2.求N!=1*2*3*…*N,这里N不大于10。   分析:程序要先输入N,然后从1累乘到N。   程序如下:varn,i:integer;{i为循环变量}S:longint;{s作为累乘器}beginwrite('Entern=');readln(n);{输入n}s:=1;fori:=2tondo{从2到n累乘到s中}s:=s*i;writeln(n,'!=',s);{输出n!的值}end.
查看更多

相关文章

您可能关注的文档