JAVA2简明教程第2版答案.docx
- 文档编号:20137138
- 上传时间:2023-04-25
- 格式:DOCX
- 页数:113
- 大小:41.55KB
JAVA2简明教程第2版答案.docx
《JAVA2简明教程第2版答案.docx》由会员分享,可在线阅读,更多相关《JAVA2简明教程第2版答案.docx(113页珍藏版)》请在冰豆网上搜索。
JAVA2简明教程第2版答案
第2章习题4
角谷猜想:
任何一个正整数n,如果它是偶数则除以2,如果是奇数则乘以3加上1,这样得到一个新的整数,
如继续进行上述处理,则最后得到的数一定是1。
编写应用程序和小程序程序分别证明:
所有的3至10000的数都符合上述规则。
********************************************************************************************/
//程序清单
/*
方法1:
采用小程序
*/
importjava.awt.*;
importjava.util.*;
importjava.applet.Applet;
publicclassjiaoguextendsApplet{
publicvoidpaint(Graphicsg){
intx,n,i=10;
for(x=3;x<=10;x++){
n=x;
while(n!
=1)
if(n%2==0)n=n/2;
elsen=n*3+1;
g.drawString(x+"符合角谷猜想!
",25,25+i);
i=i+15;
}
}
}
/*
*方法2:
采用应用程序
*/
classjiaogu{
publicstaticvoidmain(Stringargs[]){
intx,n,i;
for(x=3;x<=1000;x++){
n=x;
while(n!
=1)
if(n%2==0)n=n/2;
elsen=n*3+1;
System.out.println(x+"符合角谷猜想!
");
}
}
}
/********************************************************************************************
第2章习题5
编写一个applet,要求输入2个整数,在状态条显示较大的数,紧跟着显示“islarger”。
若二者相等,显示“thetwonumbersareequal!
********************************************************************************************/
//程序清单
/*
*large.java
*/
importjava.applet.*;
importjava.awt.*;
publicclasslargeextendsApplet{
Labellab1,lab2;
TextFieldinput1,input2;
intone,two;
publicvoidinit(){
lab1=newLabel("输入第一个数");
lab2=newLabel("输入第二个数");
input1=newTextField(6);
input2=newTextField(6);
add(lab1);
add(input1);
add(lab2);
add(input2);
}
publicbooleanaction(Evente,Objecto){
intmax;
if(e.target==input1||e.target==input2){
one=Integer.parseInt(input1.getText());
two=Integer.parseInt(input2.getText());
if(one==two)
showStatus("两个数相等!
");
else{
max=(one>two)?
one:
two;
showStatus(max+"较大!
");
}
}
returntrue;
}
}
/********************************************************************************************
第2章习题6
编写一个程序模拟同时掷2个骰子。
程序要用Math.random()模拟产生第一个骰子,
然后再产生第二个骰子,将2个结果相加。
和等于7的可能性最大,等于2和12的可能性最小。
下图表示了出现36种情况组合。
程序模拟掷3600次骰子,判断求和结果是否合理,共有6种情况的和是7,
故在3600次掷骰子的结果中应当有1/6的可能性是7。
123456
1234567
2345678
3456789
45678910
567891011
6789101112
********************************************************************************************/
//程序清单
/*
*dice.java
*
*模拟掷骰子
*/
publicclassdice{
publicstaticvoidmain(String[]args){
//Theratethatnumbersappear
doubleresult2;
doubleresult7;
doubleresult12;
intn1,n2;
intint1,int2;
//Thetimesnumbersappear
inttimes2=0;
inttimes7=0;
inttimes12=0;
for(inti=0;i<3600;i++){
//generaterandomint
n1=(int)(Math.random()*6+1);
n2=(int)(Math.random()*6+1);
if((n1+n2)==2)
times2++;
elseif((n1+n2)==7)
times7++;
elseif((n1+n2)==12)
times12++;
}
result2=times2/3600.0;
result7=times7/3600.0;
result12=times12/3600.0;
System.out.println("和为2的次数:
"+times2+"占的比率:
"+result2);
System.out.println("和为7的次数:
"+times7+"占的比率:
"+result7);
System.out.println("和为12的次数:
"+times12+"占的比率:
"+result12);
}
}
/********************************************************************************************
第3章习题1
编程:
要求输入一个5位整数,将这个数分成独立的数字,并分开显示。
例如输入32439则显示32439。
********************************************************************************************/
//程序清单
/*
*deduct.java
*/
importjava.applet.*;
importjava.awt.*;
publicclassdeductextendsApplet{
Stringstr;
TextFieldinput;
LabelLinput;
publicvoidinit(){
Linput=newLabel("输入一个整数");
input=newTextField(10);
add(Linput);
add(input);
}
publicbooleanaction(Evente,Objecto){
if(e.target==input){
str=input.getText();
showStatus("这个数是:
"+str);
}
repaint();
returntrue;
}
publicvoidpaint(Graphicsg){
for(inti=0;i g.drawString(str.charAt(i)+"",50+i*10,50); } } /******************************************************************************************** 第3章习题2 编程: 计算从0到10的平方和立方值。 并以如下格式显示: 数平方立方 000 111 248 3927 ………………………………… 101001000 ********************************************************************************************/ //程序清单 /* *num.java */ importjava.applet.*; importjava.awt.*; publicclassnumextendsApplet{ publicvoidpaint(Graphicsg){ g.drawString("数",20,15); g.drawString("平方值",80,15); g.drawString("立方值",140,15); for(inti=0;i<=10;i++){ g.drawString(""+i,20,30+i*20); g.drawString(""+i*i,80,30+i*20); g.drawString(""+i*i*i,140,30+i*20); } } } //采用应用程序如下 publicclassnum2{ publicstaticvoidmain(String[]args){ inti=0; intresult; System.out.println("数"+"平方"+"立方"); for(;i<=10;i++){ result=i; System.out.print(i+""); result=result*i; System.out.print(""+result); result=result*i; System.out.print(""+result); System.out.println(); } } } /******************************************************************************************** 第3章习题3 采用循环语句打印如下图形。 ** **** ****** ******** ********** ********************************************************************************************/ //程序清单 /* *graph1.java */ publicclassgraph1{ //drawnstars staticvoidstar(intn){ for(inti=1;i<=n;i++){ System.out.print("*"); } } //drawnspaces staticvoidspace(intn){ for(inti=1;i<=n;i++){ System.out.print(""); } } publicstaticvoidmain(String[]args){ //thelengthofspace inti=20; //thelengthofstar intj=1; for(j=1;j<=5;j++){ star(j); space(i); star(j); i-=2; System.out.println(); } } } /******************************************************************************************** 第3章习题4 编程: 读取一个矩形的边长,然后输出一个空心矩形。 例如读入边长5,应当输出: ***** ** ** ** ***** ********************************************************************************************/ //程序清单 /*采用小程序实现 *graph2.java */ publicclassgraph2extendsApplet{ intnum; TextFieldinput; LabelLinput; publicvoidinit(){ Linput=newLabel("Enteraninteger: "); input=newTextField(10); add(Linput); add(input); } publicbooleanaction(Evente,Objecto){ if(e.target==input) num=Integer.parseInt(input.getText()); repaint(); returntrue; } publicvoidpaint(Graphicsg) { inti,j; for(i=0;i if(i==0||i==num-1) for(j=0;j g.drawString("*",30+10*j,50+10*i); else{ g.drawString("*",30,50+10*i); g.drawString("*",30+10*(num-1),50+10*i); } } } /*采用应用程序实现 *graph2_1.java */ publicclassgraph2_1{ privateintnumber; publicNO_2_4(intnumber){ this.number=number; draw(number); } //drawsquare publicvoiddraw(intn){ if(n==1) System.out.println("*"); else{ stars(n); System.out.println(); for(inti=0;i stars (1); space(n-2); stars (1); System.out.println(); } stars(n); System.out.println(); } } //drawstars staticvoidstars(intn){ for(inti=1;i<=n;i++){ System.out.print("*"); } } //drawspaces staticvoidspace(intn){ for(inti=1;i<=n;i++){ System.out.print(""); } } publicstaticvoidmain(String[]args){ graph2_1temp=newgraph2_1(7); } } /******************************************************************************************** 第3章习题5 编程: 输入一个数,判断输入的这个数是否为廻文。 所谓廻文数就是从左向右看和从右向左看都一样。 例如: 121、13431都是廻文,而12345不是廻文。 ********************************************************************************************/ //程序清单 /*采用小程序实现 *huiwen.java */ importjava.awt.*; importjava.applet.*; publicclasshuiwenextendsApplet{ TextFieldinput; Labelmessage; booleanb=true; publicvoidinit(){ message=newLabel("请输入你需要判断的数: "); input=newTextField(10); add(message); add(input); showStatus("start..."); } publicbooleanaction(Evente,Objecto){ Stringstr; b=true; if(e.target==input){ str=input.getText(); for(inti=0,j=str.length()-1;i if(str.charAt(i)! =str.charAt(j)) b=false; } repaint(); returntrue; } publicvoidpaint(Graphicsg){ if(b) g.drawString(input.getText()+"是回文",50,100); else g.drawString(input.getText()+"不是回文",50,100); showStatus("done"); } } /******************************************************************************************** 第3章习题6 采用下列公式计算ex的值: ex=1+x1/1! +x2/2! +…+xn/n! 。 从键盘输入x和n,编程计算ex的值。 ********************************************************************************************/ //程序清单 /* *expi.java */ importjava.awt.*; importjava.applet.*; publicclassexpiextendsApplet{ doubleresult; intx; Labelexpress1=newLabel("e的"); TextFieldfield=newTextField(5); Labelexpress2=newLabel("次方: "); publicvoidinit(){ add(express1); add(field); add(express2); } intfactor(intn){//计算n! intt=1; for(inti=1;i<=n;i++) t=t*i; returnt; } intf(intx,intn){//计算x^n intt=1; for(inti=1;i<=n;i++) t=t*x; returnt; } publicbooleanaction(Evente,Objecto){ doubletemp=1; intn=1; result=1;//e的结果 if(e.target==field){ x=Integer.parseInt(field.getText()); while(temp>1e-12){ temp=(double)f(x,n)/factor(n); result+=temp; n++; } showStatus("结果是: "+result); repaint(); } returntrue; } } /****************************************************************
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA2 简明 教程 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)