信息学奥林匹克竞赛培训教案
第1章计算机的发展与应用
1.1 计算机发展简史
1.1.1 第一台电子计算机的诞生
1946年,世界上第一台数字式电子计算机由美国宾夕法尼亚大学的物理学家约翰·莫克利(John Mauchly)和工程师普雷斯伯·埃克特(PresperEckert)领导研制成功,取名为ENIAC(Electronic Numerical Integrator And Calculator)。它可以在1秒进行5000次加减运算,3毫秒便可以进行一次乘法运算,能存储20个字长为10位的十进制数。
1.1.2 计算机发展的几个阶段
第一代 (1946~1958) | 第二代 (1958~1964) | 第三代 (1964~1975) | 第四代 (1975~至今) | |
主要电子器件 | 电子管 | 晶体管 | 中小规模集成电路 | 大规模/超大规模集成电路 |
内存 | 汞延迟线 | 磁芯存储器 | 半导体存储器 | 半导体存储器 |
外存储器 | 穿孔卡片、纸带 | 磁带 | 磁带、磁盘 | 磁盘、光盘等大容量存储器 |
处理速度(指令数/秒) | 几千条 | 几百万条 | 几千万条 | 数亿条以上 |
第四代计算机以大规模集成电路VLSI为计算机的主要功能部件,用16K、64K或集成度更高的半导体存储器作为主存储器。
新机器要继承原有机器指令系统中的全部指令,使得同一系列计算机的指令系统越来越复杂,这些计算机被称为“复杂指令系统计算机”,简称CISC。
日趋庞大的指令系统降低了系统性能,而机器中最常常的是一些简单指令,这些指令仅占指令系统中指令总数的20%,1975年提出了精简指令系统,简称RISC。
冯·诺依曼型计算机是采用存储程序方式进行工作。
研制中的第五代计算机,是一种智能计算机,具有自动识别自然语言、图形、图像有能力,具有理解和推理能力,具有知识获取、知识更新能力。研制朝两个方向努力:①创建非冯·诺依曼式语言,LISP、PROLOG、F.P.;②创建以人脑神经系统处理信息的原理为基础的非冯·诺依曼式的计算机模型,生物计算机、光子计算机、量子计算机。
1.2 计算机对现代社会的影响
1.2.1 计算机应用概述
1、科学计算:利用计算机解决科学研究和工程技术中所提出的复杂的数学问题。
2、数据处理:利用计算机对所获取的信息进行记录、整理、加工、存储和传输等。
3、人工智能:利用计算机来模仿人类的智力活动。
4、自动控制:利用计算机对动态的过程进行控制、指挥和协调。
5、计算机辅助设计和制造:利用计算机来辅助工程师们设计和制造产品。
1.2.2 由信息高速公路热引发的全球信息化浪潮
在现代,能源、材料与信息是社会发展的三大支柱。
以蒸汽机为中心的动力革命,使人类的体力劳动大大得到了解放;以电子信息技术为先导、以计算机和现代通信产业为代表的信息革命使人类的脑力劳动得到解放。
社会发展到每一阶段,都需要有相应的基础设施作支持。在农业社会,田地是社会的基础设施;19世纪进行的工业革命时代,很多国家通过建设高速公路和铁路等交通运输方面的基础
设施取得了经济飞速发展;而在信息化时代,信息高速公路就自然成为国家重要的基础设施。
1993年美国国家信息基础设施计划提出了一个具有大容量、高速度的电子数据传递系统。该系统由通信网络、信息设备、信息资源和信息环境组成。
语言是交流的工具,人与人交流要用语言,其它动物之间交流也有特定的动物的语言,人与计算机交流就要用到一些符号,这些符号的集合形成了计算机的语言。
计算机语言有一个发展过程,从机器语言开始,然后是汇编语言,现在则使用高级语言.机器语言和汇编语言属于低级语言,计算机容易懂,但人理解起来困难.高级语言人比较容易理解,因此使得计算机得以普及,当然这是指60年代.实际上,随着应用软件的发展,现在人们连语言也不用学了,也可以使用计算机,而且使用的很好.
当然,高级语言,人虽然容易懂,但计算机又不懂,因此需要翻译.所以高级语言都提供了编译系统或解释系统或集成的开发系统,对高级语言进行翻译,使得计算机能够识别并运行程序.高级语言还在发展,比如面向对象的语言,可视化的语言,网络开发语言等.
机器语言和汇编语言也可以称为低级语言.不要认为有了高级语言,低级语言就可以不用了.恰恰相反,在有些领域,低级语言更有用武之处,如控制领域,电子信息领域.因为这些领域对语言运行的速度和效率更感兴趣,这正是低级语言的特点.
上述语言都称为形式化的语言,与之相对应的是自然语言,也就是人使用的语言.人与计算机之间能否通过自然语言交流呢?这个恐怕很难.因为按照现在计算机的原理,计算机只有执行程序才能够工作,语言就是用于编出程序来,指挥计算机的工作,没有程序,计算机就不能工作.除非在人与计算机交流时,计算机能把人的语言翻译成程序,否则,人与计算机之间永远也不能实现用自然语言进行交流.而目前这是不太可能的.要么就是改变现在计算机的结构,改变现在计算机的运行模式,那样的话,计算机就要真正的实现更新换代了.
第1课 认识PASCAL语言
请参阅《全国信息学奥林匹克联赛培训教程(一)》P87
第5章 程序设计语言
5.1 程序设计语言基础
5.1.1 程序设计语言的组成
PASCAL语言是一种高级语言。
让我们先来看一个PASCAL程序,通过这个程序了解PASCAL的规则。
例L1_1 已知半径,求圆周长和面积的程序
PROGRAM circle(input,output); (* 第1行:程序首部 *)
{已知半径求圆周长和面积}(* 第2行:注释 *)
CONST(*第3行:常量说明*)
PI=3.14159;
VAR(*第5行:变量说明*)
r,l,s:real;
BEGIN(*第7行:语句部分*)
read(r); (*第8行:输入语句*)
l:=2*PI*r; (*第9行:赋值语句*)
s:=PI*r*r;
write(r,l,s); (*第11行:输出语句*)
END. (*第12行:语句部分以END.结束*)
程序的第一行为程序首部,每个PASCAL程序都必须以PROGRAM 开头;circle是本程序的名字,每个程序的名字可以不同;圆括号里的内容称为程序的参数,程序参数指明程序与外部联系的文件名,input是标准输入文件,例如键盘打字机,output是标准输出文件,指屏幕显示器或打印机,为了读入数据和输出结果,必须写上文件参数input和output。
从第三行到最后一行为程序的分程序。分程序一般由说明部分和语句部分构成。
说明部分可以包括多种类型的说明。此例包括以CONST开始的常量说明和以VAR开始的变量说明,常量说明必须以CONST开始,变量说明必须以VAR开始。
语句部分必须以BEGIN开始,以END.结束,特别注意其中的小圆点(.)不可缺少。中间是一些用分号分开的语句。
一个PASCAL程序由程序首部和分程序组成,分程序通常由说明部分和语句部分组成(在特殊情况下可以没有说明部分)。
PROGRAM circle(input,output); CONST PI=3.14159; VAR r,l,s:real; BEGIN read(r); l:=2*PI*r; s:=PI*r*r; write(r,l,s); END. |
上例的第二行,大括号{ }中的内容,称为注释。被小括号及星号(* *)括起来的内容也是注释。注释除了给人看,以增加程序的可读性外,对编译和运行都不起作用,一个程序可以包含多个出现在不同地方的注释,也可以没有注释。
程序的书写格式:
1、PROGRAM写在最左边顶格;
2、注释的大括号{、和CONST、VAR、BEGIN、END等语句上下对齐,且它们比PROGRAM向右移两个字符;
3、各个语句和程序语句也是上下对齐,它们比第2点中的各语句又向右移两个字符;
4、使用大写字母的语句:PROGRAM、CONST、VAR、BEGIN、END;
5、使用大写字母的标识符:常量标识符。
例 L0_001 输入三角形底边和高,求该三角形的面积。写出程序。
第二课 PASCAL的数据类型、标识符、表达式、语句
PASCAL的数据类型
数据对于一门程序语言是非常重要的,数据的一个非常重要的特征就是它的类型。PASCAL规定:程序中出现的变量必须先说明才能使用。
PASCAL的标准数据类型
数据类型 | 类型标识符 | 适用的数据 | 举例 |
实型 | real | 有小数表示法和指数表示法(科学表示法) | 1.25,132.67,0.0025,-1.56 1.3267e+2(=1.3267×102=132.67) |
整型 | integer | 包括正、负整数和零 | 25,-32,0 |
字符型 | char | 单个的字符 | ‘A’,’b’,’C’,’0’,’4’,’+’ |
布尔型 | boolean | 只有现个值,即true(真)和false(假) | |
1、实型(real)实型是最常用的数据类型。
在PASCAL,实数有两种表示方法:小数表示法和指数表示法(或称科学表示法)。
1.25,132.67,0.0025,-1.56,0.0,100.0
以科学表示法表示这些数,可以写成
1.25e0,1.3267e+2,2.5e-3,-1.56e0,0e0,1e2
在科学表示法中,e后的数字代表10的幂。上列各数可以解释成:
1.25e0=1.25×100=1.25,1.3267e+2=1.3267×102=132.67,2.5e-3=2.5×10-3=0.0025,-1.56e0=-1.56×100=-1.56,0e0=0×100=0.0,1e2=1×102=100.0
2、整型(integer)
整型数包括正、负整数和零。例如:25,-32,0。在整数中不得包括不数点(.)。
3、字符型(char)
字符型数是括在两个单引号中的一个字符。例如:
‘A’,’b’,’C’,’0’,’4’,’+’,’*’,……
‘’代表空字符
‘’’’代表字符’
‘abc’不是字符型数,因为单引号中只能有一个字符。
所有字符都有一个序号与之对应。如‘0’对应48,‘1’对应49,‘A’对应65,‘B’对应66。
与字符有关的几个函数
函数 | 功能 | 举例 |
ord() | 返回与字符对应的序号 | ord(‘A’)=65 |
chr() | 返回与数字对应的字符 | chr(65)=’A’ |
pred() | 返回前一字符 | pred(‘B’)=A |
succ() | 返回后一字符 | succ(‘A’)=B |
用函数可取得对应的序号,用
4、布尔型(boolean)
布尔类型的值只有两个:false(假)和true(真)。且false的序号为0,true的序号为1。
用于布尔量的运算有布尔运算(或称逻辑运算),它们是:
AND(与),OR(或),NOT(非),基本运算规则如下:
运算 | 结果 | |||
0 AND 0 | 假 AND 假 | 0 | false | 假 |
0 AND 1 | 假 AND 真 | 0 | false | 假 |
1 AND 0 | 真 AND 假 | 0 | false | 假 |
1 AND 1 | 真 AND 真 | 1 | true | 真 |
0 OR 0 | 假 OR 假 | 0 | false | 假 |
0 OR 1 | 假 OR 真 | 1 | true | 真 |
1 OR 0 | 真 OR 假 | 1 | true | 真 |
1 OR 1 | 真 OR 真 | 1 | true | 真 |
NOT 0 | NOT 假 | 1 | true | 真 |
NOT 1 | NOT 真 | 0 | false | 假 |
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论