FP教程.docx
- 文档编号:25395278
- 上传时间:2023-06-08
- 格式:DOCX
- 页数:22
- 大小:89.46KB
FP教程.docx
《FP教程.docx》由会员分享,可在线阅读,更多相关《FP教程.docx(22页珍藏版)》请在冰豆网上搜索。
FP教程
第一次授课(20120211)
ex1_2.pas
programex1_2;
begin
write(‘Helloworld!
’);
end.
ex1_3.pas
programex1_3;
var
x,y:
integer;
begin
readln(x);
y:
=10*x;
writeln(‘total=’,y);
end.
程序的结构
1程序首部
以program开头,空格,后面跟着程序的名称(程序的名称应该符合标识符命名规则)。
2说明部分
常量说明、变量说明、标号说明、类型说明、过程与函数说明。
3语句部分
包含在begin和end之间的语句序列。
保留字与标识符
保留字:
具有特定含义的词(英文)。
标识符:
以字母开头(包含下划线“_”),字母和数字的组合。
标识符的作用是用来对常量、变量、类型、文件、函数、过程和程序进行命名的。
常量和变量
常量:
在程序运行过程中保持不变的值,可以用标识符来表示。
常量用const来进行说明。
变量:
在运行的过程中,其值根据需要发生变化,和常量一样,也可以用标识符来表示。
变量用var来进行说明。
可以将各种量理解为一种容器,容器用标识符来命名,如果容器里面装载的值可以发生变化就是变量,容器里面装载的值不能变化的就是常量。
赋值语句
“:
=”是赋值语句(或符号),格式为:
变量:
=表达式,表示将表达式的结果赋予左边的变量,或者说装载进那个变量容器,或者是说让变量中的值等于表达式的结果(但赋值语句不是等号)。
输入和输出语句
输入语句
read(变量1,变量2,变量3,…变量n);
readln(变量1,变量2,变量3,…变量n);
readln;
输出语句
write(输出项1,输出项2,输出项3,…输出项n);
writeln(输出项1,输出项2,输出项3,…输出项n);
writeln;
程序的三种基本结构
本次作业:
1有一牧场,牧场上的牧草每天都在匀速生长,这片牧场可供15头牛吃20天或20头牛吃10天,那么这片牧场每天新生的草量可供几头牛吃1天?
2设计程序,可以将输入的两个正整数的值进行交换,比如输入a=3和b=5,输出时变成a=5和b=3。
①题推荐答案:
programex1_4;
var
s1,s2,s3:
integer;
begin
s1:
=15*20;
s2:
=20*10;
s3:
=(s1–s2)div(20-10);
writeln(s3);
end.
②题推荐答案:
programex2_1;
var
a,b,c:
integer;
begin
readln(a,b);
c:
=a;
a:
=b;
b:
=c;
writeln(a,b);
end.
第二次授课(20120218)
计算机系统的基本原理:
计算机的基本结构:
二进制:
计算机本质上是由一堆开关组成的一个电子产品。
开关有两种状态,开和关。
在计算机上就用1和0来表示。
也就是说计算机内部是使用二进制来进行操作和运算的。
编译和解释:
使用高级语言编写的程序不能被计算机直接执行,计算机只能执行二进制程序,所以源代码必须被翻译成二进制程序。
翻译的方法有两种:
解释方式和编译方式。
解释方式:
执行一句翻译一句,边执行边翻译,类似于通过翻译与外国人对话。
编译方式:
执行前将所有语句翻译成二进制程序,类似于看翻译过来的外文资料。
算法
算法:
解决问题的步骤和方法。
算法的特征:
可行性;确定性;有穷性;有输入;有输出。
算法的描述:
自然语言、流程图、N-S图、伪代码、程序。
流程图基本图形及含义:
圆角矩形:
起止框,表示“开始”与“结束”。
矩形:
处理框,表示一个操作或运算。
菱形:
判断框,表示问题判断或判定,从而决定程序的走向。
平行四边形:
输入输出框,表示输入输出操作。
箭头:
流线,代表工作流方向。
程序(算法)的三种基本结构:
1、顺序结构
最简单、最基本的结构。
计算机依次执行所有的操作步骤。
2、选择(判断)结构
由判断条件和两个分支构成,根据判断条件的成立与否,决定执行哪一条分支。
3、循环结构
当循环,先判断条件是否成立,如果成立执行循环。
直到循环,先执行循环,再进行判断,如果条件不成立继续执行循环。
分别用自然语言和流程图进行描述下列程序的算法:
1ex2_1
2读入两个数,输出较大者
3计算1+2+3+…+100的结果
程序实例:
1、输入两个整数,求两者的商和余数:
ex1_5.pas
programex1_5;
var
a,b,c,d:
integer;
begin
readln(a,b);
write(a,‘/’,b,‘=’);
c:
=adivb;
d:
=amodb;
writeln(c,‘…’,d);
readln;
end.
第三次授课(20120225)
标准数据类型
在计算机中,数据不能简单的等同为数值(数字)。
字母、符号、数字及它们的组合;语音、图形、图像,都可以被称为数据。
所以,数据是指所有能输入到计算机并被计算机程序处理的符号的介质的总称。
FP提供了丰富的数据类型,其中最基本的数据类型有:
整型、实型、字符型和布尔型。
其他复杂的属于类型可以从基本的数据类型中衍生出来。
1整型(Integer)包括正负整数和零。
一般情况下采用十进制来表示。
2实型(Real)包括正负实数和零。
表示方法可以是十进制也可以是科学记数法。
3字符型(Char)用一对单引号括起来的一个字符。
布尔型(Boolean)逻辑值,包括真(true或1)和假(false或0)两个值。
表达式
在程序设计中,由运算对象(例如常量、变量)、运算符号和括号按照一定次序组成的有意义的式子称为表达式。
相当于数学中的代数式。
表达式可分为算术运算、关系运算、逻辑运算、赋值运算和集合运算。
书写表达式的注意事项:
1乘号(*)不能省略;
2不允许连续出现两个运算符;
3表达式中只能使用圆括号,而且必须是成对出现;
4代数式转换成表达式,必要时要添加括号。
表达式中的基本运算符:
运算符
操作数类型
结果类型
算数
运算
+、-、*
整型或实型
整型或实型
/
实型
div、mod
整型
整型
关系
运算
=、<>
布尔型
<、>
<=、>=
逻辑
运算
not、and、or
布尔型
布尔型
集合
运算
+、-、*
集合
集合
赋值
运算
:
=
数学表达式和FP表达式举例:
数学表达式
转换FP表达式为:
(a+b)/(c+d);
数学表达式b2-4ac转换为FP表达式为:
b*b-4*a*c;
数学表达式
转换为FP表达式为:
(a+b)/c+d;
范例程序3-1
读入两个整数,输出较大者:
programex3_1;
var
a,b,c:
integer;
begin
writeln(‘Pleaseinputintegera,b:
’);
readln(a,b);
ifa>bthen
c:
=a
else
c:
=b;
writeln(c);
readln;
end.
此程序使用了分支结构。
if表达式then语句1else语句2;
根据“表达式”结果来决定执行“语句x”,结果为“真”,执行“语句1”;结果为“假”,执行“语句2”。
作业1:
把下列数学表达式转换为FP表达式:
①xy3②
③
④ax2+bx+c⑤
⑥
作业2:
设计程序,从键盘读入一个正整数,判断输入的数是奇数还是偶数。
提示:
判断一个数是奇数还是偶数,可以用这个数除以2的余数来判定,如果余数为0则为偶数,余数为1则是奇数。
第四次授课(20120303)
分支结构
分支结构流程图:
格式:
1if布尔表达式then语句;
2if布尔表达式then语句1else语句2;
提示:
在格式①中,表达式结果为T时执行语句,否则不执行。
例程4_1:
(上节课的作业2)
programex4_1;//程序首部,程序名称ex4_1
var//变量声明
x,a:
integer;//声明x和a两个整型变量
begin//主程序语句开始
writeln(‘QingShuRuYiGeZhengShu:
’);//提示
readln(x);//读入整数,并放入变量x中
a:
=xmod2;//x整除2取余数放入变量a
ifa=2thenwriteln(x,‘ShiOuShu!
’)
elsewriteln(x,‘ShiJiShu!
’);
readln;//程序暂停,等待回车继续
end.
思考:
能不能把例程4_1进行简化?
(只使用一个变量)
【运算符号的优先级:
】
FP中有算数运算、关系运算、逻辑运算、集合运算和赋值运算。
在复杂的表达式中,包含了多种运算或两个以上的运算符号,同级运算从左到右运算,不同级运算按照优先程度依次运算,括号内的运算符为最优先。
不同运算的优先级如下:
1not
2*/divmodand
3+-or
4<<=>>==<>
例程4_2:
某超市促销电池,电池单价为0.9元,若采购数量超过10个,则可打8折,超过20个,打7.5折,请设计一个程序用来计算购买电池所需金额。
算法分析:
购买电池金额=单价*数量,根据购买数量的不同,单价会发生变化。
programex4_2;
var
DanJia,JinE:
real;
ShuLiang:
integer;
begin
Danjia:
=0.9;
writeln('QingShuRuGouMaiDianChiShuLiang:
');
readln(ShuLiang);
if(ShuLiang>10)and(ShuLiang<=20)
thenDanJia:
=DanJia*0.8;
ifShuLiang>20thenDanJia:
=DanJia*0.75;
JinE:
=DanJia*ShuLiang;
writeln('JinE=',JinE);
readln;
end.
对输出内容格式化
write(writeln)在默认情况下,输出项为整数的,输出为十进制数形式;输出项为实数的,输出为科学记数法形式。
默认的输出形式在有的情况下并不符合人们的需要,所以FP提供了输出项格式说明,对输出的格式进行设置。
两种方式:
1指定单场宽:
write(表达式:
n),n为自然数
2指定双场宽:
write(实型数:
n:
m),n和m均为自然数,其中m为小数的位数。
(如果n小于m+2,则n无效)
例程4_3:
输入一个年号,判断是否为闰年。
【判断闰年的方法:
如果年号能被400整除,或者能被4整除但不能被100整除,则为闰年】
例程4_4:
programex4_4;
var
a,b,c,x:
integer;
begin
writeln(‘Inputa,b,c:
’);
readln(a,b,c);
ifa begin x: =a; a: =b; b: =x; end; ifa begin x: =a; a: =c; c: =t; end; ifb begin x: =b; b: =c; c: =t; end; writeln(a,‘>’,b,‘>’,c); readln; end. if布尔表达式then begin 语句1; 语句2; … end; 其中的”begin…end;”被称为复合语句。 在这里表示,当布尔表达式结果为真时,需要执行多条语句来完成任务。 第五次授课(20120310) 函数 函数(function)表示一个或多个输入值(原始数据: 称为自变量或参数)对应唯一输出值(结果: 称为函数值或返回值)的一种对应关系。 形式如: f(x)。 【注意】函数调用不能作为一个单独的语句,而只能出现在表达式中。 函数分为标准函数和自定义函数两种。 FP提供的常用标准函数: 函数 含义 参数类型 返回值类型 实例 abs(x) x的绝对值 整型或实型 与x相同 sqr(x) x的平方 整型或实型 与x相同 sqrt(x) x的平方根 整型或实型 实型 frac(x) x的小数部分 整型或实型 实型 int(x) x的整数部分 实型 实型 trunc(x) x的整数部分 实型 整型或实型 round(x) 最接近x的整数 实型 整型 ord(x) x的序号 顺序类型 整型 random(x) 产生0到x-1之间的随机整数 整型 整型 chr(x) 序号为x的字符 整型 字符型 pred(x) x的前趋值 顺序类型 与x相同 succ(x) x的后继值 顺序类型 与x相同 odd(x) 判断x是否为整数 整型 布尔型 例程5_1: (上次作业) programex5_1; var x: integer; begin writeln(‘QingShuRuNianFen: ’); readln(x); if(xmod400=0)or(xmod4=0)and(xmod100<>0) thenwriteln(x,‘ShiRunNian’) elsewriteln(x,‘BuShiRunNian’); readln; end. 例程5_2: 假设邮局规定寄邮件时,若每件重量在1公斤以内(含1公斤),按1.5元计算邮费,如果超过1公斤,其超过部分每公斤加收0.8元。 设计程序计算邮费。 例程5_3: 输入三个正整数,若能用这三个数作为边长组成三角形,则计算并输出三角形的面积,否则输出Can’t。 (提示: 组成三角形的条件是任意两边之和大于第三边;利用三角形的边长计算面积的公式: ,其中p=(a+b+c)/2)。 【注意】利用前面学习的函数将公式转化为FP表达式。 例程5_4: 读入两个数,输出较大者的平方值。 例程5_5: 某城市出租车起步价为5元,可行驶3公里。 3公里后,按照每公里1.6元收费。 设计程序,读入行驶的公里数,计算输出顾客需要付款的金额(要求保留2位小数)。 if语句的嵌套 上图,如果用if语句,可表示为: if布尔表达式1then if布尔表达式2then 语句2_1 else 语句2_2 else 语句1_2; 将布尔表达式1、布尔表达式2、语句2_1、语句2_2和语句1_2分别填写到上图中。 【注意】if…then…else的匹配关系: 由于else可省略,所以在嵌套过程中,需要十分注意三者配对关系。 可以采用空语句或复合语句的方法来解决这个问题。 在书写程序的过程中注意缩进,增强程序的可读性也可及时发现这个问题。 例程5_6: 计算程序,根据读入的x值,输出y值: programex5_6; var x: real; y: integer; begin writeln(‘QingShuRux: ’); readln(x); ifx>0theny: =1 elseifx=0theny: =0 elsey: =-1; writeln(‘x=’,x: 8: 2,‘y=’,y); readln; end. 例程5_7: 输入三角形的三条边长,判断它是否是直角三角形,如果是输出“Yes”,否则输出“No”,如果不能组成三角形,输出“Notatriangle”。 【提示】首先应该判断能否组成三角形,如果能再判断是否为直角三角形。 要求画出流程图 第六次授课(20120317) programex5_2; var ZhongLiang,JiE: real; begin writeln('QingShuRuYouJianZhongLiang: '); readln(ZhongLiang); ifZhongLiang>1thenJinE: =1.5+(ZhongLiang-1)*0.8elseJinE: =1.5; writeln('JinE=',JinE: 8: 2); readln; end. programex5_3 var a,b,c,p,s: real; begin writeln('QingShuRua,b,c: '); readln(a,b,c); if(a+b>c)and(a+c>b)and(b+c>a) then begin p: =(a+b+c)/2; s: =sqrt(P*(p-a)*(p-b)*(p-c)); writeln('s=',s: 8: 2); end elsewriteln('Can''t'); readln; end. programex5_7; var a,b,c,p,s: real; begin writeln('Qingshurua,b,c: '); readln(a,b,c); if(a+b>c)and(a+c>b)and(b+c>a) then if(a*a+b*b=c*c)or(a*a+c*c=b*b)or(b*b+c*c=a*a) thenwriteln('Yes') elsewriteln('No') elsewriteln('Notatriangle'); readln; end. 多分支语句 if语句根据布尔表达式的结果,来控制程序的走向。 当存在多种走向的可能时,可以使用嵌套的方法。 但是滥用嵌套就使程序变得难以理解并且容易出错。 在FP中,有一种多分支语句可以实现对程序多种走向的控制,这就是情况语句。 情况语句格式: case<表达式>of <常量表1>: 语句组1; <常量表2>: 语句组2; … <常量表n>: 语句组n; else语句组n+1; end; 首先执行表达式,表达式的结果应该是有序类型(整型或字符型);常量表是表达式的可能结果;根据表达式结果选择需要执行的语句组;常量表与语句组之间使用冒号隔开;常量表中可以包含一个或多个常量,中间用逗号隔开;语句组可以是一条语句,也可以是复合语句;else语句组可以省略,不省略时else与语句组之间没有冒号。 例程6_1: 输入两个不等于0的数值和一个算数运算符号(+、-、*、/),输出其运算结果。 program6_1; var x,y: real; ch: char; begin writeln(‘QingShuRu2GeShuZi: ’); readln(x,y); writeln(‘QingShuRuYunSuanFuHao+-*/: ’); readln(ch); casechof ‘+’: s: =x+y; ‘-’: s: =x-y; ‘*’: s=x*y; ‘/’: s=x/y; elsewriteln(‘ShuRuYunSuanFuHaoCuoWu! ’); end; writeln(x: 0: 2,ch,y: 0: 2,‘=’,s: 0: 2); readln; end. 例程6_2: 设计程序,根据输入的成绩(100~0),给出等级: 90~100为A;70~89为B;60~69为C;0~59为D。 programex6_2; var x: real; y: integer; begin writeln('QingShuRuChengJi: '); readln(x); y: =trunc(x)div10; caseyof 10,9: writeln('A'); 8,7: writeln('B'); 6: writeln('C'); 5,4,3,2,1,0: writeln('D'); elsewriteln('ShuRuCuoWu! '); end; readln; end. 联系方式: 手机—135******** 邮箱—myosbbs@ 博客—
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FP 教程
![提示](https://static.bdocx.com/images/bang_tan.gif)