LectureMMP02
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[Lecture]]
*Java プログラミング入門 [#s6899a39]
このページは、学部2年生向け授業である、「マルチメディア...
のために用意しました。
(Wikiの仕様で大文字小文字が混在した英単語に疑問符?が追...
**第3章「変数」 [#xc22f04b]
***Javaにおける基本データ型 [#n3c4e251]
-整数型
--byte (1バイト。-128から127)
--short (2バイト。-32,768から32767)
--int (4バイト。-2,147,483,648から2,147,483,647)
--long (8バイト。明確に数値で指定する場合は、x = 20L; の...
--char (1文字を表す。メモリー上のサイズは色々。''でくくる...
-浮動小数点型
--float (4バイトで表す浮動小数点。重力加速度なら9.80665の...
--double (8バイトで表す高精度な浮動小数点。光速なら2.9979...
-論理型
--boolean (trueかfalseのどちらかの値をとる。 x = true; な...
C言語と違い、整数型のサイズが明確に決められました。char型...
-演習1
先に作ったHello.javaを参考にVartest.javaというプログラム...
以下では、byte型変数を定義して、それを表示しています。
変数名は変えても良いです。
printlnの中では、文字列を連結しています。Javaでは文字列を...
class Vartest {
public static void main (String args[]) {
byte x = 42;
System.out.println("byte value x =" + x);
}
}
これをもとに、short, int, long, char, float, double boole...
class Vartest {
public static void main (String args[]) {
byte x= 42;
int x1= 123456;
char name = '椎';
System.out.println("byte value x =" + x);
System.out.println("int value x1 =" + x1);
System.out.println("char value name =" + name);
}
}
解答例:
class Vartest {
public static void main (String args[]) {
byte x_byte = 42;
int x_int = 12345;
short x_short = 123;
long x_long = 12345678;
char x_char = '椎';
float x_float = 123.4f;
double x_double = 3.14d;
boolean x_boolean = true;
System.out.println("byte value x_byte = " + x_byt...
System.out.println("short value x_short = " + x_s...
System.out.println("int value x_int = " + x_int);
System.out.println("long value x_long = " + x_lon...
System.out.println("char value x_char = " + x_cha...
System.out.println("float value x_float = " + x_f...
System.out.println("double value x_double = " + x...
System.out.println("boolean value x_boolean = " +...
}
}
-演習2
以下のように、整数型の変数に文字を代入して値を表示すると...
あなたのイニシャルを表す英文字の文字コードを表示するプロ...
int myInitialCode1 = 'S', myInitialCode2 = '椎';
System.out.println(myInitialCode1);
System.out.println(myInitialCode2);
英文字はASCIIコードになります。漢字はunicodeになります。
***配列 [#e846fded]
C言語では小規模な配列を使う場合、静的に確保した配列をよく...
Javaでは、システムからメモリー確保して動的に確保した配列...
C言語でもmalloc()関数でメモリーを確保したことがあると思い...
例えばint型の変数3個分のメモリを確保して、それをint型を示...
//C言語での例です:
int *p;
*p = (int *)malloc(sizeof(int)*3);
Javaでも同じことをやります。
システムにお願いして、必要な量の配列を格納するメモリー領...
まずは配列の変数を定義して、次にnewコマンドで必要なメモリ...
int[] x; (配列を参照する変数を定義する)
x = new int[3]; (int3個ぶんのメモリー領域をnewコマン...
こうすると、プログラムの中からx[0]=1;とかx[2]=x[0];などと...
1行でまとめて書くこともあります。
int[] x = new int[3];
-演習3
要素が100個のintの配列x[0]からx[99]を作って、それに1,2,3,...
ヒント:
class Vartest {
public static void main (String args[]) {
//配列を定義します。
//(略)
//for文で値を入れます
for(int i=0; i<100; i++) {
//(略)
}
//for文で表示します
for(int i=0; i<100; i++) {
//(略)
}
}
解答例:
class Vartest {
public static void main (String args[]) {
int[] a = new int[100];
for(int i=0;i<100;i++){
a[i]=i+1;
}
for(int i=0;i<100;i++){
System.out.println(a[i]);
}
}
}
-演習4
配列の長さは、.length変数で知ることができます。上の例でも...
解答例:
class Vartest {
public static void main (String args[]) {
int[] x = new int[100];
for(int i=0;i<x.length;i++){
x[i]=i+1;
}
for(int i=0;i<x.length;i++){
System.out.println(x[i]);
}
}
}
-演習5
Javaではfor-each文というのが使えます。配列の各要素に対す...
class Vartest {
public static void main (String args[]) {
int[] x = new int[100];
for(int i=0;i<x.length;i++){
x[i]=i+1;
}
for(int a: x){
System.out.println(a);
}
}
}
***文字列 [#t32f75c4]
C言語では文字列はただのバイト変数の配列でした。最後の値が...
Javaでは文字列は、Stringクラスのインスタンスです。
なんのことかは後の授業で説明しますが、処理をする関数を内...
なので、いろいろな操作が可能です。
文字列は""で括ります。
"Hello Java World!"
printlnできます。
System.out.println("Hello Java World!");
足し算もできます。
System.out.println("This is " + "a test.");
変数にも代入できます。変数の種類はStringです。オブジェク...
String world = "Hello Java World!";
-演習6
最初に作ったHello.javaプログラムを、String変数 worldとい...
解答例:
class Hello {
public static void main (String args[]) {
String world = "hello java world!";
System.out.println(world);
}
}
-演習7
--コマンドの引数はargs[0], args[1] ... などにString型の配...
--二つの引数を与えたときに、それが+でつないで表示されるプ...
http://gyazo.com/8159f78165e17781a7110de3763c833c.png
ヒント
--以下は引数一つを表示するだけのサンプルです。これをもと...
--args[0]とargs[1]をprintlnの中で+でつないで表示すれば良...
class ArgsTest {
public static void main (String args[]) {
System.out.println(args[0]);
}
}
できてしまった人は以下をお願いします。
このプログラムで、引数が2個未満の場合はエラーになります。
2個未満の場合には、2個引数を描いてくださいというメッセ...
.length変数でargsの長さを知ることができます。
if文はC言語と同じです。
if(args.length < 2) {
} else {
}
というように書けます。
解答
//--後で公開します
class ArgsTest {
public static void main (String args[]) {
System.out.println(args[0] + " + " + args[1]);
}
}
**第4章「演算子」 [#p4a8e735]
//--演習4.2をやってみよう
演算子はほとんどC言語と同じです。復習しましょう。
変数には算術演算子が使えます。算術演算子はC言語と同じです。
+-*/%
です。%は剰余です。
5 % 2
は1です。
代入演算子は=です。
算術演算子と代入演算子を組み合わせることもできます。
a += 1;
は
a = a + 1;
と同じ意味です。
インクレメント、デクレメント演算子もCと同様です。
a = 1;
b = a++;
は、bが1、aが2になります。
a = 1;
b = ++a;
は、a, bどちらも2になります。
関係演算子もC言語と同じです。
<, >, <=, >=, ==, !=
論理演算子もC言語と同じです。
&&, ||, !
Javaではbooleanにしか論理演算できないので、&, | だけでもo...
ビット演算し、シフト演算子もC言語と同じです。
&, |, ^, ~, <<, >>, >>>
1 << 2
は4になります。
キャストもあります。C言語と同じです。
long b=1234;
int a = (int)b;
**第5章「制御構造」 [#p54c6568]
制御構造も大半はC言語と同じです。
***if文、else文、else-if文 [#s3bd1b3d]
if文もC言語と同じです。
- if文
if (a==0) b=100;
if (a==0) {
b=100;
}
- if-else文
if (a==0) {
b=100;
}else{
b=10;
}
- else-if文
if (a>100) {
}else if (a>10){
}else{
}
-演習1
100点満点のテストの得点から、ABCDの成績を表示するプログラ...
その準備のために、
0から100までの乱数を10個表示するプログラムを作ります。
public class Score {
public static void main (String argv[]) {
int i,a;
for(i=0;i<10;i++) {
a=(int)(Math.random() * 100);
System.out.println(a);
}
}
}
Math.random()は、Mathクラスのクラスメソッドであるrandom()...
System.out.println()などと同じく、大文字で始まる単語はク...
次にこの乱数を100点満点の点数とみなして、成績ABCDを表示す...
成績の基準は、80点以上がA, 60点以上80点未満がB, 40点以上6...
動作例を以下に示します。
http://gyazo.com/829b04a7fc82cdfe9dd0dfa650af873e.png
解答例1:
public class Score {
public static void main(String args[]) {
int i,a;
char score;
for(i=0;i<10;i++){
a= (int)(Math.random() * 100);
if(a>=80) score='A';
else if(a>=60) score='B';
else if(a>=40) score='C';
else score='D';
System.out.println(a + " " + score);
}
}
}
解答例2:
public class Score {
public static void main (String argv[]) {
int i,a;
for(i=0;i<10;i++) {
a=(int)(Math.random() * 100);
System.out.print(a + " ");
if(a<40) System.out.println("D");
else if(a<60) System.out.println("C");
else if(a<80) System.out.println("B");
else System.out.println("A");
}
}
}
***for文 [#ac566ee5]
for文もC言語と同じです。
for(初期設定; 条件; 再設定) {}
-演習2-1
10万円を今の1年もの定期預金の年利で複利で運用した時、元利...
for文で、2項目目に20万円を超える条件を書いて、年数と金額...
http://gyazo.com/1733defca0c709c41c69ea729320ab61.png
for( year = 1; <ここに条件>; year++) {
解答例:
class Kinri {
public static void main (String args[]) {
double okane=100000;
int year;
for(year=1; okane < 200000; year++) {
okane = okane * 1.002;
System.out.println("year = " + year + " okane= " + ok...
year++;
}
}
}
-演習2-2
break文で直近のループを抜け出せます。上の問題を無限ループ...
***while文 [#odd3e1de]
while文もC言語と同じです。
while(条件) {}
-演習2-3
上の問題をwhile文で書き直してみましょう。
解答例:
class Kinri {
public static void main (String args[]) {
double okane=100000;
int year;
year=1;
while(okane < 200000) {
okane = okane * 1.002;
System.out.println("year = " + year + " okane= " + ok...
year++;
}
}
}
//現在の普通預金の金利0.04%だと倍になるのに何年かかるだろ...
//http://gyazo.com/95cd94db39b407e7961355b20da8fc67.png
//-演習5.6をやってみよう
//
//while文をfor文に変えてみる
//
//解答例:
//
// class Kinri {
// public static void main (String args[]) {
// double okane=100000;
// int year;
// for(year=1;okane < 200000; year++) {
// okane = okane * 1.05;
// System.out.println("year = " + year + " okane= " + ...
// }
// }
// }
***モンテカルロ法で円周率を計算してみる(ループの練習) [...
--1x1の正方形のエリアにランダムに矢を当てた場合、1/4円の...
面積に比例すると考えられます。あたりの矢の割合を調べれば...
http://gyazo.com/e4f68c7ed1045c10801ec201ed00b5e6.png
-- MonteCarlo.java というファイルを作ります。
--まずは100個乱数を表示するプログラムを作ってみましょう。
class MonteCarlo {
public static void main (String args[]) {
int i;
for(i=0;i<100;i++)
System.out.println(Math.random());
}
}
矢の落下点x,yをランダムな位置にするには、乱数で指定します。
これがあたりかどうかは、原点からの距離で調べます
x = Math.random();
y = Math.random();
if(x*x + y*y < 1) hit++;
--100個の矢、1000個の矢などいろいろためしてで円周率を計算...
-- 解答例です
class MonteCarlo {
public static void main (String args[]) {
int i;
double hit = 0;
double x, y;
for(i=0;i<1000;i++) {
x = Math.random();
y = Math.random();
if(x*x + y*y < 1) {
hit++;
}
}
System.out.println(4 * hit / 1000);
}
}
***for-each文 [#cd4a2794]
for-each文は、Cにはなかったです。練習しましょう。
for(型 変数名: 式) {}
int型の4個の配列は、以下のように宣言できます。
int[] array;
array = new int[4]
これを1行で表現して、さらに初期値をいれてしまうこともで...
int[] array = new int[]{1,2,3,4};
- 演習3
int[] array = new int[]{1,2,3,4};
で宣言した配列の中身を、for-each文で順番に表示せよ。ヒン...
for(int x: array) {}
です。
解答例:
class ArrayTest {
public static void main (String args[]) {
int[] array = new int[]{1,2,3,4};
for (int x: array) {
System.out.println(x);
}
}
}
-演習4-1
mainの引数argsは、Stringの配列で、コマンドラインで起動し...
コマンドの後に続けた書いた文字が入っています。
args[0], args[1], args[2] .... をすべてfor-each文で
表示するプログラムを書いてみましょう。
http://gyazo.com/8d8effac163e0dc939e74f237d8507b1.png
ヒント:for(String s: args)を使います
-解答例
class ArgsTest2 {
public static void main (String args[]) {
for(String s: args)
System.out.println(s);
}
}
-演習4-2
1行につなげて、最後に改行を入れてみましょう。こんな感じ。
javac ArgsTest2 cat dog cow fox
catdogcowfox
printlnは最後に改行が入りますが、printだけだと改行なしに...
-演習4-3
args[]の文字をすべてfor-each文で+つけて表示してみましょう。
javac ArgsTest2 cat dog cow fox
cat + dog + cow + fox
解答例:
public class ArgsTest2 {
public static void main(String args[]) {
boolean isFirstWord = true;
for(String s: args) {
if(false == isFirstWord) {
System.out.print(" + ");
}
isFirstWord = false;
System.out.print(s);
}
System.out.println();
}
}
//arg[0]とarg[1]をつないで表示する
//演習5.5 10万円が20万円になる年
//arg[]の文字をすべてfor-each文で表示する
//--演習4.2をarg[0]に対してやってみよう
終了行:
[[Lecture]]
*Java プログラミング入門 [#s6899a39]
このページは、学部2年生向け授業である、「マルチメディア...
のために用意しました。
(Wikiの仕様で大文字小文字が混在した英単語に疑問符?が追...
**第3章「変数」 [#xc22f04b]
***Javaにおける基本データ型 [#n3c4e251]
-整数型
--byte (1バイト。-128から127)
--short (2バイト。-32,768から32767)
--int (4バイト。-2,147,483,648から2,147,483,647)
--long (8バイト。明確に数値で指定する場合は、x = 20L; の...
--char (1文字を表す。メモリー上のサイズは色々。''でくくる...
-浮動小数点型
--float (4バイトで表す浮動小数点。重力加速度なら9.80665の...
--double (8バイトで表す高精度な浮動小数点。光速なら2.9979...
-論理型
--boolean (trueかfalseのどちらかの値をとる。 x = true; な...
C言語と違い、整数型のサイズが明確に決められました。char型...
-演習1
先に作ったHello.javaを参考にVartest.javaというプログラム...
以下では、byte型変数を定義して、それを表示しています。
変数名は変えても良いです。
printlnの中では、文字列を連結しています。Javaでは文字列を...
class Vartest {
public static void main (String args[]) {
byte x = 42;
System.out.println("byte value x =" + x);
}
}
これをもとに、short, int, long, char, float, double boole...
class Vartest {
public static void main (String args[]) {
byte x= 42;
int x1= 123456;
char name = '椎';
System.out.println("byte value x =" + x);
System.out.println("int value x1 =" + x1);
System.out.println("char value name =" + name);
}
}
解答例:
class Vartest {
public static void main (String args[]) {
byte x_byte = 42;
int x_int = 12345;
short x_short = 123;
long x_long = 12345678;
char x_char = '椎';
float x_float = 123.4f;
double x_double = 3.14d;
boolean x_boolean = true;
System.out.println("byte value x_byte = " + x_byt...
System.out.println("short value x_short = " + x_s...
System.out.println("int value x_int = " + x_int);
System.out.println("long value x_long = " + x_lon...
System.out.println("char value x_char = " + x_cha...
System.out.println("float value x_float = " + x_f...
System.out.println("double value x_double = " + x...
System.out.println("boolean value x_boolean = " +...
}
}
-演習2
以下のように、整数型の変数に文字を代入して値を表示すると...
あなたのイニシャルを表す英文字の文字コードを表示するプロ...
int myInitialCode1 = 'S', myInitialCode2 = '椎';
System.out.println(myInitialCode1);
System.out.println(myInitialCode2);
英文字はASCIIコードになります。漢字はunicodeになります。
***配列 [#e846fded]
C言語では小規模な配列を使う場合、静的に確保した配列をよく...
Javaでは、システムからメモリー確保して動的に確保した配列...
C言語でもmalloc()関数でメモリーを確保したことがあると思い...
例えばint型の変数3個分のメモリを確保して、それをint型を示...
//C言語での例です:
int *p;
*p = (int *)malloc(sizeof(int)*3);
Javaでも同じことをやります。
システムにお願いして、必要な量の配列を格納するメモリー領...
まずは配列の変数を定義して、次にnewコマンドで必要なメモリ...
int[] x; (配列を参照する変数を定義する)
x = new int[3]; (int3個ぶんのメモリー領域をnewコマン...
こうすると、プログラムの中からx[0]=1;とかx[2]=x[0];などと...
1行でまとめて書くこともあります。
int[] x = new int[3];
-演習3
要素が100個のintの配列x[0]からx[99]を作って、それに1,2,3,...
ヒント:
class Vartest {
public static void main (String args[]) {
//配列を定義します。
//(略)
//for文で値を入れます
for(int i=0; i<100; i++) {
//(略)
}
//for文で表示します
for(int i=0; i<100; i++) {
//(略)
}
}
解答例:
class Vartest {
public static void main (String args[]) {
int[] a = new int[100];
for(int i=0;i<100;i++){
a[i]=i+1;
}
for(int i=0;i<100;i++){
System.out.println(a[i]);
}
}
}
-演習4
配列の長さは、.length変数で知ることができます。上の例でも...
解答例:
class Vartest {
public static void main (String args[]) {
int[] x = new int[100];
for(int i=0;i<x.length;i++){
x[i]=i+1;
}
for(int i=0;i<x.length;i++){
System.out.println(x[i]);
}
}
}
-演習5
Javaではfor-each文というのが使えます。配列の各要素に対す...
class Vartest {
public static void main (String args[]) {
int[] x = new int[100];
for(int i=0;i<x.length;i++){
x[i]=i+1;
}
for(int a: x){
System.out.println(a);
}
}
}
***文字列 [#t32f75c4]
C言語では文字列はただのバイト変数の配列でした。最後の値が...
Javaでは文字列は、Stringクラスのインスタンスです。
なんのことかは後の授業で説明しますが、処理をする関数を内...
なので、いろいろな操作が可能です。
文字列は""で括ります。
"Hello Java World!"
printlnできます。
System.out.println("Hello Java World!");
足し算もできます。
System.out.println("This is " + "a test.");
変数にも代入できます。変数の種類はStringです。オブジェク...
String world = "Hello Java World!";
-演習6
最初に作ったHello.javaプログラムを、String変数 worldとい...
解答例:
class Hello {
public static void main (String args[]) {
String world = "hello java world!";
System.out.println(world);
}
}
-演習7
--コマンドの引数はargs[0], args[1] ... などにString型の配...
--二つの引数を与えたときに、それが+でつないで表示されるプ...
http://gyazo.com/8159f78165e17781a7110de3763c833c.png
ヒント
--以下は引数一つを表示するだけのサンプルです。これをもと...
--args[0]とargs[1]をprintlnの中で+でつないで表示すれば良...
class ArgsTest {
public static void main (String args[]) {
System.out.println(args[0]);
}
}
できてしまった人は以下をお願いします。
このプログラムで、引数が2個未満の場合はエラーになります。
2個未満の場合には、2個引数を描いてくださいというメッセ...
.length変数でargsの長さを知ることができます。
if文はC言語と同じです。
if(args.length < 2) {
} else {
}
というように書けます。
解答
//--後で公開します
class ArgsTest {
public static void main (String args[]) {
System.out.println(args[0] + " + " + args[1]);
}
}
**第4章「演算子」 [#p4a8e735]
//--演習4.2をやってみよう
演算子はほとんどC言語と同じです。復習しましょう。
変数には算術演算子が使えます。算術演算子はC言語と同じです。
+-*/%
です。%は剰余です。
5 % 2
は1です。
代入演算子は=です。
算術演算子と代入演算子を組み合わせることもできます。
a += 1;
は
a = a + 1;
と同じ意味です。
インクレメント、デクレメント演算子もCと同様です。
a = 1;
b = a++;
は、bが1、aが2になります。
a = 1;
b = ++a;
は、a, bどちらも2になります。
関係演算子もC言語と同じです。
<, >, <=, >=, ==, !=
論理演算子もC言語と同じです。
&&, ||, !
Javaではbooleanにしか論理演算できないので、&, | だけでもo...
ビット演算し、シフト演算子もC言語と同じです。
&, |, ^, ~, <<, >>, >>>
1 << 2
は4になります。
キャストもあります。C言語と同じです。
long b=1234;
int a = (int)b;
**第5章「制御構造」 [#p54c6568]
制御構造も大半はC言語と同じです。
***if文、else文、else-if文 [#s3bd1b3d]
if文もC言語と同じです。
- if文
if (a==0) b=100;
if (a==0) {
b=100;
}
- if-else文
if (a==0) {
b=100;
}else{
b=10;
}
- else-if文
if (a>100) {
}else if (a>10){
}else{
}
-演習1
100点満点のテストの得点から、ABCDの成績を表示するプログラ...
その準備のために、
0から100までの乱数を10個表示するプログラムを作ります。
public class Score {
public static void main (String argv[]) {
int i,a;
for(i=0;i<10;i++) {
a=(int)(Math.random() * 100);
System.out.println(a);
}
}
}
Math.random()は、Mathクラスのクラスメソッドであるrandom()...
System.out.println()などと同じく、大文字で始まる単語はク...
次にこの乱数を100点満点の点数とみなして、成績ABCDを表示す...
成績の基準は、80点以上がA, 60点以上80点未満がB, 40点以上6...
動作例を以下に示します。
http://gyazo.com/829b04a7fc82cdfe9dd0dfa650af873e.png
解答例1:
public class Score {
public static void main(String args[]) {
int i,a;
char score;
for(i=0;i<10;i++){
a= (int)(Math.random() * 100);
if(a>=80) score='A';
else if(a>=60) score='B';
else if(a>=40) score='C';
else score='D';
System.out.println(a + " " + score);
}
}
}
解答例2:
public class Score {
public static void main (String argv[]) {
int i,a;
for(i=0;i<10;i++) {
a=(int)(Math.random() * 100);
System.out.print(a + " ");
if(a<40) System.out.println("D");
else if(a<60) System.out.println("C");
else if(a<80) System.out.println("B");
else System.out.println("A");
}
}
}
***for文 [#ac566ee5]
for文もC言語と同じです。
for(初期設定; 条件; 再設定) {}
-演習2-1
10万円を今の1年もの定期預金の年利で複利で運用した時、元利...
for文で、2項目目に20万円を超える条件を書いて、年数と金額...
http://gyazo.com/1733defca0c709c41c69ea729320ab61.png
for( year = 1; <ここに条件>; year++) {
解答例:
class Kinri {
public static void main (String args[]) {
double okane=100000;
int year;
for(year=1; okane < 200000; year++) {
okane = okane * 1.002;
System.out.println("year = " + year + " okane= " + ok...
year++;
}
}
}
-演習2-2
break文で直近のループを抜け出せます。上の問題を無限ループ...
***while文 [#odd3e1de]
while文もC言語と同じです。
while(条件) {}
-演習2-3
上の問題をwhile文で書き直してみましょう。
解答例:
class Kinri {
public static void main (String args[]) {
double okane=100000;
int year;
year=1;
while(okane < 200000) {
okane = okane * 1.002;
System.out.println("year = " + year + " okane= " + ok...
year++;
}
}
}
//現在の普通預金の金利0.04%だと倍になるのに何年かかるだろ...
//http://gyazo.com/95cd94db39b407e7961355b20da8fc67.png
//-演習5.6をやってみよう
//
//while文をfor文に変えてみる
//
//解答例:
//
// class Kinri {
// public static void main (String args[]) {
// double okane=100000;
// int year;
// for(year=1;okane < 200000; year++) {
// okane = okane * 1.05;
// System.out.println("year = " + year + " okane= " + ...
// }
// }
// }
***モンテカルロ法で円周率を計算してみる(ループの練習) [...
--1x1の正方形のエリアにランダムに矢を当てた場合、1/4円の...
面積に比例すると考えられます。あたりの矢の割合を調べれば...
http://gyazo.com/e4f68c7ed1045c10801ec201ed00b5e6.png
-- MonteCarlo.java というファイルを作ります。
--まずは100個乱数を表示するプログラムを作ってみましょう。
class MonteCarlo {
public static void main (String args[]) {
int i;
for(i=0;i<100;i++)
System.out.println(Math.random());
}
}
矢の落下点x,yをランダムな位置にするには、乱数で指定します。
これがあたりかどうかは、原点からの距離で調べます
x = Math.random();
y = Math.random();
if(x*x + y*y < 1) hit++;
--100個の矢、1000個の矢などいろいろためしてで円周率を計算...
-- 解答例です
class MonteCarlo {
public static void main (String args[]) {
int i;
double hit = 0;
double x, y;
for(i=0;i<1000;i++) {
x = Math.random();
y = Math.random();
if(x*x + y*y < 1) {
hit++;
}
}
System.out.println(4 * hit / 1000);
}
}
***for-each文 [#cd4a2794]
for-each文は、Cにはなかったです。練習しましょう。
for(型 変数名: 式) {}
int型の4個の配列は、以下のように宣言できます。
int[] array;
array = new int[4]
これを1行で表現して、さらに初期値をいれてしまうこともで...
int[] array = new int[]{1,2,3,4};
- 演習3
int[] array = new int[]{1,2,3,4};
で宣言した配列の中身を、for-each文で順番に表示せよ。ヒン...
for(int x: array) {}
です。
解答例:
class ArrayTest {
public static void main (String args[]) {
int[] array = new int[]{1,2,3,4};
for (int x: array) {
System.out.println(x);
}
}
}
-演習4-1
mainの引数argsは、Stringの配列で、コマンドラインで起動し...
コマンドの後に続けた書いた文字が入っています。
args[0], args[1], args[2] .... をすべてfor-each文で
表示するプログラムを書いてみましょう。
http://gyazo.com/8d8effac163e0dc939e74f237d8507b1.png
ヒント:for(String s: args)を使います
-解答例
class ArgsTest2 {
public static void main (String args[]) {
for(String s: args)
System.out.println(s);
}
}
-演習4-2
1行につなげて、最後に改行を入れてみましょう。こんな感じ。
javac ArgsTest2 cat dog cow fox
catdogcowfox
printlnは最後に改行が入りますが、printだけだと改行なしに...
-演習4-3
args[]の文字をすべてfor-each文で+つけて表示してみましょう。
javac ArgsTest2 cat dog cow fox
cat + dog + cow + fox
解答例:
public class ArgsTest2 {
public static void main(String args[]) {
boolean isFirstWord = true;
for(String s: args) {
if(false == isFirstWord) {
System.out.print(" + ");
}
isFirstWord = false;
System.out.print(s);
}
System.out.println();
}
}
//arg[0]とarg[1]をつないで表示する
//演習5.5 10万円が20万円になる年
//arg[]の文字をすべてfor-each文で表示する
//--演習4.2をarg[0]に対してやってみよう
ページ名: