通常在PASCAL语言程序中所用的三种基本结构是什么

如题所述

顺序结构
选择结构
循环结构

第三章 顺序结构程序设计

3.1 赋值语句
3.2 读语句
3.3 写语句
练习与作业

3.1 赋值语句
PASCAL有两个语句可以改变变量的值。赋值语句是其中之一(另一个是读语句)。赋值,顾名思义,就是把一个值赋予某个量。可以这理解:变量相当于装东西的容器,赋值的过程就是把东西放进容器的过程。赋值语句格式如下:
变量:=表达式;
写赋值语句有以下几点要注意:
1、赋值号“:=”
赋值号由两个字符构成,是一个运算符。如果把这两个字符拆开,那么这两个字符就是别的意思了:“:”是分隔符而“=”是关系运算符,判定两个对象是否相等。刚刚写程序的同学要特别注意这一点。
例:a,b:integer;——是一个说明语句。“:”是变量表和变量类型的分隔符
a=b——是一个表达式。它的值是一个布尔类型的量:TRUE或FALSE
a:=3;——是一个语句。把整型常量值3赋给整型变量a
2、变量要先说明
在赋值号左边出现的变量,要在程序头的说明部先加以说明,否则编译时出错。

3、表达式必须要有确定的值
赋值号右边出现的表达式,必须是可以求值的。也就是说,经过运算之后,能得出一个具体的、确定的值出来。大家想一想,如果连表达式自己都不知道自己的值是多少,怎么还能把值“赋予”别人呢?

4、赋值号两边的数据类型必须相同或相容
我们知道,PASCAL中的量不管是变量还是常量都有一个属性称为“数据类型”。数据类型相同的或相容的才可以相互赋值。
怎么来理解这句话呢?打个比方,我们沏功夫茶用的是小茶杯,装饭时用饭碗。如果用饭碗来泡功夫茶,用小茶杯来装饭,那情形一定很滑稽而且是不可行的。回到PASCAL中来,赋值号左边变量如果是整型,右边表达式的值的类型也要是整型;赋值号左边变量如果是字符型,右边表达式的值的类型也要是字符型……否则的话,也要出错了。这是数据类型相同的情况。
对于数据类型相容的,我们也可以用一个例子来帮助理解。我们都喝过功夫茶,也喝过大杯茶。把功夫茶倒在大茶杯里,一般不会出什么问题;但如果把大杯里的茶倒在功夫茶杯里呢?可能小茶杯装不下大茶杯里的茶,茶“溢出”了。在PASCAL中也会出现这种情况。当一种数据类型的取值范围包含着另一种数据类型的取值范围时,就可能出现类型相容的情况。如实型与整型,整型、字符型与它们各自的子界类型……如果把整型值赋给实型变量,把整型子界值赋给整型变量,不会出错;但如果反过来,就会出现“溢出”,出错了。
因些,我们在写赋值语句时,要注意两边的类型是否匹配。
例:有程序如下:
var a,b:integer;c:real;d:0..100;
begin
a:=100;
b:=a;
{-------------以上是相同数据类型进行赋值}
d:=100;
b:=d;
c:=b;
{-------------以上是相容数据类型进行赋值}
d:=b;
a:=c;
{-------------以上两个赋值语句都出现溢出,编译时出错}
end.
3.2 读语句
读语句(read语句)和赋值语句一样,能够改变变量的值。与赋值语句不同,读语句从键盘或文件接收值赋予变量,而赋值语句则直接由程序语句获得。读语句格式如下:
read(变量名表);
readln(变量名表);
readln;
读语句是编程中用得最多的语句之一。在使用时有几点要注意:

1、变量名表。写在括号中的变量,都要在变量说明中先预以说明;变量与变量之间,以“,”分隔;
例:
var a,b:integer;
read(a,b);
2、从键盘接收数据时,要注意各种不同数据类型数据的分隔符不同。所谓分隔符就是两个完整的数值之间的标记,也可以这样理解,当计算机从键盘读入数据时,一旦碰到分隔符,就认为当前的数据读入已完成,可以把它赋给相应的变量了。各种数据类型的分隔符如下:
数值型(包括整型、实型以及它们的子界类型)以空格或回车符作为分隔符;
字符型不需分隔符(因为字符型数据的长度固定,只有一个);
字符串以回车符作为分隔符。

3、注意read与readln的区别
例:有两段程序有相同的变量说明如下,不同的读语句,我们可以通过比较它们执行结果的异同来理解read与readln的区别。
变量说明 var a,b,c,d:integer; 执行结果
a b c d
程序段一 read(a);
readln(b,c);
read(d);
1 2 3 6
程序段二 readln(a);
read(b,c);
read(d) 1 6 7 8
输入数据 1 2 3 4 5
6 7 8
在程序段一执行时,“read(a);”语句接收了第一个数据1并将它赋给变量a;接着执行第二个语句“readln(b,c);”,接收了第一行数据中的2、3并把它们分别赋给变量b,c,同时,把本行其它数据全部屏蔽掉,也就是宣布它们全部作废。程序段二的执行情况也是如此。
因此,我们可以得出结论:语句read只管接收数据,语句readln接收完数据后,还把同行的其它数据全部宣布作废。

4、“readln;”语句从键盘接收一个回车符。这个语句通常用在需要暂停的地方。如输出时用来等待程序员看清结果。

3.3 写语句
写(write)语句是Pascal中唯一能将运算结果送出显示在显示器屏幕的语句。格式如下:
write(输出量表);{输出后不换行}
writeln(输出量表);{输出后换行}
writeln;{输出一个回车符}
使用写语句时也有一些小问题需要注意。

1、输出量可以是:
变量。输出变量的值。输出多个变量时,变量间用“,”分隔。
表达式。输出的是表达式的值。
常量。直接输出常量值。

2、场宽的限制在输出不同格式的数值时的作用:
例1:输出多个空格。
write('':n);句子的意思是以n个字符宽度输出冒号前数据项,如果数据项长度不足n,则前面以空格补齐;如果数据项长度大于n,则以实际长度输出。如上语句句输出n个空格。
例2:数据项间隔。
如输出最多四位的数据:write(x:5)。则数据间至少分隔一个空格。
例3:实型数据小数位数的确定。
实型数据不带格式限制时,以科学计数法的形式输出,和我们的一般书写习惯不同。如果加上场宽的限制,则可以有不同的效果:
var a:real;
begin
a:=15/8;
writeln(a);{输出 1.8750000000E+00}
wiiteln(a:0:2);{输出 1.88 整数部分按实际位数输出,小数部分保留两位小数,末位四舍五入.}
writeln(a:0:0):{输出 2 只输出整数部分,小数部分四舍五入}
end.

3、“writeln;”语句通常用于输出多组数据时在屏幕上输出空行来分隔数据组。

第四章 选择结构程序设计

4.1 IF语句
4.2 CASE语句
练习与作业

4.1 IF语句
条件语句用于响应一个条件的两个方面。
例如:今天如果下雨,我们就在家;否则(不下雨)我们就去旅游。
又如:如果已经搜索得到结果,就打印出答案;否则(还没得到结果)就继续搜索。
IF语句的一般格式是:
IF 条件
THEN 语句1{条件为真时的响应、处理}
ELSE 语句2;{条件为假时的响应、处理}
使用条件语句时要注意:
1、条件语句是一个语句。IF、THEN、ELSE都是语句的一个部分。所以它只能有一个“;”作为分隔符,放在句子的结束,特别要注意不能放在ELSE 之前。
2、如果我们的程序只需对条件为真的情况作出处理,不需要处理条件为假的情况,则IF语句省略ELSE分句,格式变成:
IF 条件
THEN 语句1;{条件为真时的响应、处理}
如: 如果数a大于等于0则输出它的平方根。
if a>=0 then writeln(sqrt(a));
对以上的例子,条件为假时不需处理,于是我们干脆省去ELSE分句。
3、if语句可以多层嵌套。嵌套时为了避免误解,可以用begin ,end括起嵌套部分;else分句一般和最近的if分句配套:
IF 条件
THEN BEGIN
if 条件1 then …… else ……;
END
ELSE BEGIN
if 条件2 then …… else ……;
end;

例1、输入两个数a,b,输出较大的数。
program tt;
var a,b:integer;
begin
write('please input a,b:');
readln(a,b);
if a>b then writeln(a)
else writeln(b);
end.

4.2 CASE语句

分情况语句适用于对一个条件的多种情况的响应。
格式:
case 表达式 of
标号1:语句1;
标号2:语句2;
……
标号n:语句n;
else 语句n+1
end;

case语句在使用时有几点要注意:

1. end与case对应;标号与语句之间用“:”分隔;else与语句之间不用分隔符。

2. 标号必须是一常量,其类型与表达式的类型一致
例2: 某全自动加油站a,b,c三种汽油的单价(元/kg)分别是1.50、1.35和1.18,也提供了“自己加”或“协助加”两个服务等级,这样用户可以得到5%或10%的优惠。编一个程序,用户输入加油量、汽油品种和服务类型(f-自动,m-自己,e-协助),然后计算应付款。
program pcase1;
var
oil,help:char;
kg,total:real;
begin
write('Enter the amount in kilograms(kg):'); readln(kg);
write('Which type of the gasoline(a,b,c):'); readln(oil);
wirte('Which type for service(f,m,e):'); readln(help);
case oil of
'a': total:=1.50*kg;
'b': total:=1.35*kg;
'c': total:=1.18*kg;
else writeln('Input Error!')
end;
{——————处理汽油的类型}
case help of
'f':;
'm': total:=total*(1-0.05);
'e': total:=total*(1-0.10);
else writeln('Input Error!')
end;
{——————处理服务类型}
writeln;
writeln('Total is ',total:10:2);
end.
3. 可以多个标号对应同一条语句

4. 语句可以是多个语句,但必须用语句括号(begin……end)括起

5. case语句也可以嵌套
例3:从键盘上读入年和月,输出该月有多少天。
program pcase2;
var
year,month,day:integer;
runnian:boolean;
begin
write('Enter year and month:'); readln(year,month);
case month of
1,3,5,7,8,10,12: day:=31;
4,6,9,11: day:=30;{————以上处理31天和30天的情况}
2:begin
runnian:=(year mod 400=0) or ((year mod 4=0) and (year mod 100<>0));
case runnian of
true: day:=28;
false: day:=29;
end;
end; {————以上处理2月的情况:闰年28天,平年29天}
end;
end.

第五章 循环结构程序设计

5.1 For语句
5.2 While语句

5.3 Repeat-Until语句

练习与作业

5.1 For语句

1.递增型FOR循环。

FOR 循环控制变量:=循环初值 TO 循环终值 DO 循环的语句(或语段)
例: FOR I:=5 TO 10 DO WRITELN (I);
输出的结果为: 5 6 7 8 9 10 即循环一共执行了6次
如果要重复多个语句,一定要用BEGIN-END形式:
例:
FOR I:=1 TO 10 DO
BEGIN
WRITELN (I);
WRITELN (10-I);
END;
2.递减型FOR循环

FOR 循环控制变量:=循环初值 DOWNTO 循环终值 DO 循环语句
递减型FOR循环与递增型FOR循环基本相同,只是循环控制变量每次递减。
3.FOR循环的几点注意内容:
(1)循环控制变量必须是顺序类型的变量。所谓顺序类型的变量,就是指整型,字符型,枚举型,子界型,不允许是实型。
(2)不允许在循环体内再对循环控制变量赋值。
例如:
A:=10;B:=50;
FOR K:=A TO B DO
BEGIN
K:=K+1;{这一句是错误的!!!!!!!!}
WRITELN (K);
END;
(3)当循环初值或循环终值中包含变量时,允许在循环体内改变这些变量的值,但并不改变原定的循环次数。
例:
A:=1;B:=10;
FOR I:=A TO B DO
BEGIN
A:=5;B:=4;
END;
在上面例子中,A,B的值在循环的内部发生了变化,但并不影响循环的次数,依然是10次。
4.多重循环 循环体由PASCAL语句构成,当然也可以包含FOR语句,这就构成了循环的嵌套,形成多重循环。
例如,以下FOR循环输出5行,每行输出10个星号(*)
FOR i:=1 to 5 DO
BEGIN
FOR j:=1 TO 10 DO
Write('*');
END;
初学者应当特别注意,内层的循环变量不能和外层的循环变量相同。也就是说,嵌套的各层循环应当使用不同的变量作为循环变量。
5.2 While语句

1.WHILE循环的执行形式 WHILE 布尔表达式 DO 语句
例如:
k:=10;
WHILE k>0 DO
BEGIN
Writeln (k);
k:=k-1
END;
其中
(1)WHIlE 和DO是PASCAL保留关键字,是WHILE循环语句的组成部分。
(2)保留关键字DO后面的“语法”只能是一条语句,称为“循环体”;如果循环 体中需要包含多个语句则应该如上例所示,采用一条复合语句。

2.WHILE循环的执行功能 当执行到WHILE语句时
(1)求出布尔表达式的值
(2)若布尔表达式的值为真,则执行循环体内的语句;若为“假”,执行步骤4
(3)重复步骤1和2
(4)循环结束,执行循环后面的语句。
5.3 Repeat-Until语句

1.REPEAT-UNTIL类型的循环的执行形式
REPEAT
语句1
语句2
……
语句n
UNTIL 布尔表达式
例如:以下循环求n=1+2+3+……+100
n:=0;t:=i;
REPEAT
n:=n+t; t:=t+1;
UNTIL t>100;
其中
(1)REPEAT和UNTIL是PASCAL保留关键字。
(2)在REPEAT和UNTIL之间的语句构成循环。在它们之间可以有任意多个语句,这一点和FOR,WHILE循环不同,FOR,WHILE循环体在语法上只允许一条语句。
2.REPEAT-UNTIL循环的执行功能
(1)遇到REPEAT语句后,即进入循环体,顺序执行循环体内的语句。
(2)遇到UNTIL语句后,求布尔表达式的值。若值为假,则返回步骤1;若为“真”,执行步骤3
(3)循环结束,执行UNTIL后面的下一条语句。
温馨提示:内容为网友见解,仅供参考
第1个回答  2007-09-08
顺序,选择,循环本回答被提问者采纳
第2个回答  2007-09-22
顺序,
选择,
循环

pascal语言是谁编的
它是世界上第一个结构化的高级程序设计语言。结构化程序设计主要由三种基本结构(顺序结构、选择结构、循环结构)组成。后来有人把函数和过程作为第四种基本结构。这四种结构对外看都只有一个入口和一个出口,结构清晰,避免了由GOTO语句所引起的混乱。另外在程序设计方法方面,主张采用自顶向下,逐步求精的...

初学pascal语言,给点建议!
PASCAL语言提供了直接实现三种基本结构的语句以及定义"过程"和"函数"(子程序)的功能。可以方便地书写出结构化程序。在编写程序时可以完全不使用GOTO语句和标号。这就易于保证程序的正确性和易读性。PASCAL语言强调的是可靠性、易于验证性、概念的清晰性和实现的简化。在结构化这一点上,比其它(如BASIC,FO...

在结构化程序设计方法中,三种基本结构是
1、顺序结构:按照它们出现的先后顺序执行的。2、选择结构:需要根据某一特定的条件选择其中的一个分支执行。选择结构有单选择、双选择和多选择三种形式。3、循环结构:循环结构表示程序反复执行某个或某些操作,直到某条件为假(或为真)时才可终止循环。由顺序、选择和循环三种基本程序结构通过组合、嵌套...

为什么所有的程序都可以由顺序分支循环这三种控制结构
这三种基本控制结构就是“顺序结构”、"IF—THEN—ELSE选择结构”、“DO_wHILE重复结构”或“DO UNTIL重复结构”。也就是我们常说的“顺序、选择、循环”语句,嵌套来嵌套去就成了完整的程序代码,和Pascal之父(Nicklaus Wirth)的“算法+数据结构=程序” 原理差不多的。

pascal程序
PASCAL语言提供了直接实现三种基本结构的语句以及定义"过程"和"函数"(子程序)的功能。可以方便地书写出结构化程序。在编写程序时可以完全不使用GOTO语句和标号。这就易于保证程序的正确性和易读性。PASCAL语言强调的是可靠性、易于验证性、概念的清晰性和实现的简化。在结构化这一点上,比其它(如BASIC,...

pascal基础知识
常见的算法有:穷举法、迭代法、递推法、递归法、回溯法、深度及广度搜索法、动态规划、构造法等等。2.N-S图:1973年,美国学者I.Nassi和B.Shneiderman提出了一种用图形表示算法的方法,称为N-S流程图。N-S图包括顺序、选择和循环三种基本结构。3.程序设计语言:计算机中的语言分为低级语言和高级语言...

教教我,pascal语言
1、Pascal是一种计算机通用的高级程序设计语言。它由瑞士Niklaus Wirth教授于六十年代末设计并创立。以法国数学家命名的Pascal语言现已成为使用最广泛的基于DOS的语言之一,其主要特点有:严格的结构化形式;丰富完备的数据类型;运行效率高;查错能力强。2、组成部分 (1)程序首部 例1.1的第一行称为程序...

谁教下PASCAL基本常识
程序中花括号“{ }”之间的部分为注释部分。Pascal程序结构可归纳用如下的示意图来表示: Program 程序名; 程序首部 标号说明; (Label) 常量说明; (Const) 说明部分 类型说明; (Type) 变量说明; (Var) 过程或函数说明; Begin 程序体 (主程序) 语句系列; 语句部分 End. 图1.1 Pascal程序的结构把处理问题...

pascal语句格式有哪些?
1、由三大部分组成:程序首部,说明部分,语句部分。PROGRAM 程序名(input,output);{……} 解释CONSTpi=3.14159;VARr,l,s:real;BEGINwrite('input r:');read(r);l:=2*pi*r;write('l=',l,'s=',s);END;2、大量使用标点符号,保留字后不加标点符号(END除外)。 <\/P><P>第二章、顺序结构程序设计<\/...

高一学pascal语言
Pascal是一种计算机通用的高级程序设计语言。它由瑞士Niklaus Wirth教授于六十年代末设计并创立。 以法国数学家命名的Pascal语言现已成为使用最广泛的基于DOS的语言之一,其主要特点有:严格的结构化形式;丰富完备的数据类型;运行效率高;查错能力强。 正因为上述特点,Pascal语言可以被方便地用于描述各种算法与数据结构。尤...

相似回答