pascal初赛培训

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

说明:




执行到输入语句时,系统处于等待状态,等待从键盘上输入数 据,并且根据变量的数据类型判断输入内容是否合法,如果内 容不合法则提示106格式错误。如执行read(a),假设a是整型变 量,那么输入的内容为数字是合法的,其它字符提示格式错误。 read语句是一个接一个地输入数据,在执行完本条read语句后, 下一个输入语句接着从该行中的下一个数据继续读取数据,也 就是说输入光标不换行,readln语句是read+line的缩写,意思 是为括号中的变量赋完值后立即换行,如果有下一条输入语句, 只能从下一行开始读取。 read 后一定要有参数表(变量名),而readln可以不带参数表,即可 以没有任何输入项, 这时系统等待读入一个换行符(回车)。经常 用于暂停程序的运行,直到输入一个回车。 为了避免出现错误,建议在程序中按下列原则使用读语句: (a)如果没有特殊需要,在一个程序中尽量避免混合使用read语句 和readln语句; (b)尽量用readln语句来输入数据, 一个数据行对应一个readln语 句
设有下列语句: read(a,b,c); readln(d,e); readln; readln(f,g); 其中,所有变量均为整型。再设输入的数据格式如下: 12 345678 9 10 11 12 13 列表给出每个变量的值。

变量名 值
a 1
b 2
c 3
d 4
e 5
函数y如下
0 (x<0) 2x (0<=x<10) 2x + 1 (10<=x<50) x/2 + 50 (50<=x)
var x,y:real; begin readln(x); if x<0 then y:=0; if (x>=0) and (x<10) then y:=2*x; if (x>=10) and (x<50) then y:=2*x+1; if x>=50 then y:=x/2+50; writeln(y:0:2) ; readln(); end.
例3_3:梯形中阴影部分面积是150平方厘米,求梯形面积。 【分析】 已知梯形上、下底长为15和25。令梯形的高为h, 则由已知三角形面积为150平方厘米,有150=(15*h) /2,得h为20,然后根据梯形面积公式算出梯形面积。
Program ex_2 var s,h,up,down : real; //定义变量 begin up := 15; //已知上底 down := 25; //已知下底 h := 2*150/up; //根据上底求出梯形的高 s := (up+down)*h/2; //求出梯形的面积 writeln(‘s=’,s ); //输出梯形的面积s=400 end. //结束整个程序
f 11
g 12
输出语句write




输出语句的作用是将程序处理的结果输出到显示器屏幕,一个程 序可以没有输入,但一个程序肯定要有输出,否则编写程序就失 去任何意义。 (1) write语句 格式:write(输出项1,输出项2,…)。 输出语句中的输出项可以是变量、常量、表达式和字符串。 如:write(‘The score of LiPing is:’,100); //引号内的内容原样输出 (2) writeln语句 格式:writeln(输出项1,输出项2,…)。 writeln是write+line的缩写,writeln语句相当于write语句+换行, 即输出完毕后换到下一行。特殊地,writeln语句只是起到换行作 用,不输出任何内容。

y=
编写程序, 当输入x后输出y的值。
1.25*105 1+e-xsinx 2πr (100≤x≤500)
输入语句 read



在程序中变量获得一个确定的值,可以用赋值 语句,但是有些变量的值往往不能事先确定, 需要在程序运行时输入,输入语句就是用于把 外界要处理的数据传输给程序。输入语句是在 程序运行时由用户给变量提供数据的一种很灵 活的输入动作。 输入语句的格式:read( 变量1, 变量2, … ) 功能:读取键盘 输入数据,并依次赋给相应 的变量。
例T3_2:鸡兔同笼问题。已知鸡和兔的总头 数是H,总腿数为F,求鸡和兔各多少只?
分析:设鸡为C只,兔为R只, 则 C+R=H 2*C+4*R=F
解得:C=(4*H-F)/2, R=H-C 。
程序为: Progrem T3_2; var h,f,c,r:real; begin readln(h,f); c:=(4*h-f)/2; r:=h-c; writeln(‘click:’,c); writeln(‘rabbit:’,r); end.

男女生的人数需要用户输入,然后根据题意(x*87+y*85)/(x+y) 求出全体同学的平均分。
Program ex3_1; var x,y : integer;
begin readln(x,y); writeln((x*87+y*85)/(x+y)); //实数以默认的科学记数法格式输出
end.
知识点

一、程序的基本结构 二、常量与变量 三、赋值语句及表达式 四、输入语句read与输出语句write 五、例题
一、 Pascal程序的基本结构
示例: program 程序名;{可以省略} var 变量说明;
begin 语句; 语句; …… 语句; end.
Program ex_1 var a,b,c,d : integer; begin readln(a,b); c := a div b; d := a mod b; writeln(c,‘ ’,d); end.
实型是不能直接赋给整型
下面是几个Pascal表达式的例子:
数学表达式 Pascal表达式
1.
2.
b2-4ac
a b c d
a d d
b*b-4*a*c
(a+b)/(c+d)
3.
c
(a+b)/c+d
4. 5. 6. 7. 8.
ab cd
a*b/(c*d)或a*b/c/d 1.25E+5 1+exp(-x)*sin(x) 2*pi*r (pi常量由系统提供) (x>=100) and (x<=500)
例如以下两个程序段的输出分别为: (1)write(1,2,3,4); write(5,6); 输出为:123456 (2)writeln(1,2,3,4); //输出完毕后换行 write(5,6); //另起一行输出 输出为: 1234 56
例T3_1、已知某班有男同学x位,女同学y位,x位男生 平均分是87分,y位女生的平均分是85,问全体同学平 均分是多少分?
//百位数 //十位数 //个位数 //重新组合对调后的数
输出:432
从键盘上读入三个数,按由大到小的顺序把它们打印出来。
var a,b,c,t:integer; begin readln(a,b,c); if a<b then begin t:=a;a:=b; b:=t ; end; if a<c then begin t:=a;a:=c;c:=t ; end; if b<c then begin t:=b;b:=c;c:=t ; end; writeln(a:4,b:4,c:4) ; readln(); end.
例1: 已知两个自然数a,b,输出a除以b的商和余数?

已知圆的半径,求圆周长和面积的程序。



从中可看出一个Pascal 程序由三部分组成: 1、程序首部 由保留字Program开头,后跟一个程序名(如ex_1), 其格式为:Program 程序名。程序名由选手自己取,它的第一 个字符必须是英文字母,其后的字符只能是字母、数字或下划线 组成,程序名中不能出现运算符、标点符和空格等非法字符。 2、说明部分 程序中所用的常量、变量等必须先定义后使用。 如程序中 x,y : integer;是变量定义,x,y被定义成整数类型的 变量。只有被定义为某一类型的变量,在程序中才能将与变量类 型所允许的值赋给该变量。说明部分以保留字var开头。 3、语句部分 语句部分指由保留字 begin (开始)至 end. (结尾)之 间的语句系列,是解决问题的具体处理步骤,也是程序的执行部 分。 不管是程序的哪部分,每条语句末尾都必须以分号(;)结束, 但允许最接近 end 的那条语句末尾的分号省略;程序结束语句 end末尾必须有句号(. ),是整个程序的结束标志。
赋值语句
赋值语句的格式为: 变量 := 表达式; 其中:= 是赋值符号 功能:是先计算:=右边表达式的值再赋值给它左边的变量, 也就说让变量的值等于表达式的值。 说明: (1)” := “ 称为赋值号,不要与 ” = “ 混淆。赋值有方向性,左边 只能是变量,不能是表达式,如 –x := 1是非法的。 (2)赋值号两边的类型必须相同,但是整型表达式可以赋值给实型,反 之不成立。 (3)一个赋值语句只能给一个变量赋值,变量可以赋值多次,但只保留 最后一次的值。 (4)被赋值的变量可以作为表达式因子参与运算,如: i:=i+1;是合法 的。 (5)对变量的赋值是对变量的存入访问。如d:=a;语句执行后,d的变 量内容就是a变量的内容,但是a变量的值并没有消失与改变。
完整的PASCAL程序框架
Program 程序名(程序参数表); Label 标号说明; Const 常量说明; Type 类型说明; Var 变量说明; Function 函数说明; procedure 过程说明; begin 程序语句; …… end.
•在Free Pascal 中可省程序参数表。 • 在程序说明部分使用的标号、常 量、类型、变量、记录、文件、过 程和函数,都必须在说明部分进行 说明。但并不是每个程序都必需的, 根据需要而设。 • 程序执行部分是指Begin开始到 最后一条End. 是程序的核心。它由 一系列语句组成,语句之间用“;” 隔开,允许一行写多个语句,也允 许一个语句写成几行。一般情况一 行只写一个语句。
例如: var a,b :integer; x,y :real; ch :char; t: boolran; 但下列说明是非法的: 例如: var a,b =integer; ch :char; ch :boolean; a,b后面不能用=,ch不能重复定义。 变量一经说明,系统就为其分配内存。程序 中使用该变量时,就要在相应的内存单 元读写数据,称为对变量的访问。


变量定义格式: var <变量名表> :类型标识符;
常量定义格式: const <常量标识符> = <常量>;
要求如下: 1、要放在程序说明部分。 2、必须遵循先定义后使用的 原则。 3、不允许重复定义,或一次 定义多个常量。 例如: const a =1; a,b = 10; c = 1 or 2; d := 3;
程序中“//”称为注释,计算机不会理踩后面内容,注释可以增加程序的可读性。 便于他人或自己日后阅读。一般单行内容用“//”,多行内容用“{ }”。
例T3_3:输入一个三位数数,要求把这个数的百位 数与个位数对调,输出对调后的数。

Байду номын сангаас
先求出自然数的个位、十位、百位,然后个位与百位对调。
Program T3_3; var a,b,c,m,n : integer; begin readln(m); a := m div 100; b := (m div 10) mod 10; c := m mod 10; n := c*100+b*10+a; writeln(n); end. 运行结果: 输入:234
程序的书写格式:
1、PROGRAM写在最左边顶格; 2、注释的//或{}、和CONST、VAR、BEGIN、END等语句 上下对齐,且它们比PROGRAM向右移两个字符; 3、各个语句和程序语句也是上下对齐,它们比第2点 中的各语句又向右移两个字符; 4、语句间多余空格与空行,编译时会忽略。
常量与变量
相关文档
最新文档