< F2D B825082CC96E291E82E6A7464>

Similar documents
< F2D E E6A7464>

< F2D82518E9F8AD CC95BD8D7388DA93AE2E6A7464>

< F2D89BA8EE882C E6A7464>

< F2D A838B838D96402E6A7464>

< F2D82518E9F8AD CC834F CC8CFC82AB82C68D4C>

< F2D A839382CC906A2E6A7464>

< F2D834F838C A815B A CC>

< F2D B838A835882CC8CF68EAE2E6A7464>

< F2D82B682E182F182AF82F12E6A7464>

< F2D82518CC282CC D2E6A7464>

< F2D92DE82E8914B82CC977088D32E6A7464>

< F2D F B834E2E6A7464>

< F2D825282CC947B909482CC A815B83682E6A>

< F2D8EA CE909482CC92EA82852E6A7464>

< F2D BCA82CC978E89BA82CC8EC08CB12E6A7464>

Java言語 第1回

Taro-korattsu.jtd

Java言語 第1回

ガイダンス

Java言語 第1回

ガイダンス

ガイダンス

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

Java言語 第1回

GUIプログラムⅣ


Object MenuComponent MenuBar MenuItem Menu CheckboxMenuItem

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

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

<4D F736F F F696E74202D AC C8899E D834F E >

Prog1_12th

Microsoft PowerPoint - prog11.ppt

text_12.dvi

2

Microsoft PowerPoint - OOP.pptx

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

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


Microsoft PowerPoint ppt

text_13.dvi

Microsoft PowerPoint - prog13.ppt

Microsoft PowerPoint prog1_doc2x.pptx

問1

Microsoft PowerPoint - prog13.ppt

プログラムの基本構成

Microsoft PowerPoint - prog11.ppt

Microsoft PowerPoint - prog12.ppt

Prog2_11th

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

PowerPoint Presentation

Prog1_12th

untitled

GUIプログラムⅤ

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

2008 e-learning T050050

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

アプレットの作成

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

Microsoft PowerPoint ppt

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

自宅でJava言語の開発環境を作る方法

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 条件判断文 3 switch 文 switch 文式が case の値と一致した場合 そこから直後の break; までを処理し どれにも一致しない場合 default; から直後の break; までを処理する 但し 式や値 1

PowerPoint プレゼンテーション

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 今日の講義講義で学ぶ内容 switch 文 論理演算子 条件演算子 条件判断文 3 switch 文 switch 文 式が case のラベルと一致する場所から直後の break; まで処理しますどれにも一致致しない場合 def

Java プログラミング Ⅰ 3 回目変数 変数 変 数 一時的に値を記憶させておく機能型 ( データ型 ) と識別子をもつ 2 型 ( データ型 ) 変数の種類型に応じて記憶できる値の種類や範囲が決まる 型 値の種類 値の範囲 boolean 真偽値 true / false char 2バイト文

橡告改.PDF

Microsoft PowerPoint prog1_doc2.pptx

GUIプログラムⅡ

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


2

スライド 1

r4.dvi

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

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

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 pptx

Java講座

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

JAVA入門

PowerPoint Presentation

Prog1_2nd

r3.dvi

break 文 switch ブロック内の実行中の処理を強制的に終了し ブロックから抜けます switch(i) 強制終了 ソースコード例ソースファイル名 :Sample7_1.java // 入力値の判定 import java.io.*; class Sample7_1 public stati

Java言語 第1回

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

public class MyFrame { private JPanel panel1; private JPanel panel2; private JPanel panel3; private JPanel panel4; private JLabel label1; private JTex

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 - prog10.ppt

PowerPoint プレゼンテーション

Java 2 - Lesson01

K227 Java 2

r2.dvi

オブジェクト指向プログラミング・同演習 5月21日演習課題

情報処理Ⅰ

Microsoft Word - Java3.DOC

(Microsoft Word - java\221n\221\242\203\214\203|\201[\203g.doc)

PowerPoint プレゼンテーション

目 次 Java GUI 3 1 概要 クラス構成 ソースコード例 課題...7 i

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

Transcription:

3x+1 の問題 [Java アプレット ] [Java アプリケーション ] 1. はじめに どんな自然数から始めても良いので その数が偶数ならば2で割り 奇数ならば3 倍して1を加えることを繰り返します そうすると どんな自然数から始めても必ず1になるというのはほんとうなのでしょうか 例えば 11から始めると 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 となります この問題は有名な難問で コラッツの問題(3x+1の問題) と言われ 未だに解けていません また コンピュータを使って 非常に大きな数 (4 兆 ) まで調べられていますが 1にならない例は発見されていません シミュレーションソフト 3x+1の問題 を使って 必ず1になることを確かめてみてください 2.Java アプレット (1) Java プログラムリスト / 3x+1の問題 ( コラッツの問題 ) Copyright ( C) K.Niwa 2002.2.4 (Javaアプレット) import java.applet.applet; import java.awt.*; java.applet パッケージから Applet クラスを読み込む java.awt パッケージから全てのクラスを読み込む import java.awt.event.*; java.applet.event パッケージから全てのクラスを読み込む ***** M3x1 は Applet クラスを継承する ******************************************************** public class M3x1 extends Applet { Button mybtn; mybtn をボタン型変数として宣言する Button mybtns; mybtns をボタン型変数として宣言する TextField mytxt; mytxt をテキストフィールド型変数として宣言する Panel mypnln; mypnln をパネル型変数として宣言する Panel mypnls; mypnls をパネル型変数として宣言する -129-

long s; s を倍長整数型として宣言する int flag=0; int a; flag を整数型変数として宣言し初期化する a を整数型変数として宣言する String str1; str1 を文字列型変数として宣言する ***** init () メソット ************************************************************************* public void init(){ setbackground( Color.lightGray ); 背景色をライトグレーにする mypnln=new Panel (); mypnl を実体化する mypnls=new Panel (); mypnl を実体化する mypnln.setlayout( new GridLayout( 1,1 )); mypnl をグリッドレイアウトにする mypnls.setlayout( new GridLayout( 1,2 )); mybtn=new Button (" 次へ "); mypnl をグリッドレイアウトにする mybtn を実体化する mybtns=new Button (" 開 始 "); mybtns を実体化する mytxt=new TextField (); mytxt を実体化する mypnln.add( mytxt ); mypnl に mytxt を貼り付ける mypnls.add( mybtns ); mypnls.add( mybtn ); mypnl に mybtns を貼り付ける mypnl に mybtn を貼り付ける setlayout( new BorderLayout ()); 全体をボーダーレイアウトにする add ("North",myPnlN); mypnl を全体の北に貼り付ける add ("South",myPnlS); mypnl を全体の北に貼り付ける 次へボタンを押したときのイベント処理 mybtn.addactionlistener( new ActionListener(){ ); 開始ボタンを押したときのイベント処理 mybtns.addactionlistener( new ActionListener(){ flag=0; s=0; ); public void init() ***** paint メソット ************************************************************************* public void paint( Graphics g){ s が1でないときの処理 if ( s!=1) { g.clearrect( 0,0,300,250 ); str1=mytxt.gettext (); 領域をクリアする テキストフィールト の文字を str1 へ代入する a=integer.parseint( str1 ); 文字列型を整数型に変換し代入する 整数型変数 a を倍長整数型に変換 ( キャスト ) し s に代入する s= ( long) a; if (< s 3 s> 1000000000){ Font f0=new Font(( g.getfont ()).getname(),font.bold,20); g.setfont( f0 ); g.drawstring ("3 以上 10 億以下の整数を入力 ",20,200); -130-

g.drawstring (" してください...",20,230); s=1; flag--; Font f00=new Font(( g.getfont ()).getname(),font.bold,14); g.setfont( f00 ); flag=flag+1 s が偶数の場合の処理 if ( s % 2 ==0){ g.clearrect( 0,0,300,300 ); 領域をクリアする s=s/2; 偶数だったら2で割る Font f1=new Font(( g.getfont ()).getname(),font.bold,40); g.setfont( f1 ); g.drawstring ( ""+s,30,170 ) ; s を表示する Font f11=new Font(( g.getfont ()).getname(),font.bold,14); g.setfont( f11 ); s が奇数の場合の処理 else{ g.clearrect( 0,0,300,300 ); 領域をクリアする s=3*s+1; 奇数だったら3 倍して1をたす Font f2=new Font(( g.getfont ()).getname(),font.bold,40); g.setfont( f2 ); g.drawstring ( ""+s,30,170 ) ; s を表示する Font f22=new Font(( g.getfont ()).getname(),font.bold,14); g.setfont( f22 ); if ( s!=1) s が1になったときの処理 else if ( s==1){ Font f3=new Font(( g.getfont ()).getname(),font.bold,40); g.setfont( f3 ); g.drawstring ( ""+s,30,170 ) ; s を表示する Font f33=new Font(( g.getfont ()).getname(),font.bold,14); g.setfont( f33 ); else if ( s==1) 開始ボタンを押されたときの処理 if ( s==0){ g.clearrect( 0,0,300,300 ); public void paint( Graphics g) public class M3x1 extends Applet -131-

(2) HTML リスト < HTML> < HEAD> <!------------------------------------------------------------------------------------------------------------------------------------- 3x+1の問題 ( コラッツの問題 ) Copyright ( C) K.Niwa 2002.2.3 ---------------------------------------------------------------------------------------------------------------------------------------> < /HEAD> < BODY > < CENTER< > B > 3x+1の問題 ( コラッツの問題 ) < /B> < BR>< BR> < APPLET CODE="M3x1.class" WIDTH="300" HEIGHT="350" >< /APPLET> < BR>< BR> < /CENTER> < /BODY> < /HTML> 3.Java アプリケーション プログラムリスト F3x+1の問題 ( コラッツの問題 ) Copyright ( C) K.Niwa 2002.08.21 (Javaアプリケーション) import java.awt.*; import java.awt.event.*; java.awt パッケージから全てのクラスを読み込む java.applet.event パッケージから全てのクラスを読み込む ***** FM3x1 は Frame クラスを継承する ******************************************************* public class FM3x1 extends Frame{ Button mybtn; mybtn をボタン型変数として宣言する Button mybtns; mybtns をボタン型変数として宣言する TextField mytxt; mytxt をテキストフィールド型変数として宣言する Panel mypnln; mypnln をパネル型変数として宣言する Panel mypnls; mypnls をパネル型変数として宣言する long s; s を倍長整数型として宣言する int flag=0; flag を整数型変数として宣言し初期化する int a; a を整数型変数として宣言する String str1; str1 を文字列型変数として宣言する ***** フレームの定義 ******************************************************************** public FM3x1(){ setbackground( Color.lightGray ); 背景色の設定 setsize( 300+30,360 ); フレームの大きさ addwindowlistener( new WindowAdapter (){ 閉じるボタンのイベント処理 public void windowclosing( WindowEvent e){ System.exit( 0 ); ); mypnln=new Panel (); mypnl を実体化する mypnls=new Panel (); mypnl を実体化する mypnln.setlayout( new GridLayout( 1,1 )); mypnls.setlayout( new GridLayout( 1,2 )); mypnl をグリッドレイアウトにする mypnl をグリッドレイアウトにする -132-

mybtn=new Button (" 次 へ "); mybtn を実体化する mybtns=new Button (" 開 mytxt=new TextField (); 始 "); mybtns を実体化する mytxt を実体化する mypnln.add( mytxt ); mypnl に mytxt を貼り付ける mypnls.add( mybtns ); mypnl に mybtns を貼り付ける mypnls.add( mybtn ); mypnl に mybtn を貼り付ける setlayout( new BorderLayout ()); add ("North",myPnlN); 全体をボーダーレイアウトにする mypnl を全体の北に貼り付ける add ("South",myPnlS); mypnl を全体の南に貼り付ける 次へボタンを押したときのイベント処理 mybtn.addactionlistener( new ActionListener(){ ); 開始ボタンを押したときのイベント処理 mybtns.addactionlistener( new ActionListener(){ flag=0; s=0; ); public FM3x1() ***** paint メソット ************************************************************************** public void paint( Graphics g){ s が1でないときの処理 { if ( s!=1) g.clearrect( 0,0,300,250 ); 領域をクリアする str1=mytxt.gettext (); テキストフィールト の文字を str1 へ代入する a=integer.parseint( str1 ); 文字列型を整数型に変換し代入する 整数型変数 a を倍長整数型に変換 ( キャスト ) し s に代入する s= ( long) a; if (< s 3 s> 1000000000){ Font f0=new Font(( g.getfont ()).getname(),font.plain,20) g.setfont( f0 ); g.drawstring ("3 以上 10 億以下の整数を入力 ",20,200); g.drawstring (" してください...",20,230); s=1; flag--; Font f00=new Font(( g.getfont ()).getname(),font.plain,14); g.setfont( f00 ); Font f001=new Font(( g.getfont ()).getname(),font.plain,12); -133-

flag=flag+1 s が偶数の場合の処理 if ( s % 2 ==0){ g.clearrect( 0,0,300,300 ); 領域をクリアする s=s/2; 偶数だったら2で割る Font f1=new Font(( g.getfont ()).getname(),font.plain,40); g.setfont( f1 ); s を表示する g.drawstring (""+s,30,170); Font f11=new Font(( g.getfont ()).getname(),font.plain,14); g.setfont( f11 ); Font f001=new Font(( g.getfont ()).getname(),font.plain,12); フォントを設定する s が奇数の場合の処理 else{ g.clearrect( 0,0,300,300 ); 領域をクリアする s=3*s+1; 奇数だったら3 倍して1をたす Font f2=new Font(( g.getfont ()).getname(),font.plain,40); g.setfont( f2 ); s を表示する g.drawstring (""+s,30,170); Font f22=new Font(( g.getfont ()).getname(),font.plain,14); g.setfont( f22 ); Font f001=new Font(( g.getfont ()).getname(),font.plain,12); if ( s!=1) s が1になったときの処理 else if ( s==1){ Font f3=new Font(( g.getfont ()).getname(),font.plain,40); g.setfont( f3 ); s を表示する g.drawstring (""+s,30,170); Font f33=new Font(( g.getfont ()).getname(),font.plain,14); g.setfont( f33 ); Font f001=new Font(( g.getfont ()).getname(),font.plain,12); else if ( s==1) -134-

if ( s==0 ) 開始ボタンを押されたときの処理 { g.clearrect( 0,0,300,300 ); public void paint( Graphics g) ****** public static void main メソット ********************************************************** public static void main( String[] args){ Frame w=new FM3x1 (); w.show (); public static void main( String[] args) public class FM3x1 extends Frame -135-