pascal竞赛辅导教案.pdf
《pascal竞赛辅导教案.pdf》由会员分享,可在线阅读,更多相关《pascal竞赛辅导教案.pdf(45页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、信息学奥林匹克竞赛辅导讲稿1 目录第一讲PASCAL 程序的组成,2 第 二 讲输入 输 出 语句,7 第三讲选择结构的程序设计(一),10 第 四 讲选 择 结 构 的程 序设 计(二),13 第五讲循环结 构 fo r语 句,20 第六讲循环结 构 fo r语 句 的嵌 套,25 第 七 讲循环 结 构 whi le/do 循环,3 2 第八讲循环结 构 r epe at/until循环,3 7 第九讲枚举 类型和 子界类 型,41 第十讲数组(一),46 第十一讲数组(二),51 第十二讲数组(三)排序,5 4 第十三讲数组(四)二维 数 组,5 9 第十四讲数组(五)二维 数 组,62
2、 第十五 讲字 符串,65 第十六讲过程和函数,68 第十七讲集合,72 第十八讲记录,79 第十九讲穷举算法,87 第二十讲递归,91 第二十一讲回溯算法,103 第二十二讲排序算法专题,110 第二十三讲高精度计算,118 信息学奥林匹克竞赛辅导讲稿2 第一讲 PASCAL程序的组成教学目标:掌握 PASCAL 语言的格式和组成;掌握 PASCAL 语言的简单的数据类型;掌握 PASCAL 语言的常用函数,表达式的正确写法;掌握 PASCAL 语言的赋值语句。重点难点:PASCAL 语言的格式;赋值语句。内容安排:内容讲解 3 课时;上机 1 课时。练习要求是学会启动和使用PASCAL 编
3、程环境,输入教材中的例程并运行。学生分析:学生刚接触 PASCAL 语言,对其特定的书写格式不了解,要培养其正确的书写习惯;学生容易把 PASCAL 语言的内容和已有的数学知识混淆,如函数、表达式和赋值号;例题:求圆的面积program ex(input,output);const pi=3.14159;var r,s:real;begin write(r=?);readln(r);s:=pi*r*r;writeln(s=,s:10:2);end.通过以上例子可以看到pascal 程序的组成:(一)PASCAL 程序的组成1、程序首部2、程序体说明部分执行部分格式如下:program 程序名(
4、input,output);const 常量说明;label 标号说明;type 类型说明;程序首部说明部分执行部分程序体信息学奥林匹克竞赛辅导讲稿3 var 变量说明;function 自定义函数;procedure 自定义过程;begin 程序执行部分;end.(二)说明和语句1、保留字2、标识符标准标识符自定义标识符3、常量整型:如 1、-4 等。在-maxint maxint 之间。实型:如 0.5,-9.81等。科学记数法:4.5E+5、7.9E-3 等字符型:用单引号括起来的单个字符。如a、2等。布尔型:true(真)、false(假)4、变量数据类型:整型:Integer 实型:
5、Real 字符型:Char 布尔型:Boolean 对变量的定义:格式:Var 变量名:数据类型;例如:Var a,b:integer;r,s:real;ch:char;b:boolean;a、b:为整型变量;r、s:为实型变量;ch:为字符型变量;b:为布尔型变量。变量的三要素:变量名、变量的类型、变量的值(三)标准函数:使用格式:函数名(自变量)1、算术函数绝对值 ABS(X)平方值 SQR(X)信息学奥林匹克竞赛辅导讲稿4 平方根 SQRT(X)正弦 SIN(X)余弦 COS(X)反正切 ARCTAN(X)指数 EXP(X)自然对数 LN(X)2、转换函数截尾 TRUNC(X)舍入 RO
6、UND(X)序号 ORD(X)字符 CHR(X)3、顺序函数前趋 PRED(X)后继 SUCC(X)4、逻辑判断函数奇函数 ODD(X)行结束函数 EOLN(X)文件结束函数 EOF(X)(四)表达式和赋值语句1、表达式2、赋值语句格式:变量标识符:=表达式;注意点:“:=”为赋值号,不能理解为数学上的等号“=”。赋值号两边的数据类型必须相同。任何一个变量必须赋初值,然后才能使用。一次只能给一个变量赋值。赋值号右边的表达式最终是一个能计算的值。信息学奥林匹克竞赛辅导讲稿5 课堂练习:1、写出下列的 PASCAL 表达式:、(N(N+1)/2、Y=YXXCOSXSIN22)()(、MBA、xax
7、tg)2/(2、一元二次方程的根。2、已知变量和变量的值,a=8,b=-7,c=30.6,d=1E3,f=*,g=true。求下列表达式的值。、(a*trunc(c)-b)MOD a、(odd(b)or(sqr(b)=c)and(g and(abs(b)4)解答:1、(n*(n+1)/2、y=abs(sin(x)+cos(x)/(sqr(x)+sqr(y)、exp(a+b)*ln(m)、(sin(x/2)/cos(x/2)*(sin(x/2)/cos(x/2)/(a-x)、(-b+abs(b*b-4*a*c)/(2*a)(-b-abs(b*b-4*a*c)/(2*a)2、7、true 课外思考
8、题:1、交换变量中 A和 B的值。(两种方法)2、有 2*N 的长方形方格,用一个1X2的骨牌铺满方格。如N=3时,此时有 3 种铺法(如图所示)。试对给出的任意一个N,求出铺法总数的推算公式。信息学奥林匹克竞赛辅导讲稿6 解答:1、方法一:c:=a;a:=b;b:=c;方法二:a:=a+b;b:=a-b;a:=a-b;2、用列举加猜测的方法找到递推公式当 n=1时,只有一种铺法。F(1)=1;当 n=2时,有二种铺法。F(2)=2;当 n=3时,有三种铺法。F(3)=3;当 n=4时,有五种铺法。F(4)=5;当 n=5时,有八种铺法。F(5)=8;3=2+1 F(3)=F(2)+F(1)5
9、=3+2 F(4)=F(3)+F(2)8=3+5 F(5)=F(4)+F(3)由此推出递推公式:F(n)=F(n-1)+F(n-2)信息学奥林匹克竞赛辅导讲稿7 第二讲输入输出语句教学目标:掌握 PASCAL 语言的输入、输出语句格式及其含义;掌握 PASCAL 语言输出语句的输出项和输出场宽定义;学会使用输入、输出语句编制简单的程序。重点难点:输入、输出语句格式及其含义;输出语句的输出项和场宽定义。内容安排:内容讲授 2 课时;上机编程 2 课时,完成后面的上机练习。学生分析:学生刚开始独立写程序,会出现一些如缺少“;”、raed(n=,n)、write(x:=5)等少或错的现象,要让学生多
10、练;write语句的输出是刚学的学生搞不清或容易出错的地方;有些学生拿到具体的问题不知道如何下手,可以让他们先看参考程序,看懂了再自己写。1、输入语句:功能:从键盘上读入数据,依次赋给相应的变量。格式:Read(x1,x2,x3,xn);或 Readln(x1,x2,x3,xn);说明:、Read 语句后面括号中至少有一个变量,多个变量间用逗号隔开,其作用是能把从标准输入设备(键盘)输入的数据值依次赋给变量。多个数据间用空格隔开。、Readln 语句后面可以没有变量,表示换一行读。、程序运行后,遇到read 或 readln 语句时,系统等待用户从键盘上输入数据。用户输入数据后用回车结束。例:
11、Read(A,B,C);Read(D,E,F);键盘输入:求 A、B、C、D、E、F中的值。如果将 read 换成 readln 值又是多少?2、输出语句:功能:用显示器输出程序的执行结果。格式:Write(V1,V2,V3,Vn);或 Writeln(V1,V2,V3,Vn);说明:、输出项中括号内的项目可以是常量、变量、表达式或字符串,可以是一个,也可以是多个,多个时各输出项必须用逗号分隔。、输出项中的不同项目其输出的结果分别是:常量:直接输出该常量的值。信息学奥林匹克竞赛辅导讲稿8 变量:输出变量中的内容,变量可以为任一类型。表达式:首先对表达式进行计算,然后输出计算的结果。字符串:原样
12、输出用单引号括起来的字符串中的内容。例如:CONST A=10;B=20;Begin Writeln(50);writeln(A);writeln(A+B);writeln(A+B=,A+B)End.运行结果是什么?、write与 writeln的区别:write语句是一项接一项的输出,不换行。writeln输出最后一项后换行。write括号内必须至少有一个输出项。writeln允许没有输出项,只起换行作用。例如:write(4,5);write(6,7);输出:4567 writeln(4,5);writeln(6,7);输出:45 67 输出语句的输出格式:、标准场宽。、自定义场宽:单场宽
13、:格式:输出项:场宽(场宽为正整数)说明:输出数据向右靠齐,左边补足空格。当输出数据大于场宽,自动调整至实际长度。此项设定不适用于实型。双场宽:格式:输出项:场宽:场宽说明:输出项为实型,场宽与场宽均为整数。场宽表示输出带小数的实数的字符总个数(包括符号和小数点),场宽表示输出的小数位数。自定义场宽使用时的注意事项:3、例题:书 p34 例 4-8。上机作业:习题集p18 1-11题补充习题1、根据输入的值x,分别求出xxxxxxx325432,的值。信息学奥林匹克竞赛辅导讲稿9 2、已知方程02cbxax有实根,根据输入系数 a,b,c的值,求出方程的实根。范例:输入:1 6 5 输出:05
14、62xxx1=-5 x2=-1 3、输入两个数 a,b,编一程序,比较 a+b 与 a-b 的大小,并输出其结果。范例:输入:3 5 输出:(a+b)(a-b):true 信息学奥林匹克竞赛辅导讲稿10 第三讲选择结构的程序设计(一)教学目标:掌握逻辑运算和布尔表达式;掌握 IF 语句的两种格及其含义。重点难点:IF 语句的正确使用;IF 语句中复合语句的正确使用。内容安排:内容讲授 2 课时;上机编程 2 课时,完成后面的上机练习。学生分析:学生在数学上已学习过逻辑运算与布尔表达式,对IF 语句中的“条件”很容易理解,但在多条件组合时还会出错;学生刚接触 IF 语句时往往对 then 或 e
15、lse 子句的复合语句不会写。1、逻辑运算及布尔表达式布尔常量真 true 假 false 布尔变量定义 var t,f:boolean;在 pascal 语言中,只能通过赋值语句给布尔型变量赋值,不能用read 语句从外部读入,可以用 write 语句输出。关系表达式由一个关系运算符将两个类型相容且有序的表达式联结起来的式子,称之为关系表达式。关系运算符共有6 个:、=、=、6 结果是 true 98=89 结果是 false ab结果是 true 逻辑运算逻辑运算符共有三个:not 逻辑非and 逻辑与or 逻辑或由逻辑运算符将两个类型相容且有序的表达式联结起来的式子,称之为布尔表达式。布
16、尔表达式通常用于表达复杂条件。逻辑运算真值表:(t 表示 true,f 表示 false)a b Not a Not b A and b A or b t t f f t t t f f t f t f t t f f t f f t t f f 信息学奥林匹克竞赛辅导讲稿11 2、if 语句格式:格式一:if 条件 then 语句 1;格式二:if 条件 then 语句 1 else 语句 2;功能:格式一的执行过程是:若条件为真,则执行语句。条件为假,将执行if语句的下一条语句。格式二的执行过程是:若条件为真,则执行语句。条件为假,执行语句。格式二的语句是完整的一条语句,分界处不应有分号。
17、Then和 else 后面的语句可以是单个语句,也可以是用 begin 和 end括起来的复合语句。例题:除法运算program ex1(input,output);var a,b:integer;c:real;begin read(a,b);if b0 then writeln(a,/,b,=,a/b)else writeln(data error!);end.输入一个数 X,要求不使用 abs 函数,输出其绝对值。program ex2(input,output);var a:integer;begin read(a);if x0 then writeln(-a)else writeln(
18、a);end.节日期间,某超市购物优惠规定:每购物品不超过100 元时,按九折付款,如超过100元,超过部分按七折收费。编一程序完成超市自动计费的工作。program ex3(input,output);var x,w:integer;begin read(w)if w=100 then x:=0.9*w else x:=0.9*100+0.7*(w-100);writeln(x);end.将输入的两个非负实数中较大的放在max里,小的放在 min 里,并输出。program ex1(input,output);var max,min,t:real;begin 信息学奥林匹克竞赛辅导讲稿12
19、read(max,min);if max=0 then if x0 then y:=1 else y:=0 else y:=-1;writeln(y);end.例 2、输入三角形的三条边,判断它是否是直角三角形。分析:判断输入的数据能否构成三角形。判断构成的三角形是否是直角三角形。程序 Program ex2(input,output);Var a,b,c:integer;Begin Read(a,b,c);If(a0)and(b0)and(c0)and(a+bc)and(a+cb)and(b+ca)Then If(a*a+b*b=c*c)or(a*a+c*c=b*b)or(b*b+c*c=a
20、*a)Then writeln(is rt triangle)Else writeln(is triangle)else writeln(is not triangle);readln;end.2、case 语句case 语句又称分情况语句,实现了在几个可供选择的条件中选择其一执行的转向控制,用来处理多情况选择的问题。格式:case 表达式 of 常数表 1:语句 1;常数表 2:语句 2;信息学奥林匹克竞赛辅导讲稿15 常数表 3:语句 n;else 语句 n+1 end 功能先计算表达式的值,将表达式的值依次与各常数表进行对照,当找到一个与表达式的值相匹配的常数表,就去执行该case 常数
21、表后面的语句块,如找不到则执行else 后面的语句。注意点:最后的 end 与 case 相对应。常数表可以是整型或字符型。常数表中多个常数用逗号分开,不要求有序。例 1、输入两个数值(均不为零)及一个算术运算符,输出其运算的结果。分析:算术运算符有四种情况,不同的运算符实现不同的运算,可以根据输入的运算符分情况进行处理。程序 program ex1(input,output);var a,b,x:real;ch:char;begin writeln(input a&b:);readln(a,b);writeln(input ch:);redaln(ch);case ch of+:x:=a+b
22、;-:x:=a-b;*:x:=a*b;/:x:=a/b;end;writeln(a,ch,b,=,x);end.例 2、在 1901 年到 2099 年之间,输入任何日期(年、月、日),要求计算客观存在为星期几,星期几用英文名字输出。(1901 年 1 月 1 日是星期二)分析:程序应有三部分组成:输入日期,不符合历法规定的应作错误处理。计算星期几判断闰年的条件是:能被 4 整除,但不能被 100 整除的年份;能被 400整除的年份。求出输入的日期与1901年 1 月 1 日之间的总天数 dsum,根据总天数 dsum与 7 的余数得出星期几。计算公式是:信息学奥林匹克竞赛辅导讲稿16 dsu
23、m=平年累计天数+闰年累计天数+月累计天数+日累计天数输出星期几用分情况语句来完成输出。程序 program ex(input,output);var month,day,week:integer;m2,d0,d1:integer;year,dsum:longint;begin writeln(input year,month,day:);readln(year,month,day);if(year2100)or(month12)or(day31)then writeln(error in input data!)else begin if(year mod 1000)and(year mod
24、 4=0)or(year mod 100=0)and(year mod 400=0)then m2:=29 else m2:=28;case month of 1:begin d0:=31;d1:=0;end;2:begin d0:=m2;d1:=31;end;3:begin d0:=31;d1:=m2+31;end;4:begin d0:=30;d1:=m2+62;end;5:begin d0:=31;d1:=m2+92;end;6:begin d0:=30;d1:=m2+123;end;信息学奥林匹克竞赛辅导讲稿17 7:begin d0:=31;d1:=m2+153;end;8:begi
25、n d0:=31;d1:=m2+184;end;9:begin d0:=30;d1:=m2+215 end;10:begin d0:=31;d1:=m2+245;end;11:begin d0:=30;d1:=m2+276;end;12:begin d0:=31;d1:=m2+306;end;end;end case end;end if dsum:=365*(year-1901)+(year-1901)div 4+d1+day;WEEK:=1;week:=(week+dsum)mod 7;case week of 0:writeln(SUNDAY);1:writeln(MONDAY);2:w
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- pascal 竞赛 辅导 教案
限制150内