pascal入门教程第一章认识程序Word格式.docx
- 文档编号:989786
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:20
- 大小:74.01KB
pascal入门教程第一章认识程序Word格式.docx
《pascal入门教程第一章认识程序Word格式.docx》由会员分享,可在线阅读,更多相关《pascal入门教程第一章认识程序Word格式.docx(20页珍藏版)》请在冰点文库上搜索。
用来描述程序中用到的数据属性。
它分为常量说明和变量说明两部分。
执行部分。
它的作用是通知计算机执行指定的操作,如果一个程序中不写执行部分,在程序运行时计算机什么工作也不做。
执行部分以“BEGIN”开始,以“END.”结束(注意:
“END.”后面有一个句点,表示整个程序结束)。
它们中间是一些执行具体操作的语句,以分号作为语句间的分隔符,Being和end应成对出现。
3.常量是指要程序运行过程中,其值不能被改变的量。
本程序中第二、三行是“常量说明区”,用来定义常量,也就是给常量取个名字并用该名字标识符来代表它,如本例中用到的圆周率就是一个不会改变的量,于是可以将pi定义为常数3.14159。
这样在程序中凡出现pi处,都看作和3.14159相同。
4.变量代表了一个存储单元,该单元中存放的数值是可变的,故称为变量。
如游戏“魂斗罗”中玩者命的个数最初为3,当你死了一次命的个数减少一个,这里命的个数就是一个变量(或者说命的个数存储在一个存储单元中)。
可以看出在程序运行过程中,其值可以改变的量,称为变量。
5.程序的书写格式一般不影响程序的功能,但为了使程序的结构清晰,易于阅读,注意要采取紧缩对齐格式书写。
程序中{……}内的内容是对语句的注释,不影响程序的实际运行。
6.系统的启动:
在运行系统目录下的启动程序fp.exe,即可启动系统。
屏幕上出现如图1所示的集成环境。
最顶上一行为主菜单。
中间蓝色框内为编辑窗口,在它个编辑窗口内可以进行程序的编辑。
最底下一行为提示行。
7.新建程序窗口
按F10进行主菜单,选择FILE菜单,执行其中New命令。
就可建立一个新的程序窗口(默认文件名为Noname01.pas或Noname02.pas等)。
8.程序的输入、编辑与运行
在当前程序窗口中,一行一行的输入程序。
事实上,程序窗口是一个全屏幕编辑器。
所以对程序的编辑与其它编辑器的编辑方法类似,这里不再重复。
当程序输入完毕之后,一般要先按Alt+F9(或执行compile菜单中compile命令)对程序进行编译。
如果程序有语法错误,则会弹出compilemessag窗口显示错误信息。
若无语法错误,则窗口正中央会出现一个对话框,提示编译成功。
接下来,我们可以运行程序了。
程序的运行可以通过按ALT+R打开RUN菜单中的RUN命令,或直接按快捷键CTRL+F9。
则可以在用户窗口中输出运行结果。
通常在程序运行结束后系统回到Pascal系统的集成环境,因此要查看运行结果,要按ALT+F5将屏幕切换到用户屏幕。
9.程序的保存与打开:
当程序第一次运行时,系统就要求用户保存,并在屏幕上会出现一个对话框要求输入文件名(默认扩展名为.pas)。
。
当我们把程序修改后想再次保存,就可以通过按F2键(或执行File菜单中的save命令)来保存程序。
当我们要将磁盘上的程序文件中的PASCAL程序装入窗口时,可按F3(或执行File菜单中的Open命令)来装入程序,此时系统也会弹出一个对话框要求输入要打开的文件名,或直接在文件对话框列表中选择所要的文件,然后回到打开文件。
【同步练习】
1.阅读下列程序,分析程序的结构,指出其中变量的个数,并上机运行。
programp1_1_2(input,output);
var
a,b,h,s:
begin
write(´
inputa,b,h:
´
readln(a,b,h);
s:
=(a+b)*h/2;
writeln(´
s=´
6);
end.
[运行示例]
3↙4↙5↙(下划线上的内容需要从键盘输入,其中“↙”表示回车键)
S=16.000000
第2节顺序结构的程序实例
输入任意两个数,将顺序交换后输出,例如输入两数为45、32,输出则为32、45。
【问题分析】
开始
输入x,y
S<
——x
X<
——y
Y<
——s
输出x,y
结束
由于涉及到的两个数是任意的,不能固定大小,所以在这里设置两个变量来存放着两个数值。
在做题之前,我们联想一下生活中的实例,如果有满满的两杯水,我们要将两个杯中的水交换,常要借助于第三个杯子,第一步将第一杯水倒入第三个杯子中,第二步将第二杯水倒入第一个杯子中,第三步将第三杯水倒入第二个杯子中。
通过以上三步后,两个杯中的水就被交换了。
在本题中我们将两个数设置为两个变量X,Y,再引入一个中间变量S,在前面我们提到变量代表了一个存储单元,该单元中存放的数值是可变的,那么我们可以将变量理解为一种容器,只不过这里放置的不是水这样的物品,而是数值。
两个变量值交换,我们可以采取顺序结构流程图。
Programp1_2_1(input,output);
var
x,y,s:
integer;
begin
writeln(‘请输入两个数:
’);
readln(x,y);
=x;
x:
=y;
y:
=s;
writeln(‘输出两个数:
’,x,’’,y);
end.
请输入两个数:
45↙32↙
输出两个数:
3245
1.程序是由若干条语句组成的。
一条语句完成一个动作或者实现一个功能,若干条语句组合在一起就完成了整个程序的任务。
像本例这样按照程序的语句顺序逐句执行的程序,我们称之为顺序结构的程序。
2.本例顺序结构的程序流程图和结构化流程图如下:
图1.1顺序结构的程序流程图和结构化流程图
3.一个程序中可能要使用到若干个变量,如本程序中使用了3个变量,为了区别不同的变量,必须给每个变量(存贮单元)取一个名(称为变量名),该变量(存贮单元)存放的值称为变量的值,变量中能够存放的值的类型就是变量的类型,如本程序中就是设置为整型。
变量说明的一般格式:
VAR
<
变量标识符>
[,<
]:
类型>
;
(中括号内部分表示可省,下同)
其中VAR是pascal保留字,表示开始一个变量说明段,每个变量标识符或由逗号隔开的多个变量标识,必须在它的冒号后面说明成同一类型。
一个程序中,可以说明许多不同类型的变量,每种类型变量之间用分号隔开,共用一个VAR符号。
例如:
age,day:
amount,average:
其中,Integer(整型)、Real(实型)是标准标识符,它们是“类型标识符”,代表了确定的类型,如age和day被定义为整型变量,amount和average被定义为实型变量。
4.变量既然代表一个存储单元,其值是可变的,那么其中的值是怎么提供的,又是怎么改变的呢?
可以通过赋值语句来进行。
赋值语句的格式:
变量名:
=表达式;
其中"
:
="
称为赋值号。
执行过程:
计算机先计算赋值号右边表达式的值,然后将表达式的值赋给变量名代表的变量。
如:
A:
=24;
A:
=A+1
5.输出语句的作用是将程序运算的结果输出到屏幕或打印机等输出设备。
这里通常是指输出到屏幕。
输出语句的两种格式
1write语句
格式Write(表达式1,表达式2,……);
如:
write(1.2,3.4,5);
write('
MynameisLiping'
②writeln语句
格式:
Write(表达式1,表达式2,……)或writeln
6.输出语句的功能:
计算机执行到某一输出语句时,先计算出输出语句中的每个表达式的值,并将每一个表达式的值一个接一个地输出到屏幕上。
Write语句与writeln语句格式上都相似,但它们在功能上有所不同,两个语句的区别在于,write语句将其后括号中的表达式一个接一个输出后,没有换行。
而writeln语句则在输出值后换行。
7.FreePascal向程序设计者提供了丰富的数据类型,其中最基本的几种数据类型是:
整型、实型、布尔型和字符型。
8.一个整型数据用来存放整数,整型数据可以是正整数、负整数和整数零。
FreePascal支持五种预定义整型,它们是短整型(Shorint)、整型(integer)、长整型(Longint)、字节型(Byte)和字类型(Word),每一种类型规定了相应的整数取值范围以及所占内存字节数(一个字节为8个二进制位)。
integer类型的取值范围是-32768..32767,Longint类型的取值范围是-2147483648..2147483647。
试编一程序,输入一梯形的上底、下底、高,求该梯形的面积。
【问题分析】
整个程序分为三段:
输入数据、计算面积、输出结果。
程序中用a,b,h三个变量分别存放梯形的上、下底与高,S存放面积。
要使用这些变量都要先说明,程序的执行部分中先输入上、下底与高,接着求面积S,最后输出结果S。
在这里根据情况要将变量定义为实型。
programp1_2_2;
vara,b,h,s:
{程序说明部分}
write('
Inputa,b,h:
readln(a,b,h);
{程序执行部分}
s:
write('
10:
3);
1.在程序中变量获得一个确定的值,固然可以用赋值语句,但是如果需要赋值的变量较多,或变量的值经常变化,则使用本节介绍的输入语句──读语句,将更为方便。
读语句是在程序运行时由用户给变量提供数据的一种很灵活的输入动作,它有两种格式:
read(<
变量名表>
readln[(<
)];
其中变量名表是用逗号隔开的若干个变量名组成的。
功能:
从标准输入文件(一般对应着键盘)中读入数据,并依次赋给相应的变量。
说明:
Ⅰ.执行到read或readln语句时,系统处于等待状态,等待用户从键盘上输入数据,系统根据变量的数据类型的语法要求判断输入的字符是否合法。
Ⅱ.在输入数值型(整型或实型)数据时,数据间要用空格或回车分隔开各个数据,输入足够个数的数据,否则仍要继续等待输入,但最后一定要有回车,表示该输入行结束,直到数据足够,该读语句执行结束,程序继续运行。
Ⅲ.read语句与readln语句的第一个区别是:
read语句是一个接一个地读数据,在执行完本Read语句(读完本语句中变量所需的数据)后,下一个读语句接着从该数据输入行中继续读数据,也就是说,不换行。
2.一个实型数据用来存放实数。
实型数据可以是正实数、负实数和实数零。
实型数据一般用小数或指数形式(亦称科学表示法)表示。
例如:
+1993.33,3.5E+8(=3.5*10
),-0.5E-3(=-0.5*10
),-20.0,-418E3(=-418*10
),0.0等都是全法实数型数。
Real的取值范围是2.9*10-39—1.7*1038。
3.Freepascal语言中的算术表达式是由符合其语法规定的运算对象(包括常量、变量、函数)、算术运算符、圆括号组成的有意义的式子。
A+3.14159*5/8.4-Abs(-1123)。
4.常用的有以下6个算术运算符:
① +(加)
② -(减)
③ *(乘)
④ /(实数除):
得到结果为实型.如5.0/2.0=2.5,5/2=2.5,4/2=2.0而不等于2
⑤ DIV(整除):
只能用于整数运算,即除数和被除数均为整型,结果也为整型。
如10DIV2=5,10DIV3=3,5DIV10=0。
-15DIV4=-3。
DIV运算只取商的整数部分,参与DIV运算的两个对象不能为实型。
⑥ MOD(求余):
也只能用于整数运算,结果为整数。
10mod4=2,-17mod4=-1,4mod(-3)=1,-4mod3=-1,即amodb=a-(adivb)*b。
5.如果一个表达式里出现两个或两个以上的运算符,则必须规定它们的运算次序。
pascal规定:
1表达式中相同优先级的运算符,按从左到右顺序计算;
2表达式中不同优先级的运算符,按从高到低顺序计算;
3括号优先级最高,从内到外逐层降低;
在算术运算中运算符的优先顺序与数学上的四则运算一致,即“先乘除后加减”(注:
“MOD”、“DIV”运算的优先级与“*”、“/”相同)。
1、有三个小朋友甲乙丙。
甲有50粒糖果,乙有43粒糖果,丙有13粒糖果。
现在他们做一个游戏。
从甲开始,将自己的糖分三份,自己留一份,其余两份分别给乙与丙,多余的糖果自己吃掉,然后乙与丙也依次这样做。
问最后甲、乙、丙三人各有多少粒糖果?
问题分析:
这个问题中我们关心的是在游戏过程中每个小朋友的糖果个数,且他们所拥有的的糖果数是在变化的。
因此可用a,b,c三个变量分别存放甲乙丙三个小朋友在某一时刻所拥有的糖果数。
对于每人,分糖后,他的糖果数一定为原来的糖果数div3(因为分糖过程糖果的数目不一定都刚好分完,用整除恰恰可以表示多余的糖自己吃掉)。
而其他两人则增加与这个小朋友现在拥有的一样的糖果。
programex2;
varA,B,C:
begin
A:
=50;
B:
=43;
C:
=13;
{初始时每个小朋友所拥有的糖果数}
=Adiv3;
B:
=B+A;
=C+A;
{甲小朋友分糖果后,每个人拥有的糖果数变化情况}
B:
=Bdiv3;
=A+B;
=C+B;
{乙小朋友分糖果后,每个人拥有的糖果数变化情况}
C:
=Cdiv3;
=A+C;
=B+C;
{丙小朋友分糖果后,每个人拥有的糖果数变化情况}
writeln('
A='
A,'
B='
B,'
C='
C);
{输出结果}
readln;
end.
[运行示例]
A=51B=35C=16
【课外练习】
1.使用PASCAL语言在屏幕上输出自己的班级和姓名。
2.已知一个学生的语文成绩为89,数学成绩为96,外语成绩为99,编程求他的总分和平均成绩。
3.输入一个三位自然数,把这个数的百位数与个位数对调,输出对调后的数。
第3节两种可能的选择结构程序实例
输入一个整数a,判断是否为偶数。
(是输出“yes”否则输出“no”)。
这是一个需要从键盘上输入数据a,然后输出其是否为偶数。
问题的关键是偶数的判断,我们知道如果一个数能被2整除,余数为0,那么它就是偶数。
根据前面学到的知识当amod2=0时a为偶数。
【算法设计】
◆自然语言
①输入数a;
②判断a是否为偶数;
③如果是偶数,那么输出’yes’;
④如果不是偶数,那么输出’no’;
◆结构化流程(N-S)图
图1.2结构化流程(N-S)图
Programp1_3_1;
Vara:
Begin
Write('
a='
readln(a);
If(amod2=0)thenwriteln('
yes'
) Elsewriteln('
no'
Readln;
End.
a=16
yes
1.
在日常生活中,我们经常遇到根据具体情况的不同而去做具体的事,比如:
若星期天下雨,我就在家看书,否则我就去踢足球。
我们可以画出这个语句的流程图(N-S图)(见图1):
A>
星期天下雨
Y
N
打印—A
打印A
踢足球
在家
看书
图1图2
2.if格式
第一种:
IF<布尔表达式>THEN语句;
第二种:
IF<布尔表达式>THEN语句1ELSE语句2;
3.功能
Ⅰ.执行IF语句时,先计算<布尔表达式>的值,若为TRUE则执行语句,否则不执行任何操作。
Ⅱ.执行IF语句时,先计算<布尔表达式>的值,若为TRUE则执行语句1,否则执行语句2;
4.条件语句的规范书写:
条件语句(尤其是格式二形式)是完整的一条语句,中间不应该有分号,以免出错。
最好书写成如下的锯齿形式,以使程序结构清晰,并便于阅读。
if条件then语句1
else语句2;
5.在前面,我们学习了整型(integer)与实型(real)。
它们都是数值型的(即值都为数)。
布尔型(Boolean)也是一种基本的数据类型。
这种类型只有两种值,即“真”与“假”,“真”用ture表示,“假”用False表示,所以布尔类型只有TRUE与FALSE两个常量。
6.如果我们将某些变量说明成布尔型,那么这些变量就是布尔变量,它们只能用于存放布尔值(ture或false)。
例如,VARA,B:
BOOLEAN;
7.用小括号、>
、<
、>
=、<
=、=、<
>
将两个算术表达式连接起来的式子就称为关系表达式(比较式),关系表达式的值为布尔值,如3>
5的值为FALSE。
1.输入两个整数,输出其中最大的数。
我们用a,b表示输入的两个数,引入max表示其中最大的数,将a,b比较后较大的数送给max。
Programp1_3_2;
Vara,b,max:
Begin
Writeln(‘inputa,b=’);
Readln(a,b);
Ifa>
=bthenmax:
=aelsemax:
=b;
Writeln(‘max=’;
max);
End.
inputa,b=415
max=15
1.从键盘上任意输入一个正数n,判断它是奇数还是偶数.
2.根据输入的学生成绩判断是否及格,及格输出(‘pass!
’),否则输出(‘fail’).
3.输入一个年号,判断它是否为闰年。
第4节循环结构程序实例
输出1-100之间的所有偶数。
从1开始直至100,对每个数进行判断,如果是偶数就输出。
判断方法就是将该数除2取余数,如余数为0则为偶数,反之就不是,共判断100次。
这是有规律的重复运算,应该用循环来解决。
用变量I来表示要判断的数,I初值为1,每判断1次I值加1,直至100。
programp1_4_1;
vari:
fori:
=1to100do
ifimod2=0thenwrite(i:
1.在实际应用中,会经常遇到许多有规律性的重复运算,这就需要掌握循环结构程序设计。
在Pascal语言中,循环结构程序通常由三种循环语句来实现。
它们分别为FOR循环、当循环和直到循环。
通常将一组重复执行的语句称为循环体,而控制重复执行或终止执行由重复终止条件决定。
因此,重复语句是由循环体及重复终止条件两部分组成。
2.for语句的一般格式
for<
控制变量>
=<
表达式1>
to<
表达式2>
do<
语句>
downto<
其中for、to、downto和do是Pascal保留字。
表达式1与表达式2的值也称为初值和终值。
3.For循环是“计数型循环”,当for语句确定之后,则循环次数也就确定,如上例是循环次数是(100-1)+1=100,一般用公式表示为:
(终值-初值)+1
4.①先将初值赋给左边的变量(称为循环控制变量);
2判断循环控制变量的值是否已“超过”终值,如已超过,则跳到步骤⑥;
3如果未超过终值,则执行do后面的那个语句(称为循环体);
4循环变量递增(对to)或递减(对downto)1;
5返回步骤②;
6循环结束,执行for循环下面的一个语句。
计算从0到某数a之间所有奇数的和。
(a>
1)
本题中由于a值不定,所以不能确知最大的奇数是几,只知道它是不大于a且最接近它的奇数,但最小的奇数是1,所以对从1开始的奇数,依次进行求和并将其与a比较大小.
programp1_4_2;
varodds,limit,sum:
readln(limit);
sum:
=0;
odds:
=1;
whileodds<
=limitdo
begin
sum:
=sum+odds;
odds:
=odds+2
end;
writeln(sum:
end.
1.for循环有时也称为计数循环,当循环次数未知,只能根据某一条件来决定是否进行循环时,用while语句或repeat语句实现循环要更方便。
2.while语句的形式为:
while<
布尔表达式>
;
其意义为:
当布尔表达式的值为true时,执行do后面的语句。
3.while语句的执行过程为:
1判断布尔表达式的值,如果其值为真,执行步骤2,否则执行步骤4;
2执行循环体语句(do后面的语句);
3返回步骤1;
4结束循环,执行while的下一个语句。
3.直到循环语句的一般形式:
Repeat
<
语句1>
:
语句n>
until<
1.求s=1+2+3+…+100的值。
2.编程求5!
(5!
=1*2*3*4*5)
3.输入一组整数,统计出其中正数、负数的个数并打印出来,当输入0时,程序结束。
4.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- pascal 入门教程 第一章 认识 程序