计算机奥赛教案-程序设计部分

上传人:第*** 文档编号:57172072 上传时间:2018-10-19 格式:PDF 页数:64 大小:454.02KB
返回 下载 相关 举报
计算机奥赛教案-程序设计部分_第1页
第1页 / 共64页
计算机奥赛教案-程序设计部分_第2页
第2页 / 共64页
计算机奥赛教案-程序设计部分_第3页
第3页 / 共64页
计算机奥赛教案-程序设计部分_第4页
第4页 / 共64页
计算机奥赛教案-程序设计部分_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《计算机奥赛教案-程序设计部分》由会员分享,可在线阅读,更多相关《计算机奥赛教案-程序设计部分(64页珍藏版)》请在金锄头文库上搜索。

1、程序设计部分程序设计部分第 1 课时(2 小时)第第 1 章章认识认识 Pascal前言前言程序,可以理解为完成某个任务的一系列命令语句,编制程序的过程称为程序设计。用来编制程序的设计语言有很多种:汇编语言、C 语言、BASIC 语言、COBOL 语言、FORTRAN语言、 Pascal 语言。 每种语言都有不同的研制公司, 不同的版本等。 我们以奥赛标准语言之一的 FreePascal为蓝本,学习程序设计。第一节Free Pascal 环境介绍Free Pascal for NOI 是信息学奥赛指定的参赛语言环境,它能够较稳定地运行在 Windows 系列的操作系统上。本节课将学习 Free

2、 Pascal(简称 FP)的操作方法。一运行一运行:开始/程序/Free Pascal for NOI/FP。二界面二界面:菜单栏、工作区、信息提示区。File 菜单:New 新建、Open 打开、Save 保存、Save as 另存为、Command Shell 命令外壳、Exit退出。Edit 菜单:Copy 复制、Cut 剪切、Paste 粘贴。Run 菜单:Run 运行、Step Over 单步执行。三三信息提示区信息提示区:当调试程序出错时,信息将在下方屏幕显示,提示第几行第几列及出错原因,方便排除错误。第二节 Pascal 程序编写格式首先,我们举一个简单的例子来说明 Pasca

3、l 源程序的基本结构与上机运行的过程。例例 1 从键盘上输入两个整数 a 和 b(b)、小于号()、大于等于号(=)、属于(In)。In 是判断元素是否属于某个集合,在集合类型中再介绍。如:2100 结果为 false;A=、7) and (94) 结果为 false; (cC) or (x = = =0) 、正弦 SIN(X) 、余弦 COS(X) 、指数 EXP(X)(表示 Ex) 、自然对数 LN(X)(表示 logeX) 、反正切 ARCTAN(X) 。在 Pascal 中没有提供求 xn的操作,但可以通过数学知识转换为标准函数完成:xn=elogexn=enlog ex=exp(n*

4、ln(x) ;另外,以 y 为底的对数 logyx,可以表示为:logyx=ln(x)/ln(y)。x111112转换函数截尾 TRUNC(X) 、舍入 ROUND(X) 、序号 ORD(X) 、字符 CHR(X) 。对于四舍五入函数 ROUND(X) ,如果 X 为负数,则先将 X 的负号忽略进行四舍五入,再加上负号,即为结果。序号函数和字符函数的功能正好互逆。如:Ord (Chr (65)= 65。3顺序函数前趋 PRED(X) 、后继 SUCC(X)。X 可以为整型、字符型、布尔型、枚举型、子界型。求左端点的前驱时,函数值不变;求右端点的后继时,函数值不变。4判断函数奇函数 ODD(X)

5、 、行结束函数 EOLN(X) 、文件结束函数 EOF(X)5随机函数Random 或 Random(x)。无参数的产生(0,1)之间的随机实数;带参数的产生0,x-1之间的随机整数,如果 x=100;2编写程序,交换两个变量的值。 (设 a=10, b=20)二输出语句输出语句格式:write (输出项);或 writeln (输出项);多个输出项中间用逗号分隔。对于 writeln 语句可以不要输出项,表示回车换行。执行该语句时,按指定的格式将输出项输出。1输出格式:在 Pascal 中,整型数据直接输出;字符和字符串型数据直接输出单引号内的内容,如 write(sum=),则在光标位置输

6、出字符串常量 sum=(单引号并不输出) ;布尔型数据直接输出 false 或 true;实型数据按科学记数法输出。如 write (123.45),则显示 1.2345000000E02。场宽:指每种可输出类型数据输出要占的列数。输出项后没有设定场宽,就按标准场宽输出。注意: 按标准场宽输出多个数据时, 数据紧凑在一起无法辨别, 可以通过在输出数据之间加空格来分隔。例例 3 写出下面程序段的运行结果。a:= 5;b:= 10;write (a,b);writeln;writeln(a, *,b, =, a*b);2用户自定义输出格式: 单场宽:适用于整型、字符型、布尔型,但不允许是实型。例例

7、 4 设 m:=975; ch:=#; f:=TRUE;则 writeln(m:5);显示结果:975writeln(ch:5);#writeln(f:6);TRUEwriteln(ok!:6);ok! 双场宽:控制实型数据输出。格式:x:N1:N2,要求 N1N2,且都为正整数。例例 5writeln(-123.4:8:2);显示:-123.40writeln(123.456:6:2); 显示:123.45 后面的小数位舍弃,但内存中该数的精度不变。 带场宽输出的原则:在数据不突破场宽的限制时,一律按场宽定义输出,除实型的双场宽外,其余一律向右看齐,左边补空格。实型的双场宽输出向小数点看齐,

8、小数位不足则补 0,小数位数补满后,如果位数仍不足,则整数部分前补空格。在数据突破场宽限制时,以保证数据的正确输出为原则。练习:1写出下列程序的运行结果。Program ex(input,output);Vara: integer; b: real; c: char; d: boolean;Begina:=1357;b:=1234.5678;c:=%;d:=true;Writeln(a, a:5);Writeln(b, b:12:5);Writeln(c, c:5);Writeln(d, d:5);Writeln(end:5)End.2写出程序的执行结果。Program example; Va

9、ra, b, c: real; Begin a:= 10;b:=136; c:= a*b; writeln(c=, c); writeln(c=, c:0:0); writeln(a, *, b, =, c:0:0); End.3第 37 页练习题 14。第 6 课时(2 小时)三输入语句(也叫读语句)输入语句(也叫读语句)为了使程序具有通用性,也就是改变相应的输入数据时,程序不必进行修改就可以得到所要的不同结果,此时可以使用灵活的输入语句,可从键盘接收变量的值。格式:read(变量名);或 readln(变量名);注意:多个变量之间用逗号分隔,变量名不能是常量和表达式;如 read(2,a*

10、b); 是错误的。输入整型或实型数据时,数据间用空格或回车键分隔,最后要用回车键结束输入;实型数据输入时,可以带小数点输入,也可以用 Pascal 语言的科学记数法形式输入;输入字符时,连续输入或一个字符一个回车来分隔开;程序运行后,输入的数据必须是常量,且输入的数据一定要与变量类型保持一致,个数不能少于变量个数;一个输入语句不能有多个字符串型变量,布尔类型变量不能用输入语句获得,只能用赋值语句。read 与 readln 的区别:当输入的数据个数多于变量个数时,readln 后多余的数据被忽略,read 后多余的数据要么被忽略要么被下一条 read 或 readln 语句读入;readln

11、后可以没有输入项,仅表示读入一个回车换行符。输入语句执行过程:等待用户从键盘输入数据数据进入键盘缓冲区分给程序中相应的变量。可以按 Ctrl+C 终止输入语句的执行。例例 6Readln(a,b,c);Readln(i,k,j,l);Readln(m,n);键盘输入:135792468102030则 a=1, b=3, c=5, i=2, k=4, j=6, l=8, m=20, n=30,若 readln 换成 read 语句,则 a=1, b=3, c=5, i=7, k=9, j=2,m=6, n=8。例例 7Read(a,b);Readln;Read(c);键盘输入:10203040a

12、=10; b=20; Readln 语句读取一个回车换行,所以 c=40。为了避免可以出现的错误,建议按下面两条原则使用:在程序中尽量避免混合使用 read 和 readln;尽量使用 readln 语句,一个数据行对应一条 readln 语句。练习:1第 40 页练习题 14。2在程序中间和最后加入 readln 语句可以达到怎样的效果?Program Example5; Vara, b, c, d, e: integer; Begin Write(a, b, c=);Readln(a, b, c); d:= a+b; Writeln(a, +, b, =, d); Readln; e:=

13、d*c; Writeln(d, *, c, =, e); Readln; End.四复合语句复合语句复合语句是由若干条语句组成的一个语句块,用 begin 和 end 将它们括起来,作为一条语句一条语句。语句间用分号隔开。格式:begin begin复合语句end; end. 第 7 课时(2 小时)第二节选择结构程序设计一选择结构(分支结构)选择结构(分支结构)在程序设计中,有时要根据条件成立与否来决定执行哪一条语句。例,如果 ab,那么输出 a,否则输出 b。在 Pascal 语言中提供了两种分支控制语句:条件语句(如果语句)和情况语句。二条件语句(如果语句)条件语句(如果语句)1 格式一

14、:if 条件表达式 then 语句;功能:当条件表达式为真(true)时,执行语句。格式二:if 条件表达式 then 语句 1 else 语句 2;功能:当条件表达式为真(true)时,执行语句 1,否则执行语句 2。注意:当 then 或 else 后面的语句是多条时,应用复合语句表示;else 之前的一条语句后面不能加分号。例例 1 从键盘输入两个不同的数,输出其中较大的一个数。Program xz01(input,output); Var a, b: integer; Begin Write(a, b=);readln(a, b); if abthenwriteln(max=, a)e

15、lsewriteln(max=, b); readln; End.例例 2 铁路托运行李,从 A 地到 B 地,不超过 50 公斤时,每公斤托运费为 0.30 元,超过 50 公斤,每公斤为 0.50 元,编程自动计算托运费。Program xz02(input,output); Var h, x: real; Begin Write (h=);readln (h); ifh=50thenx:=h*0.5elsex:=h*0.3; writeln (x=, x); readln; End.例例 3*计算一元二次方程 ax2+bx+c=0 实根。Program ex03; Var a, b, c

16、, d, x, x1, x2: real; Begin Write (enter a, b, c=);readln (a, b, c); d:= sqr(b)-4*a*c; ifd=0thenifd=0thenbegin x:= (-b)/(2*a); writeln(x=, x); endelse begin x1:= (-b+sqrt (d)/(2*a); x2:= (-b-sqrt (d)/(2*a); writeln (x1=, x1, x2=, x2); end else wirteln(No answer); readln; End.练习:1输入一个正整数,判断其奇偶性。2输入一个数,判断其能否被整除。3输入一个数,判断是否是一个数的完全平方数。2条件语句嵌套时的规则:else 与最近的条件语句配对。如

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号