版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机奥赛初赛知识讲座第一页,共七十三页,编辑于2023年,星期五一、计算机的发展与应用二、计算机组成与工作原理和信息的表示与存储
三、多媒体应用
四、计算机网络使用基础
五、程序设计语言基础六、程序的阅读分析第二页,共七十三页,编辑于2023年,星期五世界上的第一台计算机(ENIAC)于1946年诞生在美国宾夕法尼亚大学,由物理学家约翰.莫克利和工程师普雷斯伯.埃克特研制的.特点:体积大,功率大,重量大,1秒钟5000次加法⑴计算机的发展历经了哪几个阶段;年代元件处理速度第一代1946-1958电子管几千条第二代1959-1964晶体管几百万条第三代1965-1970集成电路几千万条第四代1971-至今大规模集成电路数亿条以上第五代NC——网络计算机(将整个网络看成一个巨大的磁盘驱动器,数据和文件存储在服务器)非冯·诺依曼式的计算机模型(以人脑神经系统处理信息的原理为基础):生物计算机、光子计算机、量子计算机第三页,共七十三页,编辑于2023年,星期五我国的计算机发展情况·我国从1956年开始计算机的科研和教学工作;·1960年我国第一台自行设计的通用电子计算机107机诞生1964年我国研制成大型通用电子计算机119机;·1983年每秒运行一亿次的银河巨型计算机在国防科技大学诞生;
1992年研制成功每秒运行10亿次的“银河Ⅱ”巨型计算机;1997年又研制成功每秒运行130亿次的“银河Ⅲ”巨型计算机;·我国较有名的微型计算机品牌有:“联想”、“长城”、“方正”等;第四页,共七十三页,编辑于2023年,星期五计算机发展史上的里程碑——计算机存储程序的工作原理(冯·诺依曼原理)美籍匈牙利数学家冯·诺依曼(vonNeumaml)在1946年提出的,其思想是,在计算机中设置存储器,将符号化的计算步骤存放在存储器中,然后依次取出存储的内容,由一个被称之为控制器的部件进行译码,译码结果在一个被称为运算器的部件中进行计算,从而实现计算机工作的自动化(运算器和控制器统称为CPU)。冯·诺依曼依据此原理设计出一个完整的计算机雏形,并确定了计算机的五大组成部分和基本的工作方法。第五页,共七十三页,编辑于2023年,星期五什么叫cisc和risc?Cisc:复杂指令系统计算机.Risc:简单指令系统计算机其理论要点如下:1、计算机硬件设备由存储器、运算器、控制器、输入设备和输出设备5部分组成。2、存储程序思想——把计算过程描述为由许多命令按一定顺序组成的程序,然后把程序和数据一起输入计算机,计算机对已存入的程序和数据处理后,输出结果。第六页,共七十三页,编辑于2023年,星期五1.计算机的系统组成计算机系统由软件和硬件两部分组成。硬件即构成计算机的电子元器件;软件即程序和有关文档资料。计算机硬件由五大部分组成:运算器、控制器、存储器、输入设备、输出设备。没有装载软件的计算机称为裸机中央处理器(CPU——CentralProcessingUnit)由运算器、控制器和一些寄存器组成;运算器进行各种算术运算和逻辑运算;控制器是计算机的指挥系统;CPU的主要性能指标是主频和字长。输入设备:键盘、鼠标、扫描仪,手写板,话筒,摄影机,触摸板,视频输入设备·条形码扫描器等。输出设备:显示器、打印机、绘图仪等。第七页,共七十三页,编辑于2023年,星期五存储器:具有记忆功能的物理器件,用于存储信息。存储器分为内存和外存①内存是半导体存储器(主存)中央处理器能直接访问的存储器称为内部存储器:它分为只读存储器(ROM)和随机存储器(RAM)和高速缓冲存储器(Cache);
ROM:只能读,不能用普通方法写入,通常由厂家生产时写入,写入后数据不容易丢失,也可以用特殊方法(如紫外线擦除(EPROM)或电擦除
(EEPROM_)存储器);断电后内容不丢失.
RAM:可读可写,断电后内容全部丢失;
Cache:因为CPU读写RAM的时间需要等待,为了减少等待时间,在RAM和CPU
间需要设置高速缓存Cache,断电后其内容丢失。
②外存:中央处理器不能直接访问的存储器称为外部存储器,外部存储器中的信息必须调入内存后才能为中央处理器处理.
磁性存储器——软盘和硬盘;光电存储器——光盘,还有u盘,mp3,mp4,
移动硬盘等它们可以作为永久存器;硬盘分为转速7200转/分和5400转/分等多种,容量为10G20G200G等软盘:3.5英寸/1.44MB
光盘:DVDCD-ROM等等
③存储器的两个重要技术指标:存取速度和存储容量。内存的存取速度最快(与
CPU速度相匹配),软盘存取速度最慢。存储容量是指存储的信息量,它用字节(Byte)作为基本单位,
1字节用8位二进制数表示,1KB=1024B,1MB=1024KB,lGB=1024MB第八页,共七十三页,编辑于2023年,星期五(2)计算机的软件系统计算机的软件主要分为系统软件和应用软件两类:
①系统软件:为了使用和管理计算机的软件,主要有操作系统软件如,WINDOWS95/98/2000/NT4.0/XP/VISTA、DOS6.0、UNIXLINUX等;WINDOWS95/98/2000/NT4.0是单用户多任务可视化图形界面,而DOS是字符命令形式的单用户单任务的操作系统。Unixlinux是多用户多任务的操作系统
②应用软件:为了某个应用目的而编写的软件,主要有辅助教学软件(CAI)、辅助设计软件(CAD)、文字处理软件、工具软件以及其他的应用软件。第九页,共七十三页,编辑于2023年,星期五操作系统是计算机系统中的一种系统软件,它能对计算机系统中的软件和硬件资源进行有效地管理和控制,合理地组织计算机的工作流程,为用户提供一个使用计算机的工作环境。
手工操作管理程序单道批处理系统多道批处理系统分时系统实时操作系统网络操作系统
第十页,共七十三页,编辑于2023年,星期五DOS——单用户的唯一任务占用计算机上所有的硬件和软件资源,所能访问的主存地址空间太小。Windows——多作业、大内存管理、统一的图形用户界面,并且发展到网络环境使用UNIX操作系统、Linux操作系统、MacintoshOS第十一页,共七十三页,编辑于2023年,星期五裸机系统软件应用软件用户第十二页,共七十三页,编辑于2023年,星期五计算机的类型:按通途的不同:通用机和专用机按运算速度,字长,存储容量等多方面因素:大型通用机,巨型机,
小型机,微型机大型机:以国家为单位研制使用的,计算速度极快巨型机:巨型机的研制水平,生产能力已成为一个国家经济和科技实力的重要标志小型机:比巨型机小的,但比微型机大(速度);微型机:又称微机,个人计算机,pc等等,是以微型处理器(中央处理器)
为基础组成的.1971年,美国的intel公司生产了第一块微型处理器intel4004,
并以此为基础组成了第一台微机mcs-4第十三页,共七十三页,编辑于2023年,星期五微型机的主要技术指标1字长:一次计算能够直接处理的二进制数据的位数。单位为位(bit2主频:指计算机主时钟在一秒钟内发出的脉冲数,在很大程度上决定了计算机的运算速度。3内存容量:是标志计算机处理信息能力强弱的一向技术指标。单位为字节(BYTE)。
8BIT=1BYTE1024B=1KB1024KB=1MB4外存容量:一般指软盘、硬盘、光盘。位:计算机只认识由0或1组成的二进制数,二进制数中的每个0或1就是信息的最小单位,称为"位"(bit)。字节:是衡量计算机存贮容量的单位。一个8位的二进制数据单元称一个字节(byte)。在计算机内部,一个字节可以表示一个数据,也可以表示一个英文字母或其他特殊字符,二个字节可以表示一个汉字。字:在计算机中,作为一个整体单元进行存贮和处理的一组二进制数。一台计算机,字的二进制数的位数是固定的。字长:一个字中包含二进制数位数的多少称为字长。字长是标志计算机精度的一项技术指标。一些基本的概念第十四页,共七十三页,编辑于2023年,星期五存贮器编址:为了便于对计算机内的数据进行有效的管理和存贮,需要对内存单元编号,即给每个存贮单元一个地址。每个存贮单元存放一个字节的数据。如果需要对某一个存贮单元进行存贮,必须先知道该单元的地址,然后才能对该单元进行信息的存取。计算机的特点(1):运算速度快(2):计算精度高(3):具有记忆和逻辑判断能力(4):自动处理能力第十五页,共七十三页,编辑于2023年,星期五计算机的应用(1)数值计算(2)数据处理(3)实时控制(4)辅助教育(5)辅助设计(6)办公自动化第十六页,共七十三页,编辑于2023年,星期五计算机系统计算机硬件计算机软件输入设备输出设备存储器运算器控制器系统软件应用软件键盘,鼠标,话筒,扫描仪显示器,打印机,绘图仪内存,外存,光盘速度和容量中央处理器(CPU)操作系统数据库管理程序语言处理程序OFFICE,FLASH,REALPLAY第十七页,共七十三页,编辑于2023年,星期五计算机病毒计算机病毒是一种程序,是人为设计的具有破坏性的程序计算机病毒具有破坏性、传播性、可激发性、潜伏性、隐蔽性等特点病毒的分类
(1)按病毒设计者的意图和破坏性大小,可将计算机病毒分为良性病毒和恶性病毒。
①良性病毒:这种病毒的目的不是为了破坏计算机系统,而只是为了编制者表现自己。此类病毒破坏性较小,只是造成系统运行速度降低,干扰用户正常工作。
②恶性病毒:这类病毒的目的是人为的破坏计算机系统的数据。具有明显破坏目标,其破坏和危害性都很大,可能删除文件或对硬盘进行非法的格式化。
(2)计算机病毒按照寄生方式可以分为下列四类:
①源码病毒:
②入侵病毒:
②操作系统病毒:
④外壳病毒:第十八页,共七十三页,编辑于2023年,星期五防治病毒的步骤:
⑴不要用软盘启动机器
⑵不要运行来路不明的软件
⑶定期备份重要系统数据
⑷重要的数据盘,程序盘应写保护
⑸使用杀毒软件检查和清除病毒病毒传染有两个条件:(1)通过某个途径进入计算机:比如硬盘,软盘,u盘,网络下载,光盘,收发电子邮件等等(2)病毒是被激活的,一定要满足某个条件,病毒才会开始运行.比如某个日期等等。第十九页,共七十三页,编辑于2023年,星期五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的那些位的权值相加,其和就是等效的十进制数。进位计数制之间的转换问题第二十页,共七十三页,编辑于2023年,星期五2、十进制转换为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第二十一页,共七十三页,编辑于2023年,星期五3、二、八、十六进制的相互转换即每位八进制数相当于三位二进制数,每位十六进制数相当于四位二进制数。在转换时,位组划分是以小数点为中心向左右两边延伸,中间的0不能省略,两头不够时可以补0。例如:将1011010.102转换成八进制和十六进制数001011010.1001011010.102=132.48132.401011010.10001011010.102=5A.816
5A.8将十六进制数F7.28变为二进制数F7.28F7.2816=11110111.00101211110111.00101000
将八进制数25.63转换为二进制数25.6325.638=10101.110011210101.110011
第二十二页,共七十三页,编辑于2023年,星期五三、在计算机中带符号数的表示法1、机器数与真值规定在数的前面增设一位符号位,正数符号位用“0”表示,负数符号位用“1”表示。为了区别原来的数与它在计算机中的表示形式,我们将已经数码化了的带符号数称为机器数,而把原来的数称为机器数的真值。例如N1=+1001100、N2=-1001100为真值,其在计算机中的表示01001100和11001100为机器数。2、原码〈trueform〉
在用二进制原码表示的数中,符号位为0表示正数,符号位为1表示负数,其余各位表示数值部分。这种表示法称为原码表示法。例如对于8位二进制原码[+0]原=00000000,[-0]原=10000000[-1101001]原=11101001在计算机中,数据是以补码的形式存储的规律:正数的原码是它本身,负数的原码是取绝对值后,在最高位(左端)补“1”。第二十三页,共七十三页,编辑于2023年,星期五3、反码(two’scomplement)一个负数的原码符号位不变,其余各位按位取反就是机器数的反码表示法。正数的反码与原码相同。
[+0]补=[-0]补=00…0[-2n-1]补=2n-2n-1=2n-1
4、补码〈0ne’sComplement〉(1)正数的补码表示与原码相同;(2)负数的补码是将原码符号位保持“1”之后,其余各位按位取反,末位再加1便得到补码,即取其原码的反码再加“1”:[x]补=[x]反+1。补码和反码之间的运算,可以先转换成原码,再计算出结果,再将结果转成相应的码制第二十四页,共七十三页,编辑于2023年,星期五信息存储单位⑴位(bit,缩写为b):度量数据的最小单位,表示一位二进制信息。⑵字节(byte,缩写为B):一个字节由八位二进制数字组成(lbyte=8bit)。字节是信息存储中最常用的基本单位。计算机存储器(包括内存与外存)通常也是以多少字节来表示它的容量。常用的单位有:KB1K=1024,MB1M=1024K,GB1G=1024M⑶字(word):字是位的组合,并作为一个独立的信息单位处理。字又称为计算机字,它的含意取决于机器的类型、字长以及使用者的要求。常用的固定字长有8位、16位、32位等。信息单位用来描述机器内部数据格式,即数据(包括指令)在机器内的排列形式,如单字节数据,可变长数据(以字节为单位组成几种不同长度的数据格式)等。⑷机器字长:在讨论信息单位时,还有一个与机器硬件指标有关的单位,这就是机器字长。机器字长一般是指参加运算的寄存器所含有的二进制数的位数,它代表了机器的精度。机器的功能设计决定了机器的字长。一般大型机用于数值计算,为保证足够的精度,需要较长的字长,如32位、64位等。而小型机、微型机、微机一般字长为16位、32位等。第二十五页,共七十三页,编辑于2023年,星期五非数值信息的表示西文字符编码⑴ASCII码——“美国信息交换标准代码”的简称。ASCII码包括0~9十个数字,大小写英文字母及专用符号等95种可打印字符,还有33种控制字符(如回车、换行等)。一个字符的ASCII码通常占一个字节,用七位二进制数编码组成,所以ASCII码最多可表示128个不同的符号。最高位作为校验码,以便提高字符信息传输的可靠性。数字和字母的ASCII码按照数字递增顺序或字典顺序排列排列,大写字母和小写字母的ASCII码是不同的。⑵EBCDIC码——美国IBM公司在它的各类机器上广泛使用的一种信息代码。一个字符的EBCDIC码占用一个字符,用八位二进制码表示信息,最多可以表示出256个不同代码。
中文信息编码目前的汉字编码方案有二字节、三字节甚至四字节的。下面我们主要介绍“国家标准信息交换用汉字编码”(CB2312-80标淮),以下简称国标码。国际码是二字节码,用二个七位二进制数编码表示一个汉字。目前国标码收人6763个汉字,其中一级汉字(最常用)3755个,二级汉字3008个,另外还包括682个西文字符、图符。在计算机内部,汉字编码和西文编码是共存的。区分的方法之一是对于二字节的国标码,将二个字节的最高位都置成1,而ASCIl码所用字节最高位保持0,然后由软件(或硬件)根据字节最高位来作出判断。第二十六页,共七十三页,编辑于2023年,星期五“多媒体技术”就是用计算机交互地综合处理文本、图形、图象、动画、音频及视频影象等多种信息,并使这些信息建立逻辑连接。
第二十七页,共七十三页,编辑于2023年,星期五1、音频信号处理(声卡):录入、处理重放信号;用MIDI技术合成音乐2、图形和图象处理:真彩色卡;图象采集卡;图象信号压缩技术;3、视频处理:实时录象和压缩视频图象的硬件解压缩卡;软件解压缩技术多媒体计算机的基本配置
WINDOWS9X以上版本的操作系统和相应的硬件标准多媒体计算机的功能第二十八页,共七十三页,编辑于2023年,星期五CD—ROM(高密度盘,即光盘)通过光学方式(使用激光束)读写信息技术标准1、数据传输率2、平均搜索时间CD-ROM650MDVD3G~9G第二十九页,共七十三页,编辑于2023年,星期五色彩数目分辨率特点16640*480Windows的最低配置、显示速度最快256800*600性能虽好一些,但易产生调色板的冲突655361024*768全彩的显示模式,色彩逼真,不会再有调色板的冲突。16M1284*1024高等级的3D绘图软件和专业级的视频录制人员使用的真彩色模式,要求更多的RAM在显示卡和主机板上,CPU最好也是顶级的。显示卡
水平分辨率×垂直分辨率×色彩数目=显示存储空间显示加速:VRAM、EDORAM,WindowsRAM,RamlbusDRAM常用显示芯片:ATINVIDIA
Intel810/815ntel845/852/865SiSS3VIA显示模式
第三十页,共七十三页,编辑于2023年,星期五1、屏幕由象素组成2、主要部件(电子枪、荧光屏遮罩、荧光屏)3、电子束由左而右、由上而下周期性扫描产生持续稳定的画面4、红、绿、蓝三个电子枪的亮度决定颜色5、扫描频率更高、并能自动调整扫描频率显示器显示器分为:液晶显示器(LCD)
纯平显示器球面显示器(crt)第三十一页,共七十三页,编辑于2023年,星期五数据压缩和解压缩技术
静止图像压缩标准JPEG(JointPhotographicExpertsCroup)动态图像压缩标准MPEG(MovingPictureExpertsCroup)多通道的动态图像压缩标准MP×64
第三十二页,共七十三页,编辑于2023年,星期五相关名词
位图:由一点一点的像素点排成矩阵组成的,其中每一个像素点都可以是任意颜色。
向量图:用向量代表图中所表现的元素。像素:图形的最小组成单位
真彩色:人的眼睛能够分辨出的颜色大约有1万6千多种,为了能表现出这么多种色彩,我们得用24bit(224=16M)来描述一个像素的颜色,这种显示模式就称为真彩色。RGB模式:分别代表红、绿、蓝三种颜色,计算机以RGB模式来定义计算机屏幕上的颜色。通过混色原理,不同比例的RGB色彩可调和出无穷多种颜色。HSB模式:分别表示色调(hue)、饱和度(saturation)、亮度(bright)。不同的色调代表不同的颜色;饱和度指的是某区域中,该颜色量的多少,饱和度越低,该区域看起来就越灰暗;亮度则是指颜色的亮、暗,极亮成白色,极暗则成黑色。相对于RGB模式,HSB模式设定颜色的方式可产生更好的视觉效果。第三十三页,共七十三页,编辑于2023年,星期五多媒体信息处理工具图形制作平台FreeHand图像处理平台PhotoshopACDSeeCorelDRAWAcrobatProFireworks动画制作平台AnimationPro
flashmaya
3dsmax
视频处理软件primere绘声绘影moviemakerMacromediaDirector网页制作工具DreamweaverFrontPage
第三十四页,共七十三页,编辑于2023年,星期五数据库中最常用的模型有:层次模型,网状模型,关系模型,面向对象模型一对多多对多二维表格结构表达实体集
常用的数据库系统:
accessoracledb2SQL
VisualFoxpro
第三十五页,共七十三页,编辑于2023年,星期五“雏形”:主机——终端系统
里程碑:APRANET网
广域网(WAN):实现远距离的计算机之间的数据传输和信息共享的计算机网络。通信线路一般租用电话线路或铺设专用电缆。
局域网络(LAN):为一个单位,或一个相对独立的局部范围内大量存在的微机能够相互通信、共享昂贵的外部设备(如大容量磁盘、激光打印机、绘图议等)、共享数据信息和应用程序而建立的计算机网络。通信线路一般不租用电话线路,使用专门铺设的线路。
互联网(Internet):将遍布全球的子网通过连网协议集成到一个共享的、开放的、易于管理的主干网。
第三十六页,共七十三页,编辑于2023年,星期五功能1、硬件资源共享2、软件资源共享3、数据和信息共享定义
计算机网络是由地理位置分散的、具有独立功能的多个计算机系统,经通讯设备和线路互相连接,并配以相应的网络软件,以实现通信和资源共享的系统简单讲:计算机网络是由计算机软件、计算机硬件与通信设备组成。第三十七页,共七十三页,编辑于2023年,星期五计算机网络的物理组成网络中心主干机、服务器、网络工作站
共享的外部设备网卡通信线路(双绞线、同轴电缆和光缆、无线传输介质(如微波、红外线和激光等))
局部网络通信设备(中继器、集线器交换机)
网络互连设备(网桥、路由器和网关)网络软件(对等式网络操作系统、服务器上的网络操作系统)
第三十八页,共七十三页,编辑于2023年,星期五计算机网络的拓扑结构
总线拓扑星型拓扑
第三十九页,共七十三页,编辑于2023年,星期五环型拓扑树型拓扑
第四十页,共七十三页,编辑于2023年,星期五计算机网络的体系结构
所谓网络体系结构就是对构成计算机网络的各组成部分之间的关系及所要实现功能的一组精确定义。国际标准化组织(ISO)提出的开放系统互联参考模型(OSI)已成为网络体系结构的标准第四十一页,共七十三页,编辑于2023年,星期五Internet使用TCP/IP网络体系结构TCP/IP的层号TCP/IP的层次名
对应OSI模型的层次3应用层(ftp和telnet等协议)应用层、表示层、会话层
2传输控制协议TCP传输层1
网际协议IP网络层
第四十二页,共七十三页,编辑于2023年,星期五计算机网络应用模式
客户机/服务器模型:将应用分成客户机和服务器两大部分,并将它分配到整个网络上。由服务器提供资源,通常执行后台功能;而客户机使用服务器,通常执行前台功能。文件服务器:提供操作系统中文件管理的各种功能(网络文件的访问方式:文件传输和文件访问)打印服务器:将一台或几台打印机物理地连接到打印服务器上,可为多个客户机用户轮流使用数据库服务器:侧重于传统数据库管理系统的功能(如数据的定义及存取、数据的安全性与完整性、并发控制及事务处理等)的服务器远程登录:通过用户帐号访问远地系统的资源第四十三页,共七十三页,编辑于2023年,星期五Internet网络地址
IP地址:
网络数网络主机数主机数A类网络126163870642064770064B类网络16256645161048872096C类网络2064512254524386048总计20848943638028208域名(或称主机名称):计算机主机名.子域名.子域名.最高层域名第四十四页,共七十三页,编辑于2023年,星期五Internet应用
文件传输
(使用匿名文件传输服务(匿名FTP)网上软件分类:公共软件、免费软件、共享软件
)远程登录(Telnet命令)
电子邮政服务
(电子邮箱地址:用户名@计算机域名)网络新闻与公告牌服务
(网络新闻是由USENET在Internet中的新闻服务器节点之间进行传递的,阅读新闻组的软件有OutlookExpress)信息查询服务
(最为流行的信息查询服务系统是万维网(WorldWideWeb),简称WWW,即基于“超文本”方式的信息查询技术)。超文本:非顺序的文本呈现超媒体:超文本和多媒体浏览环境下的应用Momepage是由HTML语言编写的文本文件,经过WWW浏览器的解释和处理后,网页显示在用户目前的是多媒体的超文本文件第四十五页,共七十三页,编辑于2023年,星期五语言和程序设计的发展
第一代语言——机器语言
第二代语言——汇编语言
第三代语言——高级语言、算法语言(BASIC、FORTRAN、COBOL、Pascal、C)
第四代语言——非过程化语言(SQL语言)
第五代语言——智能性语言(PROLOG语言、LISP语言)
第四十六页,共七十三页,编辑于2023年,星期五计算程序的运行结果
一、直接推理二、由流程图推断算法三、动态模拟
四、由底向上阅读分析
第四十七页,共七十三页,编辑于2023年,星期五对于一些语句少、结构简单且可读性较强的程序,不妨通过分析程序流程,直接寻找其间蕴含的计算模型。{$n+}
varm,n,I:integer;t:extended;beginreadln(n,m);t:=1;fori:=1tomdot:=t*(n-i+1)/i;writeln(t:0:0);end.输入105输出:
第四十八页,共七十三页,编辑于2023年,星期五【分析】由for循环可以看出t=,即i=1时,t=n;i=2时,t=n*(n-1)/2;i=3时,t=n*(n-1)/2*(n-2)/3;………i=m时,t=c(n,m)=n!/(m!*(n-m)!)
显然,这是求组合数。当输入n=10、m=5时,程序应输出252。这个算法的效率不错,因为计算与n和m的大小有直接的关系。所以,我们要设法使运算的中间结果尽可能地小。如果我们先把N~(N-M+1)这M个连续的自然数乘起来,再依次除以1~M就是一种不太明智的选择。上述程序先乘N除1,然后乘(N-1)除2,再乘(N-2)除3,……最后乘(N-M+1)除M。因为连续的K个自然数的积一定能被K!整除,所以在这一过程中不会出现除不尽的情况。同时也使得中间结果比较小,从而提高了运算速度。告诫读者的是,对于上述算法来说,n和m不能超过102。如果超过了这个上限,t就会溢出,尽管它采用了extended类型。第四十九页,共七十三页,编辑于2023年,星期五对于一些易读性不十分好的程序,最好的办法是画流程图。其步骤如下
⑴跟着程序画流程图,一句一框;
⑵根据上下文的联系合并流程图。若前几句计算值都要代入后一表达式,则合并为一框。接连合并几次,使程序成为一个大功能块;
⑶由大功能块推断算法;
⑷代入输入值,计算结果。
第五十页,共七十三页,编辑于2023年,星期五label10,20,30;vars,p:string;i,k,n,j,m:integer;beginreadln(s);n:=length(s);readln(p);m:=length(p);i:=0;10:i:=i+1;j:=i;k:=1;20:ifs[j]<>p[k]thenbeginifi<n-m+1thengoto10;i:=0;goto30;endelseifk<mthenbeginj:=j+1;k:=k+1;goto20;end;30:writeln(i);end.输入输出
asabcdffdinfdi第五十一页,共七十三页,编辑于2023年,星期五这个程序的功能是计算s串中与p匹配的子串的首指针。当程序输入asabcdffdinfdi程序应输出8,即s[8]…s[10]=p=‘fdi’。第五十二页,共七十三页,编辑于2023年,星期五动态模拟方法是采用人工模仿机器执行程序的方法计算结果值。首先选择程序中比较重要的变量作为工作现场。人工执行程序时,只要按照时间先后一步步记录下现场的变化,就能最后得出程序的运算结果。其具体布置如下:
⑴画表,画出程序执行时要用的现场情况表;
⑵基本读懂各语句的功能
⑶走程序,即动态模拟程序。主要根据各语句的功能,按照程序执行路径的先后顺序逐项填写现场情况表,直至得出最后结果;
动态模拟方法对简单程序、尤其是循环次数少的程序是很有效的。但对语句多和计算过程长的程序,这个方法则由于模拟速度太慢而不实用。
第五十三页,共七十三页,编辑于2023年,星期五vari,j:integer;a:array[1..3,1..3]ofinteger;beginfori:=1to3dobeginforj:=1to3dobeginifi=3thena[i,j]:=a[i-1,a[i-1,j]]+1elsea[i,j]:=j;write(a[i,j]);end;writelnend;readlnend.输出:
第五十四页,共七十三页,编辑于2023年,星期五ji123112321233234显然,最后应输出123123234第五十五页,共七十三页,编辑于2023年,星期五vara,d:array[1..100]ofinteger;n,i,j,k,x,s:integer;beginn:=5;a[1]:=1;d[1]:=1;fori:=1tondobegins:=i+1;x:=0;forj:=1ton+1-idobegink:=s+x;x:=x+1;a[j+1]:=a[j]+k;write(a[j],'');end;writeln('...');d[i+1]:=d[i]+i;a[1]:=d[i+1];end;end.输出:
外循环内循环i=S=d[i+1]a[1]=k=x=a[j+1]=输出a[j]1222213123263343106454151056521152344315224295353149464201434774184252138363191345111151127262181256
611711最后应输出
1361015…25914…4813…712…11…
第五十六页,共七十三页,编辑于2023年,星期五由底向上分析的阅读分析方法就是在剖析了子程序和模块资源的基础上,建立对高层程序结构的理解,从而完成整个程序的阅读分析,即从最底层的子目标开始分析起,看它们做了哪些事情;然后分析上一层的子目标,看这些子目标在下一层子目标实现的基础上实现了哪些功能……。经过自底而上的阅读分析,最后得出计算模型。第五十七页,共七十三页,编辑于2023年,星期五constlimit=3000;typetdata=array[0..limit]oflongint;varans,num:tdata;i,j,n:longint;procedureupdate(vara:tdata);varinti;beginfori:=0tolimit-1dobegininc(a[i+1],a[i]div10);a[i]:=a[i]mod10;end;end;proceduremult(vara:tdata;b:integer);vari,j:integer;beginfori:=0tolimitdoa[i]:=a[i]*b;update(a);end;
procedureadd(x,ob:longint);vari:longint;beginfori:=2toxdowhile(xmodi=0)dobegininc(num[i],ob);x:=xdivi;end;end;Beginread(n);fillchar(num,sizeof(num),0);fori:=0ton-1dobeginadd(i+1,-1);add(n+n-i,1);end;{for}add(n+1,-1);
fillchar(ans,sizeof(ans),0);ans[0]:=1;
fori:=2tolimitdoforj:=1tonum[i]domult(ans,i);
fori:=limitdownto0doif(ans[i]>0)thenbeginforj:=idownto0dowrite(ans[j]);writeln;break;end;{then}End.输入输出5
第五十八页,共七十三页,编辑于2023年,星期五update(vara)是将数组a规整为高精度的十进制数组mult(vara,b)是将高精度的十进制数组a乘以整数b,积存储在a中。add(x,ob)计算因子表,ob=1,num←num*x;ob=-1,num←num/x。其中num[i]为因子i的个数主程序计算catalan数1/(n+1)*c(2*n,n)。显然n=5,则程序输出42(1/6*c(10,5))第五十九页,共七十三页,编辑于2023年,星期五完善程序
填空内容:1、变量方面的填空2、循环方面的填空
3、分支转移方面的填空
4、主程序和子程序关系方面的填空
5、输入输出方面的填空
填空方法:
按照自顶向下的思维方法阅读程序——从主程序开始,沿控制层次向下阅读。在查到某一个子程序(子模块)时,比照题目给出的说明和调用它的“父程序(父模块)”,弄清该子程序(子模块)究竟要达到什么样的子目标,然后查程序,看它是如何实现这个子目标的。如果该子程序(子模块)有空格,则按照算法的逻辑进行填空。依次类推,直至最底层的子程序(子模块)中的空格全部填完为止。第六十页,共七十三页,编辑于2023年,星期五1、完善不含子程序的程序
首先划分各个子模块的层次结构,并确定每个子模块的子目标。然后自顶向下,根据子目标和上层子模块给出的线索,对当前层次的各个模块进行填空。依次类推,直至最底层的子模块中的空格全部填完为止。
求元素之和最大的子方阵:在m×n(m,n≤20)的正整数数字方阵中,找出一个p×q的子阵(1≤p≤m,1≤q≤n)使其元素之和最大。例如,下面5×4的数字阵中,元素之和最大的一个2×3子阵。
5×4数字阵元素之和最大的2×3子阵为384221117952162103892712352161038第六十一页,共七十三页,编辑于2023年,星期五vara:array[1..20,1..20]ofinteger;m,n,p,q,i,j,max,p1,q1,s,i1,j1:integer;beginfori:=1to20doforj:=1to20doa[i,j]:=0;readln(m,n);fori:=1tomdobeginforj:=1tondoread(a[i,j]);readlnend;readln(p,q);max:=0;
fori:=1tom-p+1doforj:=1ton-q+1dobegin
①;
fori1:=itop+i-1doforj1:=jtoq+j-1do
②;
ifs>maxthenbegin
③;p1:=i;q1:=jend;end;
fori:=p1to④dobeginforj:=q1to⑤dowrite(a[i,j]:3);writelnend;readlnend.第六十二页,共七十三页,编辑于2023年,星期五模块1(初始化,白色):方阵清零;读方阵规模;读方阵;读子阵规模;子阵的最大数和初始化模块2(湖蓝)通过枚举所有可能子阵,求数和最大的子阵。其中子模块1(深蓝):累计(i,j)为左上角的子阵的数和子模块2(淡绿):调整子阵的最大数和
模块3(红色)——输出最大数和的子阵。由此得出解①s:=0②s:=s+a[i1,j1]③max:=s④p1+p-1⑤q1+q-1第六十三页,共七十三页,编辑于2023年,星期五以下程序完成对数组每个元素向后移动n个单位。数组元素的下标依次为0到m-1,对任意一个数组元素a[i]而言,它的值移动后将存储在数组元素a[(i+n)modm]中。例如,m=10,n=3,移动前数组中存储的数据如下前一行所示,则程序运行后数组中存储的数据如下后一行所示。
038620276731163742163742038620276731第六十四页,共七十三页,编辑于2023年,星期五constmaxm=10000;vari,k,m,n,rest,start,temp:longint;a:array[0..maxm]oflongint;beginwrite('inputm,n:');readln(m,n);fori:=0tom-1doa[i]:=random(100);writeln('beforemove');fori:=0tom-1dowrite(a[i]:5);writeln;rest:=m;start:=0;while①dobegin
k:=start;repeatk:=(k+n)modmuntilk<=start;
if②thenbegintemp:=a[k];repeata[k]:=a[(m*n+k-n)modm];k:=(m*n+k-n)modm;
③untilk=start;
④end;
⑤
end;writeln('aftermove');fori:=0tom-1dowrite(a[i]:5);writelnend.第六十五页,共七十三页,编辑于2023年,星期五模块1——初始化
模块2——移动计算,其中子模块1:判断以a[k]开始的的循环链上的元素是否都未移动过
子模块2:若以a[k]开始的的循环链上的元素都未移动过,则该循环链进行移动
子模块3:寻找下一个未移动过的循环链
模块3——输出移动后的数组
由此得出解为①rest>0或rest<>0②k=start③rest:=rest-1④a[(k+n)modm]:=temp或a[(start+n)modm]:=temp⑤start:=start+1第六十六页,共七十三页,编辑于2023年,星期五完善含子程序结构的程序
如果子模块采用过程或函数,则通常以子程序为单位划分层次结构,这样可以使得其层次性相对不含子程序的程序来说要清晰一些。程序的任务是用0…9中的n个数字填入如下乘法运算的*处,数字可重复使用,且所用的数字至少有一个是素数,要求输出满足下列算式的方案数。***
×**
******
****第六十七页,共七十三页,编辑于2023年,星期五constp:setof0..9=[2,3,5,7];vars:setof0..9;n:integer;ans:longint;f:text;procedureinit;vari:integer;t:byte;beginreadln(n);s:=[];fori:=1tondobeginread(t);s:=s+[t];end;close(f);end;
functionok(x,l:integer):boolean;{此函数判断x是否符合条件}vart:byte;beginok:=false;if_______①________<>lthenexit;whilex<>0dobegint:=xmod10;ifnot(tins)thenexit;x:=xdiv10;end;ok:=true;end;functioninset(x:integer):boolean;{此函数判断x中是否包含素数字}vart:byte;begin
inset:=false;while______②_______dobegint:=xmod10;iftinp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年宿舍安全宣传培训
- 2026年商场防踩踏演练
- 人教部编版七年级历史下册 第二单元辽宋夏金元时期 第六课北宋的政治 教案
- 失能老人护理中的社会支持网络
- 电子元件包装流程规范
- 2026年高考化学二轮复习(全国)微专题02V、Cr、Mn、Co等过渡金属化合物的制备流程(讲义)(解析版)
- 某船舶厂船体建造细则
- 2026年面部经络按摩美颜抗衰老实操培训
- 母婴护理中的职业道德
- 吉林省长春市2026年中考物理适应性模拟试题(含答案解析)
- 2025年苏州市中考物理试卷真题(含答案解析)
- 中国消防检测系统行业市场发展前瞻及投资战略研究报告2025-2028版
- 村集体林地管理制度
- 保险公司报价管理制度
- 茶艺与茶文化校考考试试题及答案
- 公共卫生基本操作技能1公卫执业医师技能-公卫执业实践技能
- T/CI 178-2023高大边坡稳定安全智能监测预警技术规范
- DB31/T 1057-2017在用工业锅炉安全、节能和环保管理基本要求
- (高清版)DB62∕T 3255-2023 建筑工程施工扬尘防治技术标准
- 冶金建设工程施工组织设计标准
- (三诊)成都市2022级高中高三毕业班第三次诊断性检物理试卷(含答案)
评论
0/150
提交评论