1、Pascal语言程序设计,第一部分,第一讲 Pascal语言基础一,程序的基本结构,程序的上机调试和运行,语言基础一,例1:要将一张100元的大钞票,换成等值的10元、5元、2元、1元一张的小钞票,每次换成40张小钞票,每种至少1张。 如,有一种换法: 10元: 9 张 5元: 1 张 2元: 2 张 1元: 1 张 问:一共有多少种换法。,程序的上机调试和运行,program ex1; varx1,x2,x3,x4,n:integer; beginn:=0;for x1:=1 to 10 dofor x2:=1 to 20 dofor x3:=1 to 50 dofor x4:=1 to 1
2、00 doif (10*x1+5*x2+2*x3+x4=100)and(x1+x2+x3+x4=40) then n:=n+1;writeln(n); end.,例2 、 已知:s=1+1/2+1/3+1/n 求:使s的值大于10时最小的n。,vars : real;n : integer; begins:=0;n:=0;while s=10 dobeginn:=n+1;s:=s+1/n;end;writeln(n); end.,例3、编一个程序,从键盘输入一个真分数的分子和分母,输出它的小数形式,精确到小数点后1000位。,var n,m,r,q,i:integer; beginread(n
3、,m);r:=n;write(0.);i:=1;while i=1000 dobeginq:=10*r div m;r:=10*r mod m;write(q);i:=i+1;end; end.,上机调试运行步骤:,1、运行: Free Pascal 2、filenew :新建文件 3、compilemake :编译,找错误。 4、run run:运行 5、debug output(Alt+F5):察看结果,program 程序名;可以省略 var 变量说明; begin 语句; 语句; 语句; end.,Pascal程序的基本结构,程序的基本结构,一、变量的定义说明: 二、Pascal数据类
4、型(整型、实型) 三、基本语句(赋值语句、输入语句read、输出语句write) 四、算术运算符和算术表达式 五、标准函数(数值型函数),语言基础一,一、变量的定义说明: 在程序中用到的所有变量必须事先定义。 格式: Var : ;: ;,如:输入3个整数,求这3个数的平均值。 Var a,b,c:integer;aver:real;,二、Pascal数据类型,Vara,b:integer;c:longint; Beginreadln(a);readln(b);c:=a+b;writeln(c): End.,120 200,10000 20000,20000 30000,测试以下3组数据:,输
5、入整数a和b,输出a+b的值。,整型、实型、(字符型和布尔型),1、整型,类型 数值范围 占字节数Byte 0 255 1Word 065535 2Shortint -128 127 1Integer -3276832767; 2Longint -2147483648 2147483647 4Longword 04294967295 4Int64 -9223372036854775808 9223372036854775807 8QWord 0 18446744073709551615 8,2、实数 类型 范围 有效位数 占用字节Real 2.9e-391.7e38 1112 6 Single
6、 1.5E-45 3.4E38 7-8 4Double 5.0E-324 1.7E308 15-16 8Extended 1.9E-4951 1.1E4932 19-20 10Comp -2E64+1 2E63-1 19-20 8,Varbeginread(a,b);c:=a*b;d:=a/b;writeln(c);writeln(d); End.,?,例: 输入:两个整数a、b(=3000),输出它们的乘积c,商d。,实数的定点型格式输出: 实数表达式:域宽:小数位数 T=63.123 write(t); 6.312300000000E+01 write(t:6:2); 63.12 writ
7、e(t:6:5); 63.12300 如果要求小数点后精确2位小数. Writeln(x:0:2);,a,b:integer; C:longint; d:real;,1、赋值语句 赋值语句是最简单的语句. 1)、赋值语句的格式 变量名:=表达式; 其中“:=”称为赋值号。 2)、执行过程 计算机先计算赋值号右边表达式的值,然后将表达式的值赋给变量名代表的变量。 如:A:=(9*8)-(2-1); A:=A+1,三、基本语句,integer Longint reaL,、输入语句read和readLn 功能:从键盘读入数据项,并把它存到变量中去,使该数据能在以后的计算中使用。 输入语句的一般形式为
8、:read(v1,v2,vn);readLn(v1,v2,vn);从键盘逐次读入数据,分别赋给变量v1,v2,vn,一行输入多个变量值时,要求数据之间用空格分隔,readln语句要求输入数据后必须回车,使得后继操作从下一行的头上开始。,read语句与readln语句区别是:1) read语句是一个接一个地读数据,在执行完本Read语句( 读完本语句中变量所需的数据)后,下一个读语句接着从该数据输入行中继续读数据,也就是说,不换行。如:read(a,b);read(c,d);read(e);如果输入数据行如下:123456 则a,b,c,d,e的值分别为1,2,3,4,5,如果后面无读语句则数据
9、6是多余的,这是允许的。,Readln则不同,在读完本Readln语句中变量所需的数据后, 该数据行中剩余的数据多余无用,或者说,在读完本Readln语句中变量所需数据后,一定要读到一个回车,否则多余的数据无用。 设有下列语句:read(a,b,c);readln(d,e);readln;readln(f,g); 其中,所有变量均为整型。设输入的数据如下:1234567891011 12 13,Var a,b,c,d,e,f,g:integer; beginread(a,b,c);readln(d,e);readln;readln(f,g);writeln(a, ,b, ,c, ,d, ,e,
10、 ,f, ,g); end.,2)readln语句与read语句的第二个区别是: read 后一定要有参数表, readln可以不带参数表,即可以没有任何输入项, 只是等待读入一个换行符(回车)。经常用于暂停程序的运行,直到输入一个回车,输出语句write和writeLn 功能: 把程序计算的结果,按适当的形式输出到屏幕。 1)、write语句 格式Write(表达式1,表达式2,); 如: write(x,5,a+b); write(My name is Liping); 2)、writeLn语句 格式: Write(表达式1,表达式2,) 或writeLn,Write语句与writeln语
11、句格式上都相似,但它们在功能上有所不同,两个语句的区别在于:write语句将其后括号中的表达式一个接一个输出后,没有换行。而writeln语句则在输出各个表达式的值后换行。 例如以下两个程序段的输出分别为: write(1,2,3,4); write(5,6); 输出为: 123456 writeln(1,2,3,4); write(5,6); 输出为: 1234 56,实数的输出格式 实数(real)以浮点型格式输出。例如805.67对应的浮点数为8.056700000000E+02。这种实数表达方式很不方便。我们可以通过下述形式强迫实数以定点型格式输出:实数表达式:域宽:小数位数 例如,t
12、的值设为63.123。下面三条输出语句分别有它们右边所示的输出格式:write(t); 6.312300000000E+01write(t:6:2); 63.12write(t:6:5); 63.12300write(t:0:0);,var a,b,t:integer; begin read(a,b); t:=a; a:=b; b:=t; writeln(a=,a);writeln(b=,b) ; end.,例:输入两个整数a,b,交换他们的值,并输出. 如:输入:30 34输出:34 30,四、算术运算符和算术表达式,1.算术运算符 运算符 运算 运算对象 结果类型 + 加 整型、实型 只要
13、有一个运算对象是实型,结果就 - 减 整型、实型 是实型,如果全部的运算对象都是整 * 乘 整型、实型 型并且运算不是除法,则结果为整型 / 除 整型、实型 若运算是除法,则结果是实型。 div 整除 整型 整型 mod 取余 整型 整型,2、表达式 是通过运算符把常量、变量、函数调用结合起来组成的。3+x1+b,上机练习题目: 输入一个3位的正整数,输出他们的各位数字之和与乘积。 如: 输入: 436 输出: 13 72,varn,a,b,c,x,y:integer; beginreadln(n);a:=n div 100;b:=(n div 10) mod 10;c:=n mod 10;x
14、:=a+b+c;y:=a*b*c;writeln(x);writeln(y); end.,五、标准函数,+ a-b ,算术函数 函数标识符 意义 x类型 结果类型 abs(x) 绝对值 整型、实型 同自变量 sqrt(x) 平方根 整型、实型 实型 int(x) 取整数部分 整型、实型 实型exp(x) :ex 指数 整型、实型 实型 ln(x) :logex 自然对数 整型、实型 实型e=2.718,Log102.1=,xn=,en*lnx,=Exp(n*Ln(x),abs(-4)=4 abs(-7.49)=7.49 int(3.71)=3.0 sqrt(4)=2,正确的书写表达式:1)、,2)、,上机练习 1、输入三角形的三条边a,b,c,输出三角形的面积。(a,b,c是正整数100,满足三角形条件),Vara,b,c:integer;p,s:real; Beginreadln(a,b,c);p:=(a+b+c)/2;S:=sqrt(p*(p-a)*(p-b)*(p-c);writeln(s:0:2); End.,