




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录第一部分 PASCAL语言程序设计1第一章 PASCAL语言基础1第一节 程序的组成与上机调试运行2第二节 常量、变量与数据类型3第三节 表达式与标准函数6第四节 赋值语句、输入与输出语句9习题12第二章 程序的三种基本结构14第一节 顺序结构14第二节 选择结构14第三节 循环结构16习题19第三章 数组21第一节 一维数组21第二节 二维数组及应用24习题25第四章 字符与字符串操作28第一节 字符和字符数组28第二节 字符串变量28第三节 字符串应用举例30习题32第五章 函数与过程34第一节 自定义函数34第二节 自定义过程37第四节 递归41第五节 递归与
2、回溯44习题49第一部分 PASCAL语言程序设计第一章 PASCAL语言基础Pascal语言是瑞士苏黎士工科大学的Niklans Wirth(沃思)1971年发表的,是为了纪念17世纪法国著名哲学和数学研究者Blaisc Pascal而将它命名为Pascal程序设计语言。Pascal语言是信息学奥赛中普遍使用的程序设计语言。第一节 程序的组成与上机调试运行一、程序的组成我们先看一道例题。例1-1 输入两个整数a和b,计算a和b的和(a+b)。【参考程序】program a1(input,output); /程序首部 var a,b,c:integer; /
3、程序说明部分,a,b,c被说明为整型变量 begin /程序执行部分,下面是程序的内容 write('a='); /在屏幕上输出一个字符串“a=”,输出完后不换行 read(a); /从键盘输入一个数值赋给变量a write('b='); /在屏幕上输出一个字符串“b=”,输出完后不换行 read(b); /从键盘输入一个数值赋给变量b c:=a+b; /计算a+b的和,并
4、将这个和赋值给变量c writeln(a,'+',b,'=',c); /输出a+b=c的等式,输出完后换行 end. /程序结束【样例输入】a=10b=30【样例输出】10+30=40由上可以看出,一个Pascal程序由以下三部分组成:(1)由Program 引导的一行是Pascal程序的首部。程序首部指出了源程序的名称,是由用户自己给出的,该例子称为a1。程序名后用括号括住的两个参数input与output,通常表示程序运行中的标准输入和输出文件,程序首部以分号结束。(2)Pascal程序的第二部分是说明部分。说明部分要求列
5、出程序中引用的全部常量、变量、转移标号、类型、过程和函数的有关说明。若变量c在说明部分没有说明,后边的语句c:=a+b在执行时;翻译软件便能指出其错误并提醒用户加以改正,程序中每个语句都以分号表示结束。(3)程序的第三个部分是用BEGIN和END括住的一串语句,称为程序的执行部分。有的书中将说明部分和执行部分合称为程序体。二、PASCAL语言编辑软件的基本操作下面我们以Free Pascal 1.10系统为例来学习一下Pascal语言编辑软件的使用。1.Free Pascal的启动在运行程序目录下(一般是c:ppbingo32v2)运行启动程序fp.exe,即可启动系统。屏幕上出现如图1-1所
6、示的集成环境。图1-12.Free Pascal系统集成开发环境(IDE)简介最顶上一行为主菜单,中间蓝色框内为编辑窗口,在编辑窗口内可以进行程序的编辑,最底下一行为提示行,显示出系统中常用命令的快捷键,如将当前编辑窗口中文件存盘的命令快捷键为F2,打开磁盘文件命令F3,等等。3.新建程序窗口按F10切换到主菜单,选择FILE菜单,执行其中New命令,就可建立一个新的程序窗口(默认文件名为Noname00.pas或Noname01.pas等)。4.程序的输入、编辑与运行在当前程序窗口中,一行一行的输入程序。当程序输入完毕之后,一般要先按Alt+F9(或执行compile菜单中compile命令
7、)对程序进行编译。如果程序有语法错误,则会出现一个Compiler窗口,提示你语句错误的坐标。若无语法错误,则窗口正中央会出现一个对话框,提示编译成功。接下来,我们可以运行程序了。程序的运行可以通过按ALT+R打开RUN菜单中的RUN命令,或直接按快捷键CTRL+F9,则可以在用户窗口中输出运行结果。通常在程序运行结束后系统回到Pascal系统的集成环境,因此要查看运行结果,要按ALT+F5将屏幕切换到用户屏幕。5.程序的保存与打开当我们想把程序窗口中的程序存入磁盘时,可以通过按F2键(或执行File菜单中的save命令)来保存程序。第一次保存文件时屏幕上会出现一个对话框要求输入文件名(默认扩
8、展名为.pas)。当我们要将磁盘上的PASCAL程序打开(装入窗口)时,可按F3(或执行File菜单中的Open命令)来打开程序,此时系统也会弹出一个对话框要求输入要打开的文件名,或直接在文件对话框列表中选择所要打开的文件。第二节 常量、变量与数据类型一、常量(1)常量:在某个程序运行的整个过程中其值不能发生改变的量。(2)常量定义:常量定义出现在说明部分。它的语法格式是:const <常量标识符>=<常量> . <常量标识符>=<常量>例如:const pi=3.141592; /此种
9、方式定义的常量在程序中不可以改变(3)常量定义部分必须以保留字const开头,可以包含一个或几个常量定义,而且每个常量均以分号结束。二、变量(1)变量定义:在某个程序的运行过程中其值可以发生改变的量。它应具有以下三个要素:变量名、变量类型和变量值。(2)变量说明:变量说明出现在说明部分。它的语法格式是:var <变量列表>:<类型> . <变量列表>:<类型>(3)变量名每一个变量必须用一个合适的标识符来命名。标识符是用来标识处理对象(如常量、变量、类型、过程、函数、程序和文件等)的符号名称。标识符是编程者命名
10、的,自由度很大。命名中应该注意遵循一定的规则,如必须以字母开头,后面可以跟字母、数字和连字符“_”,若有连字符“_”则必须位于标识符中间。如:a,root,tot,t3,exp_1都是合法的标识符,而3a,a#,my%都不是合法的标识符。(4)变量的类型在Pascal程序执行的任一时刻,变量总有相应的值。由于变量是有类型的,所以整型变量对应整数值,实型变量对应实数值。在Pascal语言中规定:在程序中使用的变量必须先定义后使用。如果用到的变量没有定义就使用,程序编译时会出现“Identifier not found X”的错误信息。例1-2 已知某圆的半径r=15.15,求该圆的面积s?【分析
11、】圆的面积s=3.14*圆的半径r*圆的半径r【参考程序】program t301; const pi=3.14; var s,r:real; /定义两个实型变量s,r begin r:=15.15; s:=pi*r*r; writeln(s:10:2); /显示宽度是10,保留两位小数 end.【输出结果】 47.57三、数据类型Pascal语言提供了丰富
12、的数据类型,大致分为以下三类,如图1-2所示:图1-2简单类型是指该类型不能再分解为其它类型,而结构类型是由简单类型所组成的,或者说结构类型是由简单类型所构造成的。 1.整型一个整型数据用来存放整数。Free Pascal支持七种预定义整型,它们是shortint(短整型)、integer(整型)、longint(长整型)、byte(字节型)、word(字类型)、int64和Qword,每一种类型规定了相应的整数取值范围以及所占用的内存字节数。类型数值范围占字节数Shortint-128.1271byte0.255 1word0.655352int
13、eger32768.327672longint-2147483648.21474836474int64-9223372036854775808.9223372036854775807 8qword0.184467440737095516158 Free Pascal预定义了两个整型常量标识符maxint和maxlongint,他们各表示确定的常数值,maxint为32767,maxlongint为2147483647,
14、他们的类型分别是integer和longint。2.实型Free Pascal语言支持五种预定义实型,它们是real(基本实型)、single(单精度实型)、double(双精度实型)、comp()、extended(扩展实型),每一种类型规定了相应的实数取值范围、所占用的内存字节数以及它们所能达到的精度。类型数值范围占字节数有效位数real2.9e-39.1.7e38611.12single 1.5e-45.3.4e3847.8double5.0e-324.1.7e308815.16Comp(装配实型)-263+1.263-18 19.20extended(扩展实型)3.
15、4e-4932.1.1e49321019.20 实型常量包括正实数、负实数和实数零。pascal中表示实型常量的形式有两种。十进制表示法这是人们日常使用的带小数点的表示
16、方法,要求小数点前后必须有数字。如0.0、-0.0、+5.61、-8.0、-6.050等都是实型常量,而0.、.55都不是合法的实数形式。科学记数法科学记数法是采用指数形式的表示方法,如1.25×105可表示成1.25E+05。在科学记数法中,字母“E”表示10 这个“底数”,而E之前为一个十进制表示的小数,称为尾数,E之后必须为一个整数,称为“指数”。如-1234.56E+26、+0.268E-5、1E5 是合法形式,而.34E12、2.E5、E5、E、1.2E+0.5都不是合法形式的实数。值得注意的是实数的运算比整数的运算速度慢且无法像整数那样精确表示,只能近似表示。3.布尔型(
17、boolean)一个布尔型数据用来存放逻辑值(布尔值),布尔型的值只有两个:false(假值)和true(真值)。4.字符型(char)字符型只允许单引号中有一个字符,否则就是字符串(string)。如:'A','y','9','7'。例1-3 有如下程序,运行它,看有什么结果?program aa; var a,b:integer; c,d:real; m,n:booLean; ch:char; begin a:=10;
18、b:=5; writeln('a=',a,' ','b=',b); c:=a/b; writeln('c=',c); ch:='T' writeln('ch=',ch); m:=5>6; n:=10
19、>7; writeln('m=',m,' ','n=',n); end.【输出结果】a=10 b=5c= 2.000000000000000E+000ch=Tm=FALSE n=TRUE例1-4 编写程序,输出如下图形。【参考程序】program aa;begin writeln(' $'); writeln(' $'); writeln('$');end.第三节 表达式与标
20、准函数一、算术运算符与算术表达式1算术运算符常用的有以下6个算术运算符:+(加)、-(减)、*(乘)、/(实数除)、DIV(整除)、MOD(求余)其中,/(实数除)得到结果为实型,如5.0/2.0=2.5, 4/2=2.0,DIV(求两个数相除后的整数部分),它要求除数和被除数均为整型,结果也为整型,如10 DIV 2=5,5 DIV 10=0,-15 DIV 4=-3,DIV运算只取商的整数部分,参与DIV运算的两个对象不能为实型。mod (求两个数相除后的余数部分)也只能用于整数运算,结果为整数,例如:10 mod 4=2,-17 mod -4=-1,4 mod (-13)=4。2算术表达
21、式在Pascal语言中,算术表达式的意义为:所有符合Pascal语法规则的数值型运算对象(数值型常量、变量、函数)、运算符、圆括号所组成的有意义的式子。表达式的结果可按标准类型分成算术表达式(运算结果为整型/实型)及布尔表达式(运算结果为布尔型)。3. 关系运算符和关系表达式由一个关系运算符将两个类型相容且有序的表达式连结起来的式子,称之为关系表达式,其结果为布尔型(真true或假false)。这里用到的Pascal语言中的关系运算符有:>(大于) =(等于) <(小于) >=(大于等于)
22、160; <=(小于等于) <>(不等于)共六个。4. 布尔运算及布尔表达式(1)布尔常量和变量在Pascal语言中,布尔运算又称为逻辑运算,布尔值也称为逻辑值,它有“真”与“假”两个,分别用“TRUE”与“FALSE”这两个布尔常量来表示的。用来存放逻辑值的变量称为布尔变量,它的作用就是存放一个布尔常量。当然,布尔变量也必须先定义后使用。例如:VAR T,F:BOOLEAN;在这里,使用BOOLEAN这个标准类型标识符来定义T与F这两个布尔变量。(2)布尔运算布尔运算有三个运算符:Not(逻辑非)、And(逻辑与)、Or(逻辑或)由一个布
23、尔运算符将两个类型相容且有序的表达式连结起来的式子,称之为布尔表达式。在一个既包括有布尔运算符,又有关系运算符的表达式中,它们的运算次序为:1)括号2)函数3)NOT(逻辑非)4)*、/、DIV、MOD、AND5)+、-、OR6)>、=、<、>=、<=、< >(3)布尔型数据的输入与输出在Pascal的程序中,只能通过赋值语句给布尔型变量赋值,不能用READ语句输入一个布尔常量,但可以用write或writeln语句直接输出布尔变量和布尔常量的值。例1-5 判断程序运算结果program aa; var a,b,s,d:integer
24、; L,e,g,f,h,m:boolean; begin a:=3;b:=7; s:=a+b; d:=a div b; L:=a<b; e:=a=b; g:=a>b;f:=e or g;h:=e and g;m:=not h; write('s=',s:5);
25、 writeln('d=',d:5); writeln('L=',L); writeln('e=',e,'g=',g); writeln(f,' ',h,' ',m); end.【输出结果】s= 10d= 0L=TRUEe=FALSEg=FALSEFALSE FALSE TR
26、UE二、标准函数Pascal预先定义了很多种标准函数,其调用格式如下:变量名:=函数名(自变量参数);1算术函数算术函数可以直接参与算术运算,函数的自变量和函数的类型均为数值型。函数名称函数标识符自变量类型结果类型说明绝对值abs(x)整型、实型 同自变量求X的绝对值平方sqr(x)整型、实型同自变量求X的平方平方根sqrt(x)非负整型、非负实型非负实数求X的平方根指数exp(x)整型、实型实型相当于EXP(X)=ex(底数为e)自然对数 ln(x)整型、实型实型求X的自然对数(底数为e)算术函数使用注意事项:(1)绝对值函数abs(X)与数学中的意义功能相同,如:abs(7.1)=7.1,
27、abs(-16)=16(2)平方值函数sqr(X)即求X2值,如:sqr(5)=25(3)在Pascal语言中,若要计算y=Xn,可以用y=exp(n*LN(x)来表示。(4)平方根函数sqrt(X)与数学中的意义功能相同,运算时要求自变量X>=0。如果要计算的值,那只能借助其它方法了。如: =exp(1/3*LN(x)。(5)指数函数exp(x)与对数函数LN(x)是一对逆函数。与数学中相应函数的区别在于它们都是以自然对数e(e2.71828)为底。例如:exp(2)即求e2=2.71828*2.718287.3890461反过来,LN(7.3890461)=2附:对数的定义:假定a是
28、一个不等于1的正实数(即且a>0),对于正实数b(即b>0),如果存在一个实数c,满足 这样的关系式,那么我们说”c是以a为底,b的对数”。并以数学符号来表示此意义。(注:读作”以a为底 , b的对数”,其中a叫作的”底”, b叫作的”真数”)2转换函数转换函数的功能是可以根据需要将数据类型进行转换。函数名函数标识符自变量类型函数值类型说明截尾trunc(x)实型整型取x的整数部分舍入round(x)实型整型对x四舍五入后取它的整数部分序号ord(x)整型、字符型、布尔型整型求x对应的序号字符chr(x)整型字符型求x对应的字符转换函数使用注意事项:(1)截尾函数trunc(x)可
29、以将实数型自变量x的小数部分截去,函数值为整数。如:trunc(17.8)的值为17,trunc(-6.41)的值为-6。(2)舍入函数round(x)是将实数型自变量x的小数部分四舍五入,取它的整数部分。如: round(17.8)的值为18,round(-6.1)的值为-6。(3)当序号函数的自变量为字符时,函数值为该字符的 ASC码,当自变量为整型数据时,则ord(x)的值为自变量本身,当自变量为BOOLEAN 时,Pascal中规定:FALSE的序号为0,TRUE的序号为1。如:ord('A')=65,ord('a')=97,ord('0'
30、;)=48,ord(68)=68,ord(FALSE)=0,ord(TRUE)=1。序号函数ord(x)与字符函数chr(x)的功能相反,它们是一对逆函数。如:chr(ord('A')= 'A',ord(chr(96)=96。3顺序函数函数名称函数标识符自变量类型函数值类型说明前趋pred(x)整型、字符型、布尔型整型、字符型、布尔型求x的前一个数据若x是第一项,则函数无意义后继succ(x)整型、字符型、布尔型整型、字符型、布尔型求x的后一个数据若x是最后一项,则函数无意义顺序函数使用注意事项:(1)前趋函数pred(x)和后继函数succ(x)是一对逆函数。
31、如:pred(succ(x)=x,succ(pred(x)=x。(2)顺序函数的自变量x必须是一个有顺序的数据类型,如实数型的数虽然能比较大小但无法确定x前一项和后一项到底是什么数,所以实型数没有前驱和后继。(3)当自变量x为数据第一项时,它没有前驱,如pred(FALSE)无意义;当自变量x为最后一项时,它没有后继。如succ(TRUE)无意义。4逻辑判断函数函数名称函数标识符自变量类型函数值类型说明奇函数odd(x)整型布尔型判断x的奇偶性奇函数使用注意事项:奇函数的值为BOOLEAN类型,即只存在“真”(TRUE)和“假”(FALSE)。如:odd(5)=true,odd(10)=fal
32、se第四节 赋值语句、输入与输出语句一、赋值语句1格式:变量:=表达式;2使用说明:(1)该语句具有先计算后赋值的功能,即先计算出来表达式的值,然后将其值赋给左边的变量或函数标识符,注意:一个赋值语句只能给一个变量赋值。(2)“:=”称为赋值号,要注意不能与关系运算符“=”混淆,只有在赋值语句中才能使用赋值号,赋值号具有方向性,是将赋值号右边表达式的值计算出来,赋予赋值号左边的变量,所以赋值号的左边只能是变量,并且赋值号两边的类型应该具有赋值相容性,如整型的值可以赋值给实型变量,反之则不行,字符型可以赋值给字符串型变量,反之也不行。(3)被赋值的变量本身可以作为因子参与运算,如n:=n-1,i
33、:=i+1,s:=s+x。例1-6 写出执行下面的程序运行后,变量A、B、C的值。 program a16; var a,b:integer; c:real; begin a:=200; b:=a div 10; c:=a; writeln(a:7,b:7,c:7
34、:2); end.二、输入语句(读语句)1格式:read(输入项); 或 readln<(输入项)>2使用说明:(1)执行该语句时,从键盘上(或文件中)读入数据,将其值依次赋给输入项中的变量。注意输入的数据必须是常量,且输入的数据类型必须和变量一一对应。(2)输入项中的括号内应是一组变量,这里一组的含义是可以为一个,也可以是多个,若是多个时,各变量之间必须用逗号分隔,最后一个没有符号,他们必须在程序说明部分预先说明,他们可以是整型、实型或字符型等数据类型,但不能是布尔型,因为布尔型不可以直接读入。如:Read(a,b,c,
35、d); 或 Readln(M,N,L);(3)程序运行后,执行到Read或Readln语句时,系统处于等待状态,等待用户从键盘上输入数据,且当输入项中的变量为多个时,要求输入的相应数据个数不能少于其变量的个数,当输入的数据个数少于变量个数时,系统仍处于等待状态,接着输入的数据无论是换行输入还是不换行输入均有效。注意:输入数值(整型或实型)数据时,数据间用空格或回车键分隔,最后一定要有一个回车,表示输入结束;输入字符型数据时,数据间不能用空格分隔,可以连续输入(不用空格)或用回车键一个一个字符分隔输入。(4)READ与READLN的区别:read语句是一个接一个地读数据,在执行完本Read语句(
36、读完本语句中变量所需的数据)后,下一个读语句接着从该数据输入行中继续读数据,也就是说,不换行。Readln则不同,在读完本Readln语句中变量所需的数据后,自动换行,该数据行中剩余的数据多余无用,并且readln可以不带参数表,即可以没有任何输入项,只是等待读入一个换行符(回车),经常用于暂停程序的运行,直到输入一个回车。例1-7 设I,J,K是整型变量,现需将30,20,10分别赋给这三个变量,要求写出对应于下列语句的所有可能的输入格式:read(i,j,k);解:所有可能输入格式如下(注:其中用“”来表示空格,每一行后均有一个回车,以下均同):(1)302010(2)3020
37、 10(3)30 2010(4)30 20 10例1-8 设A,B,C是字符型变量,现需将'P','A','S'分别赋给这三个变量,要求写出对应于下列语句所有可能的输入格式:read(a,b,c);(1)PAS(2)PA S(3)P AS(4)P A S例1-9 设a,b,c,i,k,j,L,m,n为整型变量,则下面语句的赋值情况是:Readln(a,b,c); Readln(i,k,j,L)
38、; Readln(m,n);输入数据:12345678901020读入结果为:123(分别对应a,b,c,后面的4,5被忽略)6789(分别对应i,k,j,L,后面的0被忽略)1020(分别对应M,N)三、输出语句(写语句)1格式:write(输出项) 或writeln<(输出项)>2使用说明:(1)执行该语句时,按指定的格式将输出项的内容输出。(2)输出项中括号内的项目内容可以是一组常量、变量、表达式或字符串,一组的含义是可以为一个,也可以是多个,若是多个时,各输出项之间必须用逗号分隔,最后一个没有符号。如:
39、WRITE('A+B=',A+B);或WRITELN(3,'*',N,'=',L);(3)输出项中的各个不同项目其输出的结果分别是:当输出项为常量时,直接输出该常量的值;当输出项为变量时,输出该变量存储单元内的内容,变量允许属于任何一种标准数据类型;当输出项为表达式时,则首先对表达式进行计算,然后输出计算的结果;当输出项为字符串时,原样输出用单引号括起来的字符串中的内容。(4)Write语句与writeln语句的区别:write语句将其后括号中的表达式一个接一个输出后,没有换行。而writeln语句则在输出各个表达式的值后换行。例如以下两个程序段
40、的输出分别为:(1)write(1,2,3,4);write(5,6);输出为:123456(2)writeln(1,2,3,4);write(5,6);输出为:123456例1-10 请写出下面程序的输出结果。const a=20;var b:integer;begin b:=60; writeln(100); writeln(b); writeln(a+b); writeln('A+B=',a+b)end.【输出结果】100 /直接输出该常量的值60 /输出该变量存储单元内的内容80 /输出计算的结果A+B=80 /原样输出字符串中的内容及输出a+b表达式的结果4输出语句的
41、输出格式在Pascal语言中,我们将每一种类型的数据在输出时所占据的列数称为场宽,下表是Pascal对各种数据定义的标准场宽(要注意各种计算机系统对标准场宽的约定不同):Pascal对各种数据定义的标准场宽数据类型标准场宽实例输出结果整数实际整数长度WRITE(1234);1234实型(real、single)23Write(3/7);4.285714285714285E-001布尔型4或5T:=false;write(t);FALSE字符型1Write('A');A字符串型串长Write('Pascal')Pascal在编程时,我们除了可以使用上表中的标准场宽
42、,还可以根据实际需要自己来定义要输出数据的场宽,自定义场宽分为单场宽和双场宽。(1)单场宽格式:X:n,其中X表示要输出的项目,n表示输出X时所占的位数,应为正整数。如:writeln(PAS :5);表示项目字符串PAS的场宽为5。它主要用来输出整型、字符型、布尔型的数据。例1-11 设M为整型数2009,CH为字符#,F为布尔值FALSE,此时执行如下输出语句:writeln (M:5);writeln (CH:5);writeln (F:5);writeln (PAS:5);则屏幕显示:(2)双场宽格式:X:n1:n2,双场宽是用来输出实型数据的。其中:X表示要输出的项目,n1表示输出X
43、时所占总位数,包括符号位、整数部分、小数点与小数部分,n2表示小数部分的位数,当n2小于实际小数位数时,要对舍去的小数位数进行四舍五入。当n2大于实际小数位数时,右边以零补齐。要注意的是,在数据不突破场宽限制时,一律按场宽定义输出,在数据突破了场宽限制时,则强行将场宽扩展到所需要的位数,所以有时输出限制仅有小数位N2时,一般设总场宽为0,即:X:0:N2,如对X要求保留两位小数,写法为:writeln(X:0:2);例1-12 写出以下程序的输出结果:program aa; var a:integer; b:real; c:char; d:boolean; b
44、egin a:=1234; b:=1234.6793; c:='$' d:=false; writeln(a,a:5); writeln(b,b:12:2); writeln(b:0:2) writeln(c,c:5); writeln(d,d:5); wri
45、teln('OK':5); end.【输出结果】12341234 1.234679300000000E+0031234.681234.68$FALSEFALSEOK习题1-1 在屏幕上打印一行字符:"This is my first program!",请同学们将以下程序输入计算机内并运行。(运行程序:Ctrl+F9,查看程序运行:Alt+F5)program k101; begin writeln('This is my first program!'); end.1-2 编写一个减法程序,输入两个整数(<30000),输
46、出这两个整数的差(第一个数减去第二个数)。【样例输入】30 10 【样例输出】20 1-3 编写一个乘法程序,输入两个整数(<100),输出这两个整数的乘积。【样例输入】20 10 【样例输出】200 1-4 输入正方形的边长(边长为整数),求正方形的面积?【样例输入】5 【样例输出】251-5 小明的妈妈给小明100元钱,让他去文具商店买他自己所需要的文具,他买了10元1支的钢笔2支,花5元买了一瓶蓝色墨水,批发了23元的作业本,最后,走的时候又买了1支1元的冰糕吃着走了,现在问小明最后还剩多少钱?1-6 求任意长a和宽b的长方形的周长c。总场宽为10,保留两位小数。【分析】长方形周长
47、c=2*(长a+宽b)。【样例输入】2 3 【样例输出】c= 10.001-7 已知三角形的底为5,高为10,求三角形的面积?要求保留两位小数。【分析】三角形的面积S=1/2*底a*高h。【输出结果】 25.001-8 判断程序运行结果program aa; var a,b:integer; begin a:=3; b:=a; b:=a+1; a:=a+1; b:=b+1; writeln(a,' ',b); end.1-9 输入三个整数a,b,c(0<a,b,c<100
48、00),计算d=a/b,f=b*c。运算结果是实数的保留两位小数。【样例输入】5 10 20 【样例输出】0.50 2001-10 用键盘输入两个整数a,b (0<a,b<10000),输出a>b的值。【样例输入】12 9 【样例输出】TRUE1-11 有三个小朋友甲乙丙。甲有50粒糖果,乙有43粒糖果,丙有13粒糖果。现在他们做一个游戏,从甲开始,将自己的糖分三份,自己留一份,其余两份分别给乙与丙,多余的糖果自己吃掉,然后乙与丙也依次这样做,问最后甲、乙、丙三人各有多少粒糖果?1-12 试编一程序,输入一梯形的上底a、下底b、高h,求该梯形的面积s。结果保留3位小数。【分析
49、】梯形面积s=(a+b)*h/2,a,b,h,s均为实数。【样例输入】12.5 9.2 8 【样例输出】86.8001-13 已知A1、A2和A3的布尔值分别是:True、False、False,计算下列表达式的值。(1)not a1 and not a2= (2)al or a2 and a3= (3)(not a1 or a2) and (a2 or a3)=1-14 输入两个整数,将两个数交换值后输出。【样例输入】26 90 【样例输出】90 261-15 输入一个字符,打印出它的前导值、后继值和序号。每一项中间隔一空格,最后无空格。【样例输入】D 【样例输出】C E 681-16 读入
50、摄氏温度c,写程序将它转换成华氏温度f输出。已知f=9/5*c+32。1-17 输入一个三位自然数,把这个数的百位与个位数对调,输出对调后的自然数。【样例输入】312 【样例输出】213第二章 程序的三种基本结构第一节 顺序结构若程序按照语句的书写先后顺序逐句执行,直到程序的结束,这种程序结构我们称为顺序结构。这是程序设计中最简单的一种结构。如程序中N个语句: 语句1;语句2;语句N;若运行时的顺序是语句1执行后执行语句2,语句2执行后执行语句3,直到语句n-1执行后执行语句N。那么程序中语句1;语句N;便是一个顺序结构的部分,它是结构化程序设计的基础。注意每条语句以分号表示结束。第二节 选择
51、结构一、复合语句复合语句的一般形式是:BEGIN 语句1; 语句2; 语句n;END;在这里,BEGIN与END起语句括号的作用,相当于使用了一个语句括号将若干语句括了起来,做一个语句处理。程序运行时,通常是按书写的顺序去执行复合语句内的各个语句。二、条件语句(IF语句)1.格式:IF语句有以下两种标准格式:(1)if条件表达式then 语句;(2)if条件表达式 then 语句1else 语句2;2.功能(1)格式1的IF语句的执行过程是:若条件关系式的条件为真,则执行THEN后面的语
52、句,当条件不成立时,退出IF结构,去执行IF语句下面的语句。(2)格式2的IF语句的执行过程是:若条件关系式的条件为真,则执行THEN后面的语句,否则执行ELSE后面的语句。要特别注意else前面的语句1最后不能有分号,因为分号是两个语句之间的分隔符,而else并非语句,如果在该处添了分号,则在编译的时候就会认为if 语句到此结束,而把else当作另一句的开头,输出出错信息。例2-1 输入两个整数a,b,将它们由小到大输出。【样例输入】56 32 【样例输出】32 56【参考程序】program aa; var a,b,t:integer; begin read(a,b); if a>b
53、 then /如果第一个数大于第二个数,则两个数互换 begin t:=a; a:=b; b:=t; /两个数互换 end; writeln(a,' ',b); /输出运算结果 end.例2-2 输入一个三位数的整数,将数字位置重新排列,组成一个尽可能大的三位数。【样例输入】213【样例输出】321【分析】先用DIV、MOD结合分离出来整数的每一位数字,然后将这三位数字按照由大到小进行排序,然后把最大的作为百位数,次之作为十位数,最小的作为个位数即可。【参考程序】program aa; var t,a,b,c,n:integer; begin read(n); a:=n div
54、 100; b:=n div 10 mod 10; c:=n mod 10; if a<b then begin t:=a; a:=b; b:=t; end; if a<c then begin t:=a; a:=c; c:=t; end; if b<c then begin t:=b; b:=c; c:=t; end; n:=a*100+b*10+c; writeln(n); end.例2-3 小红开了一个花店,她规定凡在店里购花不超过50元时,按九折付款,如超过50元,不到200元,超过50元部分按七点五折收费,如果超过200元,超过200元部分,将按6折收费。现在她想请
55、你帮她编一程序完成花店自动计费的工作。【分析】根据题意,我们可以得到计费S的收费公式:【样例输入】50【样例输出】45.00【参考程序】program aa; var p,s:real; begin read(p); /输入应付款数 if p<=50 then s:=0.9*p /进行自动计费 else if p<=200 then s:=0.9*50+(p-50)*0.75 else s:=0.9*50+150*0.75+(p-200)*0.6; writeln(s:0:2); /输出实际付款数 end.三、CASE语句1.格式:CASE语句又称为分情况语句,格式如下:case测
56、试表达式of 情况标号1:语句1; 情况标号2:语句2; 情况标号n:语句n; <else语句 n+1> /可选项 end; 2功能(1)先计算出测试表达式的值,注意:这个测试表达式中不能含有trunc、round函数,测试表达式的值不能是实数。(2)然后用测试表达式的值依次与各情况标号进行对照,当找到一个与测试表达式的值相匹配的情况标号,就去执行该CASE情况标号后面的语句块,然后跳到与CASE相对应的END后面的语句继续执行。(3)如果找不到与之匹配的情况标号(若有ELSE则执行它后面的语句),退出CASE语句,执行它后面的语句。例2-4 打印某年某月有几天。【样例输入】200
57、0 2【样例输出】29【参考程序】 program aa; var y,m,d:integer; begin read(y,m); /读入年和月 case m of 1,3,5,7,8,10,12:d:=31; 4,6,9,11:d:=30; 2:if (y mod 4=0) and (y mod 100<>0) or (y mod 400=0) /判断闰年布尔表达式 then d:=29 else d:=28; end; writeln(d); /输出这个月的天数 end.第三节 循环结构一、计数循环1其语句格式是:(1)for 控制变量:=初值 to 终值 do
58、160; 一条语句;(2)for 控制变量:=初值 downto 终值 do 一条语句;其中for、to、downto和do是Pascal语言保留字,一条语句可以是一条简单语句或一条复合语句,但只能是一条语句,它适合用于能事先确定循环次数的事件。2执行过程(1)先将初值赋给左边的变量(称为循环控制变量);(2)判断循环控制变量的值是否已"超过"(递增是大于,递减是小于)终值
59、,如已超过,则跳到步骤(6);(3)如果未超过终值,则执行do后面的那个语句(称为循环体);(4)循环变量递增(对to)或递减(对downto);(5)返回步骤(2);(6)循环结束,执行for循环下面的一个语句。3注意事项(1)for循环控制变量必须是顺序类型的变量,如整数,但不能是实数,也不能是8字节整型,如int64、qword等。(2)for语句的循环体中不能修改循环控制变量,它将会自动增加或减少。(3)break:中断当前所在的循环。例2-5 输入n(0<=n<=200),计算从1累加到n之和。【分析】设置一个循环变量初值为1,终值为n,重复进行n次加法的循环。每次将循环控制变量(I)的值迭加在S中,不断重复该过程,故当循环结束的时候,S变量表示的就是总和了。s:=s+i;这里的s称为累加器,它使用前要清0。【样例输入】100 【样例输出】5050【参考程序】 program aa; var i,n,s:integer; begin read(n); s:=0; for i:=1 to n do s:=s+i; writeln(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 代生产酒合同标准文本
- 乙方与员工合同标准文本
- 农村耕地合同标准文本流转合同
- 兼职老师培训合同标准文本
- 2025合作伙伴产品加工合同
- 假山改造合同标准文本
- 公司分红入股合同范例
- 我的烦恼作文(3篇)
- 2025年版图书出版合同模板
- 公司会计招聘合同标准文本
- 2025年全国国家版图知识竞赛(中小学组)题库及答案
- 2025年纺织行业:涤纶生产科学技术基础知识考试题(附答案)
- 国家铁路局规划与标准研究院招考聘用15人高频重点模拟试卷提升(共500题附带答案详解)
- 社区商业中心公共设施的规划与运营管理
- 2024年河南省中职英语对口高考试题
- 课件-DeepSeek从入门到精通
- 公司清明节前安全教育
- 信息系统集成项目公开招标采购招标书范本
- 信息管理专业职业发展前景
- 中国地理课件-自然资源
- 2025年河北邯郸市邯山区博硕人才引进4人高频重点提升(共500题)附带答案详解
评论
0/150
提交评论