pasca语言篇.docx
- 文档编号:28716030
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:216
- 大小:801.45KB
pasca语言篇.docx
《pasca语言篇.docx》由会员分享,可在线阅读,更多相关《pasca语言篇.docx(216页珍藏版)》请在冰豆网上搜索。
pasca语言篇
语言篇
信息学奥赛简介
一、青少年信息学奥林匹克竞赛系列活动简介
1.背景:
1984年邓小平指出:
“计算机的普及要从娃娃做起。
”教育部和中国科协委托中国计算机学会举办了全国青少年计算机程序设计竞赛(简称:
NOI)。
从此每年一次NOI活动,吸引越来越多的青少年投身其中。
十几年来,通过竞赛活动培养和发现了大批计算机爱好者,选拔出了许多优秀的计算机后备人才。
1987年,保加利亚Sendov教授在UNESCO(联合国教科文组织)第24届全体会议上提出了举办国际信息学奥林匹克竞赛(IOI)的倡议。
首届竞赛于1989年在保加利亚的布拉维茨举行,有13个国家的46名选手参赛。
此后IOI每年举办一届。
信息学奥林匹克竞赛是一项旨在推动计算机普及的学科竞赛活动,重在培养学生能力,使得有潜质有才华的学生在竞赛活动中锻炼和发展。
近年来,信息学竞赛活动组织逐步趋于规范和完善,基本上形成了“地级市——省(直辖市)——全国——国际”四级相互接轨的竞赛网络。
2.宗旨:
国际信息学奥林匹克竞赛的宗旨是:
通过竞赛形式对有才华的青少年起到激励作用,促其能力得以发展;让青少年彼此建立联系,推动知识与经验的交流,促进合作与理解;宣传新兴学科信息学,为学校的这一类课程教学增加动力,启发新的思路;建立教育工作者与专家之间的国际联系,推进学术思想交流。
信息学奥林匹克竞赛属于智力与应用计算机解题能力的比赛,题目有相当的难度,解好这类题目,需要具备很强的综合能力。
首先是观察和分析问题的能力;
第二是将实际问题转化为数学模型的能力;
第三是灵活地运用各种算法的能力;
第四是熟练编写程序并将其调试通过的能力;
第五是根据题目的要求,自己设计测试数据,检查自己的解法是否正确,是否完备的能力。
能够参加IOI的选手应该具有很强的自学能力和动手能力,需要学习有关组合数学、图论、基本算法、数据结构、人工智能搜索算法及数学建模等知识,还要学会高级语言和编程技巧,要具备很强的上机操作能力。
3.系列活动
NOI系列活动包括:
全国青少年信息学奥林匹克竞赛和全国青少年信息学奥林匹克网上同步赛、全国青少年信息学奥林匹克联赛、冬令营、选拔赛和出国参加IOI。
3.1NOI:
全国青少年信息学奥林匹克(NOI)是国内包括港澳在内的省级代表队最高水平的大赛。
每年经各省选拔产生5名选手(其中一名是女选手),由中国计算机学会在计算机普及较好的城市组织进行比赛。
NOI期间,举办同步夏令营和NOI网上同步赛,给那些程序设计爱好者和高手提供机会。
3.2NOIP:
全国青少年信息学奥林匹克联赛(NationalOlympiadinInformaticsinProvinces简称NOIP)自1995年至今已举办13次。
每年由中国计算机学会统一组织。
NOIP在同一时间、不同地点以各省市为单位由特派员组织。
全国统一大纲、统一试卷。
初、高中或其他中等专业学校的学生可报名参加联赛。
联赛分初赛和复赛两个阶段。
初赛考察通用和实用的计算机科学知识,以笔试为主。
复赛为程序设计,须在计算机上调试完成。
参加初赛者须达到一定分数线后才有资格参加复赛。
联赛分普及组和提高组两个组别,难度不同,分别面向初中和高中阶段的学生。
获得提高组复赛一等奖的选手即可免试由大学直接录取。
3.3冬令营:
全国青少年信息学奥林匹克竞赛冬令营(简称冬令营),每年在寒假期间开展为期一周的培训活动。
冬令营共8天,包括授课、讲座、讨论、测试等。
参加冬令营的营员分正式营员和非正式营员。
获得NOI前20名的选手和指导教师为正式营员,非正式营员限量自愿报名参加。
在冬令营授课的是著名大学的资深教授及已获得国际金牌学生的指导教师。
3.4APIO:
亚洲与太平洋地区信息学奥赛(AsiaPacificInformaticsOlympiad)简称(APIO)2007年创建,该竞赛为区域性的网上准同步赛,是亚洲和太平洋地区每年一次的国际性赛事,旨在给青少年提供更多的赛事机会,推动亚太地区的信息学奥林匹克的发展。
3.5选拔赛:
选拔参加国际信息学奥林匹克中国代表队的竞赛(简称选拔赛)。
IOI的选手是从获NOI前20名选手中选拔出来的,获得前4名的优胜者代表中国参加国际竞赛。
选拔科目包括:
NOI成绩、冬令营成绩、论文和答辩、平时作业、选拔赛成绩、口试。
3.6、IOI:
出国参加国际信息学奥林匹克竞赛(InternationalOlympiadinInformatics)简称(IOI)。
由中国计算机学会组织代表队,代表中国参加国际每年一次的IOI。
自1989年至今已参加19次国际信息学奥林匹克竞赛。
中国是IOI创始国之一。
IOI2000由中国主办,CCF承办。
二、全国青少年信息学奥林匹克联赛
1.总则
由中国计算机学会负责组织的全国青少年信息学奥林匹克联赛(NationalOlympiadinInformaticsinProvinces,简称NOIP)是全国信息学奥林匹克竞赛(NOI)系列活动中的一个重要组成部分,旨在向中学生普及计算机基础知识,培养计算机科学和工程领域的后备人才。
普及的重点是根据中学生的特点,培养学生学习计算机的兴趣,使得他们对信息技术的一些核心内容有更多的了解,提高他们创造性地运用程序设计知识解决实际问题的能力。
对学生的能力培养将注重以下的几个方面:
●想象力与创造力;
●对问题的理解和分析能力;
●数学能力和逻辑思维能力;
●对客观问题和主观思维的口头和书面表达能力;
●人文精神:
包括与人的沟通能力,团队精神与合作能力,恒心和毅力,审美能力等。
2.命题程序和组织机构
命题是考核和选拔过程中的重要一环,对计算机的普及的内容具有导向性作用。
命题应注重趣味性、新颖性、知识性、应用性和中学生的心智特点,不直接从大学专业教材中选题。
在命题和审题工作中,坚持开放和规范的原则。
在NOI科学委员会主持下成立的NOIP命题委员会负责命题工作,命题委员会成员主要来自参加NOIP的省,也可来自社会计算机界。
NOIP命题委员会的主要职责是提供NOIP的备选题目,并承担对所提供的题目保密的责任。
3.竞赛形式和成绩评定
NOIP分两个等级组:
普及组和提高组。
每组竞赛分两轮:
初试和复试。
初试形式为笔试,侧重考察学生的计算机基础知识和编程的基本能力,并对知识面的广度进行测试。
初试为资格测试,获本省初试成绩在本赛区前15%的学生进入复赛。
复试形式为上机编程,着重考察学生对问题的分析理解能力,数学抽象能力,编程语言的能力和编程技巧、想象力和创造性等。
各省NOIP的等第奖在复试的优胜者中产生。
比赛中使用的程序设计语言是:
初赛:
PASCAL或C/C++:
复赛:
PASCAL或C/C++。
每年复赛结束后,各省必须在指定时间内将本省一等奖候选人的有关情况、源程序和可执行程序报送科学委员会。
经复审和评测后,由中国计算机学会报送中国科协和教育部备案。
中国计算机学会对各省获NOIP二等奖和三等奖的分数线或比例提出指导性意见,各省可按照成绩确定获奖名单。
4.试题形式
每次NOIP的试题分四组:
普及组初赛题A1、普及组复赛题A2、提高组初赛题B1和提高组复赛题B2。
其中,A1和B1类型基本相同,A2和B2类型基本相同,但题目不完全相同,提高组难度高于普及组。
4.1初赛
初赛全部为笔试,满分100分。
试题由四部分组成:
选择题:
共20题,每题1.5分,共计30分。
每题有5个备选答案,前10个题为单选题(即每题有且只有一个正确答案,选对得分),后10题为不定项选择题(即每题有1至5个正确答案,只有全部选对才得分)。
普及组20个都是单选题。
问题求解题:
共2题,每题5分,共计10分。
试题给出一个叙述较为简单的问题,要求学生对问题进行分析,找到一个合适的算法,并推算出问题的解。
考生给出的答案与标准答案相同,则得分;否则不得分。
程序阅读理解题:
共4题,每题8分,共计32分。
题目给出一段程序(不一定有关于程序功能的说明),考生通过阅读理解该段程序给出程序的输出。
输出与标准答案一致,则得分;否则不得分。
程序完善题:
共2题,每题14分,共计28分。
题目给出一段关于程序功能的文字说明,然后给出一段程序代码,在代码中略去了若干个语句或语句的一部分并在这些位置给出空格,要求考生根据程序的功能说明和代码的上下文,填出被略去的语句。
填对则得分;否则不得分。
4.2复赛
复赛的题型和考试形式与NOI类似,全部为上机编程题,但难度比NOI低。
题目包括4道题,每题100分,共计400分。
每一试题包括:
题目、问题描述、输入输出要求、样例描述及相关说明。
测试时,测试程序为每道题提供了5-10组测试数据,考生程序每答对一组得10-20分,累计分即为该道题的得分。
5、试题的知识范围
5.1初赛内容与要求:
计基
算本
机常
的识
1.计算机和信息社会(信息社会的主要特征、计算机的主要特征、数字通信网络的主要特征、数字化)
2.信息输入输出基本原理(信息交换环境、文字图形多媒体信息的输入输出方式)
3.信息的表示与处理(信息编码、微处理部件MPU、内存储结构、指令,程序,和存储程序原理、程序的三种基本控制结构)
4.信息的存储、组织与管理(存储介质、存储器结构、文件管理、数据库管理)
5.信息系统组成及互连网的基本知识(计算机构成原理、槽和端口的部件间可扩展互连方式、层次式的互连结构、互联网络、TCP/IP协议、HTTP协议、WEB应用的主要方式和特点)
6.人机交互界面的基本概念(窗口系统、人和计算机交流信息的途径(文本及交互操作))
7.信息技术的新发展、新特点、新应用等。
计基
算本
机操
的作
1.Windows和LINUX的基本操作知识
2.互联网的基本使用常识(网上浏览、搜索和查询等)
3.常用的工具软件使用(文字编辑、电子邮件收发等)
程
序
设
计
的
基
本
知
识
数
据
结
构
1.程序语言中基本数据类型(字符、整数、长整、浮点)
2.浮点运算中的精度和数值比较
3.一维数组(串)与线性表
4.记录类型(PASCAL)/结构类型(C)
程
序
设
计
1.结构化程序设计的基本概念
2.阅读理解程序的基本能力
3.具有将简单问题抽象成适合计算机解决的模型的基本能力
4.具有针对模型设计简单算法的基本能力
5.程序流程描述(自然语言/伪码/NS图/其他)
6.程序设计语言(PASCAL/C/C++)-2003仍允许BASIC
基本
算法
处理
1.初等算法(计数、统计、数学运算等)
2.排序算法(冒泡法、插入排序、合并排序、快速排序)
3.查找(顺序查找、二分法)
4.回溯算法
5.2复赛内容与要求:
在初赛内容的基础上增加以下内容:
数
据
结
构
1.指针类型
2.多维数组
3.单链表及循环链表
4.二叉树
5.文件操作(从文本文件中读入数据,并输出到文本文件中)
程
序
设
计
1.算法的实现能力
2.程序调试基本能力
3.设计测试数据的基本能力
4.程序的时间复杂度和空间复杂度的估计
算
法
处
理
1.离散数学知识的应用(如排列组合、简单图论、数理逻辑)
2.分治思想
3.模拟法
4.贪心法
5.简单搜索算法(深度优先广度优先)搜索中的剪枝
6.动态规划的思想及基本算法
三、信息学奥林匹克竞赛网站
信息学奥林匹克(官方)
大榕树
OI爱好者
信息学初学者之家
高效信息学在线评测系统
语言是交流的工具,要指挥计算机为我们服务,就必须使用计算机懂的语言,这就是计算机语言。
第一篇PASCAL语言
第一章初识pascal语言………………………………………………………………… 1
第二章简单程序设计
第一节数据类型、常量、变量……………………………………………………………4
第二节赋值语句…………………………………………………………………………7
第三节输出语句(WRITE语句)…………………………………………………………8
第四节输入语句(READ语句)…………………………………………………………9
第五节顺序结构程序设计………………………………………………………………13
第三章选择结构的程序设计
第一节如果语句(IF语句)………………………………………………………………14
第二节IF语句的嵌套……………………………………………………………………17
第三节情况语句(CASE语句)……………………………………………………………19
第四节综合应用…………………………………………………………………………20
第四章循环结构的程序设计
第一节循环语句(FOR语句)……………………………………………………………21
第二节当语句(WHILE语句)…………………………………………………………23
第三节直到循环(REPEAT语句)……………………………………………………24
第四节多重循环结构……………………………………………………………………26
第五章枚举和子界类型
第一节枚举类型…………………………………………………………………………28
第二节子界类型…………………………………………………………………………31
第六章数组
第一节一维数组…………………………………………………………………………33
第二节多维数组…………………………………………………………………………38
第三节数组类型的应用…………………………………………………………………40
第十章字符串处理
第一节字符与字符串类型………………………………………………………………78
第二节字符串的操作……………………………………………………………………79
第三节字符串的综合应用………………………………………………………………82
第七章函数与过程
第一节函数………………………………………………………………………………43
第二节过程………………………………………………………………………………47
第三节递推算法…………………………………………………………………………53
第四节递归算法…………………………………………………………………………54
第八章集合和记录类型
第一节集合类型…………………………………………………………………………61
第二节记录类型…………………………………………………………………………64
第三节综合应用实例……………………………………………………………………67
第九章文件…………………………………………………………………………………69
第一章初识Pascal语言
一、Pascal语言概述
PASCAL语言是由瑞士苏黎世联邦工业大学的N.沃思(NiklausWirth)教授于1971年正式发表的,它的命名是为了纪念法国数学家pascal。
它是一种结构化的程序设计语言。
在pascal问世30多年来,产生了许多版本,其中影响最大的是前几年竞赛中还在使用的turbopascal.turbopascal是由美国borland公司设计的一种适用于16位编译器的编译系统。
目前竞赛中已经指定使用的freepascal是一个32位、跨平台的专业编辑器,几乎支持现有的所有操作系统,同时兼容turbopascal中编写的程序。
二、Pascal语言的特点
从使用者的角度来看,PASCAL语言有以下几个主要的特点:
⒈它是结构化的语言。
⒉有丰富的数据类型。
⒊能适用于数值运算和非数值运算领域。
⒋PASCAL程序的书写格式比较自由。
三、freePascal语言系统的使用
目前,信息学竞赛中指定的Pascal编译系统是freePascal2.0以上的版本,下面我们就来学习freePascal2.x系统的使用。
1.系统的启动
开始→程序→freepascal→fp,即可启动系统。
屏幕上出现如图1所示的freepascal集成环境。
这样一片乱码,令很多入门者望而却步,导致的原因是我们操作系统“控制台窗口“中语言默认为中文。
调整的方法是在freepascal窗口最上面的标题栏上单击右键,在弹出的快捷菜单中选择“默认值”,弹出如图2所示的控制台窗口属性框,
在最下面的“默认代码页”的下拉菜单中选择“437(OEM-美国)”,然后重启即可。
2.freePascal系统集成环境简介
标题栏下面一行为菜单栏。
中间蓝色框内为编辑窗口,建立文件后,在编辑窗口内可以进行程序的编辑。
最底下一行为提示行,显示出系统中常用命令的快捷键,如将当前编辑窗口中文件存盘的命令快捷键为F2,编译程序的快捷键为F1,等等。
3.新建程序窗口
选择File菜单,执行其中New命令。
就可建立一个新的程序窗口(默认文件名为Noname01.pas)。
4.程序的输入、编辑
在当前程序窗口中,一行一行的输入程序。
事实上,程序窗口是一个全屏幕编辑器,所以对程序的编辑与其它编辑器的编辑方法类似。
图1
试着输入如下程序
程序如下:
programex;
begin
write(“hello,goodmoring”);
end.
5.编译程序
当程序输入完毕之后,一般要先按Alt+F9(或执行compile菜单中compile命令)对程序进行编译。
如果程序有语法错误,则会在程序窗口的第一行处显示第一个红色错误信息。
若无语法错误,则窗口正中央会出现一个对话框,提示编译成功。
接下来,我们可以运行程序了。
如果在编译过程中发现程序有语法错误,系统会提示第一个错误信息。
如"';'expected",提示缺少分号;"')'expected",提示缺少右括号。
此时,应有针对性的进行修改。
修改后,再重复编译的过程,直到编译成功。
6.运行程序
程序的运行可以通过按ALT+R打开RUN菜单中的RUN命令,或直接按快捷键CTRL+F9,则可以在用户窗口中输出运行结果。
通常在程序运行结束后系统回到Pascal系统的集成环境,因此要查看运行结果,要选择debug菜单中的userscreen命令或按ALT+F5将屏幕切换到用户屏幕(即结果输出屏幕)。
有的选手为了调试方便在程序最后一行添加readdln让程序执行完后停在结果输出屏幕,结果查看完毕按回车键返回到编辑窗口。
下面是该程序的运行结果
hello,goodmoring
7.程序的保存与打开
选择主菜单File中的菜单项Save,或按快捷键F2,在出现的如图的对话框中输入文件名:
hello.pas,单击OK,则程序就以hello.pas为文件名保存在当前目录中了。
改变默认工作目录可以在freepascal的快捷方式上单击右键,选择“属性”,在弹出的窗口中选择“程序”选项卡,改变其中的工作目录。
打开已有文件,可通过file菜单中的open命令(或按f3)来完成,也可以直接双击源文件。
8.系统的退出。
选择file菜单中的exit即可。
四、简单程序设计
日常生活中,人们处理问题总是按照一定的步骤去做。
比如,刷牙这个动作我们可以按照下列步骤去做;
1.取牙刷
2.取牙膏
3.挤牙膏
4.取牙杯
5.开始刷牙
计算机处理问题也是如此。
把我们处理问题的步骤用计算机能够理解的计算机语言编写出来,以达到解决实际问题的目的,就是程序设计。
计算机程序设计比日常生活中的事务处理更加严谨和规范。
下面让我们通过一些简单的例子,来熟悉程序的基本组成和基本语句的使用。
例:
求两个数的和。
分析:
此问题可细分为如下步骤:
输入加数
输入被加数
求和
输出和
参考程序:
programex;//程序首部
vars,x,y:
integer;//说明部分(定义变量)
begin
readln(x);//输入加数
readln(y);//输入被加数
s:
=x+y;//求和
write(s);//输出和
end.
五、Pascal语言程序的基本结构
任何程序设计语言都有着一组自己的记号和规则。
PASCAL语言同样必须采用其本身所规定的记号和规则来编写程序。
尽管不同版本的PASCAL语言所采用的记号的数量、形式不尽相同,但其基本成分一般都符合标准PASCAL的规定,只是某些扩展功能各不相同罢了。
下面我们来了解Pascal语言的程序基本结构。
下面举一个简单的PASCAL程序例子:
【例1】输入半径r,求圆的周长和面积。
从这个简单的程序可以看到:
1.一个PASCAL程序分为两个部分:
程序首部和程序体(或称分程序)。
2.程序首部是程序的开头部分,它包括:
⑴程序标志。
用"program"来标识这是一个PASCAL程序。
PASCAL规定任何一个PASCAL程序的首部都必须以此字开头。
(在freepascal语言中,首部也可省略。
)
⑵程序名称。
由程序设计者自己定义,如例中的exam1,它的第一个字符必须是英文字母,其后的字符只能是字母、数字或下划线。
在写完程序首部之后,应有一个分号。
3.程序体是程序的主体,在有的书本里也称"分程序"。
程序体包括说明部分和执行部分两个部分。
⑴说明部分用来描述程序中用到的变量、常量、类型、过程与函数等。
本程序中第二行是"变量说明",用来定义变量的名称、类型。
PASCAL规定,凡程序中用到的变量、符号常量、数组、标号、过程与函数、记录、文件等数据都必须在说明部分进行定义(或称"说明")。
⑵执行部分的作用是通知计算机执行指定的操作。
如果一个程序中不写执行部分,在程序运行时计算机什么工作也不做。
因此,执行部分是一个PASCAL程序的核心部分。
执行部分以"begin"开始,以"end"结束,其间有若干个语句,语句之间以分号隔开。
执行部分之后有一个句点,表示整个程序结束。
⒋PASCAL程序的书写方法比较灵活。
当然,书写不应以节省篇幅为目的,而应以程序结构清晰、易读为目的。
在编写程序时尽量模仿本书中例题程序格式。
⒌在程序中,一对大括号{}间的文字称为注释,执行程序时计算机不会理睬这些内容,注释可以增加程序的可读性。
编写程序添加注释是一个好习惯,便于他人或自己日后阅读。
注释的内容根据需要书写,可以用英语或汉语表示。
注释内容还可以放在“//”后,如:
c:
=2*3.14*r;//求周长c
一般单行内容用“//”,多行内容用“{}”。
第二章顺序结构程序设计
我们学习了Pascal语言的程序基本结构,在一个程序中,所有的操作都由执行部分来完成,而执行部分又都是由一个个语句组成的。
因此,下面开始我们要学习pascal语言的基本语句,并且在学习过程中逐步学会程序设计的基本方法。
在语句学习之前我们要先了解一些pascal语言的基础知识。
第一节数据类型、常量、变量
一、数据类型
数据是指计算机能够识别和处理的数、字符及符号。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- pasca 语言
![提示](https://static.bdocx.com/images/bang_tan.gif)