欢迎来到天天文库
浏览记录
ID:2253451
大小:69.00 KB
页数:10页
时间:2017-11-15
《pascal程序设计基本教程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
第一部分预备知识第一课Pascal程序基本知识一、科学记数法7.8530000000E+01=78.537.8530000000E+02=785.37.8530000000E+03=78537.8530000000E-01=0.78537.8530000000E-02=0.078537.8530000000E-03=0.00785310位小数二、基本结构例1.1计算半径为R的圆面积Sprogramli1;{程序首部}constpi=3.14159;{说明部分——数据描述}vars,r:real;begin readln(r); {程序体}s:=pi*sqr(r); {执行部分}writeln('s=',s);end. 二、各部分说明1、程序首部 例1.1的第一行称为程序首部。program是保留字,接着是程序名(字母和数字的组合,开头必须是字母),最后以分号表示程序首部结束,下面是程序主体的开始。2、程序体(1)说明部分说明部分用于定义和说明程序中用到的数据,比较常用的常量说明和变量说明。常量说明用const,变量说明用var。变量的类型有:实型变量(real)、整型变量(integer)、字符型变量(char)。举例:定义变量x,y,zvar;x,y:integer;z:real;(2)执行部分执行部分描述了程序要执行的操作。它必须以一个TurboPascal保留字begin开始,以保留字end后跟句点结束,其间是一些执行具体操作的语句,并且以分号作为语句之间的分隔符。begin和end必须成对出现。紧跟end之后的句号表示执行部分的结束,也表示整个程序的结束。此后的任何语句都无效。练习:1、课本P12练一练2、同步P7练习赛场一10 第二部分顺序结构程序设计包括四个语句:一是输出语句;二是赋值语句;三是复合语句;四是输入语句。第二课输出语句计算机是如何把图形或解决问题的结果显示在屏幕上的呢?pascal语言给我们提供了一条实现这一目的的语句write(writeln)。10举例:programli2;beginwriteln(‘‘,”######”);writeln(‘‘:2,”######”);writeln(‘‘:3,”######”);writeln(‘‘:4,”######”);writeln(‘‘:5,”######”);writeln(‘‘:6,”######”);end.输出内容:####################################101、格式(1)write(输出项1,输出项2,输出项3,……);(2)writeln(输出项1,输出项2,输出项3,……);你想在屏幕上显示什么,就在输出项的位置填上什么。可以多项输出,中间用逗号隔开。2、输出项可以是常量、变量、函数名、表达式或字符串等,如果要输出常量、变量、函数名、表达式的值,则就直接输入即可;如果要照原样输出常量、变量、函数名、表达式或字符串等,则需要把输出项用单引号引起来。3、场宽(1)单场宽场宽就是在输出项后面用冒号隔开再加上一个数,它是用来说明这个输出项所占得宽度,主要目的是确定输出项的位置。(2)双场宽在双场宽中,第一个场宽意义不变,第二场宽是对常量或变量的值的小数位数进行定义,是什么数,就保留几位小数。练习课本:P26练一练;P28例1;P32练一练同步操作:P15——P18第三课赋值语句(一)赋值语句是最简单的语句,其一般形式为:<变量>:=<数据或表达式>例:x:=15s:=’ok’m:=3+5w:=a+b赋值语句的作用是计算表达式的值,并赋给变量。对于任何一个变量必须首先赋值,然后才能引用,否则,未赋初值的变量将以一个随机值参与运算。另外,赋值号两边的类型必须相同,但表达式值为整数时,它可自动化为实型后赋给该实型变量,即符合赋值相容。10 例:关于赋值的例子 programexample; vara,b:integer; begin a:=3;b:=2; writeln(a); writeln(b); a:=a+b; writeln(a); writeln(b); b:=a-b; writeln(a); writeln(b); a:=a-b; writeln(a); writeln(b); readln end.10(二)算术表达式是由符合pascal语法规定的运算对象、算术运算符、圆括号组成的有意义的式子。常用的算术运算符由以下6个:+、-、*、/、div、mod、补充1、trunc(取整函数)、round(舍入取整函数)例:trunc(1.2)=1round(1.2)=1trunc(1.7)=1round(1.7)=2trunc(-3.7)=-3round(-3.7)=-42、pred(前导函数)、succ(后继函数)pred(5)=4succ(5)=63、chr(取字符函数)、ord(取序号函数)chr(65)=’A’ord(’A’)=65chr(97)=’a’ord(’a’)=97练习课本:P34练一练;P36练一练;P38第七课;同步操作:P21——P24;第四课 复合语句 复合语句是由若干语句组成的序列,语句之间用分号“;”隔开,并且以begin和end括起来,作为一条语句。复合语句的一般形式: 10begin 语句1; 语句2; …… 语句n; end例:变量值的交换 programjiaohuan; var a,b,t:integer; begin a:=10;b:=20; begin t:=a; a:=b; b:=t; end; writeln('a=',a,'b=',b)end.10练习:同步操作P26——29(讲解第三题)10 第五课输入语句 通过计算机的外设把数据送到计算机内存的过程称为输入。TurboPascal语言的输入语句有如下两种形式: read(<变量名表>); readln(<变量名表>);<输入项表>是一个或几个由逗号隔开的变量标识符,他们必须在程序说明部分预先说明,他们可以是整型、实型或字符型,布尔型不可以直接读入。 例如a,b,c为整型变量,read(a,b,c)之后 键盘输入:203040(表示回车) 结果: a=20,b=30,c=40 readln语句和read语句不同之处在于输入数据到各变量之后,readln自动换行,从下一行开始再输入数据。一个read语句执行完后,数据行中多余的未读数据可以被下一个输入语句读入;而一个readln于执行完后,数据行中多余未读数据就没有用了。readln语句中可以不包含变量名表。即有以下等价情况:readln(a,b);readln等价于readln(a,b) 输入语句输入的数据类型必须和变量一一对应。如果输入的是一串整数或实数,数据间用空格或回车分隔;若输入的是一串字符,则不用分隔。例:输入语句示例 programshuru; var x:real; c:char; begin write('pleaseinputthenumber:($XXX.XX)'); readln(c,x); writeln('Thepriceis',c,x); end.练习课本:P50练一练;同步操作:P31——P33;第三部分选择结构程序设计包括两个部分:一是if语句;二是case语句。第六课if语句.1 if语句 IF语句是由一个布尔表达式和两个供选择的操作序列组成。运行时根据布尔表达式求值结果,选取其中之一的操作序列执行。有两种形式的IF语句: if <布尔表达式> then<语句>; if <布尔表达式> then<语句1>10 else<语句2>; 当布尔表达式的值为真,则执行then后面的语句,值为假时有两种情况:要么什么也不做,要么执行else后面的语句。注意else前面没有分号,因为分号是两个语句之间的分隔符,而else并非语句。如果在该处添了分号,则在编译的时候就会认为if语句到此结束,而把else当作另一句的开头,输出出错信息。例1:求y=f(x),当x>0时,y=1,当x=0时,y=0,当x<0时,y=-1 10programlianxi; varx,y:real; begin readln(x);ifx>0theny:=1; ifx=0theny:=0; ifx<0theny:=-1; writeln('y=',y); end.10 在TurboPascal语言if语句中被构造的语句只能是一条语句,当条件选择某个分支的计算要用多个语句描述时,就必须把该分支用begin和end括来,写成复合语句。在用if语句连续嵌套时,如果你插入适量的复合语句,有利于程序的阅读和理解。例2:当x>0时候,计算x*x,并且输出x和x*x,10programlianxie3; varx,x1:integer; begin readln(x); ifx>=0then begin x1:=x*x; writeln('x*x=',x1); writeln('x=',x); end; end.10 当if语句嵌套时,TurboPascal约定else总是和最近的一个if配对。第七课case语句 case语句是由一个表达式和众多可选择的操作序列组成。运行时,根据表达式的求值结果,在众多的分支中选取一个分支执行。其形式为: case 表达式 of 常量1:语句1; 常量2:语句2; …… 常量n:语句n; else 语句n+1{可选项} end; 表达式只能是顺序类型(除了实型以外的简单类型),其值必须是唯一确定并且和表达式类型相同。case语句执行和表达式值相匹配的case10 常数所指向的那条语句,如果没有相匹配的值,则执行else部分(如果有的话)或者什么也不做。在else前面的语句末尾有分号,这是和if语句不同的。例:根据学生的成绩给予相应的等低,对应关系如下: 1090——100 A 80——89 B 60——79 C 60以下 D programchengji;vars:real;x:integer;ch:char; begin write('inputthescore:'); readln(s);x:=torunc(s); if(s>=0)and(s<=100)then casexdiv10of 10,9:ch:='A'; 8:ch:='B'; 7,6:='C'; elsech:='D'; end; writeln(s,'--',ch); end.10补充练习:试编写一个根据用户键入的两个操作数和一个运算符,由计算机输出运算结果的程序。这里只考虑加(+)、减(-)、乘(*)、除(/)四种运算。例1:Inputx,y:153Inputoperator(+,-,*,/):+15.00+3.00=18.00例2:Inputx,y:50Inputoperator(+,-,*,/):/divideiszero!第四部分循环结构程序设计包括部分:一是for语句;二是while语句;三是repeat语句;第八课for语句补充:类型integerlongintreal数值范围-32768..32767-2147483648..21474836472.9e-39..1.7e+38for语句用来描述已知重复次数的循环结构。for语句有两种形式: (1)for控制变量:=初值 to 终值 do 语句; (2)for控制变量:=初值 downto 终值 do 语句; 第一种形式的for语句是递增循环。首先将初值赋给控制变量,接着判断控制变量的值是否小于或等于终值,若是,则执行循环体,在执行了循环体之后,自动将控制变量的值该为它的后继值,并重新判断是否小于或等于终值。当控制变量的值大于终值时,退出for循环,执行for10 语句之后的语句。第一种形式的for语句是递减循环。首先将初值赋给控制变量,接着判断控制变量的值是否大于或等于终值,若是,则执行循环体,在执行了循环体之后,自动将控制变量的值该为它的前趋值,并重新判断是否大于或等于终值。当控制变量的值小于终值时,退出for循环,执行for语句之后的语句。for语句中的初值、终值、控制变量的数据都必须是顺序类型。当初值和终值确定后,重复的次数就确定不变了,并且控制变量在重复语句内不能施加任何赋值操作。例:计算1+2+3+……+99+100 10programjia; varn,sum:integer; begin sum:=0; fori:=1to100do sum:=sum+i; writeln(sum); end.10(1)5、程输出如下的乘法口诀表:1*1=12*1=22*2=43*1=33*2=63*3=94*1=44*2=84*3=124*4=165*1=55*2=105*3=155*4=205*5=256*1=66*2=126*3=186*4=246*5=306*6=367*1=77*2=147*3=217*4=287*5=357*6=427*7=498*1=88*2=168*3=248*4=328*5=408*6=488*7=568*8=649*1=99*2=189*3=279*4=369*5=459*6=549*7=639*8=729*9=81(2)25、求1+1*2+1*2*3+......+1*2*3*......*9*10(3)38、求1+11+111+......共N项之和(1,……<下标类型n>]of<元素类型> 其中n称为数组的维数,每维的下标类型必须是一个顺序类型,通常为子界类型或枚举类型,其作用是指定数组下标的编制方式和下标取值范围。例如:var a:array[1..10]ofinteger;{有10个元素的一维数组} m,n:array[1..10]ofinteger;b:arrayp[1..5,1..5]ofreal;{有25个元素的二维数组,依次按[1,1]……,[1,5],[2,1]……,[2,5],……[5,1],……[5,5]}2.数组的操作10 当数组的元素类型为简单类型时,其下标变量和简单类型变量一样使用。例如: a[50]:=50; a[20]:=a[5]; 一个数组,下标的起始值和终止值是在类型定义中给定的,不能在程序执行中再通过其他途径来改变,所以数组元素的个数在程序运行期间是固定不变的。数组变量作为整体仅允许同类型数组之间的赋值运算。例如:varx,y:array[1..10]ofinteger;x::=y例:读入5个学生的学号和成绩,计算他们的平均分,若比平均分高10分的等第为A,若比平均分高小于10分的等地为B,若低于平均分,则等第为C,输出他们的成绩和等第。10programsample7d1(input,output); constn=5; type no=array[1..n]ofinteger; s=array[1..n]ofreal; var i:integer; k:real; num:no; score:s; begin k:=0; fori:=1tondo begin readln(num[i],score[i]); k:=k+score[i]; end; k:=k/n; fori:=1tondo begin write(num[i],score[i]); if(score[i]-k)>=10thenwriteln('A')elseif((score[i]-k)<10)and((score[i]-k)>0)thenwriteln('B') elsewriteln('C'); end; end.1010
此文档下载收益归作者所有
举报原因
联系方式
详细说明
内容无法转码请点击此处