高一第一学期信息技术竞赛辅导总结
信息技术高一第一学期学科竞赛辅导总结
连州中学
201*年1月15日
由教育部基础教育一司、二司指导,中央电化教育管主办的第12届全国中小学电脑制作活动将于201*年3月底举行。全国中小学电脑制作活动是丰富中小学生学习生活,培养创新精神和实践能力,推进中小学普及信息技术教育的重要措施,也是各地中小学信息技术教育成果的集中展示。广东省教育厅下发的《关于举办第十二届全国中小学电脑制作活动》文件的要求,为发挥信息技术教育优势,提高学生综合素质,丰富第二课堂教学活动,培养创新人才,全面推进素质教育,结合我校实际情况,为进一步提高学生的操作能力和动手能力,切实提高学生学以致用的能力和水平,提高我校乃至我市信息技术在各学科中的影响,本人从201*年9月中旬开始组织学生参与本次竞赛培训活动,到201*年12月28日为止,现将三个多月的辅导工作情况总结如下:
第一,以信息技术课为核心,课外活动相结合,在辅导工作中,本人担任比赛信息获取、指导学生解决技术问题和协助学生整理作品准备上交的工作。上课之前进行资料收集,突出以教材为本教学研究的针对性、实践性和实效性,通过系列辅导和学生实践活动,注重对学生成长过程的培养,全面提高学生的操作能力和动手能力。对学生的个别差异有清楚的认识,使教学更符合学生的需要,达到因材施教的目的。
第二,根据学生的特长确定参赛项目。所谓"要想在游戏中取胜,就必须熟悉游戏规则"。另外,揣摩历届获奖作品,师生在共同观看历届获奖作品的时候结合历届的活动主题来思考,讨论为什么该作品能获奖,并从中得到启发。我一方面可以让学生自行选择参赛的项目,一方面明确规定哪些学生参加哪个项目,做到学校内各参赛项目都有学生参加。
第三,教学辅导工作认真做到计划、进度、教学内容、重点要求四个统一。平均每月集中三次,研究某一个参赛项目的具体实施情况,协调辅导进度、反省过往工作中的不足和缺陷等内容。
第四,辅导过程中存在的问题。电脑设备较陈旧,运行设计软件较慢,一定程度影响了学生的积极性。学生的信息技术基础和技能较薄弱,我校是山区学校,信息技术在本地的教育中还是个薄弱环节,许多初中学校开设了信息课,但由于信息技术教师的缺失或电脑设备的不足,所以很多学校的信息技术课都很少正常上课。
本学期的竞赛辅导虽然圆满完成,但是存在的问题也需要进一步解决,希望在下个学期的辅导工作中,能获得学校的大力支持更新设备。另外,有针对性的加强部分学生的实践操作,提供更多的素材,让学生加强合作学习,尽快提高设计能力和操作水平,积极参赛,为我校取得优异成绩作出贡献。
扩展阅读:信息技术竞赛辅导
信息学奥林匹克竞赛辅导
信息技术竞赛辅导
计算机基础知识
第一章计算机基础常识第二章操作系统简介第三章计算机网络
第四章计算机信息安全基础知识
Pascal语言
第一章开始编写pascal语言程序第二章Pascal语言基础知识第三章顺序结构程序设计第四章选择结构程序设计第五章循环结构程序设计第六章数组与字符串第七章函数和过程第八章子界与枚举类型第九章集合类型第十章记录与文件类型第十一章指针第十二章程序调试
常用算法与策略
第一章算法的概念第二章递归第三章回溯第四章排序第五章查找第六章穷举策略第七章贪心算法第八章分治策略
数据结构
第一章什么是数据结构第二章线性表第三章栈第四章队第五章树第六章图
动态规划
第一章什么叫动态规划第二章用动态规划解题第三章典型例题与习题
第1页共277页信息学奥林匹克竞赛辅导
第四章动态规划的递归函数法第五章动态规划分类1
数学知识及相关算法
第一章有关数论的算法第二章高精度计算第三章排列与组合第四章计算几何
第五章其它数学知识及算法
图论算法
第一章最小生成树第二章最短路径第三章拓扑排序(AOV网)第四章关键路径(AOE网)第五章网络流第六章图匹配
搜索算法与优化
第一章双向广度优先搜索第二章分支定界法第三章A*算法
青少年信息学奥林匹克竞赛情况简介
信息学奥林匹克竞赛是一项旨在推动计算机普及的学科竞赛活动,重在培养学生能力,使得有潜质有才华的学生在竞赛活动中锻炼和发展。近年来,信息学竞赛活动组织逐步趋于规范和完善,基本上形成了“地级市省(直辖市)全国国际”四级相互接轨的竞赛网络。现把有关赛事情况简介如下:
全国青少年信息学(计算机)奥林匹克分区联赛:
在举办1995年NOI活动之前,为了扩大普及的面,并考虑到多数省、直辖市、自治区已经开展了多年省级竞赛,举办了首届全国青少年信息学(计算机)奥林匹克分区联赛。考虑到不同年级学生的知识层次,也为了鼓励更多的学生积极参与,竞赛设提高组、普及组,并分初、复赛进行,这样可以形成一个梯队,确保每年的竞赛活动有比较广泛扎实的基础。
从1995年起,至201*年共举办了七届全国青少年信息学奥林匹克分区联赛,每年举办一次,有选手个人奖项(省、国家级)、选手等级证书、优秀参赛学校奖项。广东省青少年信息学(计算机)奥林匹克决赛(简称GDOI):
省级信息学奥赛是一个水平较高的、有较大影响力的学科竞赛。由各市组织代表队参赛,参赛名额实行动态分配制度,每年举办一次。从1984年起广东省奥林匹克竞赛活动得到了蓬勃发展。奖项有个人一、二、三等奖,女选手第一、二、三名,奖励学校团体总分1-8名、市团体总分1-8名。
全国青少年信息学(计算机)奥林匹克竞赛(简称NOI):
第2页共277页信息学奥林匹克竞赛辅导
由中国算机学会主办的、并与国际信息学奥林匹克接轨的一项全国性青少年学科竞赛活动。1984年举办首届全国计算机竞赛。由各省市组织参赛,每年举办一次。奖项有个人一、二、三等奖,女选手第一、二、三名,各省队团体总分名次排队。国际青少年信息学(计算机)奥林匹克竞赛(简称IOI):每年举办一次,由各参赛国家组队参赛。
全国青少年信息学(计算机)奥林匹克分区联赛竞赛大纲
一、初赛内容与要求:(#表示普及组不涉及,以下同)
计基*诞生与发展*特点*在现代社会中的应用算本*计算机系统的基本组成机常*计算机的工作原理#*计算机中的数的表示的识*计算机信息安全基础知识*计算机网络计基*MSDOS与Windows的使用基础算本*常用输入/输出设备的种类、功能、使用机操*汉字输入/输出方法的作*常用计算机屏示信息程序的表示*自然语言的描述*PASCAL或BASIC语言*简单数据的类型数据结构的类型程序设计基本知识程序设计*构造类型:数组、字符串*了解基本数据结构(线性表、队列与栈)*结构化程序的基本概念*阅读理解程序的基本能力*具有完成下列过程的能力:现实世界(指知识范畴的问题)>信息世界(表达解法)>计算机世界(将解法用计算机能实现的数据结构和算法描述出来)*简单搜索*字串处理*排序*查找基本算法处理*统计*分类*合并*简单的回溯算法*简单的递归算法二、复赛内容与要求:
在初赛的内容上增加以下内容(201*年修改稿):
第3页共277页信息学奥林匹克竞赛辅导
计算机*操作系统的使用知识软件*编程语言的使用数据结构*结构类型中的记录类型*指针类型*文件(提高组必须会使用文本文件输入)*链表*树*图#程序设计算法处理*程序设计能力*设计测试数据的能力*运行时间和占用空间的估算能力#*排列组合的应用*进一步加深回溯算法、递归算法*分治法*搜索算法:宽度、深度优先算法*表达式处理:计算、展开、化简等#*动态规划#三、初赛试题类型:注:试题语言两者选一
(程序设计语言:基本BASIC或TURBOPASCAL)*判断*填空*完善程序*读程序写运行结果*问答四、推荐读物:
*分区联赛辅导丛书*学生计算机世界报及少年电世界杂志
第一节计算机的基本常识
1.1计算机的产生和发展1.2计算机的系统及工作原理1.3计算机中有关数、编码的基本常识1.4原码、反码与补码1.5逻辑运算1.1计算机的产生与发展
计算机的产生是20世纪最重要的科学技术大事件之一。世界上的第一台计算机(ENIAC)于1946年诞生在美国宾夕法尼亚大学,到目前为止,计算机的发展大致经历了四代:
第4页共277页信息学奥林匹克竞赛辅导
①第一代电子管计算机,始于1946年,结构上以CPU为中心,使用计算机语言,速度慢,存储量小,主要用于数值计算;
②第二代晶体管计算机,始于1958年,结构上以存储器为中心,使用高级语言,应用范围扩大到数据处理和工业控制;
③第三代中小规模集成电路计算机,始于1964年,结构上仍以存储器为中心,增加了多种外部设备,软件得到了一定的发展,文字图象处理功能加强;
④第四代大规模和超大规模集成电路计算机,始于1971年,应用更广泛,很多核心部件可集成在一个或多个芯片上,从而出现了微型计算机。
我国从1956年开始电子计算机的科研和教学工作,1983年研制成功1亿/秒运算速度的“银河”巨型计算机,1992年11月研制成功10亿/秒运算速度的“银河II”巨型计算机,1997年研制了每秒130亿运算速度的“银河III”巨型计算机。
目前计算机的发展向微型化和巨型化、多媒体化和网络化方向发展。计算机的通信产业已经成为新型的高科技产业。计算机网络的出现,改变了人们的工作方式、学习方式、思维方式和生活方式。
1.2计算机系统及工作原理1.计算机的系统组成
计算机系统由软件和硬件两部分组成。硬件即构成计算机的电子元器件;软件即程序和有关文档资料。
(1)计算机的主要硬件
输入设备:键盘、鼠标、扫描仪等。输出设备:显示器、打印机、绘图仪等。
中央处理器(CPU):包括控制器和运算器运算器,可以进行算术运算和逻辑运算;控制器是计算机的指挥系统,它的操作过程是取指令分析指令执行指令。存储器:具有记忆功能的物理器件,用于存储信息。存储器分为内存和外存①内存是半导体存储器(主存):
它分为只读存储器(ROM)和随机存储器(RAM)和高速缓冲存储器(Cache);
ROM:只能读,不能用普通方法写入,通常由厂家生产时写入,写入后数据不容易丢失,也可以用特殊方法(如紫外线擦除(EPROM)或电擦除(EEPROM_)存储器);RAM:可读可写,断电后内容全部丢失;
Cache:因为CPU读写RAM的时间需要等待,为了减少等待时间,在RAM和CPU间需要设置高速缓存Cache,断电后其内容丢失。
②外存:磁性存储器软盘和硬盘;光电存储器光盘,它们可以作为永久存器;③存储器的两个重要技术指标:存取速度和存储容量。内存的存取速度最快(与CPU速度相匹配),软盘存取速度最慢。存储容量是指存储的信息量,它用字节(Byte)作为基本单位,1字节用8位二进制数表示,1KB=1024B,1MB=1024KB,lGB=1024MB(2)计算机的软件
计算机的软件主要分为系统软件和应用软件两类:
第5页共277页信息学奥林匹克竞赛辅导
①系统软件:为了使用和管理计算机的软件,主要有操作系统软件如,WINDOWS95/98/201*/NT4.0、DOS6.0、UNIX等;WINDOWS95/98/201*/NT4.0是多任务可视化图形界面,而DOS是字符命令形式的单任务的操作系统。
②应用软件:为了某个应用目的而编写的软件,主要有辅助教学软件(CAI)、辅助设计软件(CAD)、文字处理软件、工具软件以及其他的应用软件。2.计算机的工作原理
到目前为止,电子计算机的工作原理均采用冯.若依曼的存储程序方式,即把程序存储在计算机内,由计算机自动存取指令(计算机可执行的命令=操作码+操作数)并执行它。工作原理图如下:
1.3计算机中有关数及编码的知识1.计算机是智能化的电器设备
计算机就其本身来说是一个电器设备,为了能够快速存储、处理、传递信息,其内部采用了大量的电子元件,在这些电子元件中,电路的通和断、电压高低,这两种状态最容易实现,也最稳定、也最容易实现对电路本身的控制。我们将计算机所能表示这样的状态,用0,1来表示、即用二进制数表示计算机内部的所有运算和操作。2.二进制数的运算法则
二进制数运算非常简单,计算机很容易实现,其主要法则是:0+0=00+1=11+0=11+1=00*0=00*1=01*0=01*1=1
由于运算简单,电器元件容易实现,所以计算机内部都用二进制编码进行数据的传送和计算。3.十进制与二进制、八进制、十六进制数之间的相互转换(1)数的进制与基数
计数的进制不同,则它们的基数也不相同,如表1-1所示。进制二进制八进制十六进制(2)数的权
不同进制的数,基数不同,每位上代表的值的大小(权)也不相同。
第6页共277页
基数0,10,1,2,3,4,5,6,70,1,2,...,9,A,B,C,D,E,F特点逢二进一逢八进一逢十六进一信息学奥林匹克竞赛辅导
如:(219)10=2*10+1*10+9*10(11010)2=1*2+1*2+0*2+1*2+1*2(273)8=2*8+7*8+3*8
231043210210
(27AF)16=2*16+7*16+10*16+15*16
210
(3)十进制数转换任意进制
1)将十进制整数除以所定的进制数,取余逆序。(39)10=(100111)2(245)10=(365)8
2)将十进制小数的小数部分乘以进制数取整,作为转换后的小数部分,直到为零或精确到小数点后几位。
如:(0.35)10=(0.01011)2(0.125)10=(0.001)2(4)任意进制的数转换十进制按权值展开:
如:(219)10=2*10+1*10+9*10
(11010)2=1*2+1*2+0*2+1*2+1*2=26
43210210(273)8=2*8+7*8+3*8=187
210(7AF)16=7*16+10*16+15*16=1867
210
4.定点数与浮点数
定点数是指数据中的小数点位置固定不变。由于它受到字长范围的限制,所能表示的数的范围有限,计算结果容易溢出。
浮点数的形式可写成:N=M*2(其中M代表尾数,E代表阶码)其形式如下:阶码尾数(包括符号位)E
5.ASCII编码由于计算机是电器设备,计算机内部用二进制数,这样对于从外部输入给计算机的所有信息必须用二进制数表示,并且对于各种命令、字符等都需要转换二进制数,这样就牵涉到信息符号转换成二进制数所采用的编码的问题,国际上统一用美国标准信息编码(ASCII)它可用7位二进制数表示,存储时用一个字节,它的最高位为0。因此基本的ASCII字符集有128个如:0-9:48-57:00110000-...A-Z:65-90:01000001-...a-z:97-122:01100000-...
6.汉字编码与汉字输入法
第7页共277页信息学奥林匹克竞赛辅导
(1)机内码
ASCII码不能表示汉字,因此要有汉字信息交换码,我国国家标准是gb2312,它也被称作国际码。它由两个字节组成,两个字节的最高位都为1。gb2312共收纳6763个汉字,其中,一级汉字(常用字)3755个按汉字拼音字母顺序排列,二级汉字3008个按部首笔画次序排列。(2)汉字输入码(外码)
目前,汉字输入法主要有键盘输入、文字识别和语音识别。键盘输入法是当前汉字输入的主要方法。它大体可以分为:
流水码:如区位码、电报码、通信密码,优点重码律少,缺点难于记忆;音码:以汉语拼音为基准输入汉字,优点是容易掌握,但重码律高;形码:根据汉字的字型进行编码,优点重码少,但不容易掌握;
音形码:将音码和形码结合起来,能减少重码律同时提高汉字输入速度。(3)汉字字模
供计算机输出汉字(显示和打印)用的二进制信息叫汉字字形信息也称字模。通用汉字字模点阵规格有16*16,24*24,32*32,48*48,64*64,每个点在存储器中用一个二进制位((bit)存储,如一个16*16点阵汉字需要32个字节的存储空间。1.4原码、反码与补码
在计算机中,数据是以补码的形式存储的:
在n位的机器数中,最高位为符号位,该位为零表示为正,为1表示为负;其余n-1位为数值位,各位的值可为0或1。当真值为正时:原码、反码、补码数值位完全相同;当真值为负时:
原码的数值位保持原样,
反码的数值位是原码数值位的各位取反,补码则是反码的最低位加一。注意符号位不变。如:若机器数是16位:
十进制数17的原码、反码与补码均为:0000000000010001
十进制数-17的原码、反码与补码分别为:1000000000010001、1111111111101110、11111111111011111.5逻辑运算1.逻辑运算逻辑与:同真则真逻辑或:有真就真逻辑非:你真我假逻辑异或:不同则真2.按位运算
按位与∩:同1则1如10010101∩10110111=10010101按位或∪:有1则1如10010101∪10110111=10110111
第8页共277页信息学奥林匹克竞赛辅导
3.逻辑化简化简定律:
(1)交换律:A+B=B+A,AB=BA
(2)结合律:(A+B)+C=A+(B+C),(AB)C=A(BC)(3)幂等律:AA=A,A+A=A
(4)吸收律:A(A+B)=A,A+(AB)=A
(5)分配律:A(B+C)=AB+AC,A+(BC)=(A+B)(A+C)(6)互补律:A+A=1,AA=0(7)非深入:A+B=AB,AB=A+B
(8)0-1律:A+0=A,A+1=1,A1=A,A0=0
例:化简函数Q=AD+AD+AB+ACEF。这个函数有5个自变量,化简过程如下:Q=AD+AD+AB+ACEF=A+AB+ACEF=A+ACEF=A
练习:求证:(A+B)(A+C)=AB+AC
第二节操作系统
2.1DOS的组成2.2DOS文件和目录2.3DOS命令2.4Windows简介
2.1DOS(DiskOperatingSystem)的组成
MSDOS采用模块结构,它由五部分组成:ROM中的BIOS模块、IO.SYS模块、MSDOS.SYS模块、COMMAND.COM模块和引导程序。
(1)BIOS模块:在PC机主板上有一个ROM芯片,该芯片中存有系统自测试程序,CMOS设置程序和基本输入输出程序(BIOS)。BIOS是一组程序和参表,其中程序部份是可以通过中断方式调用的一组驱动程序,参数给出外设的地址和参数。BIOS是计算机硬件和操作系统之间的接口通过它操作系统管理计算机硬件资源。
(2)IO.SYS模块:IO.SYS是MSDOS和ROMBIOS之间的接口程序。它和RONBIOS一起完成系统设备的管理。
(3)MSDOS.SYS模块:MSDOS.SYS用于实现文件管理,包括文件管理、目录管理、内存管理等功能。它以功能调用的形式实现用户和MSDOS之间的程序级接口。
(4)COMMAND.COM模块:COMMAND.COM的主要功能是负责接收、识别、解释和执行
第9页共277页信息学奥林匹克竞赛辅导
用户从键盘输入的MSDOS命令。
(5)引导程序:引导程序又叫“引导记录”,其作用是检查当前盘上是否有两个系统文件,若有系统文件则把DOS系统从磁盘装人内存。
一张系统盘上应该包含有:引导记录、IO.SYS、MSDOS.SYS和COMMAND.COM等模块。2.2DOS的文件和目录
1)文件概念:文件是指记录在存储介质(如磁盘、光盘)上的一组相关信息的集合。2)文件标识:驱动器号+路径+文件名(1到8各字符)+扩展名(1到3个字符代表文件的类型)3)通配符:*代表从该位置起的一个或多个合法字符;?代表所在位置的任一个合法字符。4)树形目录:DOS采用树形目录结构。由一个根目录和若干层子目录组成。这种目
录结构一是能够解决文件重名问题,即不同的目录可以包含相同的文件名或目录名;二是能够解决文件多而根目录容量有限带来的问题。在查找某个子目录下的一个文件时,要使用目录路径。指定路径有两种方法:绝对路径和相对路径。绝对路径是从根目录开始到文件所在目录的路径。例如要查找UCDOS子目录下的二级子目录DATA下的README.TXT文件,绝对路径为:\UCDOS\DATA。路径中第一个“\”符号代表根目录。相对路径是从当前目录开始到文件所在目录的路径。当前目录指在不特意指定路径情况下DOS命令所处理的目录。例如系统提示符为:“C:\UCDOS\DATA>”,则DATA是当前目录。2.3DOS命令1.内部命令
1)内部命令:当启动DOS系统时,计算机引导程序将系统以及常用的命令处理模块驻留在计算机的内存中,我们称之为内部命令。2)常用的内部命令:(1)目录命令:DIR(显示文件目录)
MD、CD、RD(子目录的建立、进入、删除命令)(2)文件操作命令:
COPY(复制命令)、DEL(删除命令)、REN(更改文件名)TYPE(显示文本文件内容)(3)其他内部命令
DATA、TIME、VER、CLS等3.外部命令
1)外部命令:存储在外存储器上的DOS可执行的文件,这些文件程序所占的存储容量比较大,当用户使用外部命令时,计算机从外存调入内存,当执行完外部命令,就自动从内存中退出。
2)常用的外部命令
(1)磁盘格式化命令:FORMAT盘符[/S)I/V]
其作用,能够清除原盘中所有信息,并将磁盘规范成计算机所能接受的格式,以便有效存储信息。
(2)软盘复制命令:DISKCOPY[盘符1:][盘符2:]
第10页共277页信息学奥林匹克竞赛辅导
其作用,能够进行软盘之间的全盘复制(以磁道方式),不仅可以复制系统文件而且可以复制隐含文件。2.4Windows简介
Windows是一个多任务图形用户界面,该环境可以在基于MS-DOS的计算机上运行,在多任务图形用户环境下,Windows提供了一个基于下拉菜单、屏幕窗口和鼠标的界面,在该环境下运行的应用程序必须进行专门的设计才能发挥这些特征的优点。2.Windows的特点
Windows能够充分发挥计算机的作用,其图形接口能够组织用户程序和文件、同时运行几个用户程序、在文档之间移动和复制信息、在平台上进行应用程序的切换等。为了提高效率,Windows还提供了一些辅助程序,如字处理器、画笔及其他标准应用程序等。Windows具有以下主要特点。(1)图形化的用户界面
Windows提供了一种不同于DOS系统下命令行的工作方式,它通过对窗口、图标、选单、对话框、命令按钮、滚动框等图形符号与画面的操作来实现对计算机的各种操作。(2)标准化的操作界面
在Windows中,所有的操作都是通过窗口中的图形界面进行的。(3)多任务机制和执行性能
在Windows中,平稳的多任务机制可以同时运行多道程序以及执行多项任务,各程序与各任务之间不仅转换容易,而且还可以方便地交换数据。(4)充分利用内存
Winddws利用虚拟内存技术,允许应用程序超过640阳常规内存的运行空间,从而最大限度地利用了计算机系统的所有内存资源,从而使内存较小的微机也能运行大型的应用程序。(5)强大的联网功能
在Windows中,可以简单直观地实现网络的安装、配置、浏览,从而可以更加方便地实现网络管理和资源共享。(6)丰富的多媒体功能
Windows提供大量辅助程序,用以实现文字、图形、图像、声音、视频等多媒体功能,同时还支持其他厂商基于Windows标准开发的各种相应软件。(7)TryType技术
TryType(真实字体)属于内建式比例字体,可以任意平滑放大与缩小。这种字体能使屏幕上显示的效果与实际打印机输出的信息完全一致,这就是所谓的“所见即所得”。[例4]在Windows95中,“任务栏”的作用是____。A)显示系统的所有功能B)只显示当前活动窗口名C)只显示正在后台工作的窗口名D)实现窗口之间的切换解答:在任务栏中,显示了所有打开的程序的图标。本题正确答案为D。
第三节计算机网络常识
第11页共277页信息学奥林匹克竞赛辅导
3.1网络基础知识3.2Internet简介3.1网络基础知识1.网络的概念
计算机网络是将地理位置不同的计算机,用通信链路连接起来,共同遵守一定的协议,以实现计算机软硬件资源共享为目标的通信系统。2.网络的组成
计算机网络由网络硬件和网络软件组成。
网络软件包括网络操作系统、通信软件、通信协议(计算机之间实现数据通信共同遵守的相关规定)。
网络硬件包括网络的拓扑结构、网络服务器、网络工作站、传输介质和设备。3.网络的分类(1)按通信距离分:
局域网(LAN):局限于某个范围(10公里左右)的网络连接情(校园网)。广域网(WAN):跨地区的局域网,Internet是覆盖全球的广域网。(2)按网络的使用目的分:
共享资源网:使用者可分享网络的各种资源(如Internet)。数据处理网:用于数据处理(企业经营管理用的网络)。数据传输网:用于数据的收集、交换和传输(情报检索网络)。(3)按网络的拓扑结构分:
星形网:以一台计算机为中心,以放射状连接若干台计算机。
环形网:传输线路构成一个封闭的环,入网的计算机连到这个环形线路上。总线网:用一条通信线路作主干,入网的计算机通过相应接口连到线路上。4.开放系统互联模型(OSI模型)OSI模型分7层:
各层功能如下:1.物理层
物理层与移动二进制数和维护物理连接有关。
第12页共277页信息学奥林匹克竞赛辅导
2.数据链路层
数据链路层通过帧在一个给定的物理链路传输分组(报文),保持帧的有序以及发现检测到的各种错误,包括传输错误,但是数据链路层只了解在链路另一端的对等实体。数据链路层的地址是为了将网络中一点的数据帧送到另一点。3.网络层
网络层知道每个数据链路的对等进程,并负责在链路间移动分组,把它送到目的地。网络层地址是为了把单一分组从网络的一端送到目的地。4.传输层
传输层注意的是整个网络,该层是第一个端到端层。其对等实体位于分组的最终目的地。传输层依靠网络层经过中间节点移动分组。传输层地址是为了把网络一端进程的完整信息送到最终目的地的对等进程。
5-7.会话层、表示层和应用层提供了如下功能:处理计算机间数据表示的差别。
确保数据在网络传输中不被窃取和泄露,并且确保网络不允许未经授权就访问数据。最高效地使用网络资源通过应用程序及活动同步来管理对话和活动。在网络节点间共享数据。3.2Internet简介
Internet英文直译为“互联网”,中文名为“因特网”。是世界上众多计算机网络的集合起源于20世纪80年代。
1.Internet的IP地址、IP地址类型和主机域名
(1)在Internet网上采用统一的网络协议TCP/IP,与Internet相连的计算机必须具有唯一的主机地址,称IP地址。IP地址采用分段地址方式,使用数字表示;如:207.46.130.14,其中由三个点隔开的四个数是十进制,其大小是0-255,每个数对应一个8位二进制数,所以IP地址用32位二进制位存放站4个字节。
(2)IP地址类型:最初设计互联网络时,为了便于寻址以及层次化构造网络,每个IP地址包括两个标识码(ID),即网络ID和主机ID。同一个物理网络上的所有主机都使用同一个网络ID,网络上的一个主机(包括网络上工作站,服务器和路由器等)有一个主机ID与其对应。IP地址根据网络ID的不同分为5种类型,A类地址、B类地址、C类地址、D类地址和E类地址。A类IP地址
一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”,地址范围从1.0.0.0到126.0.0.0。可用的A类网络有126个,每个网络能容纳1亿多个主机。B类IP地址
一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,地址范围从128.0.0.0到191.255.255.255。可用的B类网络有16382个,每个网络能容纳6万多个主机。C类IP地址
一个C类IP地址由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是
第13页共277页信息学奥林匹克竞赛辅导
“110”。范围从192.0.0.0到223.255.255.255。C类网络可达209万余个,每个网络能容纳254个主机。
D类地址用于多点广播(Multicast)。
D类IP地址第一个字节以“lll0”开始,它是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播(Multicast)中。多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。E类IP地址
以“llll0”开始,为将来使用保留。
全零(“0.0.0.0”)地址对应于当前主机。全“1”的IP地址(“255.255.255.255”)是当前子网的广播地址。
在IP地址3种主要类型里,各保留了3个区域作为私有地址,其地址范围如下:A类地址:10.0.0.0~10.255.255.255B类地址:172.16.0.0~172.31.255.255C类地址:192.168.0.0~192.168.255.255
(3)为了使用方便,在访问Internet上的主机时,通常使用主机域名而不是IP地址,但主机域名和IP地址一一对应,它由圆点分隔的一序列单词组成如“Public.bta.net.cn"。IP地址如同电脑的身份证号码,而域名相当电脑的姓名。
2.Internet的功能
(1)信息浏览(WWW)
WWW(WorldWideWeb),中文名为”万维网“,是基于超文本的、方便用户信息浏览和信息搜索的信息服务系统。用户在浏览器中输入网址即可得到需要的信息。人们常用的浏览器有网景公司的Netscape浏览器和Microsoft公司的InternetExplorer浏览器。网址的输入是使用协议提供的服务+服务器地址(IP地址或主机域名)如http://198.105.232.1;ftp://zsqz.com(2)文件传输(FTP)
FTP(FileTransferProtocol)是Internet的一种标准协议,这一协议使用户能在联网的计算机之间传送文件如上载(UPLOAD把本地计算机上地文件复制到远程计算机上)和下载(DOWNLOAD把远程计算机上的文件复制到本地计算机上)。(3)传送电子邮件(E-mail)
电子邮件地址=用户名+@+主机域名;如:zhangming@yahoo.com(4)电子公告牌(BBS)(5)远程登录(telnet)(6)电子商务等3.TCP/IP参考模型
TCP/IP协议的开发研制人员将Internet分为五个层次,以便于理解,它也称为互联网分层模型或互联网分层参考模型,如下表:应用层(第五层)传输层(第四层)互联网层(第三层)
第14页共277页信息学奥林匹克竞赛辅导
网络接口层(第二层)物理层(第一层)各层简要说明如下:
物理层:对应于网络的基本硬件,这也是Internet物理构成,即我们可以看得见的硬件设备,如PC机、互连网服务器、网络设备等,必须对这些硬件设备的电气特性作一个规范,使这些设备都能够互相连接并兼容使用。
网络接口层:它定义了将数据组成正确帧的规程和在网络中传输帧的规程,帧是指一串数据,它是数据在网络中传输的单位。
互联网层:本层定义了互联网中传输的“信息包”格式,以及从一个用户通过一个或多个路由器到最终目标的""信息包""转发机制。
传输层:为两个用户进程之间建立、管理和拆除可靠而又有效的端到端连接。应用层:它定义了应用程序使用互联网的规程。
第四节计算机信息安全基础知识
4.1计算机网络安全4.2计算机病毒4.1计算机的网络安全
1、不同环境和应用中的网络安全
运行系统安全,即保证信息处理和传输系统的安全。它侧重于保证系统正常运行,避免因为系统的崩溃和损坏而对系统存贮、处理和传输的信息造成破坏和损失,避免由于电磁泄漏,产生信息泄露,干扰他人,受他人干扰。
网络上系统信息的安全。包括用户口令鉴别,用户存取权限控制,数据存取权限、方式控制,安全审计,安全问题跟踪,计算机病毒防治,数据加密。
网络上信息传播安全,即信息传播后果的安全。包括信息过滤等。它侧重于防止和控制非法、有害的信息进行传播后的后果。避免公用网络上大量自由传输的信息失控。
网络上信息内容的安全。它侧重于保护信息的保密性、真实性和完整性。避免攻击者利用系统的安全漏洞进行窃听、冒充、诈骗等有损于合法用户的行为。本质上是保护用户的利益和隐私。
网络安全的特征
2、网络安全应具有以下四个方面的特征:
保密性:信息不泄露给非授权用户、实体或过程,或供其利用的特性。
完整性:数据未经授权不能进行改变的特性。即信息在存储或传输过程中保持不被修改、不被破坏和丢失的特性。
可用性:可被授权实体访问并按需求使用的特性。即当需要时能否存取所需的信息。例如网络环境下拒绝服务、破坏网络和有关系统的正常运行等都属于对可用性的攻击;可控性:对信息的传播及内容具有控制能力。3、主要的网络安全威胁
第15页共277页信息学奥林匹克竞赛辅导
自然灾害、意外事故;计算机犯罪;
人为行为,比如使用不当,安全意识差等;
“黑客”行为:由于黑客的入侵或侵扰,比如非法访问、拒绝服务计算机病毒、非法连接等;
内部泄密;外部泄密;信息丢失;
电子谍报,比如信息流量分析、信息窃取等;信息战;
网络协议中的缺陷,例如TCP/IP协议的安全问题等等。4、黑客常用的信息收集工具
信息收集是突破网络系统的第一步。黑客可以使用下面几种工具来收集所需信息:SNMP协议,用来查阅非安全路由器的路由表,从而了解目标机构网络拓扑的内部细节。TraceRoute程序,得出到达目标主机所经过的网络数和路由器数。
Whois协议,它是一种信息服务,能够提供有关所有DNS域和负责各个域的系统管理员数据。(不过这些数据常常是过时的)。
DNS服务器,可以访问主机的IP地址表和它们对应的主机名。
Finger协议,能够提供特定主机上用户们的详细信息(注册名、电话号码、最后一次注册的时间等)。
Ping实用程序,可以用来确定一个指定的主机的位置并确定其是否可达。把这个简单的工具用在扫描程序中,可以Ping网络上每个可能的主机地址,从而可以构造出实际驻留在网络上的主机清单。4.2计算机病毒
计算机病毒是一种程序,是人为设计的具有破坏性的程序。
计算机病毒具有破坏性、传播性、可激发性、潜伏性、隐蔽性等特点。3.病毒的分类
(1)按病毒设计者的意图和破坏性大小,可将计算机病毒分为良性病毒和恶性病毒。①良性病毒:这种病毒的目的不是为了破坏计算机系统,而只是为了编制者表现自己。此类病毒破坏性较小,只是造成系统运行速度降低,干扰用户正常工作。
②恶性病毒:这类病毒的目的是人为的破坏计算机系统的数据。具有明显破坏目标,其破坏和危害性都很大,可能删除文件或对硬盘进行非法的格式化。(2)计算机病毒按照寄生方式可以分为下列四类:
①源码病毒:在源程序被编译之前,就插入到用高级语言编写的源程序当中。编写这种病毒程序较困难。但是,一旦插入,其破坏性和危害性都很大。
②入侵病毒:是把病毒程序的一部分插入到主程序中。这种病毒程序也难编写,一旦入侵,难以清除。
②操作系统病毒:是把病毒程序加入或替代部分操作系统进行工作的病毒。这种病毒攻击力强、常见、破坏性和危害性最大。
第16页共277页信息学奥林匹克竞赛辅导
④外壳病毒:是把病毒程序置放在主程序周围,一般不修改源程序的一种病毒。它大多是感染DOS下的可执行程序。这种病毒占一半以上,易编制,也易于检测和消除。在日常维护中应隔离计算机病毒的来源,经常要用杀毒软件检查计算机系统和存储器。例设一张软盘已染上病毒,能清除病毒的措施是____。A)删除该软盘上的所有文件B)格式化该软盘
C)删除该软盘上的所有可执行文件D)删除该软盘上的所有批处理文件
解答:软盘染毒后,病毒隐藏在磁盘内部,并感染磁盘上的文件,而且可能通过磁盘的使用进而扩散到其他磁盘,造成更大的破坏。为了清除病毒,必须格式化软盘,从而彻底清除染毒文件和病毒本身。本题正确答案为B。
Pascal语言概述与预备知识
关于PascalPascal的启动
1、关于TurboPascal
Pascal是一种计算机通用的高级程序设计语言。它由瑞士NiklausWirth教授于六十年代末设计并创立。
以法国数学家命名的Pascal语言现已成为使用最广泛的基于DOS的语言之一,其主要特点有:严格的结构化形式;丰富完备的数据类型;运行效率高;查错能力强。
正因为上述特点,Pascal语言可以被方便地用于描述各种算法与数据结构。尤其是对于程序设计的初学者,Pascal语言有益于培养良好的程序设计风格和习惯。IOI(国际奥林匹克信息学竞赛)把Pascal语言作为三种程序设计语言之一,NOI(全国奥林匹克信息学竞赛)把Pascal语言定为唯一提倡的程序设计语言,在大学中Pascal语言也常常被用作学习数据结构与算法的教学语言。
在Pascal问世以来的三十余年间,先后产生了适合于不同机型的各种各样版本。其中影响最大的莫过于TurboPascal系列软件。它是由美国Borland公司设计、研制的一种适用于微机的Pascal编译系统。该编译系统由1983年推出1.0版本发展到1992年推出的7.0版本,其版本不断更新,而功能更趋完善。下面列出TurboPascal的编年史:年代版本名称1983TurboPascal1.0主要特色提高实数运算速度并扩大值域增加图形功能第17页共277页
TurboPascal2.0Turbo-87Pascal1985TurboPascal3.信息学奥林匹克竞赛辅导TurboBCDPascal特别适合应用于商业提供集成开发环境(IDE),引入单元概念增加调试功能支持面向对象的程序设计(OPP)提供面向对象的应用框架和库(TurboVision)面向对象的应用系统、更完善的IDETurboVision2.0开发ObjectWindows库提供对OLE多媒体应用开发的支持VisualPascal1987TurboPascal4.01988TurboPascal5.01989TurboPascal5.51990TurboPascal6.01992TurboPascal7.01993BorlandPascal7.0(ForWindows)1995Delphi
TurboPascal语言是编译型程序语言,它提供了一个集成环境的工作系统,集编辑、编译、运行、调试等多功能于一体。2.Pascal的启动Pascal的启动
a.DOS下的启动(适用于MS-DOS6.22之前的版本或Win9X&Win201*的CommandMode)DOS环境,在装有TurboPascal的文件目录下,键入turbo即可进入TurboPascal集成环境。
b.Win9X或Win201*模式下的启动(适用于TurboPascal3.0以后的版本)
如果在Win9X或Win201*的“资源管理器”装有TurboPascal的目录中,双击turbo.exe或在“开始--程序”菜单中通过MS-DOS方式来运行turbo.exe,它会提示你“该程序设置为MS-DOS方式下运行,并且其它程序运行时,无法运行它。如果选择继续所有其它程序将关闭”,所以在Win9X或Win201*下无法直接运行它,这时你可以在你希望的地方(比如说桌面上)单击鼠标右键“新建--快捷方式”,单击“浏览”,找到turbo.exed选中,然后单击“打开”,再单击“下一步”,再单击完成;这还没完,选中前面新建的快捷方式(应该叫TurboPascal吧),单击右键,单击“属性”,选择“程序”,然后再单击“高级”,把“MS-DOS方式”前面的那个勾去掉,也就是不要选“MS-DOS方式”,然后单击“确定”,再单击“确定”就大功告成了,以后你运行TurboPascal的时候,只要双击那个你建立起的快捷方式就可以直接在Win9X或Win201*下运行TurboPascal。
第一章开始编写pascal语言程序
1.1Pascal编辑环境
1.2简单的Pascal程序的结构1.3完整的的Pascal程序结构
第18页共277页信息学奥林匹克竞赛辅导
1.1Pascal编辑环境
1.下载TurboPascal6.0(1)下载turbopascal(2)属性设置
2.TurboPascal6.0环境介绍
(1)进入与退出(注意:退出时必须使用文件菜单中的退出命令或Alt+X)(2)编辑程序
光标移动键的使用
Backspace键:删除光标前一个字符Ctrl+N:在光标前插入一行Ctrl+Y:删除光标所在行Home:光标移到行首End:光标移到行尾
PageUp/PageDown:上下翻页Insert:插入与改写状态切换(3)编译程序(Compile):Alt+F9(4)运行程序(Run):Ctrl+F9(5)保存程序(Save):F2(6)打开原有的程序:F3(7)查看程序运行结果:Alt+F5(8)调试时增加观察项:Ctrl+F7
1.2简单Pascal程序的结构例1下列是一Pascal源程序:
programlt1;{程序首部}
var{说明部分}a,b:integer;sum:integer;
begin{执行部分}a:=3355;b:=789;sum:=a+b;
writeln("sum=",sum);end.
1.3完整的Pascal程序结构一个完全的Pascal程序结构
第19页共277页信息学奥林匹克竞赛辅导
program程序名;
uses已知单元说明;label标号说明;const常量说明;type类型说明;var变量说明;function函数说明;procedure过程说明;begin语句;语句;语句;end.作业:
1.熟悉Pascal编辑环境.2.记住快捷键的使用.
3.编写78*67的值的Pascal程序并运行.
第二章Pascal语言基础知识
2.1Pascal的字符与符号2.2Pascal数据类型2.3常量与变量2.4标准函数2.5运算符和表达式练习与作业2.1Pascal字符与符号
1.标识符
(1)标识符的定义:标识符就是以字母开头的字母数字序列,有效长度为63个字符,并且大小写等效。可以用来标示常量、变量、程序、函数等。例如例1.1中的Area(程序名),pi(符号常量),s、r(变量名)都是标识符。(2)标识符的分类:a.保留字(关键字)
所谓保留字是指在Pascal语言中具有特定的含义,你必须了解它的含义,以便于正确的
第20页共277页信息学奥林匹克竞赛辅导
使用,否则会造成错误。标准Pascal语言中的保留字一共有35个,TurboPascal语言一共有51个。下面是Pascal语言的保留字:
AND,ARRAY,BEGIN,CASE,CONST,DIV,DO,DOWNTO,ELSE,END,FILE,FOR,FUNTION,GOTO,IF,IN,LABEL,MOD,NIL,NOT,OF,OR,PACKED,PROCEDURE,PROGRAM,RECORD,REPEAT,SET,THEN,TO,TYPE,UNTIL,VAR,WHILE,WITH等
b.标准标识符:指Pascal语言预先定义的标识符,具有特殊含义。以下列举了TurboPascal语言部分常用的标准表识符:标准常量FalseMaxintTrue
标准类型BooleanCharRealInteger
标准函数AbsArctanChrCosEofEolnExpLnOddOrdPredRoundSinSqrSqrtSuccTrunc
标准过程DisposeGetNewPackPagePutReadReadlnResetRewriteUnpackWriteWriteln标准文件InputOutput
c.用户自定义标识符:由你自己根据需要来定义。(1)选用的标识符不能和保留字相同。
(2)语法上允许预定义的标准标识符作为你自己定义的标识符使用,但最好还是不要用。以下列举了你自己在定义标识符时可以用的字符:
AZ;az;09;+,-,*,/,=,,=,,(,),[,],{,},:=,,,;,.,:,..,",^
2.2Pascal数据类型
数据是程序设计的一个重要内容,其重要特征----数据类型,确定了该数据的形、取值范围以及所能参与的运算。
TurboPascal提供了丰富的数据类型,这些数据类型可以分为三大类:简单类型、构造类型和指针类型,其中简单类型可以分为标准类型(整型、实型、字符型和布尔型)和自定义类型(枚举型和子界型),构造类型可以分为数组类型、集合类型、记录类型和文件类型。这些数据类型中除了指针类型是动态数据类型外,其他的都是静态数据类型。在这些数据类型中的简单类型都是有序类型,除了实型以外的简单类型都是顺序类型,所谓顺序类型就是他们的值不仅是有序的而且是有顺序号。
在这里主要介绍整型、实型、字符型和布尔型四种常用的数据类型。1.整型
一个整型数据用来存放整数。TurboPascal支持五种预定义整型,它们是shortint(短整型)、integer(整型)、longint(长整型)、byte(字节型)和word(字类型),TurboPascal分别用相同的名字作为他们的标识符。每一种类型规定了相应的整数取值范围以及所占用的内存字节数。
类型数值范围占字节数格式
第21页共277页信息学奥林匹克竞赛辅导
shortint-128..1281带符号8位inteter-32768..327672带符号16位longint-2147483648..21474836474带符号32位byte0..2551带符号8位word0..655352带符号16位
TurboPascal规定了两个预定义整型常量标识符maxint和maxlonint,他们各表示确定的常数值,maxint为32767,longint为2147483647,他们的类型分别是integer和longint2.实型
一个实型数据用来存放实数。TurboPascal支持五种预定义实型,它们是real(基本实型)、single(但精度实型)、double(双精度实型)、extended(扩展实型)、comp(装配实型),TurboPascal分别用相同的名字作为他们的标识符。每一种类型规定了相应的实数取值范围、所占用的内存字节数以及它们所能达到的精度类型数值范围占字节数有效位数real2.9e-39..1.7e38611..12single1.5e-45..3.4e3847..8double5.0e-324..1.7e308815..16
TurboPascal支持两种用于执行实型运算的代码生成模式:软件仿真模式和80x87浮点模式。除了real可以在软件仿真模式下直接运行以外,其他类型必须在80x87浮点模式下运行。3.布尔型
一个布尔型数据用来存放逻辑值(布尔值)。布尔型的值只有两个:false和true,并且false的序号是0,true的序号是1。false和true都是预定义常数标识符,分别表示逻辑假和逻辑真。并且true信息学奥林匹克竞赛辅导
(4)TurboPascal类型常量
类型常量,又称变量常数,它是TurboPascal的一个扩充特性。类型常量的定义与标准Pascal规定的常数定义和变量说明有所区别。类型常量定义的语法格式:const
:简单类型=常数;例如:const
counter:integer=0;flag:boolean=true;index:0..100=0;2.变量
(1)变量:在某个程序中的运行过程中其值可以发生改变的量(2)变量说明:变量说明出现在说明部分。它的语法格式是:var
:;...
:;其中,保留字var表示开始一个变量说明部分。变量标识符列表是一个用逗号隔开的标识符序列,冒号后面的类型是类型标识符。每个变量说明均以分号结束。例如:var
a,b,c:integer;m,n:real;2.4标准函数1.算术函数
函数标识符自变量类型意义结果类型abs整型、实型绝对值同自变量arctan整型、实型反正切实型cos整型、实型余弦实型exp整型、实型指数实型frac整型、实型小数部分实型int整型、实型整数部分实型ln整型、实型自然对数实型pi无自变量圆周率实型sin整型、实型正弦实型sqr整型、实型平方同自变量sqrt整型、实型平方根实型
第23页共277页信息学奥林匹克竞赛辅导
例:abs(-4)=4abs(-7.49)=7.49arctan(0)=0.0sin(pi)=0.0cos(pi)=-1.0frac(-3.71)=-0.71int(-3.71)=-3.0sqr(4)=16sqrt(4)=22.标准函数
函数标识符自变量类型意义结果类型odd整型判断奇数布尔型pred离散类型求前趋同自变量succ离散类型求后继同自变量例:odd(1000)=falsepred(201*)=1999succ(201*)=201*odd(3)=truepred("x")="wsucc("x")="y"3.转换函数
函数标识符自变量类型意义结果类型chrbyte自变量对应的字符字符型ord离散类型自变量对应的序号longintround实型四舍五入longinttrunc实型截断取整longint
例:chr(66)="B"ord("A")=65round(-4.3)=-5trunc(2.88)=24.杂类函数
函数标识符自变量类型意义结果类型random无自变量[0,1间的随机实数realrandomword[0,自变量间的随机整数)wordrandomize无自变量初始化内部随机数产生器longintupcase字符型使小写英文字母变为大写字符型downcase字符型使小写英文字母变为大写字符型2.5运算符和表达式1.运算符和优先级(1)运算符
是实型,如果全部的运算对象都是整型并且运算不是除法,则结果为整型,若运算是除法,则结果是实型a.算术运算符
运算符运算运算对象结果类型
+加整型、实型只要有一个运算对象是实型,结果就-减整型、实型是实型,如果全部的运算对象都是整*乘整型、实型型并且运算不是除法,则结果为整型,/除整型、实型若运算是除法,则结果是实型。div整除整型整型mod取余整型整型
第24页共277页信息学奥林匹克竞赛辅导
b.逻辑运算符
运算符运算运算对象结果类型not逻辑非布尔型布尔型and逻辑与布尔型布尔型or逻辑或布尔型布尔型xor逻辑异或布尔型布尔型c.关系运算符
运算符运算运算对象结果类型=等于简单类型布尔型不等于简单类型布尔型<小于简单类型布尔型>大于简单类型布尔型=大于等于简单类型布尔型(2)优先级
运算符优先级not1(高)*,/,div,mod,and2xor,+,-,or3in,=,,>=,函数-->*,/,div,mod-->+,1
(2)布尔表达式:TurboPascal提供给布尔表达式以下基本操作:逻辑运算和关系运算。(3)数学上的表达式与pascal语言表达式的区别
数学表达式PASCAL表达式注意
2a2*a*号不能省略a÷ba/b除号的写法a≠bab不等号的写法a≤ba信息学奥林匹克竞赛辅导
a33aa17abcdex9.5αβλ5、将下列的数学表达式改写成PASCAL表达式:b^2-4ac6、求下列表达式的值:
20mod1915mod97div819div3(4>5)and(79)or(9信息学奥林匹克竞赛辅导
的或相容的才可以相互赋值。
怎么来理解这句话呢?打个比方,我们沏功夫茶用的是小茶杯,装饭时用饭碗。如果用饭碗来泡功夫茶,用小茶杯来装饭,那情形一定很滑稽而且是不可行的。回到PASCAL中来,赋值号左边变量如果是整型,右边表达式的值的类型也要是整型;赋值号左边变量如果是字符型,右边表达式的值的类型也要是字符型否则的话,也要出错了。这是数据类型相同的情况。
对于数据类型相容的,我们也可以用一个例子来帮助理解。我们都喝过功夫茶,也喝过大杯茶。把功夫茶倒在大茶杯里,一般不会出什么问题;但如果把大杯里的茶倒在功夫茶杯里呢?可能小茶杯装不下大茶杯里的茶,茶“溢出”了。在PASCAL中也会出现这种情况。当一种数据类型的取值范围包含着另一种数据类型的取值范围时,就可能出现类型相容的情况。如实型与整型,整型、字符型与它们各自的子界类型如果把整型值赋给实型变量,把整型子界值赋给整型变量,不会出错;但如果反过来,就会出现“溢出”,出错了。因些,我们在写赋值语句时,要注意两边的类型是否匹配。例:有程序如下:
vara,b:integer;c:real;d:0..100;begin
a:=100;b:=a;
{-------------以上是相同数据类型进行赋值}d:=100;b:=d;c:=b;
{-------------以上是相容数据类型进行赋值}d:=b;a:=c;
{-------------以上两个赋值语句都出现溢出,编译时出错}end.3.2读语句
读语句(read语句)和赋值语句一样,能够改变变量的值。与赋值语句不同,读语句从键盘或文件接收值赋予变量,而赋值语句则直接由程序语句获得。读语句格式如下:read(变量名表);readln(变量名表);readln;
读语句是编程中用得最多的语句之一。在使用时有几点要注意:
1、变量名表。写在括号中的变量,都要在变量说明中先预以说明;变量与变量之间,以“,”分隔;例:
vara,b:integer;
第27页共277页信息学奥林匹克竞赛辅导
read(a,b);
2、从键盘接收数据时,要注意各种不同数据类型数据的分隔符不同。所谓分隔符就是两个完整的数值之间的标记,也可以这样理解,当计算机从键盘读入数据时,一旦碰到分隔符,就认为当前的数据读入已完成,可以把它赋给相应的变量了。各种数据类型的分隔符如下:数值型(包括整型、实型以及它们的子界类型)以空格或回车符作为分隔符;字符型不需分隔符(因为字符型数据的长度固定,只有一个);字符串以回车符作为分隔符。
3、注意read与readln的区别
例:有两段程序有相同的变量说明如下,不同的读语句,我们可以通过比较它们执行结果的异同来理解read与readln的区别。变量说明vara,b,c,d:integer;read(a);程序段一readln(b,c);read(d);readln(a);程序段二read(b,c);read(d)12345输入数据678在程序段一执行时,“read(a);”语句接收了第一个数据1并将它赋给变量a;接着执行第二个语句“readln(b,c);”,接收了第一行数据中的2、3并把它们分别赋给变量b,c,同时,把本行其它数据全部屏蔽掉,也就是宣布它们全部作废。程序段二的执行情况也是如此。因此,我们可以得出结论:语句read只管接收数据,语句readln接收完数据后,还把同行的其它数据全部宣布作废。
4、“readln;”语句从键盘接收一个回车符。这个语句通常用在需要暂停的地方。如输出时用来等待程序员看清结果。3.3写语句
写(write)语句是Pascal中唯一能将运算结果送出显示在显示器屏幕的语句。格式如下:write(输出量表);{输出后不换行}writeln(输出量表);{输出后换行}writeln;{输出一个回车符}
使用写语句时也有一些小问题需要注意。
1、输出量可以是:
第28页共277页
执行结果abcd1236167信息学奥林匹克竞赛辅导
变量。输出变量的值。输出多个变量时,变量间用“,”分隔。表达式。输出的是表达式的值。常量。直接输出常量值。
2、场宽的限制在输出不同格式的数值时的作用:例1:输出多个空格。
write("":n);句子的意思是以n个字符宽度输出冒号前数据项,如果数据项长度不足n,则前面以空格补齐;如果数据项长度大于n,则以实际长度输出。如上语句句输出n个空格。例2:数据项间隔。
如输出最多四位的数据:write(x:5)。则数据间至少分隔一个空格。例3:实型数据小数位数的确定。
实型数据不带格式限制时,以科学计数法的形式输出,和我们的一般书写习惯不同。如果加上场宽的限制,则可以有不同的效果:vara:real;begina:=15/8;
writeln(a);{输出1.8750000000E+00}
wiiteln(a:0:2);{输出1.88整数部分按实际位数输出,小数部分保留两位小数,末位四舍五入.}
writeln(a:0:0):{输出2只输出整数部分,小数部分四舍五入}end.
3、“writeln;”语句通常用于输出多组数据时在屏幕上输出空行来分隔数据组。
思考与练习:
1、用字符输出一个猪锦佳的头像。
2、a,b,c分别等于1、12、123,把它们按向左对齐、向右对齐的方式打印出来。3、输入一个四位整数,把它的各位数字倒序输出。(提示:用MOD和DIV运算完成)4、从键盘上读入小写的"pascal",利用CHR()和ORD()函数,输出大写的"PASCAL"。5、从键盘上读入一个实数,利用ROUND()和TRUNC()函数,输出该实数本身、整数部分、小数部分、四舍五入后的值。
要求:分三行输出;输出实数本身时,格式与读入时相同;整数部分、小数部分在同一行输出;其它各占一行。
6、从键盘上读入长方形的边长a,b,计算它的面积和周长,输出。7、输入一个时、分、秒,把它转换为一个秒数。
第四章选择结构程序设计
第29页共277页信息学奥林匹克竞赛辅导
4.1IF语句4.2CASE语句练习与作业4.1IF语句
条件语句用于响应一个条件的两个方面。
例如:今天如果下雨,我们就在家;否则(不下雨)我们就去旅游。
又如:如果已经搜索得到结果,就打印出答案;否则(还没得到结果)就继续搜索。IF语句的一般格式是:IF条件
THEN语句1{条件为真时的响应、处理}
ELSE语句2;{条件为假时的响应、处理}使用条件语句时要注意:
1、条件语句是一个语句。IF、THEN、ELSE都是语句的一个部分。所以它只能有一个“;”作为分隔符,放在句子的结束,特别要注意不能放在ELSE之前。
2、如果我们的程序只需对条件为真的情况作出处理,不需要处理条件为假的情况,则IF语句省略ELSE分句,格式变成:IF条件
THEN语句1;{条件为真时的响应、处理}如:如果数a大于等于0则输出它的平方根。ifa>=0thenwriteln(sqrt(a));
对以上的例子,条件为假时不需处理,于是我们干脆省去ELSE分句。
3、if语句可以多层嵌套。嵌套时为了避免误解,可以用begin,end括起嵌套部分;else分句一般和最近的if分句配套:IF条件THENBEGIN
if条件1thenelse;ENDELSEBEGIN
if条件2thenelse;end;
例1、输入两个数a,b,输出较大的数。programtt;vara,b:integer;begin
write("pleaseinputa,b:");readln(a,b);
ifa>bthenwriteln(a)
第30页共277页信息学奥林匹克竞赛辅导
elsewriteln(b);end.
4.2CASE语句
分情况语句适用于对一个条件的多种情况的响应。格式:case表达式of标号1:语句1;标号2:语句2;
标号n:语句n;else语句n+1end;
case语句在使用时有几点要注意:
1.end与case对应;标号与语句之间用“:”分隔;else与语句之间不用分隔符。2.标号必须是一常量,其类型与表达式的类型一致
例2:某全自动加油站a,b,c三种汽油的单价(元/kg)分别是1.50、1.35和1.18,也提供了“自己加”或“协助加”两个服务等级,这样用户可以得到5%或10%的优惠。编一个程序,用户输入加油量、汽油品种和服务类型(f-自动,m-自己,e-协助),然后计算应付款。programpcase1;var
oil,help:char;kg,total:real;begin
write("Entertheamountinkilograms(kg):");readln(kg);write("Whichtypeofthegasoline(a,b,c):");readln(oil);wirte("Whichtypeforservice(f,m,e):");readln(help);caseoilof
"a":total:=1.50*kg;"b":total:=1.35*kg;"c":total:=1.18*kg;
elsewriteln("InputError!")end;
{处理汽油的类型}casehelpof"f":;
"m":total:=total*(1-0.05);"e":total:=total*(1-0.10);elsewriteln("InputError!")
第31页共277页信息学奥林匹克竞赛辅导
end;
{处理服务类型}writeln;
writeln("Totalis",total:10:2);end.
3.可以多个标号对应同一条语句
4.语句可以是多个语句,但必须用语句括号(beginend)括起5.case语句也可以嵌套
例3:从键盘上读入年和月,输出该月有多少天。programpcase2;var
year,month,day:integer;runnian:boolean;begin
write("Enteryearandmonth:");readln(year,month);casemonthof
1,3,5,7,8,10,12:day:=31;
4,6,9,11:day:=30;{以上处理31天和30天的情况}2:begin
runnian:=(yearmod400=0)or((yearmod4=0)and(yearmod1000));caserunnianoftrue:day:=28;false:day:=29;end;
end;{以上处理2月的情况:闰年28天,平年29天}end;end.
思考与练习:
1、从键盘上读入长方形的边长a,b,计算它的面积和周长,输出。2、输入一个时、分、秒,把它转换为一个秒数。
3、从键盘读入一个数,判断它的正负。是正数,则输出"+",是负数,则输出"-"。4、输入两个数a,b,输出较大数的平方值。
5、铁路托运行李规定:行李重不超过50公斤的,托运费按每公斤0.15元计费;如超50公斤,超过部分每公斤加收0.10元。编一程序完成自动计费工作。
6、某超市为了促销,规定:购物不足50元的按原价付款,超过50不足100的按九折付款,超过100元的,超过部分按八折付款。编一程序完成超市的自动计费的工作。
7、输入a,b,c三个不同的数,将它们按由小到大的顺序输出。13、当前小学生的成绩单由以前的百分制改为优秀、良好、合格、不合格四个等级的等级制。编一程序完成分数的自
第32页共277页信息学奥林匹克竞赛辅导
动转换工作。转换规则如下:60分以下的为不合格;60到69分为合格;70到89分为良好;90分以上的为优秀。(提示:可以利用DIV运算来使程序更简明)
8、打印某年某月有多少天。(提示:A、闰年的计算方法:年数能被4整除,并且不能被100整除;或者能被400整除的整数年份。B、利用MOD运算可以判断一个数能否被另一个数整除)
9、编程模拟剪刀、石头、布游戏:用S表示剪刀,用R表示石头,用P表示布。规则是:剪刀剪布,石头砸剪刀,布包石头。游戏者分别把自己的选择输入,计算机给出结果。
第五章循环结构程序设计
5.1For语句5.2While语句5.3Repeat-Until语句练习与作业5.1For语句
1.递增型FOR循环。
FOR循环控制变量:=循环初值TO循环终值DO循环的语句(或语段)例:FORI:=5TO10DOWRITELN(I);
输出的结果为:5678910即循环一共执行了6次如果要重复多个语句,一定要用BEGIN-END形式:例:
FORI:=1TO10DOBEGINWRITELN(I);WRITELN(10-I);END;
2.递减型FOR循环
FOR循环控制变量:=循环初值DOWNTO循环终值DO循环语句
递减型FOR循环与递增型FOR循环基本相同,只是循环控制变量每次递减。3.FOR循环的几点注意内容:
(1)循环控制变量必须是顺序类型的变量。所谓顺序类型的变量,就是指整型,字符型,枚举型,子界型,不允许是实型。
(2)不允许在循环体内再对循环控制变量赋值。例如:A:=10;B:=50;FORK:=ATOBDOBEGIN
第33页共277页信息学奥林匹克竞赛辅导
K:=K+1;{这一句是错误的!!!!!!!!}WRITELN(K);END;
(3)当循环初值或循环终值中包含变量时,允许在循环体内改变这些变量的值,但并不改变原定的循环次数。例:
A:=1;B:=10;FORI:=ATOBDOBEGINA:=5;B:=4;END;
在上面例子中,A,B的值在循环的内部发生了变化,但并不影响循环的次数,依然是10次。4.多重循环循环体由PASCAL语句构成,当然也可以包含FOR语句,这就构成了循环的嵌套,形成多重循环。
例如,以下FOR循环输出5行,每行输出10个星号(*)FORi:=1to5DOBEGIN
FORj:=1TO10DOWrite("*");END;
初学者应当特别注意,内层的循环变量不能和外层的循环变量相同。也就是说,嵌套的各层循环应当使用不同的变量作为循环变量。5.2While语句
1.WHILE循环的执行形式WHILE布尔表达式DO语句例如:k:=10;WHILEk>0DOBEGIN
Writeln(k);k:=k-1END;其中
(1)WHIlE和DO是PASCAL保留关键字,是WHILE循环语句的组成部分。
(2)保留关键字DO后面的“语法”只能是一条语句,称为“循环体”;如果循环体中需要包含多个语句则应该如上例所示,采用一条复合语句。2.WHILE循环的执行功能当执行到WHILE语句时(1)求出布尔表达式的值
(2)若布尔表达式的值为真,则执行循环体内的语句;若为“假”,执行步骤4(3)重复步骤1和2
第34页共277页信息学奥林匹克竞赛辅导
(4)循环结束,执行循环后面的语句。5.3Repeat-Until语句
1.REPEAT-UNTIL类型的循环的执行形式REPEAT语句1语句2语句n
UNTIL布尔表达式
例如:以下循环求n=1+2+3++100n:=0;t:=i;REPEAT
n:=n+t;t:=t+1;UNTILt>100;其中
(1)REPEAT和UNTIL是PASCAL保留关键字。
(2)在REPEAT和UNTIL之间的语句构成循环。在它们之间可以有任意多个语句,这一点和FOR,WHILE循环不同,FOR,WHILE循环体在语法上只允许一条语句。2.REPEAT-UNTIL循环的执行功能
(1)遇到REPEAT语句后,即进入循环体,顺序执行循环体内的语句。
(2)遇到UNTIL语句后,求布尔表达式的值。若值为假,则返回步骤1;若为“真”,执行步骤3
(3)循环结束,执行UNTIL后面的下一条语句。思考与练习:
1、计算下列式子的值:(1)1+2++100(2)1+3+5++97+99
2、输入一个四位数,求它各位上数字的和。
3、求水仙花数。所谓水仙花数,是指一个三位数abc,如果满足a^3+b^3+c^3=abc,则abc是水仙花数。
4、宰相的麦子:相传古印度宰相达依尔,是国际象棋的发明者。有一次,国王因为他的贡献要奖励他,问他想要什么。达依尔说:“只要在国际象棋棋盘上(共64格)摆上这么些麦子就行了:第一格一粒,第二格两粒,,后面一格的麦子总是前一格麦子数的两倍,摆满整个棋盘,我就感恩不尽了。”国王一想,这还不容易,刚想答应,如果你这时在国王旁边站着,你会不会劝国王别答应,为什么?
5、打印下列图案:(输入N值来控制图案的规模,下列图案均以N=3为例)
&&&&&&
第35页共277页信息学奥林匹克竞赛辅导
&&&&&&&&&
*********###
@@@
###@@@
6、输入一整数A,判断它是否质数。(提示:若从2到A的平方根的范围内,没有一个数能整除A,则A是质数。)
7、求两个数的最小公倍数和最大公约数。(提示:公约数一定小于等于两数中的小数,且能整除两数中的大数。公倍数一定大于等于两数中的大数,且是大数的倍数,又能给两数中的小数整除。)
8、编写一个译码程序,把一个英语句子译成数字代码。译码规则是以数字1代替字母A,数字2代替字母B,,26代替字母Z,如遇空格则打印一个星号‘*’,英文句子以‘.‘结束。
9、“百钱买百鸡”是我国古代的著名数学题。题目这样描述:3文钱可以买1只公鸡,2文钱可以买一只母鸡,1文钱可以买3只小鸡。用100文钱买100只鸡,那么各有公鸡、母鸡、小鸡多少只?与之相似,有"鸡兔同笼"问题。
10、输入一个正整数N,把它分解成质因子相乘的形式。如:36=1X2X2X3X3;19=1X19
(提示:设因子为I,从2开始到N,让N重复被I除,如果能整除,则用商取代N,I为一个因子;如果不能整除,再将I增大,继续以上操作,直到I等于N。)
第六章数组与字符串
6.1一维数组6.2二维数组6.3字符串练习与作业6.1一维数组1、定义:var
a:array[1..10]ofinteger;
第36页共277页信息学奥林匹克竞赛辅导
其中:a是这一批数据的名称,称为数组名;array、of是定义数组的保留字;中括号中的数字是数据编号的下限和上限,财时也说明了数据的个数(上限-下限);最后一个是数据的基类型,如integer,char,real,boolean。2、数组元素的输入:
数组名代表的并不是一个变量,而是一批变量,因而,不能直接整个数组读入,而是要逐个数组元素读入,通常用循环结构来完成这一功能。下面是几个常用输入数组元素的例子:fori:=1to10doread(a[i]);
{从键盘读入数组元素的值;最常用的方法}fori:=1to10doa[i]:=i;
{数组元素a[1]到a[10]的值分别为1到10;数据赋初值}fori:=1to10doa[i]:=0;
{数组元素清0;最常用的数据初始化的方法}fori:=1to10doa[i]:=random(100);
{随机产生10个100以内的数,赋给各数组元素}3、数组元素的输出:
和数组元素的输入相同,数组元素的输出也不能由一个write语句直接完成。同样要逐个数组元素输出。通常也用循环结构来完成这一功能:
fori:=1to10dowrite(a[i],"");{数组元素之间用空格分隔}writeln;4、数组的应用:
例1:从键盘输入10个数,将这10个数逆序输入,并求这10个数的和,输出这个和。programp1;var
a:array[1..10]ofinteger;i,s:integer;begin
fori:=1to10doread(a[i]);
fori:=10downto1dowrite(a[i],"");writeln;s:=0;
fori:=1to10dos:=s+a[i];writeln("s=",s);end.
例2:用筛法求100以内的素数(质数)。
分析:素数是除了1和它本身以外没有其它约数的数。用筛法求素数的方法是:用质数筛去合数:从第一个素数2开始,把它的倍数去掉;这样2以后的第一个非0数就一定也是素数,把它的倍数也删了重复这个删数过程,直到在所找到的素数后再也找不到一个非0数。把所有非0数输出。programp2;
第37页共277页信息学奥林匹克竞赛辅导
var
a:array[1..100]ofinteger;i,j,k:integer;begin
fori:=1to100doa[i]:=i;a[1]:=0;i:=2;whilei信息学奥林匹克竞赛辅导
对某一列进行处理。如累加第4列的数据。则固定列号为4。如:fori:=1to10dos:=s+a[i,4];
2、二维数组的输入输出要用双重循环来控制:fori:=1to10do{控制行数}begin
forj:=1to5doread(a[i,j]){第一行读入5个元素}readln;{读入一个换行符}end;
{最常用的方法:从键盘读入数据初始化二维数组}fori:=1to10do
forj:=1to5doa[i,j]:=0;{最常用的方法:将二维数组清0}fori:=1to10dobegin
forj:=1to5dowrite(a[i,j]:4);writeln;end;
{最常用的输出方法:按矩阵形式输出二维数组的值}
例1:竞赛小组共有20位同学,这学期每位同学共参与了三项比赛,请统计每位同学的平均分。分析:定义一个20行3列的二维数组来存放这些成绩。定义一个20个元素的一维数组来存放平均分。programp1;var
a:array[1..20,1..3]ofinteger;b:array[1..20]ofreal;i,j:integer;begin
fori:=1to20dobegin
forj:=1to3doread(a[i,j]);readln;end;
{从键盘上读入20个同学的三次竞赛成绩}fori:=1to20dob[i]:=0;{先将平均分数组清0}fori:=1to20dobegin
forj:=1to3dob[i]:=b[i]+a[i,j];{计算总分}
第39页共277页信息学奥林匹克竞赛辅导
b[i]:=b[i]/3;{计算平均分}end;
fori:=1to20dowrite(b[i]:5:1);{输出平均分}writeln;end.6.3字符串
1.字符串用于存放整批的字符数据。通常编程中使用字符串存放字符化了的数字数据。如高精度运算时存放操作数和运算结果。字符串可以看作是特殊的字符串数组来处理。当然,它也有自已的特点。下面是字符串定义的格式:var
s:string;s1:string[15];
字符串定义时,如不指定长度,则按该类型的最大长度(255个字符)分配空间,使用时最大可用长度为255个;如果在中括号中给出一个具体的值(1255之间),则按这个值的大小分配空间。使用时,最大的可用长度即为该值。
2.字符串的输入、输出:
字符串类型既可按数组方式输入、输出,也可直接输入、输出:readln(s);writeln(s);多个字符串输入时以回车作为数据间的分隔符;每个readln语句只能读入一个字符串。3.有关字符串的操作:
操作类型返作用回值型l:=length(s);{l的值为9}字符串s:="123456789";s1:=copy(s,3,5);{s1的值是"34567"}vars:string;k,code:integer;begins:="1234";val(s,k,code);write(k);{k=1234}i:=1234;str(i,s);write(s);{s="1234"}s:="HonestAbeLincoln";Delete(s,8,4);Writeln(s);{"HonestLincoln"}第40页共277页例子length(s)函求字符串s的长整s:="123456789";数度函复制s中从w开数始的k位将字符串s转为copy(s,w,k)val(s,k,code)过数值,存在k中;程code是错误代码过将数值i转为字程符串s过在s中删除从第str(i,s)Delete(s,w,k)w位开始的k个程字符信息学奥林匹克竞赛辅导Insert(s1,S,w)Pos(c,S)过将s1插到s中第程w位数的位置运算将两个字符串连接起来S:="HonestLincoln";Insert("Abe",S,8);{"HonestAbeLincoln"}函求字符c在s中整S:="123.5";型i:=Pos("",S);{i的值为1}s1:="1234";s2:="5678";s:=s1+s2;{"12345678"}+
思考与练习:
符1、随机产生20个100以内的数,输出;按从小到大的顺序排序,输出。
2、求一个5X5数阵中的马鞍数,输出它的位置。所谓马鞍数,是指在行上最小而在列上最大的数。如下:5678945678345212349012548
则1行1列上的数就是马鞍数。
3、做一个加法器。完成30000以内的加法,两个加数间用“+”连接,可以连加,回车表示式子输入完成;“#”表示结束运算,退出加法器。
第七章函数和过程
8.1过程8.2函数
8.3全局变量和局部变量8.4值参数和变量参数练习与作业8.1过程
1.过程的定义
procedure过程名(形式参数:参数说明);{也可以不带参数}varbegin...end;2.过程的调用
第41页共277页信息学奥林匹克竞赛辅导
过程名(实在参数表);
例1:求n个自然数的最大公约数;programgcd1;constmaxn=100;varn,i,gcd:integer;
a:array[1..maxn]ofinteger;procedureenter;begin
write("n=(信息学奥林匹克竞赛辅导
...{函数语句}...
函数名:=表达式end;
2.函数的调用:
函数在语法上相当于一个表达式,所以,调用时,函数不能独立成为一个语句;它可以出现在任何表达式可以出现的地方。例如赋值语句的右边:
X:=函数名(实在参数表);{X的类型与函数类型必须一致}
又,如果函数类型是boolean,则还可以出现在条件语句中,充当条件表达式:if函数名(实在参数表)then
例3:编一程序,求从10名同学中选出3名代表,有几种不同的选法。(公式:C(m,n)=m!/n!*(m-n)!从m中选n)programzohe1;varm,n:integer;c:longint;
functionfactor(x:integer):longint;{定义}vari:integer;p:longint;beginp:=1;
fori:=1toxdop:=p*i;factor:=p;{这个语句必须}end;begin
write("m,n=");readln(m,n);
c:=factor(m)div(factor(n)*factor(m-n));{调用}writeln("c(",m,",",n,")=",c);end.
8.3全局变量和局部变量
在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。全局变量作用域是整个程序;局部变量作用域是定义该变量的子程序。当全局变量与局部变量同名时:在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。例4:全局变量和局部变量。programlocal_global;vari,k:integer;proceduresub1;vari,j:integer;begin
第43页共277页信息学奥林匹克竞赛辅导
i:=17;
writeln("iinsub=",i);writeln("kinsub=",k);end;begini:=2;k:=9;
writeln("iinmain=",i);writeln("kinsub=",k);sub1;
writeln("iinmain=",i);writeln("jinmain=",j);readln;end.
上述程序运行时将出现UnknownIdentfier;因为变量j在主程序中没定义。当删除本语句时。运行结果如下:iinmain=2kinmain=9iinsub=17kinsub=9iinmain=28.4值参和变量参数
值形参传值:调用时可用表达式代替形参,不该变实在参数的值。变量形参传地址:调用时必须用变量代替行参变量,改变实在参数的值。例4:请看下列程序的运行结果。programli3_10;vara,b,c:integer;
proceduresub(x,y:integer;varz:integer);begin
x:=x+1;y:=y+1;z:=x+y;
writeln("sub:x=",x:2,"y=",y:2,"z=",z:2);end;begin
a:=1;b:=4;c:=9;
writeln("main:a=",a:2,"b=",b:2,"c=",c);sub(a,b,c);
writeln("main:a=",a:2,"b=",b:2,"c=",c);sub(c+5,b*b,a);
writeln("main:a=",a:2,"b=",b:2,"c=",c);
第44页共277页信息学奥林匹克竞赛辅导
readln;end.
main:a=1b=4c=9sub:x=2y=5z=7main:a=1b=4c=7sub:x=13y=17z=30main:a=30b=4c=7练习与作业
1、试编写一个将阿拉伯数字转换为中文大写数字的函数。(如中文状态不方便,可以替换为ABCDEFGHIJ)
2、输入一个长字符串和一个短字符串以及一个合适的整数,通过程序从指定位置用指定短字符串替换长字符串中的内容(要求编写过程来实现),最后输出新字符串。
第八章子界与枚举类型
8.1子界类型8.2枚举类型
Pascal有丰富的数据类型,在程序设计中有特殊而方便的应用。类型定义的语法格式:type
=;=;
=;8.1子界与枚举1.子界类型:
当某些变量的取值范围很具体时,可用子界类型,它更符合实际、便于查错和节省内存。定义如下:typeriqi=1..31;zimu="A".."Z";varday:riqi;ch1:zimu;也可以直接定义:day:1..31;year:0..200;ch1:"A".."Z";8.2枚举类型:
第45页共277页信息学奥林匹克竞赛辅导
通过预定义列出所有值的标识符来定义一个有序集合,这些值的次序和枚举类型说明中的标识符的次序是一致的。枚举类型的形式:(标识符1,,标识符n)例如:
typedaystype=(sunday,monday,tuesday,wednesday,thursday,friday,saturday)枚举元素只能是标识符,而不能是数值常量或字符常量。例如以下的定义是错误的: 枚举元素是标识符,不要把作为枚举元素的标识符视作变量名,它不能被赋值。同一个枚举元素不能出现在两个或两个以上的枚举类型定义中。例如以下的定义是错误的:typedaytype1=(monday,tuesday);daytype2=(monday,wednesday); 可以将枚举类型的定义和变量的定义结合在一起。例如:vara:(monday,tuesday,sunday)枚举类型属于顺序类型。根据定义类型时各枚举元素的排列顺序确定它们的序列,序列号从0开始。 例如:已经定义daystype ord(sunday)=0,succ(sunday)=monday,pred(friday)=thursday 但是枚举类型中的第一个元素没有前趋,最后一个元素没有后继。TurboPascal不允许直接读写枚举值,所以枚举值的输出常用case语句间接的输出。枚举值的输入,则要一一判断读入字符是否是枚举类型的标识符。若是才能赋给枚举变量,否则就会出错。例如:枚举值的输出casedayof sunday:write("sunday");monday:write("monday");tuesday:write("tuesday");wednesday:write("wednesday");thursday:write("thursday");friday:write("friday");saturday:write("saturday");end;练习: 1.按月、日顺序输入今年的一个日期,输出该日是星期几?已知今年元旦是星期一。 第九章集合类型 9.1集合9.1集合1.集合的定义: type类型名=setof基类型 第46页共277页信息学奥林匹克竞赛辅导 例如:type num=setofchar;varn:num;或var n:setofchar;2.集合的表示: 用一组方括号括号一组元素来表示,元素之间用逗号分隔。如:[A,B,C,D]--有四个枚举量的集合["A","B","C","D"]--有四个字符的集合[1..20]--包含了1到20中所有整数的集合[0]--只有一个元素0的单元素集[]--空集3.集合的运算: (1)并(a+b):属于a或属于b[0..7]+[0..4]的值为[0..7](2)交(a*b):既属于a又属于b[0..7]*[0..4]的值为[0..4](3)差(a-b):属于a但不属于b[0..7]-[0..4]的值为[5..7](4)相等(a=b):a,b的元素完全一样[0..7]=[0..4]的值为false(5)不等():元素不一样[0..7][0..4]的值为true(6)包含于(=[0..4]的值为true(8)成员(in): 1in[0..4]的值为true4.注意事项: (1)集合运算相当快,在程序中常用集合表达式来描述复杂的测试。如 A)条件表达式:(ch="T")or(ch="t")or(ch="Y")or(ch="y")可用集合表达式表示为: chin["T","t","Y","y"] B)if(ch>=20)and(ch信息学奥林匹克竞赛辅导 ifchin[20..50]then...; (2)集合类型是一种使用简便,节省内存面又运算速度快的数据类型。 (3)TurboPascal规定集合的元素个数不超过256个(当实际问题所需的元素个数大于256时,可采用布尔数组代替集合类型)。所以如下定义是错误的:vari:setofinteger;(4)集合类型变量不能进行算术运算,了不允许用读/写语句直接输入/输出集合。所以集合的建立: A)要通过赋值语句实现; B)或先初始化一个集合,然后通过并运算向集合中逐步加入各个元素.(5)集合元素是无序的,所以ord,pred和succ函数不能用于集合类型的变量。练习: 编程读入两个字符串,然后输出如下信息: (1)出现在某一个字符串中至少一次的字母和数字;(2)同时出现在两个字符串中至少一次的字母和数字; (3)出现在一个字符串中而不出现在另一个字符串中的字母和数字;(4)不出现在任何字符串中的字母和数字。 第十章记录与文件类型 10.1记录类型10.2文件类型 10.1记录1.记录的定义: type类型标识符=record字段名1:类型1;字段名2:类型2;... 字段名n:类型n;end;如:type studata=recordnum:string[6];name:string[8];sex:boolean; s:array[1..5]ofreal;end;var 第48页共277页信息学奥林匹克竞赛辅导 student:studata; students:array[1..10]ofstudata;2.记录的运用: (1)对记录中和个域的引用,要写出记录名和域名,如:student.num(2)开域语句:with。with记录名do语句;或 with记录名1,记录名2,...do语句;注意: 1.在do后面语句中使用的记录的域时,只要简单地写出域名就可以了,域名前的记录变量和"."均可省略。 2.在关键字with后面,语句可以是一个简单语句,了可以是一个复合语句。3.虽然在with后可以有多个记录变量名,但一般在with后只使用一个记录变量名。10.2文件 文件是一种构造型的数据类型。在程序中都需要产生一些输出,也需要接受若干个输入。这些输入、输出实际上是用文件的方法来实现的,在Pascal中用标准文件“input”和“output”来实现,它们分别对应标准输入设备和标准输出设备(可省略不写)这也就是一些程序的程序书写如下的原因了: programex(input,output);... 但有时大量数据的读入和输出都是来是磁盘文件,这就要求我们必须熟练掌握对磁盘文件的操作。 对于我们来说,我们只必须掌握文本文件(或称正文文件,text)的读写即可:1.文本文件的定义: 文本文件不是简单地由某类型的元素序列所组成,它的基本元素是字符,由它们构成行,若干行组成一份原文。由于各行的长度可以不同,所以文本文件只能顺序地处理。文本文件的定义如下:varfp:text;2.文本文件的读操作: (1)调用assign过程,把磁盘文件赋予文本文件变量;assign(fp,filename); (2)调用reset过程,为读操作做准备;reset(fp); (3)在需要读数据的位置调用read过程或readln过程。readln(fp,var1,var2,...,varn);3.文本文件的写操作: 第49页共277页信息学奥林匹克竞赛辅导 (1)调用assign过程,把磁盘文件赋予文本文件变量;assign(fp,filename); (2)调用rewrite过程,为读操作做准备;rewrite(fp); (3)在需要读数据的位置调用write过程或writeln过程。writeln(fp,var1,var2,...,varn);4.文本文件的关闭操作:close(fp);5.文本文件的其他操作: (1)EOF(fp)布尔函数,用于判断文件结束否。(2)EOLN(fp)布尔函数,用于判断行结束否。例1:下面是一个建立和使用文件的程序:programwenjian;constn=3;m=2;typestudent=recordname:string; score:array[1..m]of0..100;end; varst:array[1..n]ofstudent;stfile:fileofstudent;sumst:array[1..n]ofinteger;sumsub:array[1..m]ofinteger;sum:integer;procedurenewfile;vari,j:integer;begin assign(stfile,"score.fil");rewrite(stfile);fori:=1tondobegin writeln("Inputstudent",i,"nameand",m,"score");readln(st[i].name);forj:=1tomdoread(st[i].score[j]);readln; write(stfile,st[i]);end; close(stfile); 第50页共277页 友情提示:本文中关于《高一第一学期信息技术竞赛辅导总结》给出的范例仅供您参考拓展思维使用,高一第一学期信息技术竞赛辅导总结:该篇文章建议您自主创作。 来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。
《高一第一学期信息技术竞赛辅导总结》由互联网用户整理提供,转载分享请保留原作者信息,谢谢!
链接地址:http://www.bsmz.net/gongwen/599982.html