Pascal程序设计基本教程.docx
- 文档编号:9526764
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:18
- 大小:27.86KB
Pascal程序设计基本教程.docx
《Pascal程序设计基本教程.docx》由会员分享,可在线阅读,更多相关《Pascal程序设计基本教程.docx(18页珍藏版)》请在冰豆网上搜索。
Pascal程序设计基本教程
第一部分预备知识
第一课Pascal程序基本知识
一、科学记数法
7.8530000000E+01=78.537.8530000000E+02=785.3
.853*******
.853*******
.853*******
10位小数
二、基本结构
例1.1计算半径为R的圆面积S
programli1;{程序首部}
constpi=3.14159;{说明部分——数据描述}
vars,r:
real;
begin
readln(r); {程序体}
s:
=pi*sqr(r); {执行部分}
writeln('s=',s);
end.
二、各部分说明
1、程序首部
例1.1的第一行称为程序首部。
program是保留字,接着是程序名(字母和数字的组合,开头必须是字母),最后以分号表示程序首部结束,下面是程序主体的开始。
2、程序体
(1)说明部分
说明部分用于定义和说明程序中用到的数据,比较常用的常量说明和变量说明。
常量说明用const,变量说明用var。
变量的类型有:
实型变量(real)、整型变量(integer)、字符型变量(char)。
举例:
定义变量x,y,z
var;x,y:
integer;
z:
real;
(2)执行部分
执行部分描述了程序要执行的操作。
它必须以一个TurboPascal保留字begin开始,以保留字end后跟句点结束,其间是一些执行具体操作的语句,并且以分号作为语句之间的分隔符。
begin和end必须成对出现。
紧跟end之后的句号表示执行部分的结束,也表示整个程序的结束。
此后的任何语句都无效。
练习:
1、课本P12练一练2、同步P7练习赛场一
第二部分顺序结构程序设计
包括四个语句:
一是输出语句;二是赋值语句;三是复合语句;四是输入语句。
第二课输出语句
计算机是如何把图形或解决问题的结果显示在屏幕上的呢?
pascal语言给我们提供了一条实现这一目的的语句write(writeln)。
举例:
programli2;
begin
writeln(‘‘,”######”);
writeln(‘‘:
2,”######”);
writeln(‘‘:
3,”######”);
writeln(‘‘:
4,”######”);
writeln(‘‘:
5,”######”);
writeln(‘‘:
6,”######”);
end.
输出内容:
######
######
######
######
######
######
1、格式
(1)write(输出项1,输出项2,输出项3,……);
(2)writeln(输出项1,输出项2,输出项3,……);
你想在屏幕上显示什么,就在输出项的位置填上什么。
可以多项输出,中间用逗号隔开。
2、输出项可以是常量、变量、函数名、表达式或字符串等,如果要输出常量、变量、函数名、表达式的值,则就直接输入即可;如果要照原样输出常量、变量、函数名、表达式或字符串等,则需要把输出项用单引号引起来。
3、场宽
(1)单场宽
场宽就是在输出项后面用冒号隔开再加上一个数,它是用来说明这个输出项所占得宽度,主要目的是确定输出项的位置。
(2)双场宽
在双场宽中,第一个场宽意义不变,第二场宽是对常量或变量的值的小数位数进行定义,是什么数,就保留几位小数。
练习课本:
P26练一练;P28例1;P32练一练同步操作:
P15——P18
第三课赋值语句
(一)赋值语句是最简单的语句,其一般形式为:
<变量>:
=<数据或表达式>例:
x:
=15s:
=’ok’m:
=3+5w:
=a+b
赋值语句的作用是计算表达式的值,并赋给变量。
对于任何一个变量必须首先赋值,然后才能引用,否则,未赋初值的变量将以一个随机值参与运算。
另外,赋值号两边的类型必须相同,但表达式值为整数时,它可自动化为实型后赋给该实型变量,即符合赋值相容。
例:
关于赋值的例子
programexample;
vara,b:
integer;
begin
a:
=3;b:
=2;
writeln(a);
writeln(b);
a:
=a+b;
writeln(a);
writeln(b);
b:
=a-b;
writeln(a);
writeln(b);
a:
=a-b;
writeln(a);
writeln(b);
readln
end.
(二)算术表达式是由符合pascal语法规定的运算对象、算术运算符、圆括号组成的有意义的式子。
常用的算术运算符由以下6个:
+、-、*、/、div、mod、
补充1、trunc(取整函数)、round(舍入取整函数)
例:
trunc(1.2)=1round(1.2)=1
trunc(1.7)=1round(1.7)=2
trunc(-3.7)=-3round(-3.7)=-4
2、pred(前导函数)、succ(后继函数)
pred(5)=4succ(5)=6
3、chr(取字符函数)、ord(取序号函数)
chr(65)=’A’ord(’A’)=65
chr(97)=’a’ord(’a’)=97
练习课本:
P34练一练;P36练一练;P38第七课;同步操作:
P21——P24;
第四课 复合语句
复合语句是由若干语句组成的序列,语句之间用分号“;”隔开,并且以begin和end括起来,作为一条语句。
复合语句的一般形式:
begin
语句1;
语句2;
……
语句n;
end
例:
变量值的交换
programjiaohuan;
var
a,b,t:
integer;
begin
a:
=10;b:
=20;
begin
t:
=a;
a:
=b;
b:
=t;
end;
writeln('a=',a,'b=',b)
end.
练习:
同步操作P26——29(讲解第三题)
第五课输入语句
通过计算机的外设把数据送到计算机内存的过程称为输入。
TurboPascal语言的输入语句有如下两种形式:
read(<变量名表>);
readln(<变量名表>);
<输入项表>是一个或几个由逗号隔开的变量标识符,他们必须在程序说明部分预先说明,他们可以是整型、实型或字符型,布尔型不可以直接读入。
例如a,b,c为整型变量,read(a,b,c)之后
键盘输入:
203040
结果:
a=20,b=30,c=40
readln语句和read语句不同之处在于输入数据到各变量之后,readln自动换行,从下一行开始再输入数据。
一个read语句执行完后,数据行中多余的未读数据可以被下一个输入语句读入;而一个readln于执行完后,数据行中多余未读数据就没有用了。
readln语句中可以不包含变量名表。
即有以下等价情况:
readln(a,b);readln等价于readln(a,b)
输入语句输入的数据类型必须和变量一一对应。
如果输入的是一串整数或实数,数据间用空格或回车分隔;若输入的是一串字符,则不用分隔。
例:
输入语句示例
programshuru;
var
x:
real;
c:
char;
begin
write('pleaseinputthenumber:
($XXX.XX)');
readln(c,x);
writeln('Thepriceis',c,x);
end.
练习课本:
P50练一练;同步操作:
P31——P33;
第三部分选择结构程序设计
包括两个部分:
一是if语句;二是case语句。
第六课if语句
.1 if语句
IF语句是由一个布尔表达式和两个供选择的操作序列组成。
运行时根据布尔表达式求值结果,选取其中之一的操作序列执行。
有两种形式的IF语句:
if <布尔表达式> then<语句>;
if <布尔表达式> then<语句1>
else<语句2>;
当布尔表达式的值为真,则执行then后面的语句,值为假时有两种情况:
要么什么也不做,要么执行else后面的语句。
注意else前面没有分号,因为分号是两个语句之间的分隔符,而else并非语句。
如果在该处添了分号,则在编译的时候就会认为if语句到此结束,而把else当作另一句的开头,输出出错信息。
例1:
求y=f(x),当x>0时,y=1,当x=0时,y=0,当x<0时,y=-1
programlianxi;
varx,y:
real;
begin
readln(x);
ifx>0theny:
=1;
ifx=0theny:
=0;
ifx<0theny:
=-1;
writeln('y=',y);
end.
在TurboPascal语言if语句中被构造的语句只能是一条语句,当条件选择某个分支的计算要用多个语句描述时,就必须把该分支用begin和end括来,写成复合语句。
在用if语句连续嵌套时,如果你插入适量的复合语句,有利于程序的阅读和理解。
例2:
当x>0时候,计算x*x,并且输出x和x*x,
programlianxie3;
varx,x1:
integer;
begin
readln(x);
ifx>=0then
begin
x1:
=x*x;
writeln('x*x=',x1);
writeln('x=',x);
end;
end.
当if语句嵌套时,TurboPascal约定else总是和最近的一个if配对。
第七课case语句
case语句是由一个表达式和众多可选择的操作序列组成。
运行时,根据表达式的求值结果,在众多的分支中选取一个分支执行。
其形式为:
case 表达式 of
常量1:
语句1;
常量2:
语句2;
……
常量n:
语句n;
else 语句n+1{可选项}
end;
表达式只能是顺序类型(除了实型以外的简单类型),其值必须是唯一确定并且和表达式类型相同。
case语句执行和表达式值相匹配的case常数所指向的那条语句,如果没有相匹配的值,则执行else部分(如果有的话)或者什么也不做。
在else前面的语句末尾有分号,这是和if语句不同的。
例:
根据学生的成绩给予相应的等低,对应关系如下:
90——100 A
80——89 B
60——79 C
60以下 D
programchengji;
vars:
real;
x:
integer;
ch:
char;
begin
write('inputthescore:
');
readln(s);
x:
=torunc(s);
if(s>=0)and(s<=100)then
casexdiv10of
10,9:
ch:
='A';
8:
ch:
='B';
7,6:
='C';
elsech:
='D';
end;
writeln(s,'--',ch);
end.
补充练习:
试编写一个根据用户键入的两个操作数和一个运算符,由计算机输出运算结果的程序。
这里只考虑加(+)、减(-)、乘(*)、除(/)四种运算。
例1:
Inputx,y:
153
Inputoperator(+,-,*,/):
+
15.00+3.00=18.00
例2:
Inputx,y:
50
Inputoperator(+,-,*,/):
/
divideiszero!
第四部分循环结构程序设计
包括部分:
一是for语句;二是while语句;三是repeat语句;
第八课for语句
补充:
类型integerlongintreal
数值范围-32768..32767-2147483648..21474836472.9e-39..1.7e+38
for语句用来描述已知重复次数的循环结构。
for语句有两种形式:
(1)for控制变量:
=初值 to 终值 do 语句;
(2)for控制变量:
=初值 downto 终值 do 语句;
第一种形式的for语句是递增循环。
首先将初值赋给控制变量,接着判断控制变量的值是否小于或等于终值,若是,则执行循环体,在执行了循环体之后,自动将控制变量的值该为它的后继值,并重新判断是否小于或等于终值。
当控制变量的值大于终值时,退出for循环,执行for语句之后的语句。
第一种形式的for语句是递减循环。
首先将初值赋给控制变量,接着判断控制变量的值是否大于或等于终值,若是,则执行循环体,在执行了循环体之后,自动将控制变量的值该为它的前趋值,并重新判断是否大于或等于终值。
当控制变量的值小于终值时,退出for循环,执行for语句之后的语句。
for语句中的初值、终值、控制变量的数据都必须是顺序类型。
当初值和终值确定后,重复的次数就确定不变了,并且控制变量在重复语句内不能施加任何赋值操作。
例:
计算1+2+3+……+99+100
programjia;
varn,sum:
integer;
begin
sum:
=0;
fori:
=1to100do
sum:
=sum+i;
writeln(sum);
end.
(1)5、程输出如下的乘法口诀表:
1*1=1
2*1=22*2=4
3*1=33*2=63*3=9
4*1=44*2=84*3=124*4=16
5*1=55*2=105*3=155*4=205*5=25
6*1=66*2=126*3=186*4=246*5=306*6=36
7*1=77*2=147*3=217*4=287*5=357*6=427*7=49
8*1=88*2=168*3=248*4=328*5=408*6=488*7=568*8=64
9*1=99*2=189*3=279*4=369*5=459*6=549*7=639*8=729*9=81
(2)25、求1+1*2+1*2*3+......+1*2*3*......*9*10
(3)38、求1+11+111+......共N项之和(1 (4)54、用5元钱买100只纽扣,其中金属纽扣每只5角,有机玻璃纽扣每只1角,小纽扣1分钱买3个,编程求出各种纽扣买了多少只? (5)56、按字母表顺序和逆序每隔一个字母打印,即 ACEGIKMOQSUWY ZXVTRPNLJHFDB (6)64、求1到100的偶数及奇数和 (7)68、“水仙花数”是指一个3位数,其各位数的立方和等于该数,如: 153=13+53+33。 编写程序,输出所有的“水仙花数”. (8)88、请编制程序输出的结果是如下图所示。 (用循环语句实现) 1 212 32123 4321234 5 43212345 6 5 432123456 5 43212345 4321234 32123 212 1 (9)161、输入N值,编程输出如下图形。 Input 一个整数N(1<=N<=7)。 Output 排列成菱形的大写字符,首字符为Z,以后依次为Y,X... SampleInput 3 SampleOutput Z YX WV UT S (10)162、输入下列图形: 以26英文字母 a ab abc ...... ........ .......... abcde..............wyz 第九课while语句 while语句用于“当满足某一条件时进行循环”的情况。 while语句的语法格式: while布尔表达式 do 语句; 循环结束条件在进入循环体之前测试,若最初的测试值为false,则根本不进入循环体,也就是说while循环是是属于当型循环。 为了能使while重复能终止,循环体中一定要有影响布尔表达式的操作,否则该循就是一个死循环。 例: 计算从0到某个数之间所有奇数的和。 programjishu; varodds,limit,sum: integer; begin readln(limit); sum: =0; odds: =1; whileodds<=limitdo begin sum: =sum+odds; odds: =odds+2 end; writeln(sum: 1) end. 第十课repeat语句 repeat语句用于“重复执行循环体,一直到指定的条件为真时为止”。 语法格式为: repeat 语句1; …… 语句n; until 布尔表达式; repeat重复基本上有和while重复一样的描述循环计算的能力,但有一些不同: 在repeat语句的结构中,布尔表达式求值在计算操作之后,而while语句中,布尔表达式求值在计算操作之前,也就是说repeat至少执行一次循环体。 while语句的成分语句只能是一个语句。 因此,当重复动作包含多个语句时,要用begin和end,使它变成一个复合语句。 而repeat语句的保留字repeat和until已经起语句括号作用,可以包含多个语句而无须begin和end。 repeat语句中,当布尔表达式为true时结束循环,而while语句中,是当表达式为false时才结束循环。 当描述由计算操作后的情况确定重复是否继续进行的计算时,通常用repeat语句描述。 第四部分数组 1.数组的定义 数组是程序中最常用的结构数据类型,用来描述由固定数目的同一类型的元素组成的数据结构。 数组的每个元素和下标相关联,根据下标指示数组的元素。 数组的存储方式为按行存储,在编译阶段,计算机根据数组的类型说明,确定其存储空间的大小。 数组可以是任何顺序类型。 数组的定义形式: array[<下标类型1>,……<下标类型n>]of<元素类型> 其中n称为数组的维数,每维的下标类型必须是一个顺序类型,通常为子界类型或枚举类型,其作用是指定数组下标的编制方式和下标取值范围。 例如: var a: array[1..10]ofinteger;{有10个元素的一维数组} m,n: array[1..10]ofinteger; b: arrayp[1..5,1..5]ofreal;{有25个元素的二维数组,依次按[1,1]……,[1,5],[2,1]……,[2,5],……[5,1],……[5,5]} 2.数组的操作 当数组的元素类型为简单类型时,其下标变量和简单类型变量一样使用。 例如: a[50]: =50; a[20]: =a[5]; 一个数组,下标的起始值和终止值是在类型定义中给定的,不能在程序执行中再通过其他途径来改变,所以数组元素的个数在程序运行期间是固定不变的。 数组变量作为整体仅允许同类型数组之间的赋值运算。 例如: varx,y: array[1..10]ofinteger; x: : =y 例: 读入5个学生的学号和成绩,计算他们的平均分,若比平均分高10分的等第为A,若比平均分高小于10分的等地为B,若低于平均分,则等第为C,输出他们的成绩和等第。 programsample7d1(input,output); constn=5; type no=array[1..n]ofinteger; s=array[1..n]ofreal; var i: integer; k: real; num: no; score: s; begin k: =0; fori: =1tondo begin readln(num[i],score[i]); k: =k+score[i]; end; k: =k/n; fori: =1tondo begin write(num[i],score[i]); if(score[i]-k)>=10thenwriteln('A') else if((score[i]-k)<10)and((score[i]-k)>0) thenwriteln('B') elsewriteln('C'); end; end.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Pascal 程序设计 基本 教程
![提示](https://static.bdocx.com/images/bang_tan.gif)