< F2D8EA CE909482CC92EA82852E6A7464>

Similar documents
< F2D B838A835882CC8CF68EAE2E6A7464>

< F2D834F838C A815B A CC>

< F2D82B682E182F182AF82F12E6A7464>

< F2D825282CC947B909482CC A815B83682E6A>

< F2D F B834E2E6A7464>

< F2D92DE82E8914B82CC977088D32E6A7464>

< F2D82518CC282CC D2E6A7464>

< F2D A838B838D96402E6A7464>

< F2D82518E9F8AD CC95BD8D7388DA93AE2E6A7464>

< F2D A839382CC906A2E6A7464>

< F2D89BA8EE882C E6A7464>

< F2D82518E9F8AD CC834F CC8CFC82AB82C68D4C>

< F2D E E6A7464>

< F2D B825082CC96E291E82E6A7464>

< F2D BCA82CC978E89BA82CC8EC08CB12E6A7464>


Java言語 第1回

Microsoft PowerPoint - OOP.pptx

アプレットの作成

ガイダンス

2

Microsoft PowerPoint prog1_doc2x.pptx

ガイダンス

Java言語 第1回

ガイダンス

ガイダンス

ガイダンス

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

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 +=

Java言語 第1回

r3.dvi

Prog1_12th

untitled

問題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

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

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

Thread

text_12.dvi

Microsoft PowerPoint prog1_doc2.pptx

Prog2_11th

try catch Exception Java try catch try { } catch ( Exception e ) { } e 16-1 try catch 0 try { int x = 0; int y = 10 / x; } catch ( Exception e ) { Sys

Microsoft PowerPoint - prog11.ppt

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

text_13.dvi

問1

PowerPoint Presentation

スライド 1

GUIプログラムⅤ

r2.dvi

Microsoft PowerPoint - prog11.ppt

Prog1_12th

アプレットⅤ

ただし 無作為にスレッドを複数実行すると 結果不正やデッドロックが起きる可能性がある 複数のスレッド ( マルチスレッド ) を安全に実行する ( スレッドセーフにする ) ためには 同期処理を用いるこ とが必要になる 同期処理は 予約語 synchronized で行うことができる ここでは sy

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

GUIプログラムⅣ

Microsoft PowerPoint ppt


Java言語 第1回

6 p.1 6 Java GUI GUI paintcomponent GUI mouseclicked, keypressed, actionperformed mouseclicked paintcomponent thread, 1 GUI 6.0.2, mutlithread C

PowerPoint Presentation

r4.dvi

<4D F736F F F696E74202D AC C8899E D834F E >

Microsoft PowerPoint - prog13.ppt

vol.30.}...`.X...b.h

Microsoft PowerPoint - prog13.ppt

Object MenuComponent MenuBar MenuItem Menu CheckboxMenuItem

教材ドットコムオリジナル教材 0から始めるiアフ リ リファレンス i アプリ簡易リファレンス ver i アプリ Java 独自のメソッド (1)iアプリの命令を使えるようにする import com.nttdocomo.ui.*; (2) 乱数を使う import java.u

public class Kadai _02 { public static void main(string[] args) { MyFrame frame = new MyFrame("Kadai _02"); (2) フレームのクラス名は MyFrame とし 以下

226

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

I. (i) Java? (A). 2Apples (B). Vitamin-C (C). Peach21 (D). Pine_Apple (ii) Java? (A). Java (B). Java (C). Java (D). JavaScript Java JavaScript Java (i

Java演習(4) -- 変数と型 --

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

2

2008 e-learning T050050

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

Microsoft PowerPoint - prog12.ppt

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

I. java.awt.rectangle java.lang.math random Java TM API java.awt Rectangle Rectangle (x,y)... public int x Rectangle X public int y Rectangle Y public

Java講座

I HTML HashMap (i) (ii) :.java import java.net.*; import java.io.*; import java.util.hashmap; public class SimpleStopWatch { public static voi

IT プロジェクト

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

awt の主要なクラスを下記に示す クラス Component Container Button Label Panel Frame 説明画面にユーザインターフェイス要素として表示し, ユーザとのやり取りを行うコンポーネントを表すすべてのコンポーネントのスーパークラスになる ほかのコンポーネントを含

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

シミュレーションの簡単な例 GUI 無しのシミュレーションを作る GUI を作る パラメタを設定するデモンストレーションをする 2 オブジェクト指向プログラミング特論

Taro-korattsu.jtd

PowerPoint プレゼンテーション

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

Java プログラミング Ⅰ 3 回目変 数 今日の講義講義で学ぶ内容 変数とは 変数の使い方 キーボード入力の仕方 変 数 変 数 一時的に値を記憶させておく機能 変数は 型 ( データ型 ) と識別子をもちます 2 型 ( データ型 ) 変数に記憶する値の種類変数の型は 記憶できる値の種類と範囲

Programming-C-9.key

Microsoft PowerPoint - OOP.pptx

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード]

(Microsoft PowerPoint - \223\306\217KJAVA\221\346\202R\224\ ppt)

PowerPoint プレゼンテーション

Microsoft PowerPoint - prog10.ppt

問 次の Fortran プログラムの説明及びプログラムを読んで、設問に答えよ。

JavaプログラミングⅠ

Transcription:

自然対数の底 e [Java アプレット ] [Java アプリケーション ] 1. はじめに 対数は 17 世紀にネイピアやビュルギといった数学者たちが生み出した関数である 円周率 πと自然対数の底 eとは密接な関係があり どちらも無理数で超越数 ( 整数係数の代数方程式の解にならない実数 ) である 1737 年 オイラーは eが無理数であることを示した 1873 年 フランスの数学者エルミートは eが超越数であることを証明した 1882 年 ドイツ人数学者リンデマンが エルミートの方針に従って πが超越数であることを示し 二千年来の超難問である 円積問題 を解いた エルミートは πが超越数であることの証明はeが超越数であることの証明に比べて非常に困難であると考えていたのである そのとき エルミートは60 歳 リンデマンは30 歳であった また 美しい数学の公式の中でも 特に美しいものとして 人類の至宝 ( しほう ) とまで言われている次の式をオイラーは見つけている iπ e + 1 = 0 e i π 1 0 といった数学の重要な数が全て登場し しかもコンパクトにまとめられているが この式の意味は未だによく分かっていないのである 円積問題について 作図問題のうち最も古く最もよく知られているのは 定木 ( 目盛りのない 直線を引くためのもの) とコンパスによる平面図形の作図で そのうちのギリシアの三大作図不可能問題のうちの一つに 円積問題 がある (1) 与えられた円と等しい面積をもつ正方形を作ること ( 円積問題 ) (2) 与えられた立方体の体積の 2 倍に等しい体積をもつ立方体を作ること ( 立方体倍積問題または Delos の問題 ) (3) 与えられた角を 3 等分すること ( 角の 3 等分問題 ) シミュレーションソフト 自然対数の底 e を動かして 自然対数 e の近似値が求まる様子を観察してみてください -136-

2.Java アプレット (1) Java プログラムリスト 自然対数の底 eの近似 Copyright ( C) K.Niwa 2002.12.07 (Javaアプレット) ライブラリーのクラスの読み込み import java.applet.applet; import java.awt.*; import java.awt.event.*; import java.lang.math; /****** public class Ste extends Applet implements Runnable **************************************/ public class Ste extends Applet implements Runnable { スレッドを使えるようにする 変数とオブジェクトの型宣言 Thread myth; スレッド型で宣言する Button[] mybtn; ボタン型配列で宣言する Panel mypanel; パネル型で宣言する int flag=0; int Speed=100; 速度 int ct=0; 実験回数 int count; ループカウンター int d; 速度の刻み幅に使用 long n; e=(1+1/n) ^n double tte; eの近似値 double s; e=(1+1/n) ^ nを求めるのに使用 double k; e=(1+1/n) ^nを求めるのに使用 /****** public void init () メソット **************************************************************/ ブラウザがアプレットを読み込んだときに呼ばる イベントの監視を行い ボタンが選択されたとき等にも呼ばれる背景色の設定やボタンの定義や設置等に用いられる public void init(){ setbackground( Color.lightGray ); myth=null; mybtn=new Button[ 5 ]; スレッドの初期化 ボタンの実体化 mybtn[ 0 ] =new Button (" 初期化 "); mybtn[ 1 ] =new Button (" 光 速 "); mybtn[ 2 ] =new Button (" 高 速 "); mybtn[ 3 ] =new Button (" 低 mybtn[ 4 ] =new Button (" 停 速 "); 止 "); mypanel=new Panel (); パネルの実体化 mypanel.setlayout( new GridLayout( 1,5 )); ハ ネルをク リット レイアウトにする for ( count=0;count < =4;count++ ) { mypanel.add( mybtn[ count ]); パネルにボタンを貼り付ける setlayout( new BorderLayout ()); 全体をボーダーレイアウトにする add ("South",myPanel); パネルを南に貼り付ける mybtn[ 0 ].addactionlistener( new ActionListener (){ 初期化ボタンの定義 flag=0; ); -137-

mybtn[ 1 ].addactionlistener( new ActionListener (){ 光速ボタンの定義 flag=1; Speed=20; 速度 ); mybtn[ 2 ].addactionlistener( new ActionListener (){ 高速ボタンの定義 flag=2; Speed=100; 速度 ); mybtn[ 3 ].addactionlistener( new ActionListener (){ 低速ボタンの定義 flag=3; Speed=200; 速度 ); mybtn[ 4 ].addactionlistener( new ActionListener (){ 停止ボタンの定義 flag=4; ); public void init() /****** public void start () メソット *************************************************************/ アプレットの実行を開始するときに呼ばれる public void start(){ if ( myth==null){ myth=new Thread( this ); スレッドの実体化 myth.start (); スレッドを開始する /****** public void run () メソット **************************************************************/ スレッドの実行中に呼ばれる public void run (){ while ( true ){ try{ myth.sleep( Speed ); catch ( InterruptedException e) { if ( flag==1 flag==2 flag==3){ -138-

/****** public void paint( Graphics g ) メソット ****************************************************/ アプレットの開始時に呼ばれる repaint () メソッドで呼ばれる update () メソッドで呼ばれる public void paint( Graphics g){ 初期状態または初期化ボタンを押したときのイベント処理 if( flag==0){ n=1; e=(1+1/n) ^n のnの初期化 tte=0; eの近似値の初期化 s=1; k=1; g.drawstring (" 自然対数の底 eの近似 ",90,30); g.drawstring("( オイラー数 )",115,50); g.drawstring (e= " ",90,160); g.drawstring (" 現在のnの値 = ",90,200); 現在のnの値を表示 g.drawstring ("Copyright( C) K.Niwa 2002.11",130,320 ); 作者表示 if( flag==0) 光速または高速または低速ボタンを押したときのイベント処理 else if ( flag==1 flag==2 flag==3){ if ( flag==1){ d=1; 光速 else if ( flag==2){ d=1; 高速 else if ( flag==3){ d=1; 低速 if ( n< 999999999){ n=n+d; else{ flag=4; 停止させる s=1; for ( count=1;count < =n;count++ ){ k= ( double) 1+ ( double) 1/ ( double) n; s=s*k; tte=s; g.drawstring (" 自然対数の底 eの近似 ",90,30); g.drawstring("( オイラー数 )",115,50); g.drawstring (e= " "+( double) tte,90,160 ); g.drawstring (" 現在のnの値 = "+n,90,200); 現在のnの値を表示 g.drawstring ("Copyright( C) K.Niwa 2002.11",130,320 ); 作者表示 else if ( flag==1 flag==2 flag==3) 停止ボタンを押したときのイベント処理 if( flag==4){ g.drawstring (" 自然対数の底 eの近似 ",90,30 ) ; g.drawstring("( オイラー数 )",115,50); g.drawstring (e= " "+( double) tte,90,160 ); -139-

g.drawstring (" 現在のnの値 = "+n,90,200); " 現在のnの値を表示 g.drawstring ("Copyright( C) K.Niwa 2002.11",130,320 ); 作者表示 if( flag==4) public void paint( Graphics g) public class Ste extends Applet implements Runnable (2) HTML リスト < HTML > < HEAD> <!------------------------------------------------------------------------------------------------------------------------------------- 自然対数の底 eの近似 Copyright ( C) K.Niwa 2002.11.03 --------------------------------------------------------------------------------------------------------------------------------------> < /HEAD> < BODY > < CENTER< > B > 自然対数の底 eの近似 < /B> < BR>< BR> < APPLET CODE="Ste.class" WIDTH="300" HEIGHT="360" >< /APPLET> < /CENTER> < /BODY> < /HTML> 3.Java アプリケーション プログラムリスト F 自然対数の底 e Copyright ( C) K.Niwa 2003.03.22 (Javaアプリケーション) ライブラリーのクラスの読み込み import java.awt.*; import java.awt.event.*; import java.lang.math; /****** public class FSte extends Frame implements Runnable **************************************/ public class FSte extends Frame implements Runnable { Thread myth; スレッドを使えるようにする スレッド型で宣言する Button[] mybtn; Panel mypanel; ボタン型配列で宣言する パネル型で宣言する int flag=0; int Speed=100; 速度 int ct=0; int count; 実験回数 ループカウンター int d; long n; 速度の刻み幅に使用 e=(1+1/n) ^n double tte; eの近似値 double s; e=(1+1/n) ^nを求めるのに使用 double k; e=(1+1/n) ^nを求めるのに使用 -140-

/****** フレームとイベントの定義 *********************************************************/ ブラウザがアプレットを読み込んだときに呼ばる イベントの監視を行い ボタンが選択されたとき等にも呼ばれる 背景色の設定やボタンの定義や設置等に用いられる public FSte(){ setsize( 300,360 ); addwindowlistener( new WindowAdapter(){ public void windowclosing( WindowEvent e){ System.exit( 0 ); ); setbackground( Color.lightGray ); myth=null; スレッドの初期化 if ( myth==null){ myth=new Thread( this ); スレッドの実体化 myth.start (); スレッドを開始する mybtn=new Button[ 5 ]; ボタンの実体化 mybtn[ 0 ] =new Button (" 初期化 "); mybtn[ 1 ] =new Button (" 光 速 "); mybtn[ 2 ] =new Button (" 高 mybtn[ 3 ] =new Button (" 低 速 "); 速 "); mybtn[ 4 ] =new Button (" 停 止 "); mypanel=new Panel (); パネルの実体化 mypanel.setlayout( new GridLayout( 1,5 )); for ( count=0;count < =4;count++ ){ mypanel.add( mybtn[ count ]); パネルにボタンを貼り付ける setlayout( new BorderLayout ()); 全体をボーダーレイアウトにする add ("South",myPanel); パネルを南に貼り付ける mybtn[ 0 ].addactionlistener( new ActionListener (){ 初期化ボタンの定義 flag=0; ); mybtn[ 1 ].addactionlistener( new ActionListener (){ 光速ボタンの定義 flag=1; Speed=20; 速度 ); mybtn[ 2 ].addactionlistener( new ActionListener (){ 高速ボタンの定義 flag=2; Speed=100; 速度 ); mybtn[ 3 ].addactionlistener( new ActionListener (){ 低速ボタンの定義 flag=3; Speed=200; 速度 ); -141-

public FSte() mybtn[ 4 ].addactionlistener( new ActionListener (){ 停止ボタンの定義 flag=4; ); /****** public void run () メソット **************************************************************/ スレッドの実行中に呼ばれる public void run (){ while ( true ){ try{ myth.sleep( Speed ); catch ( InterruptedException e) { if ( flag==1 flag==2 flag==3){ /****** public void paint( Graphics g ) メソット ****************************************************/ アプレットの開始時に呼ばれる repaint () メソッドで呼ばれる update () メソッドで呼ばれる public void paint( Graphics g){ 初期状態または初期化ボタンを押したときのイベント処理 if( flag==0){ if( flag==0) n=1; e=(1+1/n) ^n のnの初期化 tte=0; eの近似値の初期化 s=1; k=1; g.drawstring (" 自然対数の底 eの近似 ",90,30+20); g.drawstring("( オイラー数 )",115,50); g.drawstring (e= " ",90,160); g.drawstring (" 現在のnの値 = ",90,200); 現在のnの値を表示 g.drawstring ("Copyright( C) K.Niwa 2003.03",130,320 ); 作者表示 高速ボタンまたは低速ボタンを押したときのイベント処理 else if ( flag==1 flag==2 flag==3){ if ( flag==1){ d=1; 光速 else if ( flag==2){ d=1; 高速 else if ( flag==3){ d=1; 低速 ( < ){ if n 999999999 n=n+d; -142-

else{ flag=4; 停止させる s=1; for ( count=1;count < =n;count++ ){ k= ( double) 1+ ( double) 1/ ( double) n; s=s*k; tte=s; g.drawstring (" 自然対数の底 eの近似 ",90,30+20); g.drawstring("( オイラー数 )",115,50); g.drawstring (e= " "+( double) tte,90,160 ); g.drawstring (" 現在のnの値 = "+n,90,200); 現在のnの値を表示 g.drawstring ("Copyright( C) K.Niwa 2003.03",130,320 ); 作者表示 else if ( flag==1 flag==2 flag==3) 停止ボタンを押したときのイベント処理 if( flag==4){ g.drawstring (" 自然対数の底 eの近似 ",90,30+20 ) ; g.drawstring("( オイラー数 )",115,50); g.drawstring (e= " "+( double) tte,90,160 ); g.drawstring (" 現在のnの値 = "+n,90,200); " 現在のnの値を表示 g.drawstring ("Copyright( C) K.Niwa 2003.03",130,320 ); 作者表示 if( flag==4) public void paint( Graphics g) /****** public static void main( String[] args ) メソット ********************************************/ public static void main( String[] args){ Frame w=new FSte (); w.show (); public static void main( String[] args) public class Ste extends Applet implements Runnable -143-