惠阳中山中学计算机奥赛培训讲义说课材料.docx
- 文档编号:16295272
- 上传时间:2023-07-12
- 格式:DOCX
- 页数:149
- 大小:346.59KB
惠阳中山中学计算机奥赛培训讲义说课材料.docx
《惠阳中山中学计算机奥赛培训讲义说课材料.docx》由会员分享,可在线阅读,更多相关《惠阳中山中学计算机奥赛培训讲义说课材料.docx(149页珍藏版)》请在冰点文库上搜索。
惠阳中山中学计算机奥赛培训讲义说课材料
惠阳中山中学奥赛培训讲义
01-算法和流程图………………………………………1
02-PASCAL简介………………………………………4
03-TP70的使用………………………………………8
04-顺序结构1……………………………………………9
05-顺序结构2……………………………………………11
06-选择结构1……………………………………………13
07-选择结构2……………………………………………16
08-循环结构1……………………………………………19
09-循环结构2……………………………………………22
10-循环结构3……………………………………………24
11-循环综合练习…………………………………………28
12-字符类型数据处理……………………………………30
13-枚举类型………………………………………………34
14-子界类型………………………………………………38
15-一维数组的建立、输入输出、计算…………………41
16-一维数组的移动、插入、删除………………………44
17-一维数组的查找、排序………………………………47
18-二维数组的建立、输入输出、计算…………………50
19-二维数组的应用、矩阵………………………………53
20-字符数组与字符串类型………………………………56
21-函数……………………………………………………59
22-过程……………………………………………………63
23-递归……………………………………………………67
24-集合……………………………………………………70
25-记录……………………………………………………72
算法和流程图
一、学习目的和学习内容
学习各种软件的使用——>让计算机按照我们的意图去完成一件事——>编程序(软件)给别人用;
国际信息学(计算机)奥林匹克竞赛——全国中学生信息学奥赛——广东省中学生信息学奥赛;
比赛的内容就是编程比赛;这也是我们的学习目的和内容;
计算机程序设计语言:
人类语言——>用程序设计语言(如Pascal语言)表示——>再翻译成机器语言;
二、计算机解决问题的步骤
做任何一件事都要有一定的的步骤,如求1+2+3+4+5+6+7+8+9+10;
计算机解题步骤:
分析问题
——>确定解决问题的方法和步骤(即算法)
——>选择一种计算机语言,根据算法编写计算机程序
——>让计算机执行这个程序获得结果
三、算法的概念
1、为解决某一个问题而采取的方法和步骤,称为算法。
或者说算法是解决一个问题的方法的精确描述。
如:
已知半径,计算圆的面积的算法。
算法读入半径R的值——>计算圆的面积S=π*R*R——>输出圆的面积S。
注意:
算法不一定唯一,如求1+2+3+4+5+6+7+8+9+10的算法。
2、算法的特点:
1有穷性:
必须在执行了有穷个计算步骤后终止;
2确定性:
每一个步骤必须是精确的、无二义性的;
3可行性:
可以用计算机解决、能在有限步、有限时间内完成;
4有输入:
5有输出:
四、算法举例
例一:
交换两个大小相同的杯子中的液体(A水、B酒)。
算法1:
1、再找一个大小与A相同的空杯子C;
2、A——>C;
3、B——>A;
4、C——>B;结束。
或(B——>C、A——>B、C——>A)
算法2:
1、再找两个空杯子C和D;
2、A——>C、B——>D;
3、C——>B、D——>A;结束。
注意:
一个算法往往具有代表性,能解决一类问题,如例一可以引申为:
交换两个变量的值。
例二:
输入1个数给计算机,若为正数则打印出来。
算法:
①输入1个数——>X;
②判断X>0?
;
③若X>0,则打印X;结束。
例三:
分别输入10个数,打印出其中的正数。
算法1:
设T为计数器。
①输入第一个数——>X,1——>T;
②判断X>0?
;
③若X>0,则打印输出;
④判断T>10?
⑤若T>10,则表示10个数已经处理完,结束。
否则,再输入下一个数——>X,且T+1——>T,然后转②继续执行。
例四:
从10个数中挑选出最大的一个数,打印输出。
诱导:
以从10个人中挑出最高的人为例,让学生发挥想象。
算法1:
“打擂台”或“比武招亲”,设MAX为大力士,T为计数器。
1先输入1个数——>MAX,1——>T;(擂主)
2再输入下一个数——>X,T+1——>T;(上一个挑战者)
3比较X>MAX?
;(比武)
④若X>MAX成立,X——>MAX;(打败擂主,即新的大力士产生)
否则,MAX仍然是最厉害,即值不变;(败下阵来)
⑤判断T=10?
;(看看还有没有挑战者)
⑥若T=10成立,则说明10个数已比较玩,最大的数在MAX中,输出MAX即可;(颁奖)
否则,转②继续找下一个挑战者比武。
(下一个)
算法2:
两个两个打(淘汰赛)。
例五:
计算1*2*3*4*5*6*7*8*9*10。
描述:
阶乘10!
算法1:
找两个容器T和I;T为累乘器,初值为1;I为计数器,初值为1。
11——>T,1——>I;
2T*I——>T;
3I+1——>I;
4判断I>10?
5成立,则输出T,结束。
否则,转②继续乘。
提问:
1、T的初值可不可以为0?
不能
2、I的初值可不可以放0?
不能
3、I的初值可不可以放2?
可以
4、I可不可以放10?
可以,怎么改算法?
让学生完成。
5、可不可以先判断后执行?
6、现在要求1+2+3+4+5+6+7+8+9+10,如何办?
让学生完成。
五、算法的表示形式
1、文字描述:
二义性,如:
甲叫乙把他的书拿来;小明连王刚都不认识;
2、伪代码:
用符号,不直观;
3、流程图:
简洁、直观、无二义性。
有很多种,我们学N-S流程图。
六、结构化程序设计和N-S流程图
经过证明:
任何一个算法都可以用以下3种基本结构表示:
1、顺序结构:
例一;
2、分支结构:
例二、例三中的②③、例四中的③④;
3、循环结构:
例三中的④⑤、例四中的⑤⑥、例五;
两种循环:
直到型和当型。
相应的N-S图:
注意:
一个算法往往需要几个简单结构复合在一起才能表示,即复合结构。
练习:
用N-S图画出以上5个例子的流程图,举例让学生模仿。
当型循环
例五
例四(算法一)
例一(算法1)例二
例三
让学生将直到型循环和当型循环相互转换:
关键是条件的取反。
七、课后作业
1、求1+1/2+1/3+1/4+……+1/10。
2、求两个自然数的最大公约数。
要求:
写出算法,画出相应的N-S流程图。
第1题
第2题
Pascal程序设计语言简介
Pascal语言是学习计算机程序设计首选的语言,它的数据类型丰富、程序结构清晰,对培训逻辑思维能力和结构化程序设计思想很有益。
是国际、国内比赛的首选语言,也是大学计算机专业的必修课程。
Pascal种类、版本较多。
我们学习的是TurboPascal7.0,即TP7.0。
计算机程序是什么:
程序是一些计算机能够读懂的命令或指令的有序集合,它的作用是按照编写者的意图完成一定的功能,编写这样的程序叫程序设计。
如:
下面是一个最简单的Pascal程序,它的作用是在屏幕上显示“HOWDOYOUDO!
”
PROGRAMEX1(INPUT,OUTPUT);
BEGIN
WRITELN(‘HOWDOYOUDO!
’);
END.
下面我们就开始讲解Pascal程序设计的基础知识。
一、一个完整的PASCAL程序的组成
再看一个简单的例子:
PROGRAMEX1(INPUT,OUTPUT);
constp=3.1415926;
varr:
integer;
s:
real;
BEGIN
Readln(r);
S:
=p*r*r;
Write(s);
END.
从上面两个简单例子,我们归纳出:
PROGRAM——表示一个程序的开始
空格——不能省,但可以有多个
程序首部程序名——任意,但一般要有意义
(可以省略)(INPUT,OUTPUT)——参数,表示需要从键盘输入数据,在显示器上显示结果
;——不能省,表示一个语句结束
说明部分:
说明程序中用到的标识符(如符号常量、变量)。
标识符必须以字母开头,后跟字母或数字,不许有空格。
PASCAL程序组成如:
B,TWO,X1,MY_1是正确的;
3X,MYFUNCTION,ABC.123是错误的。
用const说明常量;如:
constp=3.1415926;
用var说明变量;如:
varr:
integer;
BEGIN
语句;——一个语句一般表示一个动作,语句之间要用“;”分割
程序体END
句号“.”——表示一个程序的结束,不能省。
例二、已知梯形的上底、下底和高,求梯形的面积。
PROGRAMAREA(INPUT,OUTPUT);
说明:
1、标识符要先定义后使用,并且先说明常量再说明变量;
2、数据类型:
相同类型可以一起定义,用逗号割开;
3、赋值号:
不是等于号,是“:
=”
4、乘号:
“*”,不能省略,如AB一定要写成A*B
5、除引号里面的字符外,程序中的字母不分大小写;
6、按造格式写,注意对齐。
VARR1,R2,H,S:
REAL;
BEGIN
R1:
=4.5;
R2:
=8.1;
H:
=6;
S:
=(R1+R2)*H/2;
WRITEIN(S);
END.
二、关键字
又称保留字,是指PASCAL中具有固定意义的一批英文单词或其缩写,有专门的用途,
用在固定的位置,不能作为它用。
1、程序的起始符号:
PROGRAM、FUNCTION、PROCEDURE
2、说明部分的专用符号:
CONST、VAR、ARRAY、FILE、LABEL、TYPE、SET、RECORD、PACKED
3、专用语句:
CASE、DO、DOWNTO、ELSE、FOR、GOTO、IF、OF、REPEAT、THEN、TO、UNTIL、WHILE、WITH
4、运算符号:
AND、DIV、IN、MOD、NOT、OR
5、分隔符:
BEGIN、END
6、空指针变量:
NIL
注意:
单词不要写错,不分大小写。
三、标识符
用来标识(表示)程序、符号常量、变量、过程、函数等的名字的符号。
分为两类:
1、标准标识符:
PASCAL已经预先定义好的,有特定含义。
常量名:
FALSE,TRUE,MAXINT(系统中的最大整数,32767),
类型名:
BOOLEAN,CHAR,INTEGER,REAL,TEXT
文件名:
INPUT,OUTPUT
函数名:
ABS,ARCTAN,CHR,COS,EOF,ELON,EXP,LN,ODD,
ORD,PRED,ROUND,SIN,SQR,SQRT,SUCC,TRUNC
过程名:
DISPOSE,GET,NEW,PACK,PAGE,PUT,READ,READLN,
RESET,REWRITE,UNPACK,WRITE,WRITELN
注意:
注意:
单词不要写错,不分大小写。
2、自定义标识符:
在程序中需要,由用户自己定义的,要注意以下几个问题:
1禁止使用关键字、标准标识符作标识符;
2尽量做到“见名知义”;
3标识符要先说明后使用。
四、数据类型
1、计算机处理的对象就是数据,数据的一个重要特征就是它的类型,类型决定了它可以进行的运算、它可能取值的范围、它需要占用的计算机空间。
2、四种简单的标准数据类型:
1INTEGER:
整形,—32768~32767;占用2个字节;
2REAL:
实形,10-38~1038,-1038~-10-38;关于“溢出”;占用4个字节;
3CHAR:
字符型,能显示和打印输出的字符,如“A”,“=”,“a”;
占用1个字节;
4BOOLEAN:
布尔型(逻辑型),TRUE(真)、FALSE(假);占用1个字节;
五、常量
在程序运行过程中,其值不能被改变的量,称为“常量”。
如:
MAXINT(32767),PI=3.1415926,“A”,TRUE,FALSE。
1、整形常量:
MAXINT~—MAXINT—1
2、实形常量:
表示方法:
十进制表示法,如—123456.789,7.55,—0.012
科学计数法,如120000000,即1.2*108,应写成1.2E+8
—0.000000012,即—1.2*10—8,应写成—1.2E—8
3、字符常量:
ASCII码字符集,256个,记住几个关键的。
4、布尔常量:
FALSE 5、符号常量: CONST标识符=值;“先说明后使用”,“见名知义”; 六、变量 在程序的运行过程中,它的值可以改变的量。 变量有“三要素”: 1、变量名: 标识符,要正确、有意义; 2、变量的类型: INTEGER,REAL,CHAR,BOOLEAN; 3、变量的值: 可变,在某一时刻是一个确定的值; 也要“先说明后使用”,说明方法: VAR变量名: 类型名; 注意1: 一个程序只要一个VAR,相同类型的变量用逗号隔开一起定义。 2: 变量在定义的同时就确定了类型,也就确定了取值范围和可以进行的运算, 同时计算机也会为它开辟一个存储空间存放值。 解释T+1—>T的含义。 七、标准函数 PASCAL预先写好的一些有用的小程序,供用户直接调用,称为标准函数。 函数的作用: 得到一个值; 调用方法: 函数名(参数); 函数的两个注意问题: 自变量的类型,函数值的类型; 1、算术函数: 8个 ABS(X): X可以为INTEGER或REAL,作用求X的绝对值; SQR(X): X可以为INTEGER或REAL,作用求X的平方值; SQRT(X): X可以为非负整数或非负实数,作用求X的绝对值; SIN(X): 正弦; COS(X): 余弦; ARCTAN(X): 反正切; EXP(X): 指数,X可以为INTEGER或REAL,作用求e的X次方; e=2.71828…… LN(X): 自然对数,X为正整数或正实数,作用求X的自然对数; 2、转换函数: 4个 TRUNC(X): 截尾,X为REAL,作用去掉X的小数部分; ROUND(X): 舍入,X为REAL,作用为小数部分四舍五入; ORD(X): 序号,X为INTEGER、CHAR、BOOLEAN,作用求X的序号; CHR(X): 字符,X为INTEGER,作用求以X为序号的字符,是ORD函数的反函数; ASCII码: 见表 将字符转换为数字: ORD(‘X’)—ORD(‘0’); 记住“A”、“a”、“0”的ASCII码便行,其它可计算出。 3、顺序函数: 2个 PRED(X): 前驱,X为INTEGER、CHAR、BOOLEAN,作用取X的前一个数据。 SUCC(X): 后继,X为INTEGER、CHAR、BOOLEAN,作用取X的后一个数据。 注意: 第一个数没有前驱,最后一个数没有后继。 4、逻辑判断函数: 3个 ODD(X): 奇函数,X为INTEGER,判断X是奇数还是偶数, 若X为奇数则值为TRUE (1),否则值为FALSE(0); OLN(X): 行结束函数,判断一换是否结束; EOF(X): 文件结束函数,判断文件是否结束; 八、算术运算符 加(+)减(-)乘(*)除(/): 运算数都可以是INTEGER或REAL; 结果为INTERGER或REAL(“/”的结果必为REAL) 整数除DIV: 运算数都是INTEGER,结果也是INTEGER; 如: 16DIV3=5;-21DIV2=-10; 求余MOD: 运算数都是INTEGER,结果也是INTEGER; 如: 16MOD3=1;-21MOD2=-1; 九、表达式 1、数学表达式: 运算顺序: 圆括号()—>函数—>*、/、DIV、MOD—>+、—;内层括号优先。 X+2Y 3X-5Y COSX+4 X3 A*X*X+B*X+C AX2+BX+C √P(P-A)(P-B)(P-C) X-Y 3 2、关系表达式: 两个数据的比较运算,其结果为布尔值(真或假) 关系运算符: 大于(>)、等于(=)、小于(<)、大于等于(>=)、 小于等于(<=)、不等于(<>) 如: 15>6结果为真(TRUE); 7.6>8.9结果为假(FALSE); ‘A’>‘B’结果为假; TRUE>FALSE结果为真; 注意: 3.1415926=3.1415927? 不一定,因为实数在计算机内是按照近似值存放的,所以是否相等取决于题目(你)的要求。 一般要比较两个实数X,Y是否相等,可假设一个很小的数MIN(根据题目(自己)的要求定),如果ABS(X-Y) 3、逻辑运算: 布尔运算,只有3个运算符: 逻辑与(AND)、逻辑或(OR)、逻辑非(NOT) A B AANDB AORB NOTA TRUE TRUE TRUE TRUE FALSE TRUE FALSE FALSE TRUE FALSE FALSE TRUE FALSE TRUE TRUE FALSE FALSE FALSE FALSE TRUE 如: A>0;NOT(A>0): 取反; (X>0)AND(Y>0): 而且; (X>0)OR(Y>0): 或者; 举例: 已知X=4,Y=5,Z=6,B1=TRUE,B2=FALSE,B3=TRUE, 求下列表达式的值。 1X+3*Y>-6*Z: TRUE; 2(X TRUE; 3(X>6)OR(Y<3)ANDB1: FALSE; 4(B1=B2)ANDNOT(B2ORB3): FALSE; 5NOTB2ANDNOT(X<>Y): FALSE; TURBOPASCAL7.0的使用 1、TP7.0的安装: 双击tp7.0——>一直按“Y”+回车——>就会出现Tp目录——>找到Tp目录——>“右键单击”Turbo.exe图标——>选择“属性”——>再单击“程序”标签——>单击“高级”按扭——>选择“必要时建议MS-DOS方式”——>还可以修改“屏幕”的大小——>全部改好后按“确定”就可以用TP了。 注意其它一些选项不要修改。 2、启动和退出: 双击C: ——>双击TP子目录——>双击快捷方式图标TURBO——>进入TP;也可以在桌面上建立一个TURBO快捷方式;退出时单击“FILE”——>“EXIT”——>关闭TP窗口; 3、TP的使用: ①输入源程序; ②存盘: 单击“FILE”——>选择“SAVE”——>C: \文件名(或A: )——>回车(单击OK); 或按“F2”键。 ③编译: 检查程序有无语法和逻辑上的错误。 单击“COMPILE”——>“COMPILE”——>出现错误提示就修改光标附近的错误,直至出现“success”的窗口,表示你的程序在语法和逻辑上完全正确,再次保存;但是否满足题目的要求,即功能上是否正确还不知道。 或按“ALT”+“F6”。 ④运行: 单击“RUN”——>“RUN”——>输入数据后回车确认; 或按“CTRL”+“F9”。 ⑤看结果: 单击“DEBUG”——>“USERSCREEN”,看结果是否正确——>按任意键返回TP窗口(有错误,则修改源程序再编译、运行、保存,直至结果正确); 注意: 一个输入数据得到的结果正确并不能说明你的程序对任何输入的数据都对, 所以要多用一些数据去测试程序的正确性。 ⑥再编一个新程序: 一定要单击“FILE”——>“NEW”;千万不能把几个程序保存在一个文件中,一个程序就对应着一个文件。 或先关闭前程序(WINDOW——>CLOSE); ⑦打开已有程序: 单击“FILE”——>“OPEN”——>文件名(路径结合OPEN按钮); ⑧“CTRL”+“C”或“CTRL”+“BREAK”终止程序的运行(因为逻辑错误出现黑屏或死循环),退到编辑状态。 ⑨增加观察窗口: “DEBUG”——>“WATCH”; 增加输出屏幕窗口: “DEBUG——>OUTPUT”; 改变各个窗口的大小和位置: 拖动鼠标(右下角、上端等); ⑩增加跟踪变量: 先激活观察窗口(WATCH窗口): 按“INSERT”键——>输入变量名或数组名等——>单步跟踪(用F7或F8键,区别是F7连子程序也一起跟踪,而F8只跟踪主程序,把子程序当一个语句调用执行。 )——>出现错误,按F9键回到编辑窗口修改——>保存后再跟踪。 顺序结构 (一) 一、程序: 是由若干条语句组成的。 一条语句完成一个动作或功能,若干条语句组合在一起便可以完成一个任务,实现用户的意图。 因此,能否正确利用语句的功能来达到预定的要求,是程序设计的关键。 二、程序的三种基本结构 1、顺序结构: 按照语句的书写顺序,依次执行。 2、选择结构(分支结构): 根据给定的条件,判断成立与否,成立做一件事, 不成立做另外一件事。 两件事必须做一件且只能做一件。 3、循环结构(重复结构): 重复做某件事。 3种: 1计数循环: 重复执行的次数确定; 2当型循环: 当条件成立时,反复做某件事; 3直到型循环: 反复做某件事,直到条件成立时为止。 三、补充介绍TP70系统的使用: 以用WRITELN语句打印OK图形为例,也可以让学生自由发挥,调动学生的积极性。 ******* **** **** ****** **** **** ******* 四、输出语句: 写语句 1、命令: WRITE(输出项); 或WRITELN(输出项); 2、说明: ①输出项可以是字符串: 用单引号引起来的一串字符,如WRTIE(‘***’); 数值常量: 如WRITE(8); 变量: 输出变量的值,注意变量必须要先定义再赋值,然后才可以输出值,如WRITE(A); 表达式: 输出表达式的值,表达式必须正确,如WRITE(A+B); ②可以有多个不同类型的输出项,之间用逗号隔开。 如WRITE(‘A=’,A);WRITE(X,X+2,Y,Z); 3、两者区别: ①: WRITE连续输出;而WRITELN输出完后会自动换行; ②: WRITE至少有1个输出项;而WRITELN可以无,表示换一行; ③: WRITE(X,Y)=WRITE(X);WRITE(Y); 而WRITELN(X,Y)=WRITE(X);WRITELN(Y); <>WRITELN(X);WRITELN(Y); 五、赋值语句 1、语句格式: 变量名: =表达式; 2、语句作用: 先计算右边表达式的值,然后赋给左边的变量;赋值号: = 3、
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 惠阳 中山 中学 计算机 培训 讲义 材料
![提示](https://static.bingdoc.com/images/bang_tan.gif)