资源描述:
《Pascal顺序结构程序设计作业(含答案)》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
----------专业最好文档,专业为你服务,急你所急,供你所需-------------文档下载最佳的地方第1题:完善下列程序:问题:给出半径R=100,高H=30,求圆周长、圆面积、圆柱全面积。源程序:programlx1(input,output);var(1):real;beginlen:=2*pi*r;s:=(2);qs:=len*h+2*s;writeln('len=',len,'s=',sm,'qs=',qs);end.解:我们可以看到变量pi,r,s,qs,len,h均未定义。则(1)为pi,r,s,qs,len,h由圆面积公式可以很容易得到(2):pi*r*r注:这一题题目有错,pi,r,h变量未定义。同学们可以自行加上,但不可以不加。如在begin下加pi:=3.1415926;r:=100;h:=30; 第2题:编写一程序,当程序执行时,输入以秒为单位的时间,输出形式为:“小时:分:秒”解:这一题用到两个标准函数:mod和div,mod指取余,div指取整商。用puts表输入,用hours表小时,用minutes表分钟,用seconds表秒。程序如下:programname;varputs,hours,minutes,seconds:integer;beginread(puts);hours:=putsmod3600;puts:=putsdiv3600;minutes:=putsmod60;seconds:=putsdiv60;writeln(hours,':',minutes,':',seconds)end.同学们可以看到puts是输入变量,也是临时变量,变了两次值,仔细想想是如何变化的。 第3题:编写一程序,输入一个三位数的正整数,输出时反向输出。如:输入456,输出654。解:这一题如果学了数组很简单,没有的话就要用mod和div函数,请同学们在理解上一题的基础上看下面的程序。programname;varthree:integer;beginread(three);----------专业最好文档,专业为你服务,急你所急,供你所需-------------文档下载最佳的地方
1----------专业最好文档,专业为你服务,急你所急,供你所需-------------文档下载最佳的地方fori:=1to3dobeginwrite(threemod10);three:=threediv10;end;end.本程序用到一个for循环,指循环执行三次。同学们想一想最后three的值是什么?对了!是0! 第4题:编写一个程序,输入两个实数a,b,求a,b的乘积。(尤其当a,b两数比较大时,看一下输出结果。)解:这一题主要是范围问题。programname;vara,b:real;beginread(a,b);write(a*b);end.虽然实数范围很大可达到10-38--10+38之间,但更大则会:Floatingpointoverflow.[例5]已知上底、下底和高,求梯形的面积。[问题分析](1)明确问题。求梯形的面积,已知上底、下底和高,由公式得: 梯形面积=(上底+下底)*高/2(2)分析问题。如果梯形的上底用a表示,下底用b表示,高用h表示,梯形面积用s表示,用梯形面积公式为:s=(a+b)*h/2根据题意,算法可以这样设计:1.输入梯形的上底a、下底b和高h;2.求出梯形面积s=(a+b)*h/2;3.输出结果s.(3)设定变量的类型。这里使用的变量a、b、h、s都应设定为实型数。(4)程序编制如下:programp4-9(input,output); var----------专业最好文档,专业为你服务,急你所急,供你所需-------------文档下载最佳的地方
2----------专业最好文档,专业为你服务,急你所急,供你所需-------------文档下载最佳的地方 a,b,h,s:real; begin writeln('inputa,b,h:'); readln(a,b,h); s:=(a+b)*h/2; writeln('s=',s:12:6); readln end.运行结果:inputa,b,h:354s=16.000000[例6]键盘输入两个数,交换后输出。[问题分析](1)明确问题。通过键盘输入两个变量a,b的值,再将a,b的值相交换,然后输出a,b的值。如输入后变量a的值为2,变量b的值为5,经过交换a的值为5,b的值为2。(2)分析问题。如果输入的两个数舍为a,b,在交换前要设定一个变量c作为交换时的过度变量,以防止变量a或b的值在赋值时丢失。设计算法如下:1.输入a,b;2.交换变量的值c:=aa:=bb:=c;3.输出a,b.(3)设定变量的类型。这里使用的变量a、b、c应设定为整型数。(4)程序编制如下:programp4-10(input,output); var a,b,c:integer; begin writeln('输入两个数');----------专业最好文档,专业为你服务,急你所急,供你所需-------------文档下载最佳的地方
3----------专业最好文档,专业为你服务,急你所急,供你所需-------------文档下载最佳的地方 read(a,b); c:=a; a:=b; b:=c; writeln('交换后的值是:',a:5,b:5)end.运行结果:请输入两个数:5 8交换后的值是:8 5请思考:如果不用过度变量,只有变量a和b,能否完成交换?[例7]随机产生一个三位自然数,分离出它的百位、十位与个位上的数字。[问题分析](1)明确问题。由计算机随机产生一个三位数,例如产生的三位数是:579,分离的百位、十位与个位上的数字分别是:5、7、9。(2)分析问题。让计算机随机产生一个数字时,应该先明确这个数字的范围和它的类型。一个三位自然数,它在100~999之间,产生100~999内随机整数的方法是:trunc(random*900)+100.假设随机产生三位数是x,个位、十位、百位上的数字分别为:ge,shi,bai,则有:ge:=xmod10bai:=xdiv100shi:=(x-bai*100)div10设计算法如下:1.随机产生一个三位数x2.输出x3.ge:=xmod104.bai:=xdiv1005.shi:=(x-bai*100)div106.输出bai,shi,ge----------专业最好文档,专业为你服务,急你所急,供你所需-------------文档下载最佳的地方
4----------专业最好文档,专业为你服务,急你所急,供你所需-------------文档下载最佳的地方(3)设定变量的类型。这里使用的变量x,ge,shi,bai都应设定为整型数。programp4-11(input,output);var x,ge,shi,bai:integer;begin randomize; x:=trunc(random*900)+100; writeln('x=',x); ge:=xmod10; bai:=xdiv100; shi:=(x-bai*100)div10; writeln('bai=',bai); writeln('shi=',shi); writeln('ge=',ge); readlnend.运行结果:x=836bai=8shi=3ge=6 这个程序,在产生随机数之前,先使用了randomize语句,它的作用是使每次运行程序时,产生不同的随机数。----------专业最好文档,专业为你服务,急你所急,供你所需-------------文档下载最佳的地方