haihongyuan.com
海量文库 文档专家
全站搜索:
您现在的位置:首页 > 初中教育 > 学科竞赛学科竞赛

第四课 顺序结构程序设计

发布时间:2014-01-06 12:35:26  

第四课
——顺序结构程序设计

? [例1]将一个两位数的数字反向后组成的数输出

var a, b, x, y:integer; begin readln(x); a:=x div 10; b:=x mod 10; y:=b*10+a; writeln(y); end.

{输入一个数} {a取十位数字} {b 取个位数字} {反向的两位数} {输出}

[例2]写出程序的运行结果
const a=10; {常量说明,a在程序中永远不可变} var b,c:integer; d:real; begin b:=20; b:=a+b; c:=b div a+10; d:=b/a+10; {―/‖运算的结果系统认为是实型} writeln(c, d); end. 输出的结果是:13 13.0 real 实型变量。(注意与 read 的区别)

整型可以当成实型,但实型不能当成整型,要注意配匹。 实型转整型可用函数round(四舍五入) trunc(截尾)。

[例3]写出程序的运行结果
? Var a:real; x,y,b:integer; ? Begin x:=100; y:=258; a:=y/x; b:= trunc(a); Writeln(b); Writeln(round(a)); End. ? 输出是:?

[例4] 交换两个变量的值
? 方法一: var a,b,t:integer; Begin a:=10; b:=20; t:=a; a:=____; b:=_____; Writeln(a,b); End. 注:用变量t作为中间变量来保存a

方法二: var a,b:integer; Begin a:=10; b:=20; a:=a+b; b:=_______; a:=_______; Writeln(a,b); End. 注:不用变量t,而用变量a来保 存两个数的和。

赋值语句
? 格式 – 变量标识符 := 表达式; – 可以是常量,变量,算术表达式,逻辑表达式,关系表达式,函数 ? 功能:将表达式的值赋给变量标识符,先计算后赋值,具有计算和赋值 双重功能 ? 说明: ? “:=‖称为赋值号,不能与关系运算符的“=‖混淆,“:=‖具有方向 性,是将右边表达式的值赋予左边变量,左侧只能是变量 Var a,b,c:integer; ? “:=‖两边的数据类型必须相同 Begin ? 一个赋值语句只能给一个变量赋值 a:=3; ? 被赋值的变量本身可以作为因子参与运算:如: b:=4; b:=a+1; n:=n+1;(在程序中起到计数器的作用) a:=a+1; s:=s+x;(在程序中起到累加器的作用) b:=b+1; A:=a*x;(在程序中起到累乘器的作用)
c:=b + succ (a); writeln(a , b, c); End.

输入语句
读语句有三种格式: read (变量名表); readln (变量名表); readln ;
注意1:输入项中的括号内可以是一组变量,多 个时用逗号隔开。写在括号中的变量,都要在变 量说明中预先说明。如: Read (a,b,c,d) 或 Readln (a,b,c,d); 注意2:程序运行后,执行到read或readln时, 系统处于等待状态,等待用户从键盘上输入数 据。 输入数据时数值数据之间用空格或回车分 隔,最后一个一定用回车表示输入结束。 注意3:如果是字符数据,不需要加‘ ’ ,否则 系统把单引号作为字符看待; 输入多个字符数据时,不能用空格分隔,可以连 续输入或用回车键一个一个字符分隔输入.如: readln(a); Readln(b) ;

例5:
Var a,b,c: char; Begin readln (a,b,c); Write

ln (b) end. 但如果输入:x _ y _z

?

注意4:程序运行后,从键盘输入的数据 必须是常量,且输入的数据一定要与变 量类型保持一致。 注意5:当输入项中的变量为多个时,要 求输入的相应数据个数不能少于其变量 的个数。当输入多时,后面无效;输入 少时,系统仍处于等待状态,表示没有 输入完,接着输入的数据无论是换行输 入还是不换行输入均有效 注意6:read(读而不换行)与readln( 读后换行)

?

?

read与readln的区别 :读入后是否换行?
对于下面的输入语句,写出它的读入结果。 readln (a, b, c); 解:读入结果为: 1 2 3 4 5 readln (i, j, k, l); ↑ ↑ ↑ readln (m, n) a b c 输入数据: 6 7 8 9 0 ↑ ↑ ↑ ↑ 1 2 3 4 5 i j k L 6 7 8 9 0 10 20 10 20 ↑ ↑ 请写出各个变量的值是多少? M N
若程序改为如下格式, 结果又发生什么变化 read (a, b, c); readln (i, j, k, l); read(m, n)

修改后结果为: 1 2 3 4 5 ↑ ↑ ↑ ↑ ↑ a b c i j 6 7 8 9 0 ↑ ↑ k L 10 20 ↑ ↑ M N

课堂练习
1、已知有如下说明: var a , b : integer ; c ,d : real; 下列赋值语句合法的是( ) A、c:=a+b B、a:=trunc(c) C、a:=a+b/c D、b:=a div d 2、下列合法的常量是( ) A、.25 B、”red‖ C、’%‘ D、3E-2.5 3、设a、b、c为整型变量,并有以下程序段: read(a); readln (b , c); readln ( c , b); readln( a , b); Writeln( a , b , c) 若运行时输入: 则程序输出( ) 123 A、123 B、147 C、784 D、145 456 4、有下列程序 VAR ch1,ch2,ch3:char; 789 BEGIN Readln(ch1); Readln(ch2,ch2); Readln(ch3,ch3,ch3); Writeln(ch1,ch2,ch3) END. 若运行时输入右侧文本框里内容, 则正确的输出是( ) red yellow A、 ryb B、 reu C、 rdl D、 blu blue 5、var ch1,ch2:char;x:integer; Begin read(ch1,ch2); readln (x); Writeln(ch1+ch2); writeln (x) End. 输入:34 7 输出:

编程题
1、输入一个三位数,要求反向输出这个三位数。样例:输入:231 输出:132 提示:若三位数是x,个位、十位、百位上的数字分别为:ge , shi,bai,则有: ge:=x mod 10; shi:= x div 10 mod 10; {或者是 shi:=x mod 100 div 10} bai:=x div 100 输出的数若是y,则y:=ge*100+shi*10+bai;

2、输入一个学生的三门课的成绩,编写程序,计算并输出他的平均成绩。输入 的成绩全是整数,输出的平均成绩通过四舍五入,只保留整数位。样例:输 入:90 80 70 输出:80

输出语句
[输出语句]输出语句又称写(write)语句。 一、三种格式如下: write(输出量表); {输出后不换行} writeln(输出量表); {输出后换行} writeln; {输出一个回车符,强行将输出光标转到下一行} 二、注意事项 1、输出量可以是: 变量。 输出变量的值。输出多个变量时,变量间用“,‖分隔。 表达式。 输出的是表达式的值。 常量。 直接输出常

量值。 输出项中加单引号的内容将会原样显示出来。 如:writeln(1+2) 输出:3 但:writeln(?1+2‘) 输出:________
输出一个实型数据标准场宽为17, 且是以科学计数形式输出来的,其 余类型是按实际长度输出。

2、场宽的限制在输出不同格式的数值时的作用: 单场宽 形式:X : n X 代表输出项,n表示输出项所占的列数。 除实型数外,其他类型数据都可以运用。 writeln(5:3); writeln(‘OK!‘:8); 输出项可以是整型、字符型、 a:=123; 布尔型,不能是实型 writeln(a:2); writeln(? ?:5); 输出如下: _ _ 5 (前面有2个空格,输出共是3位) _ _ _ _ _ OK! (输出共8位,前面有5个空格) (要求输出占2位,但实际是3位,不足,按实际的输出) _____ (输出5个空格) 如:

右对齐,左补空格

双场宽 格式:X:n1:n2 X表示输出项,n1表示所占的列数,包括符号位、小数点与小数部分;n2表示 小数部分的位数,小数部分需四舍五入。 双场宽主要针对实型数据。 实型数据不带格式限制时,以科学计数法的形式输出,和我们的一般书写习惯 不同。如果加上场宽的限制,则可以有不同的效果,如下例: [例1] var a:real; 以保证数据正确输出为前提,不改变数值的大小 begin a:=15/8; writeln(a); {输出 1.8750000000E+00} wiiteln(a:6:3); {输出 _ 1.875 , 共6位,小数点保留两位,数据占5位, 前面多加1空格} wiiteln(a:0:2); {输出 1.88,整数部分按实际位数输出,小数保留两位, 四舍五入} writeln(a:0:0): {输出 2 ,只输出整数部分,小数部分四舍五入} end.

[例2] 写出下列程序的输出结果: Var a ,b :integer; t : boolean; Begin readln (a, b); t:=a>b; writeln(t); End. 复习: 输入:3 1 输出:? 数据的四种类型: ① Integer(整型) 输入:1 3 输出:?
② Real (实型) ③ Char (字符型) ④ Boolean (布尔型) 布尔型是一种判断关系,其数据只有两个:真 和假,分别用true(真)false(假)来表示. False<true,有not,and,or,xor四种运算 2=3 的结果是_________ 2<3的结果是 _________ A<=b相当于_____________

运算类型

运算符 +,-,*

操作数类型 整数或实数 整数或实数 整数 除文件类型以外各种数据类型 标准类型,枚举型,子界型 标准类型,枚举型,子界型, 集合 顺序类型,集合 布尔 集合

结果类型 整数或实数 实数 整数

算术运算符

/ Div ,mod =,< > <,>

关系运算符 <=,>= in 逻辑运算 集合运算 赋值运算

布尔型

Not,and,or, xor
+,-,*

布尔型 集合

:=

除文件类型以外 除文件类型以外各种数据类型 各种数据类 型

[例3]:写出结果
Var a:integer; b:real; c:char; d:boolean; 分析:writeln(a,a:5);输出两项, 前面一项不控制场宽,后面一项 控制场宽。 writeln(b,b:12:5);双场宽 writeln(c,c:5

);字符型数据输出 writeln(‘end’:5); 输出常量 writeln(d,d:5); d 是布尔型变量, 值是 TRUE,不控制常宽以正常输 出,占4个字符的位置。 请写出结果:

begin a:=1357; b:=1234.5678; c:=’%’; d:=true; writeln(a,a:5); writeln(b,b:12:5); writeln(c,c:5); writeln(‘end’:5); writeln(d,d:5); end.

[例4]:输入圆的半径,求圆的周长与面积。 [例5]键盘输入两个小数,经过取整后,将其整数部分交换值后输出。

复合语句
? 由若干条语句组成的语句序 列,每个语句可以是简单语 句,如赋值语句、输入语句 、输出语句等 ? 格式 Begin 语句1; 语句2; ……; 语句n; End;

[例6]: Var max,min,t:integer; Begin readln(max,min); if max< min then begin t:=max; max:=min; min:=t end; Wirteln ( max ,min); end.

课堂作业
1、写出下列程序的运行结果。 (1)const sum=20; var I,j,t1:integer; x:real; Begin j:=i+5; J:=j+5; T1:=j div 5; X:=j/5; Writeln(t1); Writeln(t1:3); Writeln(x:8:2); End. (2)const a=10;b=20; var c:real; begin c:=a+b; writeln(50); writeln(a:4); writeln(‘a+b=‘,a+b); writeln(c:0:1); end.

(3)var a,b:integer; c :char; p: Boolean; Begin a:=2;

b:=3;
C:=‘a‘; P:=a<3; Writeln (?c=‘;c); Write( a*b); Writeln (p); End.

2、编程题 (1)输出如下的图形

**** **** **** (2)输入一个字符,输出该字符的序数值(ord)及它的后继字符。 样例:输入:A 输出:65 B {65是它的ASCII码,又称序号,B是它的后继 ord ( ) 函数和succ( )函数} (3)将一个秒数转化成小时、分、秒的格式。样例:输入:100 输出:0:1:40 (4)输入两个数,要求打印出它的加法、乘法运算的横式,加法运算的竖式。 样例:输入: 2 3 输出: 2+3=5 2*3=6 2 * 3 ————— 6 (5)输入一个四位整数,将其各位数字倒序输出。(可以用字符处理)


网站首页网站地图 站长统计
All rights reserved Powered by 海文库
copyright ©right 2010-2011。
文档资料库内容来自网络,如有侵犯请联系客服。zhit326@126.com