我有个PASCAL语言编程问题!!急
我是个编程初学者从0起点开始自己编了个输入a和b的数值,然后输出sum的程序,运行时老不成功下面是程序programkjk;vara,b:integer;sum:inte...
我是个编程初学者从0起点开始自己编了个输入a和b的数值,然后输出sum的程序,运行时老不成功下面是程序
program kjk;
var
a,b:integer;
sum:integer;
begin
read(a,b);
sum:=a+b;
end.
调试正常,可一运行想输入a和b,刚按一下键盘,程序就结束了。倒底是什么问题呀???
另外给个pascal的教程网站好吗?? 展开
program kjk;
var
a,b:integer;
sum:integer;
begin
read(a,b);
sum:=a+b;
end.
调试正常,可一运行想输入a和b,刚按一下键盘,程序就结束了。倒底是什么问题呀???
另外给个pascal的教程网站好吗?? 展开
4个回答
展开全部
可能是你编得不太对,我改了一下:
program kjk(input,output);
var a,b,sum:integer;
begin
writeln('a,b=');
readln(a,b);
sum:=a+b;
writeln('sum=',sum);
end.
另附资料:PASCAL程序
我们日常生活中所说的程序是把做一件事的各个步骤清晰有序地表达出来。比如说我们要用WORD修改一篇文章,程序则如下:首先打开主机电源,再开显示器,运行WINDOWS,打开WORD编辑窗口,调出要修改的文件,修改完后存盘┈┈同样,我们要让计算机完成一件事,也得告诉它每一步该怎能做。
现在我来看计算机如何完成这样一个任务:给出一个任意圆的半径,求其面积。
程序如下:
PROGRAM CIRCLE(INPUT,OUTPUT);
CONST PI=3.14;{用PI代替л,给其赋值为3.14}
VAR s,r:REAL;
BEGIN
writeln(’INPUT R’);
readln(R);{读入半径的值}
s:=pi*r*r;
writeln(’S=’,S);
END.
以上的第一行是程序首部。PROGRAM是保留字,PASCAL程序都以它开头。CIRCLE是该程序的名字。括号里面是参数,注意:PASCAL的参数都是放在小括号里,不能是中括号或大括号。INPUT 是标准输入文件,OUTPUT是标准输出文件,为了读入数据和输出结果,必须写上参数INPUT和OUTPUT。(如果运行环境是在TURBO PASCAL中,第一行可省略)。CONST是一个常量说明,说明PI的值在本程序里都为3.14,大括号里是注释部分,程序是不会执行的。VAR是变量说明符,说明变量S,R的类型。从BEGIN开始,一直到END结束,是程序的主干部分。在PASCAL程序中,每个语句都要以 “;”结尾 ,但有两个语句例外:BEGIN 和END。BEGIN语句后不跟任何符号,而作为程序结束的END语句则以“.”结束,END语句前面一个语句末尾可以省略分号。
2. 3程序的构成
PASCAL程序结构包括以下三个部分:
1 程序首部
在本程序中,PROGRAM CIRCLE(INPUT,OUTPUT);便是首部,在不同的程序中一般只需将名字CIRCLE改成不同的名字便可。
2 程序的说明部分
本程序中,CONST PI=3.14 便是一个常量说明;VAR S,R:REAL便是一变量说明语句。除此之外,还有其它说明,如:
USE ......; 单元说明。
LABEL......; 标号说明。
TYPE......; 类型定义说明。
FUNCTION......; 函数定义说明。
PROCEDURE......;过程定义说明。
3 执行部分
如本程序的BEGIN 和END 之间这段语句便是执行部分。要执行的语句就在此间。
一个完整的PASCAL程序总体结构如下:
PROGRAM 程序名(INPUT,OUTPUT);
USE...{单元说明部分};
LABEL...{标号说明部分};
TYPE...{类型说明部分};
CONST...{常量说明部分};
VAR...{变量说明部分};
FUNCTION...{函数说明部分};
PROCEDURE...{过程说明部分};
BEGIN
程序体
END.
顺序结构程序设计
内容提要
本章介绍了PASCAL中的数和符号的表示方法;四种标准数据类型;常量,变量和标准函数;表达式和输入、输出语句的用法。
学习要求
通过对本章的学习,要求能够理解PASCAL中关于数、符号、常量、变量、四种基本的数据类型等知识点,掌握READ、WRITE语句的用法,能够进行顺序结构程序设计。
PASCAL中的数和符号
1.1 符号
在PASCAL中,允许使用的符号很多,但有一定的规则:
1 标2 点符号: “;”是每一句的结束标3 志,4 但在BEGIN后不5 用,6 最后一个END后用“.”,7 “,8 ”一般用在括号和变量表中,9 用以分隔多个参数;单引号“ˊ”用于字符型中;“( )”中一般是参数,10 “[ ]”一般用于集合和数组中,11 “{ }”是用来存放注释信息的;“:”是在变量和数据类型之间起分隔作用的。
12 运算符:
算术运算符有:+,-,*,/;
关系运算符有:>,<,=,>=,<=,<>;
逻辑运算符有:AND,OR,NOT;
1.2 标识符
在PASCAL语言中,一些事先定义好的由字母开头,后跟数字和字母组成的字符串,它们代表了一定的意义,我们把它们称为标识符。例如:PROGRAM就表明一个程序的开始,VAR则表明后面将要进行变量说明。系统事先定义了不少的标识符,我们把它们叫做保留字;另外,我们也可以自己定义标识符,自定义标识符要注意以下几点:
1 自定义的标2 识符不3 要与系统定义的标4 识符同5 名6 。如:你不7 能定义一个叫BEGIN的标8 识符。
9 标10 识符要以字母开头,11 后跟字母或数字或下划线,12 中间不13 能出现空格,14 长度一般不15 超过8位。
16 标17 识符要先定义后使用,18 这一点我们在后面章节中会学到。
19 标20 识符的英文字母不21 分大小写。
第二节 标准数据类型
PASCAL给编程人员提供了几种标准数据类型,同时也允许自己定义数据类型。
1实型(REAL)
实型就是实数类型,是一种最常见的数据类型。
在PASCAL中,实数有两种表示方法:小数表示法和指数表示法(也称科学表示法)。下面是小数表示法的实例:
3.47 123.6 89000.0 -0.00000023
而用科学表示法,以上例子可分别表示为:
3.47E0 1.236E2 8.9E4 -2.3E-7
在科学表示法中,“E” 后面的数代表10的幂,前面的数一般在1到10之间取值。
实际上,TURBO PASCAL有五种实数类型:
类型 取值范围 占字节数 有效位数
Real
Single
Double
Extended
comp 2.9e-39 1.7e38
1.5e-45 3.4e38
5.0e-324 1.7e328
1.9e-4951 1.1e4932
-263+1 263-1 6
4
8
10
8 7 8
11 12
15 16
19 20
19 20
2 整型(INTEGER)
整型即整数类型。它只能在整数这一无限集合中表示一个有限子集。在16位机中,整数的表示范围为:-32768到32767。
在数学中,整数为实数的一个子集,为什么有了实型还要定义整型呢?
在计算机进行运算中,CPU对整数和实数运算的处理方法不同,整数运算要快于实数运算。计算机在处理实数运算时存在一定的误差,可能存在10000个1.0相加不等于10000的现象。所以一般不要用等号来判断实数的相等性。
整型的运算符除了+ - * /,还有两种特殊的运算符:DIV,MOD
DIV是整除运算,求出整数商:8 DIV 3=2 14 DIV 4=3
MOD是求余数的运算:17 MOD 4=1 -17 MOD 4=-1 17 MOD –4=1
TURBO PASCAL同样支持五种整型定义:
类型 取值范围 占字节数 有效位数
Shortint
Integer
Longint
Byte
Word -128 127
-32768 32767
-2147483648 2147483647
0 255
0 65535 1
2
4
1
2 8
16
32
8
16
3 布尔型(BOOLEAN)
BOOLEAN 一词是根据十九世纪英国数学家George Boolean而命名。布尔型数据用来存放逻辑值,也叫布尔值。布尔值只有两个:真(TRUE)或假(FALSE)。
与布尔运算相关的是逻辑运算符:与(AND),或(OR),非(NOT)。其运算规则如下:
假设有两个条件A和B,只有A和B同时为真时,A AND B的结果才为真,否则为假;当A或B中至少有一个为真时,A OR B的结果为真,否则为假;当A为真时,NOT A的结果为假,A为假时,NOT A 的结果为真。
22 字符型(CHAR)
一个字符型数据变量是用来存放ASCII码字符集内的某个字符。此时字符只代表某个符号,本身不具有原来的含义。例如 ′A′,′6′就是字符。字符型都要用单引号将其引起来。
第3节 常量和变量
3.1 常量
常量是这样一种标识符,该标识符中的数据在整个程序中都不会变化。常量中的数据称为常数,可分为以下四种:
整型常数,如:12,-33,825……
实型常数,如:0.35, -2.00, 12.3456……
布尔型常数,只有两个:TRUE,FALSE
字符型常数,如:′1′, ′2′, ′A′, ′X′, ′@′, ′+′……
另外,还可以用常量标识符来定义常量,如:CONST PI=3.14。在常量标识符定义中,必须以CONST开头,在本例中,标识符PI便被定义为实数3.14,在整个程序中,只要有标识符PI的地方,会自动被替换成数字3.14。
下面是几个常量标识符定义的例子:
const abc=100;
date=’Monday’;
w=’+’;
3.2 变量
变量是在程序运行过程中,其值可以变化的量。给变量取名字比较灵活,和文件名取名规则比较类似:以字母开头,后面加上数字或字母,中间不留空格。
以下是合法的变量名:A,B,A1,C4,DAY,MY_FIRST,GOOD……
变量在使用之前必须加以说明,说明的格式如下:VAR 变量表:类型;如VAR R,S:REAL;在这里,VAR是变量说明的保留字,说明变量之前必须得有它;R,S则是变量名,在第一章第三节的程序中它们分别代表半径和面积,这一句变量说明的意思是:变量R,S中将要想存储的数据是实数类型。
我们可以对变量定义这么理解:变量象一个盒子,不同的变量象不同形状的盒子,盒子是用来装东西用的。东西只有四种,分别是:REAL,INTEGER,BOOLEAN,CHAR。现在我们每个盒子上贴上标签,标签名分别是:INTEGER,REAL,BOOLEAN,CHAR,于是,每个盒子不能随便装东西了,贴有REAL标签的盒子只能装REAL类型的东西,贴有CHAR标签的盒子则只能装CHAR类的东西……而且,每个盒子只能装一个东西。定义变量就象给盒子贴标签,但还没有装东西,装东西这个过程要在程序的执行部分才得以实现。
让我们来看看下面这些定义变量的例子:
例1 VAR A1,B1:REAL;
W1,W:CHAR;
F1,F2:BOOLEAN;
DA,DB:INTEGER;
3 给变量赋值
变量定义好后还象是一个空盒子,要使用这个变量得先给它存进一个数,使它才有实际意义。给变量里存储进一个某种类型的数便叫给变量赋值,其格式为:变量名:=数据。
我们假设事先已象例1那样定义好了变量,下面来看如何给例1中的变量赋值。
A1:=3.14; B1:=-7.0;
W1:=’%’; W2:=’A’;
F1:=TRUE; F2:=FALSE;
DA:=9; DB:=-10;
经过以上定义后,我们用到变量实际上是用到变量中的数据。于是:
DA+DB的值为-1
A1+B1的值为-3.86
NOT F1的值为FALSE
3*DA的值为27
一个变量中只能存放一个数,但这个数并非恒定。假设一个变量DA已赋好了值3,如果继续给它赋一个新值8,那么,新值会自动取代旧值,DA中的数就变为8了。
注意:PASCAL中的赋值符号“:=”不是数学中的“=”,它是把符号右边的数装进左边的变量里,如果右边是一表达式,则先计算出表达式的值再赋给左边的变量。变量在左,数字或表达式在右,右边的值赋给左边的变量,这个规则要记牢。
例3:已知变量X,Y,Z的值分别为3,6,-2,看看下面赋值语句执行的情况。
X:=5 ; 结果是:X中的3被5所取代
X:=Y+Z ; 结果是:右边的表达式的值4被赋给了左边的X
Y:=Y―Z ; 结果是:右边的表达式的值8被赋给了左边的Y
X:=X+1 ; 结果是:将右边3+1=4的值被赋给了X变量
Z:=3*X―4*Y+5;结果是:先将右边的表达式的结果计算出来,为 -10,再将-10赋给变量Z
以下的赋值式均为错误:
2:=x;
3*x:=4+z;
8:=9;
3*x-6:=z;
以上错误的原因为:赋值号左边都不是变量,而是数字或表达式。其实,赋值语句对右边几乎没有什么要求,对左边也只有唯一的一个要求:必须是一个变量。
第4节 标第5节 准函数
PASCAL提供了丰富的预定义标准函数,通过标准函数我们可以把一些复杂的数学问题简化。下面让我们来看看这些函数的功能。
1 绝对值函数 ABS() 例:ABS(-3.14)=3.14 ABS(6)=6
2 平方函数 SQR() 例:SQR(4)=16 SQR(-3)=9
3 开方函数 SQRT() 例:SQRT(9)=3 AQRT(2)=1.414
4 正弦函 SIN() 例:SIN(3.14)=0 SIN(3.14/2)=1.0
5 余弦函数 COS() 例:COS(3.14)=1.0 COS(3.14/2)=0
6 以e为底数的指7 数函数EXP() 例:EXP(3)=e3
8 自然对数函数 LN() 例:ln3=ln(3)
9 取整函数 TRUNC() ,其作用是将括号里的数的小数全部去掉 例:
TRUNC(3.14)=3 TRUNC(4.79)=4 TRUNC(-2.8)=-2
10 四舍11 五入取整函数 ROUND(),例:ROUND(3.14)=3.14 ROUND(4.8)=5
ROUND(-3.2)=-3 ROUND(-5.7)=-6
12 前导函数PRED(),其作用是对括号中的整数求其前面一个整数,或者对括号中的字符根据ASCII码表中的次序求其前面的一个字符 例:
PRED(3)=2 PRED(123)=122 PRED(‘C’)=’B’ PRED(‘Z’)=’Y’
13 后继函数SUCC(),其作用是对括号中的整数求其后面一个整数,或者对括号中的字符根据ASCII码表中的次序求其后面一个字符 例:
SUCC(7)=8 SUCC(2)=3 SUCC(‘A’)=’B’ SUCC(‘Y’)=’Z’
13奇函数的判别函数 ODD() 其作用是对括号中的整数进行判断,如果为奇数,则结果为真,否则为假 例:ODD(7)=TRUE ODD(4)=FALSE
14取字符函数 CHR() 其作用是将括号中的整数作为字符的序号,或称字符的ASCII码(见附录),并将与序号对应的字符作为结果写出来 例:
CHR(65)=’A’ CHR(66)=’B’ CHR(97)=’a’
取序号函数ORD() 该函数是CHR()的逆函数,是根据字母求出其ASCII码 例:
ORD(65)=’A’ ORD(66)=’B’ ORD(97)=’a’
ORD(CHR(65))=’A’ CHR(ORD(‘A’))=65
ORD(FALSE)=0 ORD(TRUE)=1
以上这些标准函数的自变量类型和函数类型我们用下面这个表来加以归纳:
自变量类型
函数类型
整 型
实 型
字 符 型
布 尔 型
整 型
ABS
SQR
PRED
SUCC TRUNC
ROUND
ORD
ORD
实 型
SIN
COS
EXP
LN
SQRT SIN
COS
LN
EXP
SQRT
ABS
字 符 型
CHR
PRED SUCC
布 尔 型 ODD PRED SUCC
第6节 表达式
由各种运算符把常量、变量、函数连接起来并且具有确定的值的式子是一个表达式,一个单独的常量,变量,函数也是一个表达式,。我们来看看下列数学式子和表达式之间的关系:
(图T2.1)
在PASCAL语言中,表达式有多种运算符,因此表达式的种类也是多样的,主要有:算术表达式,关系表达式,逻辑表达式,字符表达式等。这里,我们先了解算术表达式,其余几种我们将在后面学到。在表达式中,每个运算符有运算的优先级,我们可以按优先级的高低将其分为这样几级:
NOT
*,/,DIV,MOD,AND
+,-,OR
=,<>,<,>,>=,<=
我们还规定:在同一级的的运算符中,其运算次序按从左到右的次序进行;如果有括号,则括号中的表达式优先。
第7节 输入语句
输入语句的功能是在程序执行过程中,暂停下来接受用户从输入端(一般是键盘)输入数据,将接收到的数据存入预先设好的变量中,程序再接着执行。
6.1 READ语句
READ是一个读数语句,后跟变量,读进来的数就装在变量里。如:
READ(X),其意思是等待由键盘输入一个数,然后将此数赋值给变量X。它类似于一个赋值语句。
READ(X,Y,Z),其意思是等待用户由键盘输入三个数,这三个数按输入的次序依次赋给变量X,Y,Z。它等价于以下三个语句:READ(X);READ(Y);READ(Z)。
注意事项:
1 由键盘输入的数据类型要与变量的数据类型一致,不能出现将一个实数赋给一个整型变量之类的错误。
2 输入的数据个数要与READ语句中变量的个数一致。如果要输入多个数据,则有两种情况:(1)如果输入的数据是实数或整数类型,则各个数之间用空格隔开,最后才以回车键结束;(2)如果输入的数据类型是字符型,则各字符间不能有分隔符,也不能有单引号把它引起,在最后一个字符后用回车键结束。
3 如果输入数据的个数少于READ括号中变量的个数时,程序会一直等到你输完才会继续执行。
4 如果READ语句中括号中的变量超过一个,则中间用逗号隔开。
例4 已知变量A,例5 B,例6 C都是整型,例7 则READ(A,例8 B,例9 C)有以下几种输入法:
(1) 1□2□3↙(“□”代表空格,(2) “↙”代表回车键,(3) 如未加其它说明,(4) 在本书中都这样表示),(5) 执行的结果为:A=1,(6) B=2,(7) C=3。
(8) 1□2□3□4↙ 执行的结果为A=1,(9) B=2,(10) C=3,(11) 多余的4没起作用。
(12) 1↙2↙3↙ 执行的结果仍为A=1,(13) B=2,(14) C=3
(15) 1□2↙ 执行的结果为A=1,(16) B=2,(17) 因没给Z赋值,(18) 则计算机一直处于等待状态。
(19) 1↙2□3↙ 执行的结果仍为A=1,(20) B=2,(21) C=3。
6.2 READLN语句
READLN语句也是一个输入语句,用法同READ非常类似,同样是将由键盘读入的数据存进后面括号里的变量中。如:READLN(A,B,C);但是,也有不同之处:READLN语句把来自键盘的一串数据读入相应的变量中后,便自动跳到下一行的第一数据处,如果原来行中还有未读完的数据,则忽略这些数据。另外,READLN语句后面可以不带参数,即只有一个“READLN”。此时它的作用是跳过本行,直接指向下一行的第一个数据,也可以简称为换行。那么,READLN(A,B,C)就相当于以下四句:READ(A),READ(B),READ(C),READLN。
让我们来看一个例子:
例5 程序中的语句 由键盘输入的格式
READ(A,B); 1□2□3↙
READ(C,D); 4□5□6↙
READ(E,F,G); 7□8□9↙
READ(H); 10□11□12↙
则执行后的结果是:A=1,B=2,C=3,D=4,E=5,F=6,G=7,H=8
READLN(A,B); 1□2□3↙
READLN(C,D); 4□5□6↙
READLN( E,F,G); 7□8□9↙
READLN(H); 10□11□12↙
则执行后的结果是:A=1,B=2,C=4,D=5,E=7,F=8,G=9,H=10
第8节 输出语句
当计算机处理完程序后,应该把结果显示在屏幕上或在打印机上打印出来,这样一个过程叫输出。
7.1 WRITE语句
WRITE语句是将其后括号中所带输出项的值打印出来,如果括号中有多个输出项,则一律用逗号隔开。它有以下几种用法:
直接打印数字。如:WRITE(3),则在屏幕上打印一个“3”。
打印变量。如:已知A=3,B=6,C=9 则WRITE(A,B,C)执行的结果是在屏幕上打印3,6,9三个数。
打印表达式。如果括号中是表达式,WRITE语句是先计算结果再打印。如:已知A=3,B=6,则WRITE(A+B-4)语句执行的结果是打印数字5。
打印字符或字符串。WRITE语句中的字符或字符串一律按原样打印。如:
WRITE(′A′) , 则在屏幕上打印一个字母A;WRITE(′HELLO′),则在屏幕上打印一个词HELLO;WRITE(′3+5′),在屏幕上不会打印数字8,而是“3+5”三个字符。
7.2 WRITELN语句
WRITELN语句也是打印语句,用法和WRITE语句非常类似,但WRITE语句在打印时是逐行打印,即一行打满后才换行打印;而WRITELN语句是在打印完本语句所带的参数后,无论该行是否已满,都会换行。
例6 写出下列语句执行后的结果:
WRITE(1,2,3);
WRITE(4,5,6);
WRITE(7,8,9);
执行的结果是:1 2 3 4 5 6 7 8 9(注:在屏幕上打印时是没有空格的)
WRITELN(1,2,3);
WRITELN(4,5,6);
WRITELN(7,8,9);
则执行后的结果是:
1 2 3
4 5 6
7 8 9
另:WRITELN语句如不带参数则表示打印一个空行,即换行。
7.3 打印格式
输出语句在打印数据时,数据在屏幕上所占的宽度是有规定的,打印的域宽有两种:标准域宽和自定义域宽。
标准域宽
标准域宽是指系统默认的宽度。不同版本的TURBO PASCAL对不同的数据所规定的宽度是不同的。在TURBO PASCAL7中,规定如下:
(1)整数在输出时,其宽度就是数据本身的宽度,也就是说数与数之间没有空格。如:在例6中的WRITE语句中,真正的格式是:123456。
(2)实数在输出时,默认的宽度是17位,如:在WRITE(30.0 , 411.7)语句中,其格式如下:3.0000000000E+01 4.1170000000E+02。
(3)字符型输出宽度为1,也就是说字符之间没有空格。如:
WRITE(′A′,′B′,′C′);打印出来就是ABC。另:字符串的输出宽度也是其本身实际的宽度。
(4)布尔型输出的宽度也是其本身实际的宽度,输出的结果要么是
′FALSE′,要么是′TRUE′。
自定义域宽
在输出的时候,系统允许用户自定义输出的域宽。
(1) 单域宽
在WRITE或WRITELN语句所带的括号中的每个输出项后面加上数字n,中间用冒号隔开,数字n则表明该输出项将占的域宽。如:
WRITE(3:5,45:4);输出格式为:
□□□□3□□45;
WRITE(′A′:2,′B′:2,′C′:3);输出的格式为:
□A□B□□C。
(2) 双域宽
双域宽是在括号中每个输出项后加上两个数m 、n ,其中m代表输出项所占的总宽度,n代表在总宽度中小数所占的位数,它们中间都要用冒号隔开;要求m>n。
如:WRITE(-3214.44:12:3);则输出格式为:
□□□-3214.440
另:我们还可以用在输出项之间加空格的办法来控制数据之间的格式。如:WRITE(1,′′,2,′′,3);打印出来的格式是:
2 3 ,中间便有了空格。
第9节 顺序程序设计举例
前面学习了PASCAL的一些基本知识点,下面我们利用这些知识点来对给定的任务进程序设计。
例7 将变量A,B中的数交换次序并打印出来。
PROGRAM ex7(input,output);
VAR a,b,c:integer;
BEGIN
writeln('input a,b');
read(a,b);
writeln('a=',a,'b=',b);
c:=a;
a:=b;
b:=c;
writeln('a=',a,'b=',b);
END.
例8 已知三角形的三边,求其面积。
在知道三边A,B,C后,可用海伦公式求出其面积:S=
其中,P=(A+B+C)/2。
PROGRAM EX8(input,output);
VAR s,a,b,c,p:real;
BEGIN
writeln('input a,b,c');
readln(a,b,c);
p:=(a+b+c)/2;
s:=sqrt(p*(p-a)*(p-b)*(p-c));
writeln('s=',s);
END.
例9 编写一程序,要求输入一个字符,输出该字符的前趋和后继字符及该字符的ASCII码值。
PROGRAM e9(input,output);
VAR c,c1,c2:char;
n:integer;
BEGIN
writeln('input a character');
read(c);
c1:=pred(c);
c2:=succ(c);
n:=ord(c);
writeln('c=',c:5,'c1=',c1:5,'c2=',c2:5,'n=',n:5);
END.
例10 已知一个三位数,将其倒序输出。如:输入479,输出974。
PROGRAM ex10(input,output);
VAR a,b,c,d:integer;
BEGIN
writeln('input a 3_bit number');
readln(d);
a:=d div 100;
c:=d mod 10;
b:=(d-a*100-c) div 10;
d:=c*100+b*10+a;
writeln('d=',d);
END.
本章小结
在本章内容中,我们第一次全面接触了TURBO PASCAL语言的程序设计知识,对TURBO PASCAL7的顺序结构程序设计有了初步的了解。PASCAL 的数据类型有四种基本的类型:整型(INTEGER),实型(REAL),布尔型(BOOLEAN),字符型(CHAR);基本运算有三种:算术运算,关系运算,逻辑运算;要熟练掌握本书给出的标准函数,对每一个数学式要能熟练转化为PASCAL的表达式。输入语句有READ和READLN两种;输出语句有WRITE和WRITELN两种,注意二者的区别。
思考与练习
下面数据哪些是整数,哪些是实数,哪些是非法的数?
3.0 3 e-8 1e+4 3e 2.4e-6 0.0012 5.0 2
找出下列程序段中的错误
CONST
PI:=3.14
A:=4;
B=6;
C:=’A’;
VAR A,B,C,D.E,F:REAL;
BEGIN
A+1:=3;
B=6
E,F:=7;
G:=TRUE;
C:=D;
已知有方和程:Ax2+Bx+c=0,输入方程的系数A,B,C,求出其实根(在输入系数时尽量让方程有实根)。
任意输入三个字母,判定其在字母表中是否相邻。
已知三角形两边及夹角,求其面积。
已知有一半径为2 的圆,要求任输一个点的
坐标,判断该点是否在圆内。
任给你一个四位数,将其千位,百位,十位,个位
拆出来。
program kjk(input,output);
var a,b,sum:integer;
begin
writeln('a,b=');
readln(a,b);
sum:=a+b;
writeln('sum=',sum);
end.
另附资料:PASCAL程序
我们日常生活中所说的程序是把做一件事的各个步骤清晰有序地表达出来。比如说我们要用WORD修改一篇文章,程序则如下:首先打开主机电源,再开显示器,运行WINDOWS,打开WORD编辑窗口,调出要修改的文件,修改完后存盘┈┈同样,我们要让计算机完成一件事,也得告诉它每一步该怎能做。
现在我来看计算机如何完成这样一个任务:给出一个任意圆的半径,求其面积。
程序如下:
PROGRAM CIRCLE(INPUT,OUTPUT);
CONST PI=3.14;{用PI代替л,给其赋值为3.14}
VAR s,r:REAL;
BEGIN
writeln(’INPUT R’);
readln(R);{读入半径的值}
s:=pi*r*r;
writeln(’S=’,S);
END.
以上的第一行是程序首部。PROGRAM是保留字,PASCAL程序都以它开头。CIRCLE是该程序的名字。括号里面是参数,注意:PASCAL的参数都是放在小括号里,不能是中括号或大括号。INPUT 是标准输入文件,OUTPUT是标准输出文件,为了读入数据和输出结果,必须写上参数INPUT和OUTPUT。(如果运行环境是在TURBO PASCAL中,第一行可省略)。CONST是一个常量说明,说明PI的值在本程序里都为3.14,大括号里是注释部分,程序是不会执行的。VAR是变量说明符,说明变量S,R的类型。从BEGIN开始,一直到END结束,是程序的主干部分。在PASCAL程序中,每个语句都要以 “;”结尾 ,但有两个语句例外:BEGIN 和END。BEGIN语句后不跟任何符号,而作为程序结束的END语句则以“.”结束,END语句前面一个语句末尾可以省略分号。
2. 3程序的构成
PASCAL程序结构包括以下三个部分:
1 程序首部
在本程序中,PROGRAM CIRCLE(INPUT,OUTPUT);便是首部,在不同的程序中一般只需将名字CIRCLE改成不同的名字便可。
2 程序的说明部分
本程序中,CONST PI=3.14 便是一个常量说明;VAR S,R:REAL便是一变量说明语句。除此之外,还有其它说明,如:
USE ......; 单元说明。
LABEL......; 标号说明。
TYPE......; 类型定义说明。
FUNCTION......; 函数定义说明。
PROCEDURE......;过程定义说明。
3 执行部分
如本程序的BEGIN 和END 之间这段语句便是执行部分。要执行的语句就在此间。
一个完整的PASCAL程序总体结构如下:
PROGRAM 程序名(INPUT,OUTPUT);
USE...{单元说明部分};
LABEL...{标号说明部分};
TYPE...{类型说明部分};
CONST...{常量说明部分};
VAR...{变量说明部分};
FUNCTION...{函数说明部分};
PROCEDURE...{过程说明部分};
BEGIN
程序体
END.
顺序结构程序设计
内容提要
本章介绍了PASCAL中的数和符号的表示方法;四种标准数据类型;常量,变量和标准函数;表达式和输入、输出语句的用法。
学习要求
通过对本章的学习,要求能够理解PASCAL中关于数、符号、常量、变量、四种基本的数据类型等知识点,掌握READ、WRITE语句的用法,能够进行顺序结构程序设计。
PASCAL中的数和符号
1.1 符号
在PASCAL中,允许使用的符号很多,但有一定的规则:
1 标2 点符号: “;”是每一句的结束标3 志,4 但在BEGIN后不5 用,6 最后一个END后用“.”,7 “,8 ”一般用在括号和变量表中,9 用以分隔多个参数;单引号“ˊ”用于字符型中;“( )”中一般是参数,10 “[ ]”一般用于集合和数组中,11 “{ }”是用来存放注释信息的;“:”是在变量和数据类型之间起分隔作用的。
12 运算符:
算术运算符有:+,-,*,/;
关系运算符有:>,<,=,>=,<=,<>;
逻辑运算符有:AND,OR,NOT;
1.2 标识符
在PASCAL语言中,一些事先定义好的由字母开头,后跟数字和字母组成的字符串,它们代表了一定的意义,我们把它们称为标识符。例如:PROGRAM就表明一个程序的开始,VAR则表明后面将要进行变量说明。系统事先定义了不少的标识符,我们把它们叫做保留字;另外,我们也可以自己定义标识符,自定义标识符要注意以下几点:
1 自定义的标2 识符不3 要与系统定义的标4 识符同5 名6 。如:你不7 能定义一个叫BEGIN的标8 识符。
9 标10 识符要以字母开头,11 后跟字母或数字或下划线,12 中间不13 能出现空格,14 长度一般不15 超过8位。
16 标17 识符要先定义后使用,18 这一点我们在后面章节中会学到。
19 标20 识符的英文字母不21 分大小写。
第二节 标准数据类型
PASCAL给编程人员提供了几种标准数据类型,同时也允许自己定义数据类型。
1实型(REAL)
实型就是实数类型,是一种最常见的数据类型。
在PASCAL中,实数有两种表示方法:小数表示法和指数表示法(也称科学表示法)。下面是小数表示法的实例:
3.47 123.6 89000.0 -0.00000023
而用科学表示法,以上例子可分别表示为:
3.47E0 1.236E2 8.9E4 -2.3E-7
在科学表示法中,“E” 后面的数代表10的幂,前面的数一般在1到10之间取值。
实际上,TURBO PASCAL有五种实数类型:
类型 取值范围 占字节数 有效位数
Real
Single
Double
Extended
comp 2.9e-39 1.7e38
1.5e-45 3.4e38
5.0e-324 1.7e328
1.9e-4951 1.1e4932
-263+1 263-1 6
4
8
10
8 7 8
11 12
15 16
19 20
19 20
2 整型(INTEGER)
整型即整数类型。它只能在整数这一无限集合中表示一个有限子集。在16位机中,整数的表示范围为:-32768到32767。
在数学中,整数为实数的一个子集,为什么有了实型还要定义整型呢?
在计算机进行运算中,CPU对整数和实数运算的处理方法不同,整数运算要快于实数运算。计算机在处理实数运算时存在一定的误差,可能存在10000个1.0相加不等于10000的现象。所以一般不要用等号来判断实数的相等性。
整型的运算符除了+ - * /,还有两种特殊的运算符:DIV,MOD
DIV是整除运算,求出整数商:8 DIV 3=2 14 DIV 4=3
MOD是求余数的运算:17 MOD 4=1 -17 MOD 4=-1 17 MOD –4=1
TURBO PASCAL同样支持五种整型定义:
类型 取值范围 占字节数 有效位数
Shortint
Integer
Longint
Byte
Word -128 127
-32768 32767
-2147483648 2147483647
0 255
0 65535 1
2
4
1
2 8
16
32
8
16
3 布尔型(BOOLEAN)
BOOLEAN 一词是根据十九世纪英国数学家George Boolean而命名。布尔型数据用来存放逻辑值,也叫布尔值。布尔值只有两个:真(TRUE)或假(FALSE)。
与布尔运算相关的是逻辑运算符:与(AND),或(OR),非(NOT)。其运算规则如下:
假设有两个条件A和B,只有A和B同时为真时,A AND B的结果才为真,否则为假;当A或B中至少有一个为真时,A OR B的结果为真,否则为假;当A为真时,NOT A的结果为假,A为假时,NOT A 的结果为真。
22 字符型(CHAR)
一个字符型数据变量是用来存放ASCII码字符集内的某个字符。此时字符只代表某个符号,本身不具有原来的含义。例如 ′A′,′6′就是字符。字符型都要用单引号将其引起来。
第3节 常量和变量
3.1 常量
常量是这样一种标识符,该标识符中的数据在整个程序中都不会变化。常量中的数据称为常数,可分为以下四种:
整型常数,如:12,-33,825……
实型常数,如:0.35, -2.00, 12.3456……
布尔型常数,只有两个:TRUE,FALSE
字符型常数,如:′1′, ′2′, ′A′, ′X′, ′@′, ′+′……
另外,还可以用常量标识符来定义常量,如:CONST PI=3.14。在常量标识符定义中,必须以CONST开头,在本例中,标识符PI便被定义为实数3.14,在整个程序中,只要有标识符PI的地方,会自动被替换成数字3.14。
下面是几个常量标识符定义的例子:
const abc=100;
date=’Monday’;
w=’+’;
3.2 变量
变量是在程序运行过程中,其值可以变化的量。给变量取名字比较灵活,和文件名取名规则比较类似:以字母开头,后面加上数字或字母,中间不留空格。
以下是合法的变量名:A,B,A1,C4,DAY,MY_FIRST,GOOD……
变量在使用之前必须加以说明,说明的格式如下:VAR 变量表:类型;如VAR R,S:REAL;在这里,VAR是变量说明的保留字,说明变量之前必须得有它;R,S则是变量名,在第一章第三节的程序中它们分别代表半径和面积,这一句变量说明的意思是:变量R,S中将要想存储的数据是实数类型。
我们可以对变量定义这么理解:变量象一个盒子,不同的变量象不同形状的盒子,盒子是用来装东西用的。东西只有四种,分别是:REAL,INTEGER,BOOLEAN,CHAR。现在我们每个盒子上贴上标签,标签名分别是:INTEGER,REAL,BOOLEAN,CHAR,于是,每个盒子不能随便装东西了,贴有REAL标签的盒子只能装REAL类型的东西,贴有CHAR标签的盒子则只能装CHAR类的东西……而且,每个盒子只能装一个东西。定义变量就象给盒子贴标签,但还没有装东西,装东西这个过程要在程序的执行部分才得以实现。
让我们来看看下面这些定义变量的例子:
例1 VAR A1,B1:REAL;
W1,W:CHAR;
F1,F2:BOOLEAN;
DA,DB:INTEGER;
3 给变量赋值
变量定义好后还象是一个空盒子,要使用这个变量得先给它存进一个数,使它才有实际意义。给变量里存储进一个某种类型的数便叫给变量赋值,其格式为:变量名:=数据。
我们假设事先已象例1那样定义好了变量,下面来看如何给例1中的变量赋值。
A1:=3.14; B1:=-7.0;
W1:=’%’; W2:=’A’;
F1:=TRUE; F2:=FALSE;
DA:=9; DB:=-10;
经过以上定义后,我们用到变量实际上是用到变量中的数据。于是:
DA+DB的值为-1
A1+B1的值为-3.86
NOT F1的值为FALSE
3*DA的值为27
一个变量中只能存放一个数,但这个数并非恒定。假设一个变量DA已赋好了值3,如果继续给它赋一个新值8,那么,新值会自动取代旧值,DA中的数就变为8了。
注意:PASCAL中的赋值符号“:=”不是数学中的“=”,它是把符号右边的数装进左边的变量里,如果右边是一表达式,则先计算出表达式的值再赋给左边的变量。变量在左,数字或表达式在右,右边的值赋给左边的变量,这个规则要记牢。
例3:已知变量X,Y,Z的值分别为3,6,-2,看看下面赋值语句执行的情况。
X:=5 ; 结果是:X中的3被5所取代
X:=Y+Z ; 结果是:右边的表达式的值4被赋给了左边的X
Y:=Y―Z ; 结果是:右边的表达式的值8被赋给了左边的Y
X:=X+1 ; 结果是:将右边3+1=4的值被赋给了X变量
Z:=3*X―4*Y+5;结果是:先将右边的表达式的结果计算出来,为 -10,再将-10赋给变量Z
以下的赋值式均为错误:
2:=x;
3*x:=4+z;
8:=9;
3*x-6:=z;
以上错误的原因为:赋值号左边都不是变量,而是数字或表达式。其实,赋值语句对右边几乎没有什么要求,对左边也只有唯一的一个要求:必须是一个变量。
第4节 标第5节 准函数
PASCAL提供了丰富的预定义标准函数,通过标准函数我们可以把一些复杂的数学问题简化。下面让我们来看看这些函数的功能。
1 绝对值函数 ABS() 例:ABS(-3.14)=3.14 ABS(6)=6
2 平方函数 SQR() 例:SQR(4)=16 SQR(-3)=9
3 开方函数 SQRT() 例:SQRT(9)=3 AQRT(2)=1.414
4 正弦函 SIN() 例:SIN(3.14)=0 SIN(3.14/2)=1.0
5 余弦函数 COS() 例:COS(3.14)=1.0 COS(3.14/2)=0
6 以e为底数的指7 数函数EXP() 例:EXP(3)=e3
8 自然对数函数 LN() 例:ln3=ln(3)
9 取整函数 TRUNC() ,其作用是将括号里的数的小数全部去掉 例:
TRUNC(3.14)=3 TRUNC(4.79)=4 TRUNC(-2.8)=-2
10 四舍11 五入取整函数 ROUND(),例:ROUND(3.14)=3.14 ROUND(4.8)=5
ROUND(-3.2)=-3 ROUND(-5.7)=-6
12 前导函数PRED(),其作用是对括号中的整数求其前面一个整数,或者对括号中的字符根据ASCII码表中的次序求其前面的一个字符 例:
PRED(3)=2 PRED(123)=122 PRED(‘C’)=’B’ PRED(‘Z’)=’Y’
13 后继函数SUCC(),其作用是对括号中的整数求其后面一个整数,或者对括号中的字符根据ASCII码表中的次序求其后面一个字符 例:
SUCC(7)=8 SUCC(2)=3 SUCC(‘A’)=’B’ SUCC(‘Y’)=’Z’
13奇函数的判别函数 ODD() 其作用是对括号中的整数进行判断,如果为奇数,则结果为真,否则为假 例:ODD(7)=TRUE ODD(4)=FALSE
14取字符函数 CHR() 其作用是将括号中的整数作为字符的序号,或称字符的ASCII码(见附录),并将与序号对应的字符作为结果写出来 例:
CHR(65)=’A’ CHR(66)=’B’ CHR(97)=’a’
取序号函数ORD() 该函数是CHR()的逆函数,是根据字母求出其ASCII码 例:
ORD(65)=’A’ ORD(66)=’B’ ORD(97)=’a’
ORD(CHR(65))=’A’ CHR(ORD(‘A’))=65
ORD(FALSE)=0 ORD(TRUE)=1
以上这些标准函数的自变量类型和函数类型我们用下面这个表来加以归纳:
自变量类型
函数类型
整 型
实 型
字 符 型
布 尔 型
整 型
ABS
SQR
PRED
SUCC TRUNC
ROUND
ORD
ORD
实 型
SIN
COS
EXP
LN
SQRT SIN
COS
LN
EXP
SQRT
ABS
字 符 型
CHR
PRED SUCC
布 尔 型 ODD PRED SUCC
第6节 表达式
由各种运算符把常量、变量、函数连接起来并且具有确定的值的式子是一个表达式,一个单独的常量,变量,函数也是一个表达式,。我们来看看下列数学式子和表达式之间的关系:
(图T2.1)
在PASCAL语言中,表达式有多种运算符,因此表达式的种类也是多样的,主要有:算术表达式,关系表达式,逻辑表达式,字符表达式等。这里,我们先了解算术表达式,其余几种我们将在后面学到。在表达式中,每个运算符有运算的优先级,我们可以按优先级的高低将其分为这样几级:
NOT
*,/,DIV,MOD,AND
+,-,OR
=,<>,<,>,>=,<=
我们还规定:在同一级的的运算符中,其运算次序按从左到右的次序进行;如果有括号,则括号中的表达式优先。
第7节 输入语句
输入语句的功能是在程序执行过程中,暂停下来接受用户从输入端(一般是键盘)输入数据,将接收到的数据存入预先设好的变量中,程序再接着执行。
6.1 READ语句
READ是一个读数语句,后跟变量,读进来的数就装在变量里。如:
READ(X),其意思是等待由键盘输入一个数,然后将此数赋值给变量X。它类似于一个赋值语句。
READ(X,Y,Z),其意思是等待用户由键盘输入三个数,这三个数按输入的次序依次赋给变量X,Y,Z。它等价于以下三个语句:READ(X);READ(Y);READ(Z)。
注意事项:
1 由键盘输入的数据类型要与变量的数据类型一致,不能出现将一个实数赋给一个整型变量之类的错误。
2 输入的数据个数要与READ语句中变量的个数一致。如果要输入多个数据,则有两种情况:(1)如果输入的数据是实数或整数类型,则各个数之间用空格隔开,最后才以回车键结束;(2)如果输入的数据类型是字符型,则各字符间不能有分隔符,也不能有单引号把它引起,在最后一个字符后用回车键结束。
3 如果输入数据的个数少于READ括号中变量的个数时,程序会一直等到你输完才会继续执行。
4 如果READ语句中括号中的变量超过一个,则中间用逗号隔开。
例4 已知变量A,例5 B,例6 C都是整型,例7 则READ(A,例8 B,例9 C)有以下几种输入法:
(1) 1□2□3↙(“□”代表空格,(2) “↙”代表回车键,(3) 如未加其它说明,(4) 在本书中都这样表示),(5) 执行的结果为:A=1,(6) B=2,(7) C=3。
(8) 1□2□3□4↙ 执行的结果为A=1,(9) B=2,(10) C=3,(11) 多余的4没起作用。
(12) 1↙2↙3↙ 执行的结果仍为A=1,(13) B=2,(14) C=3
(15) 1□2↙ 执行的结果为A=1,(16) B=2,(17) 因没给Z赋值,(18) 则计算机一直处于等待状态。
(19) 1↙2□3↙ 执行的结果仍为A=1,(20) B=2,(21) C=3。
6.2 READLN语句
READLN语句也是一个输入语句,用法同READ非常类似,同样是将由键盘读入的数据存进后面括号里的变量中。如:READLN(A,B,C);但是,也有不同之处:READLN语句把来自键盘的一串数据读入相应的变量中后,便自动跳到下一行的第一数据处,如果原来行中还有未读完的数据,则忽略这些数据。另外,READLN语句后面可以不带参数,即只有一个“READLN”。此时它的作用是跳过本行,直接指向下一行的第一个数据,也可以简称为换行。那么,READLN(A,B,C)就相当于以下四句:READ(A),READ(B),READ(C),READLN。
让我们来看一个例子:
例5 程序中的语句 由键盘输入的格式
READ(A,B); 1□2□3↙
READ(C,D); 4□5□6↙
READ(E,F,G); 7□8□9↙
READ(H); 10□11□12↙
则执行后的结果是:A=1,B=2,C=3,D=4,E=5,F=6,G=7,H=8
READLN(A,B); 1□2□3↙
READLN(C,D); 4□5□6↙
READLN( E,F,G); 7□8□9↙
READLN(H); 10□11□12↙
则执行后的结果是:A=1,B=2,C=4,D=5,E=7,F=8,G=9,H=10
第8节 输出语句
当计算机处理完程序后,应该把结果显示在屏幕上或在打印机上打印出来,这样一个过程叫输出。
7.1 WRITE语句
WRITE语句是将其后括号中所带输出项的值打印出来,如果括号中有多个输出项,则一律用逗号隔开。它有以下几种用法:
直接打印数字。如:WRITE(3),则在屏幕上打印一个“3”。
打印变量。如:已知A=3,B=6,C=9 则WRITE(A,B,C)执行的结果是在屏幕上打印3,6,9三个数。
打印表达式。如果括号中是表达式,WRITE语句是先计算结果再打印。如:已知A=3,B=6,则WRITE(A+B-4)语句执行的结果是打印数字5。
打印字符或字符串。WRITE语句中的字符或字符串一律按原样打印。如:
WRITE(′A′) , 则在屏幕上打印一个字母A;WRITE(′HELLO′),则在屏幕上打印一个词HELLO;WRITE(′3+5′),在屏幕上不会打印数字8,而是“3+5”三个字符。
7.2 WRITELN语句
WRITELN语句也是打印语句,用法和WRITE语句非常类似,但WRITE语句在打印时是逐行打印,即一行打满后才换行打印;而WRITELN语句是在打印完本语句所带的参数后,无论该行是否已满,都会换行。
例6 写出下列语句执行后的结果:
WRITE(1,2,3);
WRITE(4,5,6);
WRITE(7,8,9);
执行的结果是:1 2 3 4 5 6 7 8 9(注:在屏幕上打印时是没有空格的)
WRITELN(1,2,3);
WRITELN(4,5,6);
WRITELN(7,8,9);
则执行后的结果是:
1 2 3
4 5 6
7 8 9
另:WRITELN语句如不带参数则表示打印一个空行,即换行。
7.3 打印格式
输出语句在打印数据时,数据在屏幕上所占的宽度是有规定的,打印的域宽有两种:标准域宽和自定义域宽。
标准域宽
标准域宽是指系统默认的宽度。不同版本的TURBO PASCAL对不同的数据所规定的宽度是不同的。在TURBO PASCAL7中,规定如下:
(1)整数在输出时,其宽度就是数据本身的宽度,也就是说数与数之间没有空格。如:在例6中的WRITE语句中,真正的格式是:123456。
(2)实数在输出时,默认的宽度是17位,如:在WRITE(30.0 , 411.7)语句中,其格式如下:3.0000000000E+01 4.1170000000E+02。
(3)字符型输出宽度为1,也就是说字符之间没有空格。如:
WRITE(′A′,′B′,′C′);打印出来就是ABC。另:字符串的输出宽度也是其本身实际的宽度。
(4)布尔型输出的宽度也是其本身实际的宽度,输出的结果要么是
′FALSE′,要么是′TRUE′。
自定义域宽
在输出的时候,系统允许用户自定义输出的域宽。
(1) 单域宽
在WRITE或WRITELN语句所带的括号中的每个输出项后面加上数字n,中间用冒号隔开,数字n则表明该输出项将占的域宽。如:
WRITE(3:5,45:4);输出格式为:
□□□□3□□45;
WRITE(′A′:2,′B′:2,′C′:3);输出的格式为:
□A□B□□C。
(2) 双域宽
双域宽是在括号中每个输出项后加上两个数m 、n ,其中m代表输出项所占的总宽度,n代表在总宽度中小数所占的位数,它们中间都要用冒号隔开;要求m>n。
如:WRITE(-3214.44:12:3);则输出格式为:
□□□-3214.440
另:我们还可以用在输出项之间加空格的办法来控制数据之间的格式。如:WRITE(1,′′,2,′′,3);打印出来的格式是:
2 3 ,中间便有了空格。
第9节 顺序程序设计举例
前面学习了PASCAL的一些基本知识点,下面我们利用这些知识点来对给定的任务进程序设计。
例7 将变量A,B中的数交换次序并打印出来。
PROGRAM ex7(input,output);
VAR a,b,c:integer;
BEGIN
writeln('input a,b');
read(a,b);
writeln('a=',a,'b=',b);
c:=a;
a:=b;
b:=c;
writeln('a=',a,'b=',b);
END.
例8 已知三角形的三边,求其面积。
在知道三边A,B,C后,可用海伦公式求出其面积:S=
其中,P=(A+B+C)/2。
PROGRAM EX8(input,output);
VAR s,a,b,c,p:real;
BEGIN
writeln('input a,b,c');
readln(a,b,c);
p:=(a+b+c)/2;
s:=sqrt(p*(p-a)*(p-b)*(p-c));
writeln('s=',s);
END.
例9 编写一程序,要求输入一个字符,输出该字符的前趋和后继字符及该字符的ASCII码值。
PROGRAM e9(input,output);
VAR c,c1,c2:char;
n:integer;
BEGIN
writeln('input a character');
read(c);
c1:=pred(c);
c2:=succ(c);
n:=ord(c);
writeln('c=',c:5,'c1=',c1:5,'c2=',c2:5,'n=',n:5);
END.
例10 已知一个三位数,将其倒序输出。如:输入479,输出974。
PROGRAM ex10(input,output);
VAR a,b,c,d:integer;
BEGIN
writeln('input a 3_bit number');
readln(d);
a:=d div 100;
c:=d mod 10;
b:=(d-a*100-c) div 10;
d:=c*100+b*10+a;
writeln('d=',d);
END.
本章小结
在本章内容中,我们第一次全面接触了TURBO PASCAL语言的程序设计知识,对TURBO PASCAL7的顺序结构程序设计有了初步的了解。PASCAL 的数据类型有四种基本的类型:整型(INTEGER),实型(REAL),布尔型(BOOLEAN),字符型(CHAR);基本运算有三种:算术运算,关系运算,逻辑运算;要熟练掌握本书给出的标准函数,对每一个数学式要能熟练转化为PASCAL的表达式。输入语句有READ和READLN两种;输出语句有WRITE和WRITELN两种,注意二者的区别。
思考与练习
下面数据哪些是整数,哪些是实数,哪些是非法的数?
3.0 3 e-8 1e+4 3e 2.4e-6 0.0012 5.0 2
找出下列程序段中的错误
CONST
PI:=3.14
A:=4;
B=6;
C:=’A’;
VAR A,B,C,D.E,F:REAL;
BEGIN
A+1:=3;
B=6
E,F:=7;
G:=TRUE;
C:=D;
已知有方和程:Ax2+Bx+c=0,输入方程的系数A,B,C,求出其实根(在输入系数时尽量让方程有实根)。
任意输入三个字母,判定其在字母表中是否相邻。
已知三角形两边及夹角,求其面积。
已知有一半径为2 的圆,要求任输一个点的
坐标,判断该点是否在圆内。
任给你一个四位数,将其千位,百位,十位,个位
拆出来。
展开全部
program kjk;
var
a,b:integer;
sum:integer;
begin
writeln('please enter the number a,b:');
readln(a,b);
sum:=a+b;
writeln(sum);
end.
var
a,b:integer;
sum:integer;
begin
writeln('please enter the number a,b:');
readln(a,b);
sum:=a+b;
writeln(sum);
end.
参考资料: http://www.zssqfzx.org/downcenter/peixun/pascal.exe
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可能是你的电脑的问题,
不过提醒你,你没有输出 sum,我将源程序修改了一下:
program kjk;
var
a,b:integer;
sum:integer;
begin
readln(a,b);
sum:=a+b;
writeln(sum);
end.
不过提醒你,你没有输出 sum,我将源程序修改了一下:
program kjk;
var
a,b:integer;
sum:integer;
begin
readln(a,b);
sum:=a+b;
writeln(sum);
end.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果用PASCAL PP或FREE,一定要在‘END.’前加readln,或运行后按F5看结果
参考资料: http://www.zssqfzx.org/downcenter/peixun/pascal.exe
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询