没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
第一章 简单程序
无论做任何事情,都要有一定的方式方法与处理步骤。计算机程序设计比日常生活中
的事务处理更具有严谨性、规范性、可行性。为了使计算机有效地解决某些问题,须将处
理步骤编排好,用计算机语言组成“序列”,让计算机自动识别并执行这个用计算机语言组
成的“序列”,完成预定的任务。将处理问题的步骤编排好,用计算机语言组成序列,也就
是常说的编写程序。在 Pascal 语言中,执行每条语句都是由计算机完成相应的操作。编写
Pascal 程序,是利用 Pascal 语句的功能来实现和达到预定的处理要求。“千里之行,始于足
下”,我们从简单程序学起,逐步了解和掌握怎样编写程序。
第一节• Pascal程序结构和基本语句
在未系统学习 Pascal 语言之前,暂且绕过那些繁琐的语法规则细节,通过下面的简单
例题,可以速成掌握 Pascal 程序的基本组成和基本语句的用法,让初学者直接模仿学习编
简单程序。
[例 1.1]编程在屏幕上显示“Hello World!”。
Pascal 程序:
Program ex11;
Begin
Writeln(‘Hello World!’);
ReadLn;
End.
这个简单样例程序,希望大家的程序设计学习能有一个良好的开端。程序中的 Writeln
是一个输出语句,它能命令计算机在屏幕上输出相应的内容,而紧跟 Writeln 语句后是一对
圆括号,其中用单引号引起的部分将被原原本本地显示出来。
[例 1.2]已知一辆自行车的售价是 300 元,请编程计算 a 辆自行车的总价是多少?
解:若总售价用 m 来表示,则这个问题可分为以下几步处理:
= 1 \* GB3① 从键盘输入自行车的数目 a;
= 2 \* GB3② 用公式• m=300*a计算总售价;
= 3 \* GB3③ 输出计算结果。
Pascal 程序:
Program Ex12; {程序首部}
Var a,m : integer; {说明部分}
Begin {语句部分}
Write(‘a=’);
ReadLn(a); {输入自行车数目}
M := 300*a; {计算总售价}
Writeln(‘M=’,m); {输出总售价}
ReadLn; {等待输入回车键}
End.
此题程序结构完整,从中可看出一个 Pascal程序由三部分组成:
(1)程序首部
由保留字 Program 开头,后面跟一个程序名(如:Exl1);其格式为:
Program程序名;
程序名由用户自己取,它的第一个字符必须是英文字母,其后的字符只能是字母或
数字和下划线组成,程序名中不能出现运算符、标点符和空格。
(2)说明部分
程序中所用的常量、变量,或类型、及过程与自定义函数,需在使用之前预先说明,
定义数据的属性(类型)。[例 1.2]程序中•Var S,R,C: Real;•是变量说明,此处说明
S,R,C 三个变量均为实数类型变量。只有被说明为某一类型的变量,在程序中才能将与
该变量同类型的数值赋给该变量。变量说明的格式为:
Var变量表:类型;
(3)语句部分
指由保留字•Begin (开始)至•End. (结尾)之间的语句系列,是解决问题的具体处理步骤,
也是程序的执行部分。
Pascal 程序不管是哪部分,每句末尾都必须有分号(;),但允许最接近•End的那个语句
末尾的分号省略;程序结束的 End 末尾必须有圆点(. ),是整个程序的结束标志。
程序中花括号“{ }”之间的部分为注释部分。
Pascal 程序结构可归纳用如下来表示:
Program程序名;••••••••• ••••••••程序首部
标号说明;•(Label)
常量说明;•(Const) 说明部分
类型说明;•(Type)
变量说明;•(Var)
过程或函数说明;••••••••••••••••••••
Begin程序体•(主程序)
语句系列;•••••••••• •••••••••语句部分
End.
把处理问题的步骤编成能从上到下顺序执行的程序,是简单程序的基本特征。再来分
析下面两道例题的 Pascal 程序结构和继续学习基本语句。
[例 1.3]编程计算半径为 R 的圆的面积和周长。
解:这是一个简单问题,按数学方法可分以下几步进行处理:
①从键盘输入半径的值 R;••••••••• {要求告诉圆的半径 R }
②用公式• S=πR
2
计算圆面积;
③用公式• C=2πR计算圆周长;
④输出计算结果。
Pascal 程序:
Program Ex13;•••••••••••••••••••••••••• {程序首部•}
Var R,S,C: Real;••••••••• {说明部分•}
Begin {语句部分•}
Write ('R=?');
Readln(R);•••••••••••••••• {输入半径•}
S:=Pi*R*R;••••••••••••••••{圆面积公式 S=πR
2
}
C:=2*Pi*R;••••••••••••••••{圆周长公式 C=2πR}
Writeln('S=',S);••••••••••• {输出结果•}
Writeln('C=',C);••••••••••••••••••••••
Readln{等待输入回车键}••••••••••••••••••
End.
程序中 Pi 是 Pascal 提供的标准函数,它返回圆周率的近似值:3.1415926…。
(:=)是赋值符号,赋值语句的格式为:
变量:=表达式;
赋值语句的作用是将:=右边表达式的值记录到左边的变量中。
Writeln 是输出语句,输出语句有三种格式:
①Write (输出项 1,输出项 2);•••{执行输出后光标不换行}
②Writeln (输出项 1,输出项 2);•{执行输出后光标换到下一行}
③Writeln {仅输出空白且光标换到下一行}
Writeln 语句后面的圆括号以内部分均为输出项,可以是多项,各项间用逗号分隔;•对
单引号里的内容按照引号内的原样(字符)输出显示。如果输出项是表达式,则只输出表达
式的值,而不是表达式本身。
[例 1.4]输出两个自然数相除的商和余数。
解:设被除数、除数、商和余数,分别为 A,B,C,D,均为变量,且都是整数类型。
题中未给出具体的自然数 A、B,可采用键盘输入方式。
①给出提示,从键盘输入 a, b;•
②显示两数相除的数学形式;
③求出 a 除以 b 的商 c;
④求出 a 除以 b 的余数 d;
⑤紧接等式后面输出显示商和余数。
Pascal 程序:
Program Ex14;
Var a,b,c,d : integer;
Begin
Write('INPUT A,B:');•••••••{给出提示信息}
Readln(a,b);••••••••••••••••{输入 a,b}
Writeln;•••••••••••••••••••••{输出一空行}
Write(a,'/',b,'=');••••••••••{输出等式之后不换行}
c:=a div b;•••••••••••••••••••{整除运算,取商的整数部分}
d:=a mod b;••••••••••••••••••{相除求余运算,取商的余数部分}
Writeln(C,'…',d);•••••••••• {输出后自动换行•}
Readln {等待输入回车键•}
End.
执行本程序中第一个 Write 语句,输出其引号以内的一串提示信息,是给紧接着的输入
语句提供明确的提示(要求),有“一目了然,人机对话”之效果。
Readln 是一个特殊的输入语句,要求输入一个回车(换行)才能往下执行。
Readln 是输入语句,它的一般格式为:
①Read (变量 1,变量 2);•
②Readln (变量 1,变量 2);•
③Readln
前两种格式均要从键盘给变量输入数据,输入时,所键入的数据之间以空格为分隔,
以回车为输入结束。若多输入了数据(即数据个数超过变量个数),Read 语句读完数据之后,
能让后续的读语句接着读取多下来的数据;而 Readln语句对本行多输入的数据不能让后续
语句接着读取多下来的数据。为了防止多输入的数据影响下一个输入语句读取数据,建议
尽量使用 Readln 语句输入数据。第三种格式不需输入数据,只需按入一个回车键。
[例 1.5]自然数的立方可以表示为两个整数的平方之差,比如 4
3
=10
2
-6
2
,请输出自然数
1996 的这种表示形式。(这里的 4
3
用自乘三次的形式 4*4*4 表示;10
2
也用自乘二次的形式
10*10 表示)
解:此题没有现成的计算公式能直接利用,但可以自行推出处理方法或构建适当的运算
公式,按着构想的处理方案编排出各步骤。
设这个自然数为 N,两个平方数分别为 X,Y,•将问题表示为求•N
3
=X
2
—Y
2
①先找出 X 的值,仔细观察题中的示例,用数学方法归纳可得出 X=N*(N+1)/2;(构
成本题可用的计算公式)
②再仔细观察,发现 Y 值比 X 小一个 N 值,即•Y=X—N;
③输出等式•N
3
=X
2
—Y
2
或 N*N*N=X*X—Y*Y
Pascal 程序:
Program Ex15;
Const N=1996;•••••• {常量说明•}
Var X,Y: Longint;• {变量说明,此题计算中的数值较大,用长整型•}
Begin
X:=N*(N+1) div 2;• { div是整除运算•}
Y:=X-N;
Writeln(N,'*',N,'*', N,'=', X,'*', X,'—',Y,'*',Y);•• {输出结果•}
Readln
End.
本程序中 N 是常量,X,Y 是变量,为长整数类型(Longint);•程序中的 div是整除运算,
其结果只取商的整数部分;
[例 1.6]求一元二次方程 x
2
+3x+2=0 的两个实数根。
解:方程的系数是常量,分别用 a,b,c 表示,可运用数学上现成的求根公式求方程的
根,采取如下方法:
①先求出 d=b
2
-4ac;(求根公式中需用开方运算的那部分)
②再用求根公式算出 x1,x2 的值。(x1,x2 = ? )
③输出 x1,x2.
Pascal 程序:
program Ex16;
Const a=1;••••••••••••••••••••••• {常量说明•}
b=3;
c=2;•••••••••••••••••••••••••{a,b,c 表示方程系数}
Var d : integer;•••••••••••••••••••{d 为整型变量}
X1,X2: Real;••••••••••••••••••{X1,X2 为实型变量}
Begin
d:=b*b-4*a*c;
x1:=(-b+sqrt(d))/(2*a);••••••••••••••{求方程的根}
x2:=(-b-sqrt(d))/(2*a);
Writeln('X1=',X1,'':6,'X2=',X2);{输出结果}
Readln{等待输入一个回车键}
End.
本程序中的 a,b,c 均为常量;变量 d 是整数类型,而变量 x1,x2 则是实数类型,因
为运算式中的 Sqrt(d)开平方运算和(/)除法运算使结果为实数。Sqrt( )是开平方函数,是
Pascal 系统的一个标准函数。
习题 1.1模仿例题编程
1.加法计算器:编程由键盘输入两个整数 a 和 b,计算出它们的和并输出到屏幕上。
2.某梯形的上底、下底和高分别为 8,12,9,求该梯形的面积。
3.求边长为 5.6的正立方体表面积。
4.已知图园柱体的高为 12,底面园的半径为 7,求园柱体表面积。
5.计算某次考试语文、数学、英语和计算机等四科的总成绩与平均成绩。
(请用输入语句从键盘输入各科成绩分)
第二节••顺序结构程序与基本数据类型
前面的简单程序已体现出处理问题步骤、思路的顺序关系,这就是顺序结构程序。
[例 1.7]交换两个变量的值:由键盘输入两个正整数 A 和 B,编程交换这两个变量的
值。
解:交换两个变量的值,可以想象成交换两盒录音带(称为 A 和 B)的内容,可以按
以下步骤处理:
步骤①:拿一盒空白录音带 C 为过渡,先将 A 翻录至 C;
步骤②:再将 B 翻录至 A;
步骤③:最后将 C 翻录至 B。
这样操作,可达到题目要求。
Pascal 程序:
Program Exam17;
Var a,b,c : integer;
Begin
Write(‘A,B=’);
Readln(a,b);
C:= A; {等价于步骤 1}
剩余63页未读,继续阅读
资源评论
南木db
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功