Pascal教程上机指导1056.pdf

上传人:得****3 文档编号:83515000 上传时间:2023-03-31 格式:PDF 页数:56 大小:1.56MB
返回 下载 相关 举报
Pascal教程上机指导1056.pdf_第1页
第1页 / 共56页
Pascal教程上机指导1056.pdf_第2页
第2页 / 共56页
点击查看更多>>
资源描述

《Pascal教程上机指导1056.pdf》由会员分享,可在线阅读,更多相关《Pascal教程上机指导1056.pdf(56页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、1 第一章 Pascal语言 1.1初识 Pascal语言 一、Pascal语言概述 Pascal是一种计算机通用的高级程序设计语言。PASCAL语言一种计算机编程的高级语言,它是瑞士苏黎世联邦工业大学的 N 沃思(Niklaus Wirth)教授于 1968年设计完成的,1971年正式发表。为纪念法国数学家 Pascal,把此高级语言命名为 Pascal语言。其主要特点有:严格的结构化形式;丰富完备的数据类型;运行效率高;查错能力强。二、为什么要学习 Pascal 语言?在高级语言中:初级:QBASIC、中级:Pascal、高级:C 语言、VB 等 三、如何学好 Pascal语言?1、注意

2、Pascal程序的规范语法,如;、;、:=的使用等;2、注意掌握算法,做到举一反三,一通百通;3、认真完成作业与上机实验,理论与上机并重;四、从一个 Pascal程序实例看 Pascal程序的结构 例 1 已知圆的半径 R 为 16CM,编程求它的周长 L 和面积 S。1、用 QBASIC编程:PI3.1416 R 16 L 2*PI*R S PI*R*R PRINT“L”,L PRINT“S”,S END 2、用 Pascal语言编程:PROGRAM PAS01(INPUT,OUTPUT);程序首部 CONST 常量定义 PI=3.1416;说明部分 VAR 变量说明 R:integer;L

3、,S:REAL;BEGIN R:=16;程序休 L:=2*PI*R;语句部分 S:=PI*R*R;WRITE(L,L);WRITE(S,S);END.2 从上面的例子中可以看出:1.一个 PASCAL程序由程序首部和程序体两部分组成。程序首部以分号结束,程序体以圆点结束。2.程序首部包括三项内容,其顺序是:(1)PROGRAM,Pascal程序标志,写在程序的开头。(2)程序名,必须由英文字母开头,由作者自行定义。(3)参数表,由 INPUT,OUTPUT组成,表示标准输入、输出文件。3.程序体是程序的主体,由说明部分和语句部分组成。(1)说明部分有常量说明、变量说明、类型说明、函数说明、过程

4、说明等,分别以分号结尾。(2)语句部分是程序的执行部分,以 BEGIN开始,END.结尾,用来描述程序所执行的算法和操作。中间的每一语句均须以分号结尾。(3)语句部分中,变量赋值用:=,而不是,输出用 WRITE,而不是用 PRINT。练习 模仿编程:已知三个数 A 15,B 234,C 348,编程求三个数的平均值 P。四、Turbo Pascal语言系统的使用 目前,Turbo Pascal7.0是最常用的 Pascal语言系统。1、系统的启动 在运行系统目录下的启动程序 TURBO.EXE,即可启动系统。屏幕上出现如图 1 所示的3 集成环境。2、Turbo Pascal系统集成环境简介

5、 最顶上一行为主菜单。中间蓝色框内为编辑窗口,在编辑窗口内可以进行程序的编辑。最底下一行为提示行,显示出系统中常用命令的快捷键,如将当前编辑窗口中文件存盘的命令快捷键为 F2,获得系统帮助的快捷键为 F1,等等。3、新建程序窗口 按 F10进行主菜单,选择 FILE菜单,执行其中 New命令。就可建立一个新的程序窗口(默认文件名为 Noname00.pas或 Noname01.pas等)。4、程序的输入、编辑与运行 在当前程序窗口中,一行一行的输入程序。事实上,程序窗口是一个全屏幕编辑器。所以对程序的编辑与其它编辑器的编辑方法类似。当程序输入完毕之后,一般要先按 Alt+F9(或执行 comp

6、ile菜单中 compile命令)对程序进行编译。如果程序有语法错误,则会在程序窗口的第一行处显示第一个红色错误信息。若无语法错误,则窗口正中央会出现一个对话框,提示编译成功。接下来,我们可以运行程序了。程序的运行可以通过按 ALT+R打开 RUN菜单中的 RUN命令,或直接按快捷键 CTRL+F9。则可以在用户窗口中输出运行结果。通常在程序运行结束后系统回到 Pascal系统的集成环境,因此要查看运行结果,要按 ALT+F5将屏幕切换到用户屏幕。5、程序的保存与打开 当我们想把程序窗口中的程序存入磁盘时,可以通过按 F2 键(或执行 File菜单中的save命令)来保存程序。第一次保存文件时

7、屏幕上会出现一个对话框要求输入文件名(默认扩展名为.pas)。当我们要将磁盘上的程序文件中的 PASCAL程序装入窗口时,可按 F3(或执行 File菜单中的 Open命令)来装入程序,此时系统也会弹出一个对话框要求输入要打开的文件名,或直接在文件对话框列表中选择所要的文件,然后回到打开文件。1.2 Pascal上机实验 一、观察 TURBO PASCAL窗口结构:菜单有:等十项。运行程序用 键,保存程序点击 菜单下的 命令。二、回答下列问题:1、如何启动 TURBO PASCAL?2、如何向 TURBO PASCAL窗口输入程序?3、如何编译、运行程序?如何看到运行的结果?4、如何在指定的目

8、录中保存程序文件?5、输入一个新程序前,应先做什么工作?4 三、完成下列操作:6、在 TURBO PASCAL中输入下列程序:PROGRAM Pro1(INPUT,OUTPUT);VAR CH:char;BEGIN FOR CH:=a TO z DO WRITE(CH);WRITELN;FOR CH:=z DOWNTO a DO WRITE(CH);WRITELN;END.7、运行上述程序的结果,屏幕上出现结果为:8、把这个程序以“PRO1.PAS”保存到“user”文件夹。四、完成下列操作:9、在输入新程序前,先运行一下“File”菜单下的“New”命令。10、把上题保存的“PRO1.PAS

9、”程序打开,运行,看看运行结果有没有变化?五、已知圆的半径 R,编程求它的周长 L 和面积 S。11、所求程序编制如下:PROGRAM PRO2(input,output);CONST PI=3.1416;VAR r:integer;S,L:REAL;BEGIN readln(r);L:=2*PI*r;S:=PI*sqr(r);WRITE(S=,S);Writeln(L=,L);readln END.5 1.3 Pascal顺序程序 一、复习:上机时要注意 第一步:保存程序 Save(F2)第二步:运行程序 Run(Ctrl+F9)第三步:显示运行结果 User Screen(Alt+F5)二

10、、常量、变量与算术表达式 1、常量 在程序运行过程中,其值不能被改变的量称为常量。如 77、3,145.88、abc、true等。整型常量 整型常量采用我们平常使用的十进制整数表示。如 138,0,-512等都是整型常量,而18.或 18.0 都不是整型常量。实型常量 实型常量包括正实数、负实数和实数零。pascal中表示实型常量的形式有两种。十进制表示法 这是人们日常使用的带小数点的表示方法。如 0.0,-0.0,+5.61,-8.0,-6.050等都是实型常量。科学记数法 科学记数法是采用指数形式的表示方法,如 1.25105可表示成 1.25E+05。在科学记数法中,字母E表示 10 这

11、个 底数,而 E之前为一个十进制表示的小数,称为尾数,E之后必须为一个整数,称为 指数。如-1234.56E+26,+0.268E-5,1E5是合法形式。字符常量 在 Pascal语言中,字符常量是由单个字符组成,所有字符来自 ASCII字符集,共有256 个字符。在程序中,通常用一对单引号将单个字符括起来表示一个字符常量。如:a,A,0等。4 布尔常量 布尔型常量仅有两个值,真和假,分别用标准常量名 true和 false表示。它们的序号分别为 1 和 0。5符号常量 一个常量即可以直接用字面形式表示(称为直接常量,如 124,156.8),也可以用一个标识符来代表一个常量,称为 符号常量。

12、但符号常量必须在程序中的说明部分定义,也就是说先定义,后使用。定义符号常量的一般格式:CONST=说明:常量说明部分以关键字 const开头,后面的标识符为常量标识符,其中=号后的常量为整数、实数、字符、字符串(字符、字符串常量在后面章节中将作介绍)。而且,6 在常量说明部分可以将几个常量说明成符号常量,共用一个关键字const。例如:符号常量一经定义,在程序的执行部分就只能使用该常量标识符,而不能修改其值。使用符号常量比直接用数值更能体现 见名知义 的原则,也便于修改参数,故一个较好的程序中,应尽量使用符号常量,在执行部分基本上不出现直接常量。2、变量 变量代表了一个存储单元,其中的值是可变

13、的,故称为变量。如游戏 魂斗罗 中玩者命的个数最初为 3,当你死了一次命减少一,这里命的个数就是一个变量(或者说命的个数存储在一个存储单元中)。即在程序运行过程中,其值可以改变的量,称为变量。变量有三个要素是:变量名、变量类型、变量值。一个程序中可能要使用到若干个变量,为了区别不同的变量,必须给每个变量(存贮单元)取一个名(称为变量名),该变量(存贮单元)存放的值称为变量的值,变量中能够存放值的类型为变量的类型。例如 魂斗罗 游戏中用于存放 命 的变量,在游戏程序中的名字可取为 N,它的类型为整型,游戏初始时这个变量的值为 3。1 变量名 用一个合法的标识符代表一个变量。如 n,m,rot,t

14、otal 等都是合法变量名。在程序中用到的变量必须在说明部分加以说明,变量名应遵循自定义标识符的命名规则,并注意见名知义 的原则,即用一些有意义的单词作为变量名。自定义标识符 的命名规则为:自定义标识符必须以字母(包含下划线_)开头,后面的字符可以是字母或数字。标识符长度不超过 63 个字符。2 变量的类型 常量是有类型的数据,变量在某一固定时刻用来存放一个常量,因此也应有相应的类型。如整型变量用来存放整数,实型变量用来存放实数。3 变量说明 在程序中若要使用变量,变量的名称及类型在程序的变量说明部分加以定义,变量的值则在程序的执行部分中才能赋给。变量说明的一般格式:VAR,:;其中 VAR是

15、 pascal保留字,表示开始一个变量说明段,每个变量标识符或由逗号隔开的多个变量标识,必须在它的冒号后面说明成同一类型。一个程序中,可以说明许多不同类型的变量,每种类型变量之间用分号隔开,共用一个 VAR符号。例如:var age,day:integer;amount,average:real;其中,Integer(整型)、Real(实型)是标准标识符,它们是 类型标识符,代表了确定的类型,如 age和 day 被定义为整型变量,amount和 average被定义为实型变量。一旦定义了变量,就确定了它的类型,也就是说,就确定了该变量的取值范围和对该变量所能进行的运算。7 3、算术表达式 算

16、术表达式的定义 pascal语言中的算术表达式是由符合 pascal语法规定的运算对象(包括常量、变量、函数)、算术运算符、圆括号组成的有意义的式子。如:A+3.14159*5/8.4-Abs(-1123)算术运算符 常用的有以下 6 个算术运算符:(加)(减)(乘)(实数除)得到结果为实型.如 5.0/2.0=2.5,5/2=2.5,4/2=2.0而不等于 2。DIV(整除)DIV它要求除数和被除数均为整型,结果也为整型。如 10 DIV 2=5,10 DIV 3=3,5 DIV 10=0.-15 DIV 4=-3。DIV运算只取商的整数部分,参与 DIV运算的两个对象不能为实型。mod(求

17、余),也只能用于整数运算,结果为整数。例如:10 mod 4=2,-17 mod 4=-1,4 mod(-3)=1,-4 mod 3=-1,即 a mod b=a-(a div b)*b。(3)运算优先顺序 如果一个表达式里出现两个或两个以上的运算符,则必须规定它们的运算次序。pascal规定:表达式中相同优先级的运算符,按从左到右顺序计算;表达式中不同优先级的运算符,按从高到低顺序计算;括号优先级最高,从内到外逐层降低;在算术运算中运算符的优先顺序与数学上的四则运算一致,即 先乘除后加减(注:MOD、DIV运算的优先级与 、/相同)。三、赋值语句 变量既然代表一个存储单元,其值是可变的,那么

18、其中的值是怎么提供的,又是怎么改变的呢?可以通过赋值语句来进行。1、赋值语句的格式 变量名:=表达式;其中:=称为赋值号。2、执行过程 计算机先计算赋值号右边表达式的值,然后将表达式的值赋给变量名代表的变量。如:A:=(9*8)-(2-1);A:=A+1 四、读语句(键盘输入语句)在程序中变量获得一个确定的值,固然可以用赋值语句,但是如果需要赋值的变量较多,或变量的值经常变化,则使用本节介绍的输入语句读语句,将更为方便。读语句是在程序运行时由用户给变量提供数据的一种很灵活的输入动作,它有两种格式:1.读语句的一般格式:read();readln();其中变量名表是用逗号隔开的若干个变量名组成的

19、。8 功能:从标准输入文件(即 INPUT,一般对应着键盘)中读入数据,并依次赋给相应的变量。说明:(1)执行到 read 或 readln语句时,系统处于等待状态,等待用户从键盘上输入数据,系统根据变量的数据类型的语法要求判断输入的字符是否合法。如执行 read(a)语句,a 是整型变量,则输入的字符为数字字符时是合法的,当输入结束时,则自动将刚接受的一串数字字符转换为整数赋给变量 a。(2)在输入数值型(整型或实型)数据时,数据间要用空格或回车分隔开各个数据,输入足够个数的数据,否则仍要继续等待输入,但最后一定要有回车,表示该输入行结束,直到数据足够,该读语句执行结束,程序继续运行。例 1

20、 设 a、b、c 为整型变量,需将它们的值分别赋以 10,20,30,写出对应下列语句的所有可能输入格式。Read(a,b,c);解 根据,即可列出所有可能输入格式 (a)102030 (b)1020 30 (c)10 2030 (d)10 20 30 其中表示回车键。下同。(3)read 语句与 readln语句的区别是:read 语句是一个接一个地读数据,在执行完本 Read 语句(读完本语句中变量所需的数据)后,下一个读语句接着从该数据输入行中继续读数据,也就是说,不换行。如:Read(a,b);Read(c,d);Read(e);如果输入数据行如下:123456 则 a,b,c,d,e

21、 的值分别为 1,2,3,4,5,如果后面无读语句则数据 6 是多余的,这是允许的。Readln则不同,在读完本 Readln语句中变量所需的数据后,该数据行中剩余的数据多余无用,或者说,在读完本 Readln语句中变量所需数据后,一定要读到一个回车,否则多余的数据无用。(4)为了避免可能出现的错误,建议在程序中按下列原则使用读语句:(A)如果没有特殊需要,在一个程序中尽量避免混合使用 read 语句和 readln语句;(B)尽量用 readln语句来输入数据,一个数据行对应一个readln语句;(C)由于执行read或readln语句时,系统不会提供任何提示信息,因此,编程时最好在 rea

22、dln语句之前加以适当提示,例如:9 write(Input a,b,c:);readln(a,b,c);在执行时,屏幕上显示:Input a,b,c:其中,为光标。执行 readln语句后,系统处于待待输入状态,只有输入了所需数据后才继续往下执行。五、输出语句 输出语句的作用是将程序运算的结果输出到屏幕或打印机等输出设备。这里通常是指输出到屏幕。(一)输出语句的两种格式 1、write语句 格式 Write(表达式 1,表达式 2,);如:write(1,2,3,4);write(1.2,3.4,5);write(My name is Liping);2、writeln语句 格式:Write

23、(表达式 1,表达式 2,)或 writeln(二)输出语句的功能 计算机执行到某一输出语句时,先计算出输出语句中的每个表达式的值,并将每一个表达式的值一个接一个地输出到屏幕上。Write语句与 writeln语句格式上都相似,但它们在功能上有所不同,两个语句的区别在于,write语句将其后括号中的表达式一个接一个输出后,没有换行。而 writeln语句则在输出各个表达式的值后换行。例如以下两个程序段的输出分别为:write(1,2,3,4);write(5,6);输出为:123456 writeln(1,2,3,4);write(5,6);输出为:1234 56 六、应用例析 例 1 已知某

24、梯形的上底 A=13,下底 B=18,高 H=9,求它的面积 S。Program ex01(input,output);Var A,B,H:integer;10 S:REAL Begin A:=13;B:=8;H=9 S:=(A+B)*H/2 Writeln(S=,S);End.思考:试编一程序,从键盘输入一梯形的上底、下底、高,求该梯形的面积。例 2 为水果店编制一个苹果计价程序,从键盘输入苹果重量 W(公斤),按每公斤 5.2元计算应付金额 P。Program ex02(input,output);Var W:REAL;P:REAL Begin Write(W=);read(w);p:=5

25、.2*W Writeln(w=,w,s=,s);End.例 3 某仓库第 1 天有粮食 100吨,第 2 天又调进 20 吨,5 月 3 日卖出库存的一半,第4 天又调进库存的 3 倍的粮食,打印仓库每天的粮食库存?程序可写如下:Program ex03(input,output);Var A:integer;Begin A:=100;Writeln(N1=,A);A:=A+20;Writeln(N2=,A);A:=A div 2;writeln(N3=,A);A=A+A*3;writeln(N4=,A);Readln;End.例 4 有三个小朋友甲乙丙。甲有 50 粒糖果,乙有 43 粒糖果

26、,两有 13 粒糖果。现在他们做一个游戏。从甲开始,将自己的糖分三份,自己留一份,其余两份分别给乙与丙,多余的糖果自己吃掉,然后乙与丙也依次这样做。问最后甲、乙、丙三人各有书多少粒糖果?分析:这个问题中我们关心的是在游戏过程中每个小朋友的糖果个数,且他们所拥有的的糖果数是在变化的。因此可用 a,b,c三个变量分别存放甲乙丙三个小朋友在某一时刻所拥有的糖果数。对于每人,分糖后,他的糖果数一定为原来的糖果数 div 3(因为分糖过程11 糖果的数目不一定都刚好分完,用整除恰恰可以表示多余的糖自己吃掉)。而其他两人则增加与这个小朋友现在拥有的一样的糖果。程序可写如下:program ex04(inp

27、ut,output);var A,B,C:integer;begin A:=50;B:=43;C:=13;初始时每个小朋友所拥有的糖果数 A:=A div 3;B:=B+A;C:=C+A;甲小朋友分糖果后,每个人拥有的糖果数变化情况 B:=B div 3;A:=A+B;C:=C+B;乙小朋友分糖果后,每个人拥有的糖果数变化情况 C:=C div 3;A:=A+C;B:=B+C;丙小朋友分糖果后,每个人拥有的糖果数变化情况 writeln(A=,A,B=,B,C=,C);输出结果 readln;end.注:上程序中倒数第三行中A=表示一个字符串(即用一对单引号括起来的一串字符),对于字符串,输出

28、字符串的内容(即引号内的所得字符,而引号不输出)。以上程序的运行结果为:A=51B=35C=16 七、带格式的输出语句及输入语句 1、写语句的输出格式 在 pascal语言中输出数据时是可以按照一定格式的,对整数隐含的输出形式为按十进制数形式。对实数的输出,隐含的形式是科学记数法形式(如果不想用科学记数法输出而用小数形式输出,要自己另行定义)。事实上,输出语句中的每个输出项中的表达式之后可以加上格式说明,若输出项后没有加格式说明,则数据按系统隐含的格式输出,还可加上一定格式符号按特定格式输出。隐含的输出格式 pascal语言为整型量、实型量、布尔型量和字符串(用一对单引号括起来的字符序列)规定

29、了每种数据所占的宽度(即一个数据占几列),一个数据所占的宽度称为 场宽 或 字段宽。系统给出的隐含场宽称为标准场宽。每一种 pascal版本给定的标准场宽不尽相同。下表给出标准 pascal和 pc 机上两种 pascal版所规定的标准场宽。指定场宽 在写语句中输出项含有格式符号时,就是为了指定场宽。指定单场宽.格式:write(表达式:N)或 writeln(表达式:N),其中 N 为自然数,指定单场宽后,所有数据不再按标准场宽输出,而按指定场宽输出。若数据实际长度小于指定场宽时,则一律 向右靠齐,左留空格。如 write(1234:8);write(abcdef:12)输出结果:1234a

30、bcdef 12 对于标准实型数据指定单场宽时,如果场宽大于标准场宽时,右靠齐按标准场宽格式输出 17 位,左留空格。若场宽小于标准场宽时,第一位仍为符号位,最后四位仍为Enn,中间部分为尾数显示部分。如果指定的宽度小于 8 位,则数据按 8 位格式*.*Enn 输出。指定双场宽 如果输出项是实数时,如果希望输出的实数不用科学记数法输出,而用小数形式输出,可以用指定双场宽方法输出。双场宽输出格式为:write(实型表达式:m:n),其中 m 和 n 都是自然数,m 用以指定整个数据所占的宽度,n 指定输出实数的小数位数。如:write(sqrt(75):9:4);输出:8.6602 如果双场宽

31、不能满足输出数据的最低要求,系统自动突破指定的场宽限制,按实际长度输出。如:write(sqrt(75):5:4);要使小数点后有 4 位数字,而总场宽为 5,是不可能的(因为还有一个小数点,小数点前面还有一个数字)。它最低限度要有 6 列,即输出为:8.6602 例 1写出下列程序在 turbo pascal下的输出结果.program ex05(input,output);const s=abcdefg;var i:integer;r:real;c:char;b:boolean;begin i:=1234;r:=1234.5678;c:=#;b:=true;writeln(i,i:6,i:

32、3);writeln(r,r:12:5,r:8:5);writeln(c,c:5);writeln(s,s:10,s:5);writeln(b,b:5,b:3);end.运行结果如下:123412341234 1.2345678000E+031234.567801234.56780#abcdefgabcdefgabcdefg TRUETRUETRUE 13 八、顺序结构程序设计 例 2 已知 A=253,B=43,输出 A*B的运算式子。即输出如下:253*43=10879 参与程序如下:var a,b:integer;begin a:=253;b:=43;writeln(a,*,b,=,a*

33、b);end.例 3.编程求方程 6X2+7X-50 的两个根。var a,b,c:integer;x1,x2:real begin a:=6;b:=7;c=-5;x1=(-b+sqrt(b*b-4*a*c)/(2*a);x1=(-b-sqrt(b*b-4*a*c)/(2*a);writeln(x1=,x1:8:2,x2=,x2:8:2);end.14 1.4 Pascal上机实验 一、把下列程序输入 PAS程序输入程序编辑窗口:program ex05(input,output);const s=abcdefg;var i:integer;r:real;c:char;begin i:=123

34、4;r:=1234.5678;c:=#;writeln(i,i:6,i:3);writeln(r,r:12:5,r:8:5);writeln(c,c:5);writeln(s,s:10,s:5);end.(1)通过自己思考,你认为程序运行的结果是什么?(2)通过上机运行,程序运行的结果是什么?二、已知某梯形的上底 A=13,下底 B=18,高 H=9,求它的面积 S。1、所求程序编制如下:2、把上述程序输入 PAS程序输入程序编辑窗口,运行结果为:三、编程求方程 6X2+7X-50 的两个根。1、所求程序编制如下:2、把上述程序输入 PAS程序输入程序编辑窗口,运行结果为:15 四、试编一程序

35、,从键盘输入一梯形的上底、下底、高,求该梯形的面积。1、所求程序编制如下:2、把上述程序输入 PAS程序输入程序编辑窗口,从键盘输入一梯形的上底、下底、高分别为 12、18、9,运行结果为:五、为水果店编制一个苹果计价程序,从键盘输入苹果重量 W(公斤),按每公斤 5.2元计算应付金额 P。1、所求程序编制如下:2、把上述程序输入 PAS程序输入程序编辑窗口,从键盘输入苹果重量 W 7.6公斤,运行结果为:六、从键盘输入三个字符,然后把它们按相反顺序输出。1、所求程序编制如下:2、把上述程序输入 PAS程序输入程序编辑窗口,从键盘输入三个字符为 X、Y、Z,运行结果为:七、已知 A=253,B

36、=43,输出 A*B的运算式子。(即输出如下:253*43=10879)1、所求程序编制如下:2、把上述程序输入 PAS程序输入程序编辑窗口,运行结果为:16 八、从键盘输入 3 个数,计算并输出这 3 个数的平均值。1、所求程序编制如下:2、把上述程序输入 PAS程序输入程序编辑窗口,从键盘输入三个数为 12、456、234,运行结果为:九、一只笼子中关着若干只鸡和兔子,现已知鸡和兔子的头总共有 H 只,脚总共有 F 只,编程计算鸡和兔子各有几只?1、所求程序编制如下:2、把上述程序输入 PAS程序输入程序编辑窗口,从键盘输入 H 12,F 40,运行结果为:1.5 Pascal顺序结构程序

37、 一、小测验:从键盘输入 3 个数 A、B、C,计算并输出这 3 个数的平均值 P。(平均值精确到小数后 2 位)例 1一只笼子中关着若干只鸡和兔子,现已知鸡和兔子的头总共有 H 只,脚总共有 F只,编程计算鸡和兔子各有几只?program Pex05(input,output);var F,H,X,Y:integer;begin write(H,F);READLN(H,F);X:(4*H-F)/2;17 Y:H X;writeln(X,X,Y,Y);END.思考:能否正确运行,有什么问题?新课:PASCAL算术运算结果的数据类型 运算符 操作数 1 操作数 1 运算结果的数据类型+,*int

38、eger integer integer integer real Real real integer Real real real Real/integer integer Real integer real Real real integer Real real real Real Div integer integer Integer Mod integer integer integer 上述例题的修改:方法一:X,Y 定义为实型 方法二:X:(4*HF)DIV 2 二、PASCAL标准函数:1、平方函数:SQR(X),X 为一切实数 作用:求 X 的平方值(运算结果的类型与 X 相同

39、)2、平方根函数:SQRT(X),X 为非负实数 作用:求 X 的平方根值(运算结果的类型为实型)3、绝对值函数:ABS(X),X 为一切实数 作用:求 X 的绝对值(运算结果的类型与 X 相同)4、三角函数:SIN(X),COS(X),X 为弧度制 作用:求 X 的正弦、余弦值(运算结果的类型为实型)5、截尾函数:trunc(X),X 为一切实数 作用:截去 X 的小数部分,求 X 的整数部分(运算结果为整型)6、舍入函数:round(X),X 为一切实数 作用:X 的小数部分向整数部分四舍五入(运算结果为实型)如 round(11.5)12 round(11.3)11 round(11.5

40、)12 round(11.3)11 7、前趋函数:pred(X),X 为整型或字符型 作用:求 X 的前一个数(运算结果整型或字符型)8、后继函数:succ(X),X 为整型或字符型 作用:求 X 的后一个数(运算结果整型或字符型)如 pred(5)=4 succ(5)=6 pred(D)=C succ(D)=E 9、判奇函数:odd(X),X 为整型 18 作用:判断 X 是否是奇数(运算结果布尔型)如 odd(5)=true succ(6)=false 三、练习:1、填充:若 a:=9.0,则 spr(a)=sqr(-a)=若 a:=9.0,则 sprt(a)=sqrt(121)=若 a:

41、=3.1416/6,则 sin(a)=cos(a)=若 a:=9.123,则 trunc(a)=trunc(-a)=若 a:=9.123,则 round(a)=round(-a)=若 x=9,则 pred(x)=succ(x+6)=若 x=10,则 odd(x)=odd(x mod 4)=2、求程序运行的结果:program ex05(input,output);var a,b:integer;begin a:=123;b:=56;writeln(a,+,b,=,a+b);writeln(a,-,b,=,a-b);writeln(a,*,b,=,a*b);writeln(a,/,b,=,a/b

42、:8:2);writeln(a,div,b,=,a div b);writeln(a,mod,b,=,a mod b);writeln(a,b,=,ab);writeln(a,b,=,a,b,=,ab);writeln(a,b,=,ab);writeln(sqr(a),sqrt(b+8),,trunc(-5.67);writeln(pred(5),succ(b+8),,odd(a);writeln;end.1、通过自己思考,你认为程序运行的结果是什么?2、通过上机运行,程序运行的结果是什么?四、下列程序有若干错误,把它修改成正确的程序后输入到 PAS程序程序编辑窗口:program 123ex

43、05(input,output)修改为:var a,b:integer;begin;a=253 b=43 writeln(a,*,b,=,a*b)end 1、通过上机运行,程序运行的结果是什么?五、从键盘输入两个整数,输出关于这两个数的各和、差、积、商、整除、求余等六种运算的式子和结果。(其中除法得出的商精确到小数后 3位)1、所求程序编制如下:2、把上述程序输入 PAS程序输入程序编辑窗口,从键盘输入 H 42,F 11,运行结果为:五、某城市 03 年的 GDP为 1125.5亿,04 年的 GDP比 03 年增长 11.2%,编程求该城市 04年的 GDP是多少个亿。(精确到小数后 2

44、位)22 1、所求程序编制如下:2、把上述程序输入 PAS程序输入程序编辑窗口,运行结果为:六、某仓库第 1 天有粮食 100吨,第 2 天又调进 20 吨,5 月 3 日卖出库存的一半,第 4 天又调进库存的 3 倍的粮食,打印仓库每天的粮食库存?1、所求程序编制如下:2、把上述程序输入 PAS程序输入程序编辑窗口,运行结果为:七、有三个小朋友甲乙丙。甲有 50 粒糖果,乙有 43 粒糖果,两有 13 粒糖果。现在他们做一个游戏。从甲开始,将自己的糖分三份,自己留一份,其余两份分别给乙与丙,多余的糖果自己吃掉,然后乙与丙也依次这样做。问最后甲、乙、丙三人各有书多少粒糖果?分析:这个问题中我们

45、关心的是在游戏过程中每个小朋友的糖果个数,且他们所拥有的的糖果数是在变化的。因此可用 a,b,c三个变量分别存放甲乙丙三个小朋友在某一时刻所拥有的糖果数。对于每人,分糖后,他的糖果数一定为原来的糖果数 div 3(因为分糖过程糖果的数目不一定都刚好分完,用整除恰恰可以表示多余的糖自己吃掉)。而其他两人则增加与这个小朋友现在拥有的一样的糖果。1、所求程序编制如下:2、把上述程序输入 PAS程序输入程序编辑窗口,运行结果为:八、从键盘输入一个英文字符,打印出这个字符的前趋和后继字符。1、所求程序编制如下:2、把上述程序输入 PAS程序输入程序编辑窗口,运行结果为:23 第二章 Pascal选择结构

46、程序设计 2.1 Pascal中的 IF 语句 一、if 语句 IF 语句是由一个布尔表达式和两个供选择的操作序列组成。运行时根据布尔表达式求值结果,选取其中之一的操作序列执行。有两种形式的 IF 语句:格式一、if then ;格式二、if then else;格式一:当布尔表达式的值为真,则执行 then后面的语句,值为假时什么也不做,继续执行程序后继语句。格式二:当布尔表达式的值为真,则执行 then后面的语句,值为假时执行 else后面的语句。注意 else前面没有分号,因为分号是两个语句之间的分隔符,而 else并非语句。如果在该处添了分号,则在编译的时候就会认为 if 语句到此结束

47、,而把 else当作另一句的开头,输出出错信息。例 1 求 y=f(x),当 x0时,y=1,当 x=0时,y=0,当 x0 then y:=1;if x=0 then y:=0;if x10 then P:=P*0.75;T:=N*P;Writeln(N=,N,T=,T:8:2);Readln;End.例 3.某车站行李托运收费标准是:10 公斤或 10 公斤以下,收费 2.5元,超过 10 公斤的行李,按每超过 1 公斤增加 1.5元进行收费。试编一程序,输入行李的重量 W,算出托运费 P。(精确到小数后 2 位)program lianxi04(input,output);Var W,P

48、:real;Begin Write(W=);readln(W);If W10 then P:=P*2.5 ELSE P:=10*2.5+(W10)*4.0;Writeln(W=,W:8:2,P=,P:8:2);Readln;End.例 4从键盘输入 3 个数 A、B、C,把其中最大的数打印出来。二、复合语句 在 Turbo Pascal语言 if 语句中被构造的 THEN或 ELSE后只能跟一条语句,当条件选择某个分支的计算要用多个语句描述时,就必须把该分支用 begin和 end括来,写成复合语句。在用 if 语句连续嵌套时,如果你插入适量的复合语句,有利于程序的阅读和理解。复合语句的格式为

49、:BEGIN 语句 1;语句 2;语句 n;END;例 5 从键盘输入 2 个数给变量 X,Y,然后把其中大的数放到 X 中,把小的数放到 Y 中去,输出 X、Y 的值。25 分析如果 X Y,则交换 X 与 Y 的值 program lianxi05(input,output);Var X,Y,T:real;;Begin Write(X,Y=);readln(X,Y);If XY then BEGIN T:X;X:Y;Y:T;END;Writeln(X=,X,Y=,Y);End.例 6输入一个三位数,判断它是否是一个“水仙花数”,是为“YES”,不是为“NO”。(说明:所谓“水仙花数”,是指

50、三位数的各位数字的立方之和等于这个三位数本身。如15313+53+33 program lianxi06(input,output);Var n,a,b,c:integer;;Begin Write(n=);readln(n);a:n div 100;b:(n div 10)a*10 mod 10;c:n a*100b*10;if n=c*c*c+b*b*b+a*a*a then wirteln(yes)else writeln(no);End.练习 1从键盘输入一个正整数,如果是偶数则打印“ER SHU”,是奇数就打印“JI SHU”。(N MOD 20 偶数)练习 2从键盘输入一个年份,如

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁