< F2D89BA8EE882C E6A7464>

Similar documents
< F2D82518E9F8AD CC834F CC8CFC82AB82C68D4C>

< F2D A839382CC906A2E6A7464>

< F2D82518E9F8AD CC95BD8D7388DA93AE2E6A7464>

< F2D A838B838D96402E6A7464>

< F2D B838A835882CC8CF68EAE2E6A7464>

< F2D E E6A7464>

< F2D834F838C A815B A CC>

< F2D82518CC282CC D2E6A7464>

< F2D82B682E182F182AF82F12E6A7464>

< F2D B825082CC96E291E82E6A7464>

< F2D92DE82E8914B82CC977088D32E6A7464>

< F2D F B834E2E6A7464>

< F2D825282CC947B909482CC A815B83682E6A>

< F2D8EA CE909482CC92EA82852E6A7464>

< F2D BCA82CC978E89BA82CC8EC08CB12E6A7464>

Java言語 第1回

text_13.dvi

Java言語 第1回

Microsoft PowerPoint - OOP.pptx

問1

KeyListener init addkeylistener addactionlistener addkeylistener addkeylistener( this ); this.addkeylistener( this ); KeyListener public void keytyped

ガイダンス

Local variable x y i paint public class Sample extends Applet { public void paint( Graphics gc ) { int x, y;... int i=10 ; while ( i < 100 ) {... i +=

Microsoft PowerPoint prog1_doc2x.pptx

2 p.2 2 Java Hello0.class JVM Hello0 java > java Hello0.class Hello World! javac Java JVM java JVM : Java > javac 2> Q Foo.java Java : Q B

ガイダンス

ガイダンス

untitled

Java演習(2) -- 簡単なプログラム --

Java言語 第1回

アプレットの作成


Prog1_12th

アプレットⅤ

2 p.2 2 Java Hello0.class JVM Hello0 java > java Hello0.class Hello World! javac Java JVM java JVM : Java > javac 2> Q Foo.java Java : Q B

text_12.dvi

Java 2 p.2 2 Java Hello0.class JVM Hello0 java > java Hello0.class Hello World! javac Java JVM java JVM : Java > javac 2> Q Foo.java Java : Q 2.

r3.dvi

Applet java.lang.object java.awt.component java.awt.container java.awt.panel java.applet.applet

Java演習(9) -- クラスとメソッド --

Microsoft PowerPoint prog1_doc2.pptx


Safari AppletViewer Web HTML Netscape Web Web 15-1 Applet Web Applet init Web paint Web start Web HTML stop destroy update init Web paint start Web up

2 p.2 2 Java Hello0.class JVM Hello0 java > java Hello0.class Hello World! javac Java JVM java JVM : Java > javac 2> Q Foo.java Java : Q B

Microsoft PowerPoint - prog11.ppt

Chapter 20. [ ] ; [ ] = new [ ] ; Color colors [ ] = new Color[ 20 ]; // 20 Button operations [ ] = new Button[ 10 ]; // 10 colors[ 3 ] = new Color( 1

IE6 2 BMI chapter1 Java 6 chapter2 Java 7 chapter3 for if 8 chapter4 : BMI 9 chapter5 Java GUI 10 chapter6 11 chapter7 BMI 12 chap

GUIプログラムⅣ

Prog2_11th

<4D F736F F F696E74202D AC C8899E D834F E >

10/31 Java AWTの基本構造(Frameクラスの継承) 演習課題資料

次の演習課題(1),(2)のプログラムを完成させよ

Microsoft PowerPoint - prog11.ppt

Prog1_12th

Microsoft PowerPoint ppt

ガイダンス

PowerPoint プレゼンテーション

2

PowerPoint Presentation

Microsoft PowerPoint - OOP.pptx

2 p.2 2 Java > javac Hello0.java Hello0.class JVM Hello0 java > java Hello0.class Hello World! javac Java JVM java JVM : Java > javac 2> Q Foo.j

ガイダンス

r6.dvi

Java 3 p.2 3 Java : boolean Graphics draw3drect fill3drect C int C OK while (1) int boolean switch case C Calendar java.util.calendar A

AWT setcolor, drawstring Java AWT Abstract Window Toolkit Graphics AWT import import java.awt.* ; // AWT Graphics import java.awt.graphics; // AWT Gra

Java言語 第1回

AWT setcolor, drawstring Java AWT Abstract Window Toolkit Graphics AWT import import java.awt.* ; // AWT Graphics import java.awt.graphics; // AWT Gra

GUIプログラムⅤ

2008 e-learning T050050

Object MenuComponent MenuBar MenuItem Menu CheckboxMenuItem

r4.dvi

Microsoft PowerPoint - prog10.ppt

r2.dvi

public static void main(... ) { Copyright by Tatsuo Minohara 2004 rev. Oct. 6 Macintosh Java Primer Chapter 3-2

PowerPoint プレゼンテーション

問題1 以下に示すプログラムは、次の処理をするプログラムである

Assignment_.java /////////////////////////////////////////////////////////////////////// // 課題 星の画像がマウスカーソルを追従するコードを作成しなさい 次 ///////////////////

(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド

Microsoft PowerPoint - prog10.ppt

2 p.2 2 Java Hello0.class JVM Hello0 java > java Hello0.class Hello World! javac Java JVM java JVM : Java > javac 2> Q Foo.java Java : Q B

表示の更新もそういた作業のひとつに当たる スレッドの使用アニメーション アニメーションやシミュレーションなどは画面の更新が一定のタイミングで行われていく この連続した画面の更新をスレッドを利用して行う しかし paint() メソッドを直接呼び出して表示を更新することはできない その理由

JAVA入門

I. (i) Foo public (A). javac Foo.java java Foo.class (C). javac Foo java Foo (ii)? (B). javac Foo.java java Foo (D). javac Foo java Foo.class (A). Jav

Microsoft Word 年度情報コミュニケーション実験II(Ver0.9)c.docx

19 3!! (+) (>) (++) (+=) for while 3.1!! (20, 20) (1)(Blocks1.java) import javax.swing.japplet; import java.awt.graphics;

I 4 p.2 4 GUI java.awt.event.* import /* 1 */ import mouseclicked MouseListener implement /* 2 */ init addmouselistener(this) this /* 3 */ this mousec

Chapter JDK KeyListener keypressed(keyevent e ) keyreleased(keyevent e ) keytyped(keyevent e ) MouseListener mouseclicked(mouseeven

ソフトウェア開発方法論2

Microsoft PowerPoint ppt

PowerPoint Presentation

5 p Point int Java p Point Point p; p = new Point(); Point instance, p Point int 2 Point Point p = new Point(); p.x = 1; p.y = 2;

K227 Java 2

2

2 static final int DO NOTHING ON CLOSE static final int HIDE ON CLOSE static final int DISPOSE ON CLOSE static final int EXIT ON CLOSE void setvisible

Microsoft PowerPoint - prog12.ppt

3 p.1 3 Java Java Java try catch C Java if for while C 3.1 boolean Java if C if ( ) 1 if ( ) 1 else , 2 { } boolean true false 2 boolean Gr

II Java :30 12:00 I. I IV II. III. IV. ( a d) V. : this==null, T == N A ActionListener C class D actionperformed G getsource I implements K

Microsoft Word - Java3.DOC

Chapter 19. init paint actionperformed init if Subroutine Function init paint ( ) { } ( ) void public void init( ) { } init void void public Copyright

入門Java解答.doc

Transcription:

下手な鉄砲も数撃ちゃ当たる!! [Java アプレット ] [Java アプリケーション ] 1. はじめに 鉄砲を10 回撃つと1 回当たる腕前の人が鉄砲を撃ちます 下枠の [ 自動 10 回 ] または [ 自動 50 回 ] または [ 自動 100 回 ] をクリックすると それぞれ10 回 50 回 100 回 実験を繰り返します ただし 1 回の実験につき20 発の鉄砲を発射します シミュレーションソフト 下手な鉄砲も数撃ちゃ当たる を使って 20 発の内少なくとも1 回は命中する数学的確率 0.8784233454 と比較してみてください 2.Java アプレット (1) Java プログラムリスト 下手な鉄砲も数撃ちゃ当たる!! Copyright ( C) K.Niwa 2001.11. 6 (Javaアプレット) / import java.applet.applet; import java.awt.*; import java.awt.event.*; import java.lang.math; public class Teppou extends Applet{ Button[] mybtn; ボタン型に宣言する Panel mypanel; パネル型に宣言する int px,py; 玉の位置のx 座標とy 座標 double i; int flag=0; 的の描写に使用 [ 開始 ] ボタンをクリックする前 ( 0) か後 ( 1) か int ct1=0; 発射回数 int ct2=0; int ct3; 当たり回数 実験回数 -93-

int 成功回数 double ritu; long t; 成功率 時間稼ぎに使用 double r1,r2; int count; 乱数 カウンター int N; 実験回数 *****public void init () の開始 *************************************************************** public void init(){ setbackground( Color.lightGray ); mybtn=new Button[ 4 ]; ボタンの実体化 mybtn[ 0 ] =new Button (" 初期化 "); mybtn[ 1 ] =new Button (" 自動 10 回 "); mybtn[ 2 ] =new Button (" 自動 50 回 "); mybtn[ 3 ] =new Button (" 自動 100 回 "); mypanel=new Panel (); パネルの実体化 mypanel.setlayout( new GridLayout( 1,4 )); パネルをグリッドレイアウトにする for ( count=0;count < =3;count++ ){ mypanel.add( mybtn[ count ]); パネルにボタンを貼り付ける setlayout( new BorderLayout ()); 全体をボーダーレイアウトにする add ("South",myPanel); パネルを南に貼り付ける mybtn[ 0 ].addactionlistener( new ActionListener (){ 初期化ボタン flag=0; 識別子 repaint (); paint() メソッドを呼び出す ); mybtn[ 1 ].addactionlistener( new ActionListener (){ 自動 10 回ボタン flag=1; 識別子 N=10; repaint (); paint() メソッドを呼び出す ); mybtn[ 2 ].addactionlistener( new ActionListener (){ 自動 50 回ボタン flag=2; 識別子 N=50; repaint (); paint() メソッドを呼び出す ); mybtn[ 3 ].addactionlistener( new ActionListener (){ 自動 100 回ボタン ); public void init() flag=3; 識別子 N=100; repaint (); paint() メソッドを呼び出す -94-

***** public void paint( Graphics g ) の開始 ***************************************************** public void paint( Graphics g){ 初期化ボタンを押したとき if ( flag==0){ g.clearrect( 0,0,300,360 ); 全体クリア 的を描く g.drawline(( int)( 150+10*Math.cos( i )),( int)( 150-10*Math.sin( i )), ( int)( 150+10*Math.cos( i )),( int)( 150-10*Math.sin( i ))); Font f6=new Font(( g.getfont ()).getname(),font.plain,13); g.setfont( f6 ); g.drawstring ("Copyright( C) K.Niwa 2001.11",80-20,335 ); g.drawstring (" 成功回数 / 実験回数 = 0 / 0",10,295 ); if ( flag==0) 鉄砲発射ボタンを押したとき else if ( flag==1 flag==2 flag==3){ g.clearrect( 0,0,300,360 ); 全体クリア Font f7=new Font(( g.getfont ()).getname(),font.plain,13); g.setfont( f7 ); g.drawstring ("Copyright( C) K.Niwa 2001.10",80,335 ); g.drawstring (" 成功回数 / 実験回数 = 0 / 0",10,295 ); for ( ct3=1;ct3 < =N;ct3++ ){ 発射回数と当たり回数の初期化 的を描く g.drawline(( int)( 150+10*Math.cos( i )),( int) ( 150-10*Math.sin( i )),( int)( 150+10*Math.cos( i )),( int)( 150-10*Math.sin( i ))); while ( ct1< 20 ){ for ( t=1;t < =1000000;t++ ){ 時間かせぎ ct1=ct1+1; 発射回数 r1=math.random (); r2=math.random (); px= ( int)( 150+100*r1*Math.cos( 2*3.141592*r2 )); py= ( int)( 150-100*r1*Math.sin( 2*3.141592*r2 )); g.setcolor( Color.red ); g.drawoval( px-2,py-2,4,4 ); if ( r1< 0.1) { ct2=ct2+1; 当たり回数 if ( ct2> 0){ seikou=seikou+1; 成功回数 g.setcolor( Color.blue ); Font f3=new Font(( g.getfont ()).getname(),font.bold,25); g.setfont( f3 ); g.drawstring (" 成功!!",20,30); for ( t=1;t < =10000000;t++ ){ -95-

else{ g.setcolor( Color.red ); Font f4=new Font(( g.getfont ()).getname(),font.bold,25); g.setfont( f4 ); g.drawstring (" 失敗!!",20,30); for ( t=1;t < =10000000;t++ ){ if ( ct3!=n){ g.clearrect( 0,0,300,360 ); 全体クリア else if ( ct3==n){ g.clearrect( 0,275,300,360 ); 部分クリア 的を描く g.drawline(( int)( 150+10*Math.cos( i )),( int) ( 150-10*Math.sin( i )),( int)( 150+10*Math.cos( i )),( int)( 150-10*Math.sin( i ))); Font f5=new Font(( g.getfont ()).getname(),font.plain,13); g.setfont( f5 ); g.drawstring ("Copyright( C) K.Niwa 2001.11",80-20,335 ); g.drawstring (" 成功回数 / 実験回数 = "+seikou+" / "+ct3,10,295); ritu= ( double) seikou/ ( double) ct3; g.drawstring (= " "+ritu,130,315); for ( ct3=1;ct3 < =N;ct3++ ) else if ( flag==1) public void paint( Graphics g) public class Teppou extends Applet (2) HTMLリスト < HTML> < HEAD> <!------------------------------------------------------------------------------------------------------------------------------------- 下手な鉄砲も数撃ちゃ当たる!! Copyright ( C) K.Niwa 2001.11. 6 ----------------------------------------------------------------------------------------------------------------------------------------> < /HEAD> < BODY > < CENTER< > B > 下手な鉄砲も数撃ちゃ当たる!! < /B> < BR>< BR> < APPLET CODE="Teppou.class" WIDTH="300" HEIGHT="360" >< /APPLET> < /CENTER> < /BODY> < /HTML> -96-

3.Java アプリケーション プログラムリスト F 下手な鉄砲も数撃ちゃ当たる!! Copyright ( C) K.Niwa 2002.08.24 (Javaアプリケーション) import java.awt.*; import java.awt.event.*; import java.lang.math; public class FTeppou extends Frame{ Button[] mybtn; ボタン型に宣言する Panel mypanel; パネル型に宣言する int px,py; 玉の位置のx 座標とy 座標 double i; int flag=0; 的の描写に使用 [ 開始 ] ボタンをクリックする前 ( 0) か後 ( 1) か int ct1=0; 発射回数 int ct2=0; int ct3; 当たり回数 実験回数 int 成功回数 double ritu; 成功率 long t; 時間稼ぎに使用 double r1,r2; int count; 乱数 カウンター int N; 実験回数 /***** フレームとイベントの定義 **********************************************************/ public FTeppou(){ setsize( 300,360+20 ); フレームの大きさ addwindowlistener( new WindowAdapter (){ 閉じるボタンのイベント public void windowclosing( WindowEvent e){ System.exit( 0 ); ); mybtn=new Button[ 4 ]; ボタンの実体化 mybtn[ 0 ] =new Button (" 初期化 "); mybtn[ 1 ] =new Button (" 自動 10 回 "); mybtn[ 2 ] =new Button (" 自動 50 回 "); mybtn[ 3 ] =new Button (" 自動 100 回 "); mypanel=new Panel (); パネルの実体化 mypanel.setlayout( new GridLayout( 1,4 )); for ( count=0;count < =3;count++ ){ mypanel.add( mybtn[ count ]); パネルにボタンを貼り付ける setlayout( new BorderLayout ()); 全体をボーダーレイアウトにする add ("South",myPanel); パネルを南に貼り付ける mybtn[ 0 ].addactionlistener( new ActionListener (){ 初期化ボタン flag=0; repaint (); ); -97-

mybtn[ 1 ].addactionlistener( new ActionListener (){ 自動 10 回ボタン flag=1; N=10; repaint (); ); mybtn[ 2 ].addactionlistener( new ActionListener (){ 自動 50 回ボタン flag=2; N=50; repaint (); ); mybtn[ 3 ].addactionlistener( new ActionListener (){ 自動 100 回ボタン ); flag=3; N=100; public FTeppou() repaint (); /***** public void paint( Graphics g ) の開始 ***************************************************/ public void paint( Graphics g){ 初期化ボタンを押したとき if ( flag==0){ g.clearrect( 0,0,300,360+20 ); 全体クリア 的を描く g.drawline(( int)( 150+10*Math.cos( i )),( int)( 150-10*Math.sin( i )), ( int)( 150+10*Math.cos( i )),( int)( 150-10*Math.sin( i ))); Font f6=new Font(( g.getfont ()).getname(),font.plain,13); g.setfont( f6 ); g.drawstring ("Copyright( C) K.Niwa 2002.08",80-20,335+10 ); g.drawstring (" 成功回数 / 実験回数 = 0 / 0",10,295 ); if ( flag==0) 鉄砲発射ボタンを押したとき else if ( flag==1 flag==2 flag==3){ g.clearrect( 0,0,300,360+20 ); 全体クリア Font f7=new Font(( g.getfont ()).getname(),font.plain,13); g.setfont( f7 ); g.drawstring ("Copyright( C) K.Niwa 2002.08",80,335+10 ); g.drawstring (" 成功回数 / 実験回数 = 0 / 0",10,295 ); for ( ct3=1;ct3 < =N;ct3++ ){ 発射回数と当たり回数の初期化 的を描く g.drawline(( int)( 150+10*Math.cos( i )),( int) ( 150-10*Math.sin( i )),( int)( 150+10*Math.cos( i )),( int)( 150-10*Math.sin( i ))); -98-

while ( ct1< 20 ){ for ( t=1;t < =1000000;t++ ){ 時間かせぎ ct1=ct1+1; 発射回数 r1=math.random (); r2=math.random (); px= ( int)( 150+100*r1*Math.cos( 2*3.141592*r2 )); py= ( int)( 150-100*r1*Math.sin( 2*3.141592*r2 )); g.setcolor( Color.red ); g.drawoval( px-2,py-2,4,4 ); if ( r1< 0.1){ ct2=ct2+1; 当たり回数 if ( ct2> 0){ seikou=seikou+1; 成功回数 g.setcolor( Color.blue ); Font f3=new Font(( g.getfont ()).getname(),font.plain,25); g.setfont( f3 ); g.drawstring (" 成功!!",20,30+20); for ( t=1;t < =10000000;t++ ){ else{ g.setcolor( Color.red ); Font f4=new Font(( g.getfont ()).getname(),font.plain,25); g.setfont( f4 ); g.drawstring (" 失敗!!",20,30+20); for ( t=1;t < =10000000;t++ ){ if ( ct3!=n){ g.clearrect( 0,0,300,360+20 ); 全体クリア else if ( ct3==n) { g.clearrect( 0,275,300,360 ); 部分クリア 的を描く g.drawline(( int)( 150+10*Math.cos( i )),( int) ( 150-10*Math.sin( i )),( int)( 150+10*Math.cos( i )),( int)( 150-10*Math.sin( i ))); Font f5=new Font(( g.getfont ()).getname(),font.plain,13); g.setfont( f5 ); g.drawstring ("Copyright( C) K.Niwa 2002.08",80-20,335+10 ); g.drawstring (" 成功回数 / 実験回数 = "+seikou+" / "+ct3,10,295); ritu= ( double) seikou/ ( double) ct3; g.drawstring (= " "+ritu,130,315); for ( ct3=1;ct3 < =N;ct3++ ) else if ( flag==1) public void paint( Graphics g) -99-

/****** public static void main メソット *********************************************************/ public static void main( String[] args){ Frame w=new FTeppou (); w.show (); public static void main( String[] args) public class FTeppou extends Frame -100-