NOIP初赛复习程序设计基础.docx





《NOIP初赛复习程序设计基础.docx》由会员分享,可在线阅读,更多相关《NOIP初赛复习程序设计基础.docx(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、OK备战NOIP 2021提高组初赛复习程序设计根底篇第一章简单程序2第一节 Pascal 程序构造和根本语句2第二节 顺序构造程序及根本数据类型4第二章分支程序6第一节 条件语句及复合语句6第二节 情况语句及算术标准函数8第三章循环程序9第一节for 循环10第二节Repeat 循环14第三节While 循环15第四章函数及过程17第一节函数17第二节自定义过程18第五章Pascal的自定义数据类型19第一节数组及子界类型19第二节二维数组22第一章简单程序程序设计语言,是一组用来定义计算机程序的语法规那么。它是一种被标准化的交流技巧,用来向计算机发出指令。按语言级别有低级语言和高级语言之分
2、。低级语言包括机器语言和汇编语言。它的特点是及特定的机器有关,成效高,但使用复杂、繁琐、费时、易出过失。高级语言的表示方法要比低级语言更接近于待解问题的表示方法,其特点是在一定程度上及具体机器无关,易学、易用、易维护。由于当高级语言程序翻译成相应的低级语言程序时,一般说来,一个高级语言程序单位要对应多条机器指令,相应的编译程序所产生的目标程序往往成效较低。例:Pascal、C、C+、Java等第一节 Pascal 程序构造和根本语句在未系统学习Pascal语言之前,暂且绕过那些繁琐的语法规那么细节,通过下面的简单例题,初步掌握Pascal程序的根本组成和根本语句的用法。例1.1 编程在屏幕上显
3、示“Hello World!。 Pascal程序:Program ex11;Begin Writeln(Hello World!); Readln;End.这个简单样例程序,希望大家的程序设计学习能有一个良好的开端。程序中的Writeln是一个输出语句,它能命令计算机在屏幕上输出相应的内容,而紧跟Writeln语句后是一对圆括号,其中用单引号引起的局部将被原原本本地显示出来。例1.2 一辆自行车的售价是300元,请编程计算num辆自行车的总价是多少?解:假设总售价用m来表示,那么这个问题可分为以下几步处理: 从键盘输入自行车的数目a; 用公式 m=300*a 计算总售价; 输出计算结果。Pas
4、cal程序: Program Ex12; 程序首部 Var num,total : integer;说明局部 Begin语句局部 ReadLn(num);输入自行车数目 total:= 300*num;计算总售价 Writeln(total=,total);输出总售价Readln; End.此题程序构造完整,从中可看出一个Pascal 程序由三局部组成:1 程序首部由保存字Program开头,后面跟一个程序名(如:Exl1);其格式为: Program 程序名;程序名由用户自己取,它的第一个字符必须是英文字母,其后的字符只能是字母或数字和下划线组成,程序名中不能出现运算符、标点符和空格。2说明
5、局部程序中所用的常量、变量,或类型、及过程及自定义函数,需在使用之前预先说明,定义数据的属性类型。例1.2 程序中 Var S,R,C: Real; 是变量说明,此处说明S,R,C三个变量均为实数类型变量。只有被说明为某一类型的变量,在程序中才能将及该变量同类型的数值赋给该变量。变量说明的格式为: Var 变量表:类型;3 语句局部指由保存字 Begin (开场)至 End. (结尾)之间的语句系列,是解决问题的具体处理步骤,也是程序的执行局部。Pascal程序不管是哪局部,每句末尾都必须有分号(;),但允许最接近 End 的那个语句末尾的分号省略;程序完毕的End末尾必须有圆点(. ),是整
6、个程序的完毕标志。程序中花括号“ 之间的局部为注释局部。Pascal程序构造可归纳用如下的示意图来表示: Program 程序名; 程序首部 标号说明; (Label) 常量说明; (Const) 说明局部 类型说明; (Type) 变量说明; (Var) 过程或函数说明; Begin 程序体 (主程序) 语句系列; 语句局部 End. 图1.1 Pascal程序的构造把处理问题的步骤编成能从上到下顺序执行的程序,是简单程序的根本特征。再来分析下面两道例题的Pascal程序构造和继续学习根本语句。例1.3编程计算半径为R的圆的面积和周长。解:这是一个简单问题,按数学方法可分以下几步进展处理:
7、从键盘输入半径的值R; 要求告诉圆的半径R 用公式 S=R2 计算圆面积; 用公式 C=2R 计算圆周长; 输出计算结果。Pascal程序: Program Ex13;程序首部 Var r,s,c: Real; 说明局部 Begin 语句局部 Readln(r); 输入半径 s := Pi*r*r; 圆面积公式S=R2 c := 2*Pi*r; 圆周长公式C=2R Writeln(s=, s:5:1, c=,c:5:1); 输出结果 Readln; End.程序中Pi是Pascal提供的标准函数,它返回圆周率的近似值:3.1415926。(:=)是赋值符号,赋值语句的格式为: 变量 := 表达
8、式;赋值语句的作用是将:=右边表达式的值记录到左边的变量中。Writeln是输出语句,输出语句有三种格式: Write (输出项1,输出项2) ; 执行输出后光标不换行 Writeln (输出项1,输出项2) ; 执行输出后光标换到下一行 Writeln 仅输出空白且光标换到下一行Writeln语句后面的圆括号以内局部均为输出项,可以是多项,各项间用逗号分隔; 对单引号里的内容按照引号内的原样(字符)输出显示。如果输出项是表达式,那么只输出表达式的值,而不是表达式本身。例1.4 输出两个自然数相除的商和余数。解:设被除数、除数、商和余数,分别为A,B,C,D,均为变量,且都是整数类型。题中未给
9、出具体的自然数A、B,可采用键盘输入方式。 显示两数相除的数学形式; 求出a除以b的商c; 求出a除以b的余数d; 紧接等式后面输出显示商和余数。Pascal程序: Program Ex14; Var a,b,c,d : integer; Begin Readln(a,b); 输入a,b c:=a div b; 整除运算,取商的整数局部 d:=a mod b; 相除求余运算,取商的余数局部 Writeln(c=,c, d=,d); 输出后自动换行 Readln; End.第二节 顺序构造程序及根本数据类型前面的简单程序已表达出处理问题步骤、思路的顺序关系,这就是顺序构造程序。例1.5交换两个变
10、量的值:由键盘输入两个正整数A和B,编程交换这两个变量的值。解:交换两个变量的值,可以想象成交换两盒录音带称为A和B的内容,可以按以下步骤处理:步骤:拿一盒空白录音带C为过渡,先将A翻录至C;步骤:再将B翻录至A;步骤:最后将C翻录至B。这样操作,可到达题目要求。Pascal程序:Program Exam15; Var a,b,c : integer;Begin Readln(a,b); c:= a; a:= b; b := c; Writeln(a=,a, b=,b); Readln;End.Pascal定义了五个标准整数类型,如下表所示:类型取值范围占字节数格式Shortint短整型-12
11、8.1271带符号8位Integer整型-32768.327672带符号16位Longint长整型-2147483648.21474836474带符号32位Byte字节型0.2551无符号8位Word 字型0.655352无符号16位 在前面程序中常用的数据类型除整数类型,还有实数类型。Pascal 还定义了五个标准实数类型,列表所示如下:类型取值范围占字节数有效数字Real2.910-391.71038678位Single1.510-453.4103841112位Double5.010-3241.71030881516位Extended1.910-49511.1104932101920位Co
12、mp-263+1238-181920位第二章分支程序在程序设计中,许多问题是在一定条件下才选择某种处理方式的,这就需要用条件判断语句或情况选择语句进展处理。程序执行中将出现选择(分支),根据条件只选择执行局部语句,不一定都是按原顺序从头到尾地执行所有语句,这样的程序称为分支程序。第一节 条件语句及复合语句例2.1 某服装公司为了推销产品,采取这样的批发销售方案:凡订购超过100 套的,每套定价为50元,否那么每套价格为80元。编程由键盘输入订购套数,输出应付款的金额数。解:设X为订购套数,Y为付款金额,那么: 输入X; 判断 X 值; 根据判断结果选择符合条件的那种方法计算Y值; 输出计算结果
13、。Pascal程序:Program Exam21;Var x,y: integer;Begin Readln(x) ; 输入X if x 100 then y:=50*x else y:=80*x; 条件判断及选择 Writeln(y=,y); Readln;End.程序中的 if 语句常称为条件语句,它的一般格式为: (1) if 条件 then 语句; (2) if 条件 then 语句1 else 语句2;IF 语句的功能是按条件在两种可能中选择其中一种。习惯上把if 后面的表达式称为条件,then 后面的语句称为真项,else 后面的语句称为假项。假设条件成立(为真)就执行真项,然后执
14、行if语句的后继语句;假设条件不成立(为假)就跳过真项而执行假项,然后执行后继语句。而第一种格式只有真项,没有假项,当条件不成立(为假)就什么也不需做,直接往下去执行后继语句。例2.2 读入三个不同的数,编程按由小到大的顺序排列打印出来。解:设读入的三个数为a,b,c,为了把较小的数排在前面,可作如下处理: 如果ab就交换a、b的值,将较大的值换至后面; 如果ac就交换a、c的值,将较大的值换至后面; 如果bc就交换b、c的值,将较大的值换至后面; 输出处理后的a,b,c。 Pascal程序: Program Exam22; Var a,b,c,t: Integer; Begin Readln
15、(a,b,c); if ab then begin 复合语句 t:=a; a:=b; b:=t 交换a,b end; if ac then begin 复合语句 t:=a; a:=c; c:=t 交换a,c end; if bc then begin 复合语句 t:=b; b:=c; c:=t 交换b,c end; Writeln(a:6, b:6, c:6); Readln; End.if 语句规定它的真项或假项位置上只能是一个根本语句,如果需要写一组语句,就应当使用复合语句。本程序中有三处用到复合语句。每个复合语句的范围是从Begin开场到及它相对应的End为止。复合语句的地位和一个根本语
16、句一样;其一般格式为: Begin 语句系列 End;第二节 情况语句及算术标准函数如果有多种两种或两种以上选择,常用情况语句编程。例2.3 对某产品征收税金,在产值1万元以上征收税5%;在1万元以下但在5000元以上的征收税3%;在5000元以下但在1000元以上征收税2%;1000元以下的免收税。编程计算该产品的收税金额。解:设x为产值,tax为税金,用P表示情况常量各值,以题意中每1000元为情况分界: P=0: tax=0 (x1000 ) P=1,2,3,4: tax=x*0.02 (1000=x5000 ) P=5,6,7,8,9: tax=x*0.03 (5000=X 10000
17、 )这里的P是“情况值,用产值x除以1000的整数值作为P,如果P10也归入P=10的情况。Pascal语言用P=trunc(x/1000)取整计算,Pascal程序:Program Exam23;Var x,p : integer; Tax : real;Begin readln(x) ; P:=trunc(x/1000) ; if P 9 then p:=10; Case p of 0: tax:=0; 1.4 : tax:=x*0.02; 5.9: tax:=x*0.03; 10: tax:=x*0.05 end; Writeln(tax:6:1) ; Readln;End.程序中的 C
18、aseend 语句为情况语句,是多路分支控制,一般格式为: Case 表达式 of 情况常量表1: 语句1; 情况常量表2: 语句2; : : 情况常量表n: 语句n end;执行情况语句时,先计算Case后面表达式的值,然后根据该值在情况常量表中的“对应安排,选择其对应的语句执行,执行完所选择语句后就完毕Case语句;如果常量表中没有一个及表达式值对应的语句,那么什么也不做就完毕本Case语句。Case 语句的另一种应用格式为: Case 表达式 of 情况常量表1: 语句1; 情况常量表2: 语句2; : : 情况常量表n: 语句n; else 语句 n+1 end;这种格式的前面局部是一
19、样的,所不同的是:如果常量表中没有一个及表达式值对应的语句,那么执行及else对应的语句,然后完毕Case语句。程序中的trunc(x)为取整函数,是Pascal的算术标准函数之一。Pascal常用的算术标准函数有19个: (1) abs(x) 求x的绝对值(|x|); (2) exp(x) 求ex的值; e为无理数2.71828 (3) frac(x)求x的小数局部; (4) int(x) 求x的整数局部(不舍入,函数值为实型); (5) ln(x) 求以e为底的x的对数log ex ); (6) odd(x) 判断x的奇偶数(当x为奇数时odd(x)值为true,否那么为false); (
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NOIP 初赛 复习 程序设计 基础

限制150内