顺序结构与数据类型

上传人:wt****50 文档编号:51447145 上传时间:2018-08-14 格式:PPT 页数:8 大小:57KB
返回 下载 相关 举报
顺序结构与数据类型_第1页
第1页 / 共8页
顺序结构与数据类型_第2页
第2页 / 共8页
顺序结构与数据类型_第3页
第3页 / 共8页
顺序结构与数据类型_第4页
第4页 / 共8页
顺序结构与数据类型_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《顺序结构与数据类型》由会员分享,可在线阅读,更多相关《顺序结构与数据类型(8页珍藏版)》请在金锄头文库上搜索。

1、顺序结构程序与基本数据类型求一元二次方程x2+3x+2=0的两个实数根。解:方程的系数是常量,分别用a,b,c表示,可运用数学上现成的求根公式求方程的根,采取如下方法: 先求出d=b2-4ac;(求根公式中需用开方运算的那部分) 再用求根公式算出x1,x2的值。(x1,x2 = ? ) 输出x1,x2.Pascal程序:program Ex16;Const a=1; 常量说明 b=3;c=2; a,b,c表示方程系数Var d : integer; d为整型变量X1,X2: Real; X1,X2为实型变量Begind:=b*b-4*a*c;x1:=(-b+sqrt(d)/(2*a); 求方程

2、的根x2:=(-b-sqrt(d)/(2*a);Writeln(X1=,X1, :6,X2=,X2);输出结果Readln 等待输入一个回车键End.本程序中的a,b,c均为常量;变量d是整数类型,而变量x1,x2则是实数类型,因为运算式中的Sqrt(d)开 平方运算和(/)除法运算使结果为实数。Sqrt( ) 是开平方函数,是Pascal系统的一个标准函数。自然数的立方可以表示为两个整数的平方之差,比如43=10262,请输出自然数1996的这种表示形式。(这里的 43用自乘三次的形式4*4*4表示;102也用自乘二次的形式10*10表示)解:此题没有现成的计算公式能直接利用,但可以自行推出

3、处理方法或构建适当的运算公式,按着构想的处理方案 编排出各步骤。设这个自然数为N,两个平方数分别为X,Y, 将问题表示为求 N3=X2Y2 先找出X的值,仔细观察题中的示例,用数学方法归纳可得出X=N*(N+1)/2;(构成本题可用的计算公式) 再仔细观察,发现Y值比X小一个N值,即 Y=XN; 输出等式 N3=X2Y2 或N*N*N=X*XY*YPascal程序:Program Ex15;Const N=1996; 常量说明 Var X,Y: Longint; 变量说明,此题计算中的数值较大,用长整型 BeginX:=N*(N+1) div 2; div 是整除运算 Y:=X-N;Write

4、ln(N,*,N,*, N,=, X,*, X,Y,*,Y); 输出结果 ReadlnEnd.本程序中N是常量,X,Y是变量,为长整数类型(Longint); 程序中的div 是整除运算,其结果只取商的整数部分 ; 前面的简单程序已体现出处理问题步骤、思路的顺序关系,这就是顺序结构程序。例1.7交换两个变量的值:由键盘输入两个正整数A和B,编程交换这两个变量的值。解:交换两个变量的值,可以想象成交换两盒录音带(称为A和B)的内容,可以按以下步骤处理:步骤:拿一盒空白录音带C为过渡,先将A翻录至C;步骤:再将B翻录至A;步骤:最后将C翻录至B。这样操作,可达到题目要求。Pascal程序:Prog

5、ram Exam17;Var a,b,c: integer;BeginWrite(A,B=);Readln(a,b);C:= A; 等价于步骤1A := B;等价于步骤2B := C;等价于步骤3Writeln(A,B);End.分钱游戏。甲、乙、丙三人共有24元钱,先由甲分钱给乙、丙两人,所分给的数与各人已有数相同;接着由乙分给甲、丙,分法 同前;再由丙分钱给甲、乙,分法亦同前。经上述三次分钱之后,每个人的钱数恰好一样多。 求原先各人的钱数分别是多少?解:设甲、乙、丙三人的钱数分别为A,B,C。用倒推(逆序)算法, 从最后结果入手,按反相顺序,分步骤推算出每次各人当时的 钱数:(在每个步骤中

6、,各人钱数分别存在A、B、C中)步骤:A=8 B=8 C=8 这是最后结果的钱数,三人都一样多 步骤:A=A/2 (=4)B=B/2 (=4)C=A+B+C(=16) A,B未得到丙分给的钱时,只有结果数的一半;C应包含 给A,B及本身数三者之和 步骤:A=A/2 (=2)C=C/2 (=8)B=A+B+C(=14) A,C未得到乙分给的钱时,只有巳有数的一半;B应包含 给A,C及本身数三者之和 步骤:B=B/2 (=7)C=C/2 (=4)A=A+B+C(=13)C未得到甲分给的钱时,只有巳有数的一半;A应包含给B,C及本身数三者之和 步骤: 输出A(=13)B(=7)C(=4)此时的A,B

7、,C 就是三人原先的钱数 Pascal程序:Program Exam18;Var a,b,c: integer;Begina:=8; b:=8; c:=8; 对应于步骤a:=a div 2; b:=b div 2; c:=a+b+c; 对应于步骤a:=a div 2; c:=c div 2; b:=a+b+c; 对应于步骤b:=b div 2; c:=c div 2; a:=a+b+c; 对应于步骤Writeln(a=,a, : 4,b=,b, : 4,c=,c) ; 输出ReadlnEnd.本程序Writeln语句的输出项含有( : 4 ),这里的冒号用来指定该项显示所占宽度,此处是输出4个

8、空格即(空格项占4格)。例1.9 有鸡兔同笼,头30,脚 90,究竟笼中的鸡和兔各有多少只?解:设鸡为J只,兔为T只,头为H,脚为F,则:J+T=302*J+4*T=90 解此题暂不必采用数学上直接解方程的办法,可采用“假设条件与逻辑推理”的办法:假设笼中30 个头全都是兔,那么都按每头只脚计算,总脚数为(4*H),与实际脚数 ( F )之差为(4*HF),如果这个差 =0,则笼中全是兔(即鸡为0只);如果这个差值 0,说明多计算了脚数,凡是鸡都多给算了两只脚,用它除以2就能得 到鸡的只数,处理步骤为: J=(4*HF)/2 先用脚数差值除以2算出鸡的只数 T=HJ 再用总头数减鸡数算出免的只

9、数按此方法,这两步运算必须注意先后顺序才会符合运算逻辑。Pascal程序:Program Exam16;Const H=30; 常量说明 F=90;Var J,T: byte; 为字节类型的整数 BeginJ:=(4*H-F) div 2; 整除运算 T:=H-JWriteln (J=,J, : 6,T= ,T ) ;ReadlnEnd.本程序中H,F为常量,变量J,T为byte类型,属于整数类型。Pascal定义了五个标准整数类型,如下表所示:类型取值范围占字节数格式Shortint(短整型)-1281271带符号8位Integer (整型)-32768327672带符号16位Longint

10、(长整型)-214748364821474836474带符号32位Byte (字节型)02551无符号8位Word (字型)0655352无符号16位在前面程序中常用的数据类型除整数类型,还有实数类型。Pascal 还定义了五个标准实数类型, 列表所示如下:类型取值范围占字节数有效数字Real2.910-391.71038678位Single1.510-453.4103841112位Double5.010-3241.71030881516位Extended 1.910-49511.1104932101920位Comp-263+1238-181920位1.甲、乙、丙三人分别有磁带36,48,64盒。先由甲把自己的磁带平均分为 三份,分给乙、丙各一份,自己留下一份;接着是乙,最后是丙,都按甲的 方法处理。编程输出甲、乙、丙在上述过程中各人的磁带数分别是多少? ( 输出所有的中间结果)2.五位好朋友相聚。第一位朋友带来了很多糖块赠送给各位朋友,使每人的 糖块在各自原有的基础上翻了一倍;接着第二位好友也同样向每人赠送糖块 ,他同样使每人的糖块在各人已有的数量上翻了一倍;第三、第四、第五位 好友都照此办理。经过这样的赠送之后,每人的糖块恰好都为32块。问各位 好友原先的糖块数分别是多少?课后作业

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

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号