JAVA 皮常德2-7章答案演示教学
- 格式:doc
- 大小:108.50 KB
- 文档页数:23
JAVA 皮常德2-7章答案 精品文档
收集于网络,如有侵权请联系管理员删除 二 1. 角谷猜想:任何一个正整数n,如果它是偶数则除以二,如果是奇数则乘以3再加上1,这样得到一个新的整数,如此继续进行上述处理,则最后得到的数一定是1,编写应用程序和小程序分别验证:3~10000之间任何正整数都满足上述规则。 2. 编写一个程序模拟同时掷2个骰子。程序要用Math.random( )模拟产生第一个骰子, 然后再产生第二个骰子,将2个结果相加。和等于7的可能性最大,等于2和12的可能性最小。
下图表示了出现36种情况组合。程序模拟掷3600次骰子,判断求和结果
是否合理,共有6种情况的和是7, 故在3600次掷骰子的结果中应当有1/6的可能性是7。 1 2 3 4 5 6 1 2 3 4 5 6 7 2 3 4 5 6 7 8 3 4 5 6 7 8 9 4 5 6 7 8 9 10 5 6 7 8 9 10 11 6 7 8 9 10 11 12
一、 实验步骤: 1. 应用程序:
package cp2; public class a4 { public static void main(String[] args) { boolean a=true; int j; for(int i=3;i<=10000;i++){ for(j=i;j>1;){ if(j%2==0){ j=j/2; } else{ j=j*3+1; } } if(j!=1){ a=false;break;
精品文档 收集于网络,如有侵权请联系管理员删除 } } System.out.println(a); }
}
运行结果:true
小程序: package cp2; import java.awt.*; import java.applet.*;
public class a5 extends Applet{ Label lab1; TextField input1; int num1=1; public void init(){ lab1=new Label("任意输入3~10000的一个整数"); input1=new TextField(10);
add(lab1); add(input1); }
public boolean action(Event e,Object o){ num1=Integer.parseInt(input1.getText()); showStatus(""); input1.setText(""); repaint(); showStatus("这个数是"+num1); return true; }
public void paint(Graphics g){ int xpos=50,ypos=50,i=0; int xpos1=xpos; while(num1!=1) { if(num1%2==0){ num1=num1/2; g.drawString(Integer.toString(num1), xpos, ypos); 精品文档 收集于网络,如有侵权请联系管理员删除 } else{ num1=num1*3+1; g.drawString(Integer.toString(num1), xpos, ypos); } xpos=xpos+50; i++; if(i%5==0) { ypos=ypos+10; xpos=xpos1; } } }
} 运行结果:
2. 程序:
package cp2;
import java.awt.*; import java.applet.*; public class a6 extends Applet{ Label lab; TextField input; int a,b,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12; double i2,i3,i4,i5,i6,i7,i8,i9,i10,i11,i12; 精品文档 收集于网络,如有侵权请联系管理员删除
public void init(){ lab=new Label("输入次数"); input=new TextField(10);
add(lab); add(input); }
public boolean action(Event e,Object o){ int time=Integer.parseInt(input.getText()); showStatus(""); input.setText(""); showStatus("模拟次数"+time); t2=t3=t4=t5=t6=t7=t8=t9=t10=t11=t12=0; for(int i=1;i<=time;i++){ a=(int)(Math.random()*6+1); b=(int)(Math.random()*6+1); switch(a+b){ case 12:t12++;break; case 11:t11++;break; case 10:t10++;break; case 9:t9++;break; case 8:t8++;break; case 7:t7++;break; case 6:t6++;break; case 5:t5++;break; case 4:t4++;break; case 3:t3++;break; case 2:t2++;break; } i12=(double)t12/i; i11=(double)t11/i; i10=(double)t10/i; i9=(double)t9/i; i8=(double)t8/i; i7=(double)t7/i; i6=(double)t6/i; i5=(double)t5/i; i4=(double)t4/i; i3=(double)t3/i; i2=(double)t2/i; repaint(); } 精品文档 收集于网络,如有侵权请联系管理员删除 //repaint(); return true; }
public void paint(Graphics g){ g.drawString("各种和的概率:",25,40); g.drawString("12:"+i12,25,55); g.drawString("11:"+i11,25,70); g.drawString("10:"+i10,25,85); g.drawString("9:"+i9,25,100); g.drawString("8:"+i8,25,115); g.drawString("7:"+i7,25,130); g.drawString("6:"+i6,25,145); g.drawString("5:"+i5,25,160); g.drawString("4:"+i4,25,175); g.drawString("3:"+i3,25,190); g.drawString("2:"+i2,25,205); } }
运行结果:
三 一、 实验内容: 1. 采用循环语句打印如下图形: * * ** ** 精品文档 收集于网络,如有侵权请联系管理员删除 *** *** **** ****
2.编写一个applet,采用公式:ex=1+x1/1!+x2/2!+……..+xn/n!.
三、实验步骤: 1.程序:
package cp3; import java.awt.*; import java.applet.*;
public class a1 extends Applet{ Label lab; TextField input; int a,b[]=new int[20],i,j;
public void init(){
lab=new Label("输入数字"); input=new TextField(10);
add(lab); add(input); }
public boolean action(Event e,Object o){ a=Integer.parseInt(input.getText()); input.setText(""); repaint(); return true; }
public void paint(Graphics g){ for(int i=0;a!=0;i++){ b[i]=a%10; a/=10; } for(j=0;b[j]!=0;j++); for(int t=--j;t>=0;t--){ g.drawString(Integer.toString(b[t]),j*20-t*20,55); } for(i=0;i