好文档 - 专业文书写作范文服务资料分享网站

广东省汕头市金山中学高中信息技术 pascal教程03 第三课 基本语句(一)教案

天下 分享 时间: 加入收藏 我要投稿 点赞

第三课 基本语句(一)

§3.1 程序的三种结构

从程序结构化设计的角度来讲,程序可以分成三种基本结构:顺序结构、分支结构和循环结构,在下面结束基本语句中,将进行详细的介绍。

是 A B A 条件 否 条件 B 是 A 否

顺序结构 分支结构 循环结构 §3.2 赋值语句

赋值语句是程序设计中最基本的语句,其作用是计算表达式的值,并把它赋给一个变量。 赋值语句的一般形式:

<变量标识符> : = <表达式>;

其中表达式可以是算术表达式、布尔表达式、字符表达式或集合表达式。

【例】 (1) a := 200; (2) b := a + 30*2; (3) a := a–50;

200 - 50

200 + 30*2 200 200 a a a b

(1) (2) (3)

使用赋值语句,必须注意:

(1) 任何一个变量必须先赋值,然后才能引用。

(2) “:=”称为赋值号,不要与数学上的等号“=”混淆。

(3) 一个赋值语句只能给一个变量赋值,如:a := b:= 3; 或 a , b := 3.1;都是错的! (4) 赋值号右边的表达式必须是一个能够计算出来的值! (5) 赋值号“ : = ”的左边只能是变量,而不允许是表达式,如

– a : = 0; a + b * c : = a * b; 等都是错误的。

(6) 表达式计算值的类型和变量的类型必须是赋值兼容的:

· 变量和表达式的类型相同;

· 变量是实型,而表达式计算结果为整型,反之则不能;

· 变量是长整型,而表达式计算结果为整型,反之则会引起程序出错; §3.3 写语句

输出计算结果,它有两种形式:

write(<项目名表>); writeln(<项目名表>);

<项目名表>是一串逗号分隔的输出项。若输出项为常量或变量,直接输出常量或变量的

值;若输出项为表达式,则先对表达式进行计算,然后输出计算结果;若输出项为字符串,原样输出。

☆ write和writeln的区别:

执行write语句时,是一项接着一项连续地输出,并不换行。

【例】 x := 20; y := 30;

write(x,’+’,y,’=’); { 输出字符或字符串须用单引号

括起 }

write(x + y);

执行上述语句后,在显示屏输出: 20+30=50

执行writeln语句,也是一项接着一项输出,但输完最后一项后自动换行。 【例】 x := 20; y := 30;

writeln(x,’+’,y,’=’); writeln(x + y);

执行上述语句后,在显示屏输出: 20+30= 50

write语句至少必须输出一项内容,writeln语句允许不输出任何内容,仅仅换行。 即:writeln;是合法的,而write;是不合法的。

write或writeln语句可带有参数,其格式取决于变量的类型,现描述如下: ① write(e:n); n为整数表达式。

在n个字符宽的输出域上,以右对齐方式输出。

② write(R:n:m); n、m为整数

以右对齐方式在n个字符宽的输出域上输出R值,其中小数点之后带m个数字。

【例】:下面的例子,说明如何使用参数。

program form;

var r :real; c :char; begin

c := ’a’; r := 3. 5; writeln(c : 6); writeln(r); writeln(r : 9);

writeln(r : 1); writeln(r : 9 : 3); writeln(r : 2 : 3); end. 输出:

a

3 . 5 0 0 0 0 0 0 0 0 0 e + 0 0 3 . 5 0 e + 0 0

3 . 5 0 0

3 . 5 0 e + 0 0 3 . 5 0 0

* 当输入域宽说明n大于输出数据字符数时,输出时左面自动补空格。

* 当输入域宽n小于所要求的字符数时,输出时将自动突破域宽说明限制,按实际字符数输出。 §3.4 读语句

把键盘输入的数据赋给相应的变量。有两种形式的读语句:

read(<变量名表>); readln(<变量名表>);

<变量名表>是一串用逗号隔开的变量标识符。程序运行时,执行到read或readln语句时,系统处于等待状态,等待用户从键盘输入数据。

输入数值型数据时,数据间用空格分隔,然后按回车键,表示输入结束;输入字符型数据时,数据间不能用空格分隔,可以连续输入。当输入项中的变量为多个时,要求输入的数据不能少于其变量个数,若少于变量个数时,系统仍处于等待状态,接着输入的数据无论是换行输入还是不换行输入均有效。

☆ read 和readln的区别:

readln语句与read语句不同之处是依次读入一串数据到相应变量中去后自动换行。当输入的数据多于变量个数时,readln将忽略同一行输入中多余的数据,后面若还有read或readln语句,将从下一行数据读起。而执行read后,多余的数据要么被忽略,要么被下一个read或readln语句读入。 【例】 read(x , y , z);

表示从键盘上输入三个数,并把它们依次存放到变量x,y,z中去。 当输入: 20 30 40 (然后按回车键表示本行数据输完) 其结果为 x=20,y=30,z=40。

这条语句也可以写成以下三个读语句: read(x);read(y);read(z);

【例】 read(a ,b ,c);

readln(i ,j ,k); readln(x ,y); 当输入数据:

1 2 3 4 5 6 7 8 9 10 11 读入结果为:

1 2 3 4 5 ↓ ↓ ↓ ↓ ↓ a b c i j

6 7 8 ↓ k 9 10 11 ↓ ↓ x y

使用读语句要注意几个问题:

(1)输入数据的类型和顺序必须与该读语句中变量的类型和顺序一致。

(2)读语句中的变量不能是布尔类型和枚举类型。

(3)read语句中必须至少有一个变量,而readln语句允许不含变量,其作用是读入一

个回车换行符。即:readln;是合法的,而read;是不合法的。

★(4)整型和实型变量可以共用一个输入语句,但字符型变量不能与整型、实型变量同

时出现在一个read或readln语句中。

§3.5 标准函数和过程的使用

Pascal中预定义了许多标准函数,在P12页附录3中列出了一些常用的函数。函数就是

系统预先做好的一些程序,能进行一些常用的运算,调用它,函数会根据你给的不同参数,进行运算,然后将运算结果返回给你。函数常用于表达式中,如P7页程序中, s:=pi*sqr(r);

下面,再对随机函数的使用做详细的介绍。

请大家把下列程序输入,并运行几次,比较一下运行结果。

var j:real;

begin

j:=random; { random函数产生一个0-1之间的随机小数(不含1),赋给j } writeln(j); {j以指数的形式输出} end.

大家会发现,几次运行的结果都是一样的,这是因为我们产生的随机数是伪随机数,需要进行初始化,否则每次会产生同样的随机序列。请大家在程序中加入一句:

var j:real; begin 加上这句 randomize;

j:=random; writeln(j); end.

这回产生的随机数每次都不同了。注意,不管程序中使用了多少次random函数,randomize只须写一次!我们再将程序改动一下:

var j:integer; { 这里改为整型 } begin randomize;

j:=random(100); { 加上参数100 } writeln(j); end.

这次,将产生一个0到99的随机整数,注意,加上参数后,产生的是整数! “标准过程”也是系统预先编写好的一些程序,能实现某些常用的功能,例如上面例子中的randomize,就是一个标准过程。标准过程的使用和函数不一样,没有返回值,要作为单独的语句使用。

下面再列出几个常用的标准过程:

inc(x) 给变量x加上1,等价于 x:=x+1 inc(x , n) 给变量x加上n,等价于 x:=x+n dec(x) 将变量x减去1,等价于 x:=x-1

dec(x , n) 将变量x减去n,等价于 x:=x-n exit 从子程序中返回 halt 中断程序运行 课后练习三:

1、下面程序是输入三条边长度,根据海伦公式求该三角形面积,阅读程序回答问题。

var x, y, z, p, s : real ; (1) s 是什么类型的变量:_________

begin

readln (x,y,z); (2) 输出结果时保留几位小数:_____ p:=(x+y+z)/2; s:=sqrt(p*(p-x)*(p-y)*(p-z)); (3) 输入:3 4 5 ↙ writeln (s:10:2); end. 输出:___________ 2、阅读程序,回答问题。

var a,b,c,d,e : char ; begin read(a,b,c); read(d,e); writeln(’e=’, e ); end. 3、计算下列表达式的值: x=4,y= –5,z=9

① sqrt(ord(‘K’)– ord(‘B’))= ② sqr(z – abs(y))=

③ (z + 100)mod(round(37 / 3))=

④ 12 / x = 12 div x = ⑤ chr(103)= pred(‘M’)= 4、将下列数学表达式表示成Pascal表达式:

① sin(x + 0.5)+ 3 cos(2x + 4) ② 1?2?

3 若输入: (↙表示按回车)

UFO↙ ET↙

则输出:__________________ 再想想,为什么?

5、请根据要求完善以下程序: 随机产生一个两位整数x;

将x个位和十位的数字调换,形成 一个新的整数y; 再将y加上1; 输出x和y。

var x,a,b,y:integer; begin x:=_______________________; a:=x div 10; b:=x mod 10; y:=_______________________; inc(y); writeln(x , ’ ’, y); end.

广东省汕头市金山中学高中信息技术 pascal教程03 第三课 基本语句(一)教案

第三课基本语句(一)§3.1程序的三种结构从程序结构化设计的角度来讲,程序可以分成三种基本结构:顺序结构、分支结构和循环结构,在下面结束基本语句中,将进行详细的介绍。是ABA条件否条件B是A否顺序结构分支结构循环结构§3
推荐度:
点击下载文档文档为doc格式
0ibvq2ei3i6j6mw9sjhs44p5c1cp9m00e0b
领取福利

微信扫码领取福利

微信扫码分享