★★ Java の宿題ここで答えます Part 64 ★★at TECH
★★ Java の宿題ここで答えます Part 64 ★★ - 暇つぶし2ch707:デフォルトの名無しさん
08/04/18 22:25:28
>>706
そういえばそうだった。
ソース付きアドバイスありがとう。

708:デフォルトの名無しさん
08/04/20 22:43:59
>>694
あ、情報処理試験のせいで忘れてたorz
もしも完成したらうpするけど、時間確保できる自信ナシ


709:デフォルトの名無しさん
08/04/20 23:01:56
【 課題 】実行時に指定した値を受け取り、口座作成および入金処理を行うBankApp_A01クラスを作成せよ。
mainメソッドで行う処理
・実行時に4つの値を指定していなければ、使用方法を表示して終了
・実行時に指定した1つめ、2つめの値を使って口座を作成
(値はname,20000,5000,3000です。)
【 形態 】1. Javaアプリケーション(main()で開始)    
【 期限 】 4月21日
【 Ver  】1.4.2まで
【 補足 】
どなたか教えていただけませんでしょうか
よろしくお願いします。

710:デフォルトの名無しさん
08/04/21 00:38:48
【 課題 】年利3%の奨学金を、在学中三年間60万円ずつ借り、卒業後
      十年間で返済するものとする(学生の間、利子は計上され
      ないものとする)。毎年、借りた総額の十分の一と利子を
      返済する場合、初年度から最終年度(十年目)の各年の返済
      金額はいくらになるか、それぞれ計算せよ。また、返済金
      額はいくらになるか、計算せよ
      この問題をforもしくはwhileループを使用して解く
【 形態 】1. Javaアプリケーション(main()で開始)    
【 期限 】 4月23日
【 Ver  】1.4.2まで
【 補足 】よろしくお願いします。



711:デフォルトの名無しさん
08/04/21 00:43:40
【 課題 】6000万円の家を購入し、年利2%のローンを30年間で返済するものとする
      毎年、同一の金額で返済することを考えた場合、各年の返済金額はいくらになるか
      この問題において、毎年の返済結果として元金がいくらになっているか、
      1年目から30年目まで、それぞれ表示するプログラムを作成せよ。
【 形態 】1. Javaアプリケーション(main()で開始)    
【 期限 】 4月23日
【 Ver  】1.4.2まで
【 補足 】よろしくお願いします。



712:java素人
08/04/21 01:40:03
【 課題 】ユークリッドの互除法を用いて、与えられた2つの整数の最大公約数を出力する
      JavaのプログラムGCD.javaを作成し、そのソースコードと実行結果を示せ。

      java GCD 45 18     ←入力

9 ←出力(結果)

【 形態 】1. Javaアプリケーション(main()で開始)
【 期限 】4月23日まで
【 Ver  】1.4.2
【 補足 】どなたかお教えください。お願いします。

713:デフォルトの名無しさん
08/04/21 02:26:30
>>710>>711
こ、これはなんという醜いJava課題!
値が決まっているなら普通に電卓で計算した方が速いのに
プログラムで計算させる意図が分からない・・・

714:デフォルトの名無しさん
08/04/21 09:54:40
ポカーン

715:デフォルトの名無しさん
08/04/21 15:04:57
>713
そんな餌では(ry

716:デフォルトの名無しさん
08/04/21 19:15:11
>>711
URLリンク(www.smbc.co.jp)

717:デフォルトの名無しさん
08/04/21 19:31:35
>>715
財務や会計や金融、保険の経験がある人に聞いてみな。
自己流計算なんてしたら笑われるよ。

718:デフォルトの名無しさん
08/04/21 20:37:47
入門レベルのjavaですが・・・
【 課題 】数学関数を用いて,自分の名前や所属をできるだけ半円状に表示するようなプログラムを作りなさい.
例:あまりよい例ではない

 B
  C
   D
   E
  F
 G

【 形態 】1. Javaアプリケーション(main()で開始)
【 期限 】本日中
【 Ver  】1.4.2まで

719:デフォルトの名無しさん
08/04/21 21:27:15
>>718

public class Shukudai718 {

public static void main(String[] args) {
String[] info = {
"gakkou", // school
"1", // grade
"A", // class
"male", // sex
"name", // name
};
String nl = System.getProperty("line.separator");

StringBuffer ret = new StringBuffer();
int max = info.length;
int mid = max / 2;
for (int i = Math.abs(0); i < max; ++i) {
StringBuffer b = new StringBuffer();
int k = i <= mid ? i : max - (i + 1);
for (int j = 0; j < k; ++j) {
b.append(" ");
}
b.append(info[i]).append(nl);
ret.append(b);
}

System.out.println(ret);
}

}

720:デフォルトの名無しさん
08/04/21 21:28:36
java 1.4.2 は同一人物かね。

721:デフォルトの名無しさん
08/04/21 21:35:03
>>694
「色付き長方形」って何だ??
適当に追加しとくぞ。

722:よろしくおねがいします
08/04/21 23:51:24
【 課題 】以下のプログラムは探索要素nによってエラーがでる、理由を応えよ
【 形態 】1. Javaアプリケーション(main()で開始)
【 GUI  】わかりません
【 期限 】明日中
【 Ver  】java version "1.6.0_02"
【 用語 】
【 補足 】与えられたプログラム↓

723:よろしくおねがいします
08/04/21 23:51:50
import java.util.*;

public class SequentialSearch1 {
static Scanner stdIn = new Scanner(System.in);
static int[] s = { 3,4,6,7,9,11,14,15,17,18,20,23,24,26,27,29,30,32 };
static int n = s.length; // s.length は配列s のサイズ(要素数) n=18
public static void main(String[] args){
System.out.print("Enter some integer: ");

int x = stdIn.nextInt(); // 探索したい数値x を入力する
int i = 0;

do{
if( s[i] >= x)
break;
else
i++;
} while( i<n );
if(x == s[i])
System.out.println(x + " exists. (index " + i + ")");
else
System.out.println(x + " does not exist. (-1)");
}
}

724:デフォルトの名無しさん
08/04/22 00:06:32
>>723
探索要素nってのは、コード中の変数xのことでいいのかね。

s の要素の最大値(32)を越える数値を入力されると、i が余計に
インクリメントされる。要素が見付からないままループを抜けた後、
余計にインクリメントされた i を用いて結果の調査を行うため、
エラーとなる。

725:デフォルトの名無しさん
08/04/22 00:36:25
>>724の言うとおり

期待通りの動作をするように修正するなら↓みたいにすればOK

import java.util.*;

public class SequentialSearch1 {
static Scanner stdIn = new Scanner(System.in);
static int[] s = { 3,4,6,7,9,11,14,15,17,18,20,23,24,26,27,29,30,32 };
static int n = s.length; // s.length は配列s のサイズ(要素数) n=18
public static void main(String[] args){
System.out.print("Enter some integer: ");

int x = stdIn.nextInt(); // 探索したい数値x を入力する

for ( int i = 0; (i < n) && !(s[i] <= x); i++ ) {
; // 何もしない
}

if(x == s[i])
System.out.println(x + " exists. (index " + i + ")");
else
System.out.println(x + " does not exist. (-1)");
}
}


726:よろしくおねがいします
08/04/22 00:37:38
>>724さん
わかりやすい回答ありがとうございます
理解できました!

727:デフォルトの名無しさん
08/04/22 00:40:04
//修正例その2

import java.util.*;

public class SequentialSearch1 {
static Scanner stdIn = new Scanner(System.in);
static int[] s = { 3,4,6,7,9,11,14,15,17,18,20,23,24,26,27,29,30,32 };
static int n = s.length; // s.length は配列s のサイズ(要素数) n=18

public static void main(String[] args) {
System.out.print("Enter some integer: ");

int x = stdIn.nextInt(); // 探索したい数値x を入力する

for ( int i = 0; i < n; i++ ) {
if (x == s[i]) {
System.out.println(x + " exists. (index " + i + ")");
return;
}
}
System.out.println(x + " does not exist. (-1)");
}
}

728:よろしくおねがいします
08/04/22 00:47:41
どう直せばいいのか悩んでいたので助かります
勉強になりました

729:デフォルトの名無しさん
08/04/22 00:48:51
>>694
URLリンク(rg550.hp.infoseek.co.jp)

730:デフォルトの名無しさん
08/04/22 15:19:08
>>702
この間結果が返ってきましたが、途中経過の内容も書かないと駄目だと言われました。
コンパイルしてみたら、最大公約数しか表示されませんでした。
途中経過の内容も表示させるにはどうすれば良いですか?

731:デフォルトの名無しさん
08/04/22 15:35:35
ソース取り違えてるんじゃねーのw

732:デフォルトの名無しさん
08/04/22 21:08:09
【 課題 】コマンドラインから正の整数値を取得し、その整数値を要素数とする配列を作成後、
その要素にランダムな整数値を入れなさい。
また、その配列の要素を何らかの整列アルゴリズム(バブルソート、挿入ソート、クイックソートなど)
      で整列し、出力しなさい。
【 形態 】1. Javaアプリケーション(main()で開始)
【 期限 】4月23日中
【 Ver  】java version "1.6.0_03"

よろしくお願いします。

733:デフォルトの名無しさん
08/04/22 21:32:16
>>732
public class Shukudai732 {
public static void main(String[] args) {
int size = Integer.valueOf(args[0]);
int[] nums = new int[size];
java.util.Random gen = new java.util.Random();
for (int i = 0; i < size; ++i) {
nums[i] = gen.nextInt();
}
java.util.Arrays.sort(nums);
System.out.println(java.util.Arrays.toString(nums));
}
}

734:デフォルトの名無しさん
08/04/22 21:37:53
>>732
java.util.Arrays#sort(int[]) のソートアルゴリズムは、調整されたクイックソートだそうな。
普通のクイックソートよりも効率がいいんだとかどうとか。
URLリンク(java.sun.com)(int[])

735:デフォルトの名無しさん
08/04/22 23:27:26
宿題レベルだと、args.length > 0 と Integer.valueOf(args[0]) > 0 の範囲チェックは要らないのか。

736:デフォルトの名無しさん
08/04/23 00:26:35
あったほうがいいんじゃね

737:デフォルトの名無しさん
08/04/23 01:31:10
回答でも提出したときにA,B,Cのどの評価がもらえるかはわからんが、
まれにD回答があるから注意だなw

738:デフォルトの名無しさん
08/04/23 04:36:15
Integerのインスタンスを利用するわけでもないしvalueOfはparseIntでいいんじゃね?
というかソートアルゴリズムも自分で実装するんじゃないのかな?
Arraysクラスを使うなという縛りは書かれていないし課題の主眼次第だとは思うけど。

739:デフォルトの名無しさん
08/04/23 08:20:59
>>738
どう見てもネタ解答

740:デフォルトの名無しさん
08/04/23 13:48:16
>>729
本当にありがとうございます
でも・・・色つき長方形の色の重ねの事すっかり忘れてた・・・orz
ええ・・・もう間に合いませんね
(1) 長方形とボードに色をつける。
. ボードの色はwhite とする。
. 長方形の色として指定できる色は以下の通りである。
- red
- blue
- yellow
- gray
(2) 長方形に対する配置の機能の内intersect を以下のように拡張する。
. 重なり部分の色を以下の規則でマージして、色を決定する。
- 色の組み合わせが同じであればgray とする。
- 色の組み合わせが yellow とblue ならば、green とする。
- 色の組み合わせが red とyellow ならば、orange とする。
- 色の組み合わせが red とblue ならば、magenta とする。
- その他の場合は cyan とする。
(3) 長方形は色が異なってもボード上で同じ幅、高さ、位置をもつ場合は同一の
長方形とみなす。
こうでしたとも・・・orz
そして自分でやろうとしても不完全でオワタwww
とりあえずコマンドの一部だけできたの(mix)同封してみます http:
//rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/231.lzh
あとイメージ画像もつけてみました
次に続きます

741:デフォルトの名無しさん
08/04/23 13:48:56
続き
第三回は . 仕様変更要求:出力の仕様
次回までの課題
. 入出力の一部をGUI 化したプログラムの作成
ですが追加情報あったら今度こそ書きこみますね
今後とも皆様よろしくお願いします

742:デフォルトの名無しさん
08/04/23 14:45:07
>>740
>>1

743:デフォルトの名無しさん
08/04/23 15:21:23


744:デフォルトの名無しさん
08/04/23 15:40:13
class java
{
public static void main(String [] args)
{
double rad=(Math.PI)/180;
double [] space={0,0,0,0,0,0,0,0,0,0}
char [] a={' ','あ','い','う','え','お','か','き','く','け'};
int n;
int x=0;
for(n=1;n<=9;n++)
{
space[n]=Math.sin(20*n*rad)*20;
while(x<=space[n])
{
System.out.print(' ');
x++;
}
System.out.println(a[n]);
}}}

数学関数sinを使い、半円上に文字を表示するプログラムですが、
a[5]ぐらいからスペースが表示されなくなり正しく表示されません。
どなたかご教授願います。

745:デフォルトの名無しさん
08/04/23 15:43:03
>>744
>>1

746:デフォルトの名無しさん
08/04/23 17:13:05
>>733
ありがとうございました。


747:デフォルトの名無しさん
08/04/24 16:56:14
【 課題 】
URLリンク(www.slashaster.jp)
を読み込み、
URLリンク(www.slashaster.jp)
に変換して出力するプログラムを作りなさい。

ただし、HTML Parser2.0(URLリンク(htmlparser.sourceforge.net))を使うこと。

【 形態 】1. Javaアプリケーション(main()で開始)
【 期限 】4月25日午前
【 Ver  】java version "1.5.0_13"

よろしくお願いします。

748:デフォルトの名無しさん
08/04/24 21:19:53
かなり急ぎですがよろしく御願いします。
穴埋め問題になります。

【 課題 】
オブジェクト生成時に氏名と3教科の点数を格納できるコンストラクタ(1)を記述しまさい。
また、3教科の合計点数を計算し出力するgetTotalScoreというメソッド(2)をSubjectクラスに作成しなさい。

URLリンク(sourcepost.sytes.net)

【 形態 】2. Applet

【 期限 】無理なのを押して明日、12時までに御願いします。

【 Ver  】java SDK最新  v 1.4.2_17

749:デフォルトの名無しさん
08/04/24 21:38:11
>>748
(1)
public Subject(String name, int phys, int math, int chem) {
this.name = name;
this.phys = phys;
this.math = math;
this.chem = chem;
}
(2)
public int getTotalScore () {
int totalScore = phys + math + chem;
System.out.println("合計点数:" + totalScore);
return totalScore;
}
Applet?

750:デフォルトの名無しさん
08/04/24 21:43:11
>>749
ありがとうございます。

>>無理なのを押して明日、12時までに御願いします。
瞬殺ですか、自分はこれに5時間かけて結局上手く出来ず諦めましたorz

一応、【 形態 】2. Applet は講座名がWeb技術でjavaAppletを習っているのでそうしました。

751:デフォルトの名無しさん
08/04/26 06:17:05
>【 Ver  】java SDK*最新*  v *1.4.2_17*
フイタw
いまさら1.4.2習っても時代遅れも良いとこなんだけど現実これなんだろうね。

752:デフォルトの名無しさん
08/04/28 13:13:52
【 課題 】class Node{
int key;
Node next;}
class LinkedListByObject{
static Node head, z, t;
static void listInitialize(){
head = new Node();
z = new Node();
head.next = z;
z.next = z;}
static void deleteNext(Node t){
//★課題1-1}
static Node insertAfter(int v, Node t){
Node x;
x = new Node();
x.key = v; x.next = t.next;
t.next = x;
return x;}

753:デフォルトの名無しさん
08/04/28 13:14:26
(続きです)
static void showList(){
for(Node i = head.next; i != z; i = i.next)
System.out.print("["+i.key+"]-->");
System.out.println();}
public static void main(String args[]){
listInitialize();
showList();
insertAfter(1,head);
showList();
insertAfter(2,head);
showList();
insertAfter(3,head);
showList();
insertAfter(4,head);
showList();}}}
プログラム中の「//★課題1-1」の箇所を書き換えて、メソッド deleteNextを作成せよ。

754:デフォルトの名無しさん
08/04/28 13:15:06
【 形態 】1. Javaアプリケーション(main()で開始
【 期限 】明後日
【 Ver  】1.4.1
【 補足 】是非この回答を教えて下さい。

755:デフォルトの名無しさん
08/04/28 13:18:25
【 課題 】3 のべき乗 3k を k=1 から k=40 の範囲ですべて表示するプログラムを書きなさい。
プログラム名は Power とする。べきごとに行を分けて出力すること。
整数型 int を用いた計算結果と浮動小数点型 double を用いた計算結果を対照させて表示するようにすること。
また、 int 型の場合何乗でオーバフローが発生するか、 double 型の場合何乗で誤差が発生するかを確かめなさい。
(3のべき乗の値は各桁の和が3の倍数となるはずである (例: 33 = 27 → 2 + 7 = 9 → 9 は 3 の倍数) 。
そうならない場合、誤差が生じていると判別できる)

【 形態 】1. Javaアプリケーション(main()で開始)
【 GUI  】1. AWTのみ
【 期限 】本日中
【Ver 】1.5.0_11
【 補足 】丸投げです
期限が短いですが、宜しければどうぞお願いしたします。

756:デフォルトの名無しさん
08/04/28 16:19:02
>>752
以下の自己暗示を掛けた上で、
・クラス変数head,zは、定数である(書き換えられることは絶対無い)
・クラス変数tは、不要である
・insertAfter(...,z)は、無効である

/**
* 引数tで指定されたNodeの次のNodeを削除する。
* ただし、削除対象Nodeがzであった場合は何もしない。
* @param t 削除対象Nodeの直前にあるNode
*/
static void deleteNext(Node t){
Node target = head;
while(target != z){
if(target == t){
target.next = target.next.next;
break;}
target = target.next;}}


757:デフォルトの名無しさん
08/04/28 17:40:14
>>755
public class Power {
public static void main(String[] args) {
boolean isCorrectInteger = true;
boolean isCorrectDouble = true;
for(int i = 1; i <= 40; i++){
int resultOfInt = 1;
double resultOfDouble = 1;
for(int j = 0; j < i; j++){
resultOfDouble *= 3;
resultOfInt *= 3;
}
System.out.println(String.format("k=%1$2d, int=%2$11d, double=%3$20.0f",i, resultOfInt, resultOfDouble));
if(checkError(String.format("%1$1d", Math.abs(resultOfInt))) && isCorrectInteger){
System.out.println("Overflow");
isCorrectInteger = false;
}
if(checkError(String.format("%1$1.0f", resultOfDouble)) && isCorrectDouble){
System.out.println("Error");
isCorrectDouble = false;
}
}
}
private static boolean checkError(String string) {
int val = 0;
for(int k = 0; k < string.length(); k++){
val += Integer.parseInt(string.substring(k, k+1));
}
return (val % 3) != 0;
}
}


758:デフォルトの名無しさん
08/04/28 17:40:54
実は>>752が突っ込みどころ満載でdeleteNext()をどう書けば良いか悩んでいた俺w

759:デフォルトの名無しさん
08/04/28 22:54:04
>>757さん
回答ありがとうございました!
非常に助かりました。

760:デフォルトの名無しさん
08/04/29 01:01:56
>>751
うちのシステムなんか1.3だぜ

761:デフォルトの名無しさん
08/04/29 13:46:11
それJAXPないな。
java xml pack(JAXPの別配布)もうないぞw

762:デフォルトの名無しさん
08/04/30 01:05:29
【 課題 】 素数を出すプログラムで例えば10を入力したら7,5,3,2みたいに
素数の数字が大きい順にでるようにしなさい。
【 形態 】1. Javaアプリケーション(main()で開始)
【 期限 】4月30日午後
【 Ver  】java version "1.5.0_13"

よろしくお願いします。


763:デフォルトの名無しさん
08/04/30 01:46:51
わからねえええええええええええええええ


764:デフォルトの名無しさん
08/04/30 02:56:01
>>762
702の配列を逆から表示すりゃいんじゃね

765:デフォルトの名無しさん
08/04/30 09:20:26
>>756
回答どうも有難うございました。
お陰で課題が終わりました。

766:デフォルトの名無しさん
08/04/30 09:22:54
【 課題 】class LinkedListByArray{
static int max = 30;
static int[] key = new int[max+2];
static int[] next = new int[max+2];
static int x, head, z;
static void listInitialize(){
head = 0; z = 1; x = 2;
next[head] = z; next[z] = z;}
static void deleteNext(int t){
next[t] = next[next[t]]; }
static int insertAfter(int v, int t){
//★課題1-2}
static void showList(){
//★課題1-3}
public static void main(String args[]){
listInitialize();
showList();
insertAfter(1,head);
showList();
insertAfter(2,head);
showList();
insertAfter(3,head);
showList();
insertAfter(4,head);
showList();
deleteNext(next[head]);
showList();}}

767:デフォルトの名無しさん
08/04/30 09:25:50
問題①プログラム中の「//★課題1-2」の箇所を書き換えて、メソッドinsertAfter
を作成せよ。
②プログラム中の「//★課題1-3」の箇所を書き換えて、メソッド showList を
作成せよ。

【 形態 】1. Javaアプリケーション(main()で開始)
【 期限 】5月2日
【 Ver  】1.4.1
【 補足 】>>752にあった問題の続きです。今度はこんな課題が出されました。分かる人がいましたら是非教えて下さい。

768:デフォルトの名無しさん
08/04/30 18:46:23
【 課題 】
乱数を用いて0,1,2を発生させる.
0の時には”グー”,1の時には”チョキ”,2の時には”パー”を表示.そして,これを10回繰り返す.
【 形態 】1. Javaアプリケーション(main()で開始)
【 期限 】5月2日
【 Ver  】
java version "1.6.0-oem"
Java(TM) SE Runtime Environment (build 1.6.0-oem-b104)
Java HotSpot(TM) Client VM (build 1.6.0-oem-b104, mixed mode, sharing)
【 補足 】
public class No0312
{
public static void main(String[] args){
double x;
int xx, i;
x = Math.random();
xx = (int)(x*3);
for (i=0; i<10; i++){
if (xx == 0){
System.out.println("グー");
}else if (xx == 1){
System.out.println("チョキ");
}else if (xx == 2){
System.out.println("パー");
}else { }
}
}
}
という風に作ったんですが,全部同じ動作になってしまって困っています.
しかも,問題に「絶対値」「Math.abs(a)」とだけ書いてあるのですが,意味が分かりません.Javaを初めてまだ2週間ほどしか経ってなく,完全に初心者な質問ですが,全く分からないので,よろしくお願いします.


769:デフォルトの名無しさん
08/04/30 19:52:30
課題まとめ人はいなくなったのか。

770:デフォルトの名無しさん
08/04/30 22:25:54
>>768
乱数の発生は for の下に書きましょう。

・「Math.random()」 の処理は 0.0~1.0未満の値(小数点を含む)を返します。
・「xx = (int)(x*3);」の処理は小数点以下を切り捨てています。
・「Math.abs(a)」はaの絶対値を返す。
上記のことから 「Math.abs(a)」の処理は使うひつようはないと思います。

つかうのであれば「xx = (int)(x*3);」を「xx = Math.abs(x*3);」
に置き換えるとよいです。

771:デフォルトの名無しさん
08/05/01 12:02:02
>>770
丁寧なアドバイスありがとうございます.
アドバイスを参考にプログラムを以下のように書き直してみました.
public class No0312
{
public static void main(String[] args)
{
double x, xx;
int i;

x = Math.random();

for (i=0; i<10; i++)
{
xx = Math.abs(x*3);

if (xx == 0)
{
System.out.println("グー");
}else if (xx == 1){
System.out.println("チョキ");
}else if (xx == 2){
System.out.println("パー");
}else { }
}
}
}
このように作ったら,なぜか実行結果が表示されないようになってしまいました.
どこがおかしいんでしょうか?

772:デフォルトの名無しさん
08/05/01 12:32:33
>>771

Math.random() は0.0以上1.0より小さい正のdoubleを返すので
Math.abs(x*3)としてもx*3と同じことをしてるだけで意味ないと思うよ
だから小数点は切り捨てられておらず、ちょうど0か1か2になるのはほぼありえない

Math.abs(x*3) のとこは (int)(x*3) のままでいいよ

773:デフォルトの名無しさん
08/05/01 12:39:16
>>771
ごめんなさい。
Math.abs(a)は整数を返すと思ってたけど勘違いしていました(整数=絶対値と思った)。
Math.random()は正の符号の付いた double 値なのでMath.abs(a)
を使用する必要はないかもしれません。

プログラムですが、
>>768のソースで for の下に
x = Math.random();
xx = (int)(x*3);
を入れてください。


774:デフォルトの名無しさん
08/05/01 13:19:06
>>772
>>773
ご親切にありがとうございました.
プログラムを再度書きなおし
public class No0312
{
public static void main(String[] args)
{
double x, xx;
int i;

for (i=0; i<10; i++)
{
x = Math.random();
xx = (int)(x*3);
if (xx == 0)
{
System.out.println("グー");
}else if (xx == 1){
System.out.println("チョキ");
}else if (xx == 2){
System.out.println("パー");
}else { }
}
}
}
にしたところ,無事に実行することができました.
ありがとうございます!

775:デフォルトの名無しさん
08/05/01 13:41:54
LockのsignalとsignalAllのつか訳が分かりません。

776:デフォルトの名無しさん
08/05/01 13:47:13
>755
つか訳→使い分け

777:デフォルトの名無しさん
08/05/01 18:43:06
>>762
import java.io.*;
public class Prime {
  private static final int DISPLAY_MIN_VALUE = 2;
  public static void main(String[] args) throws Exception {
    BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
    String line;
    while (!(line = in.readLine()).equals("")) {
      int max = Integer.parseInt(line);
      int[] primes = new int[max + 1];
      for (int i = 1; i <= max; i++) { primes[i] = i; }
      for (int i = 2; i <= max; i++) {
        if (primes[i] >= 1) {
          for (int j = 2; i * j <= max; j++) {
            primes[i * j] = 0;
          }
        }
      }
      StringBuilder sb = new StringBuilder();
      for (int i = max; i >= DISPLAY_MIN_VALUE; i--) {
        if (primes[i] >= DISPLAY_MIN_VALUE) {
          sb.append(primes[i]).append(",");
        }
      }
      if (sb.length() >= 1) { System.out.println(sb.substring(0, sb.length() - 1)); }
    }
  }
}

778:デフォルトの名無しさん
08/05/01 19:48:55
>>775
スレ違いだぞ

URLリンク(java.sun.com)


779:デフォルトの名無しさん
08/05/02 19:42:44
【 課題 】class LinkedListByArray{
static int max = 60;
static int[] key = new int[max+3];
static int[] next = new int[max+3];
static int x, head, z;
static void listInitialize(){
head = 0; z = 1; x = 2;
next[head] = z; next[z] = z;}
static void deleteNext(int t){
next[t] = next[next[t]]; }
static int insertAfter(int v, int t){
//★問題1}
static void showList(){
//★問題2}
public static void main(String args[]){
listInitialize();
showList();
insertAfter(1,head);
showList();
insertAfter(2,head);
showList();
insertAfter(3,head);
showList();
insertAfter(4,head);
showList();
deleteNext(next[head]);
showList();}}
プログラム中の「//★問題1」の箇所を書き換えて、メソッドinsertAfterを作成せよ。また、プログラム中の「//★問題2」の箇所を書き換えて、メソッド showList を作成せよ。
【 形態 】1. Javaアプリケーション(main()で開始)
【 期限 】5月6日
【 Ver  】1.4.2
【 補足 】丸投げです。分かる人がいましたら是非教えて下さい。宜しくお願いします。

780:デフォルトの名無しさん
08/05/03 13:04:32
>>779
問題はこれで全部?
メソッドinsertAfterは何をして何を返すメソッドなの?
showListメソッドは何を表示する(?)メソッドなの?

781:デフォルトの名無しさん
08/05/03 20:00:24
【 課題 】while文を使い,iを0~9まで1ずつ増加させ,表示するプログラムを書きなさい.
【 形態 】1. Javaアプリケーション(main()で開始)
【 期限 】5月4日
【 Ver  】
java version "1.6.0-oem"
Java(TM) SE Runtime Environment (build 1.6.0-oem-b104)
Java HotSpot(TM) Client VM (build 1.6.0-oem-b104, mixed mode, sharing)
【 補足 】for文を使った場合のプログラムは
public class No3111
{
public static void main(String args[])
{
int i, j;

for (i=0; i<=9; i++)
{
for (j=0; j<i; j++)
{
System.out.print("i");
}
System.out.println();
}
}
}
といった感じになると思うのですが,whileを使った書き換えができなくて困っています.
よくわからないので,よろしくお願いします!


782:デフォルトの名無しさん
08/05/03 20:11:38
>>781
for文で出来るなら、まずfor文で作って晒して。

783:デフォルトの名無しさん
08/05/03 20:17:26
>>781 ヒント

for (i=0; i<=9; i++) { ...; }
 =>
i=0; while (i<=9) { ...; i++; }

784:デフォルトの名無しさん
08/05/04 08:53:25
>>780
insertAfterは「引数で与えれた項目を、引数で与えられた節点の直後に挿入する」というメソッドで、
showListは「リストの内容を先頭から順番に全て表示する」というメソッドの事です。
それは分かりますよね?

785:デフォルトの名無しさん
08/05/04 09:38:43
>>784
分かりますよねじゃねーだろ、そこまでの仕様をちゃんと書けと言ってるんだよw

786:デフォルトの名無しさん
08/05/04 13:54:57
なんか static 使ってるの、やな感じ。

787:デフォルトの名無しさん
08/05/04 19:26:56
>>752
For文を使った場合は
public class No3111
{
public static void main(String args[])
{
int i, j;

for (i=0; i<=9; i++)
{
for (j=0; j<i; j++)
{
System.out.print("i");
}
System.out.println();
}
}
}
だと思うのですが・・・もしかして間違ってますかね?


788:デフォルトの名無しさん
08/05/04 19:28:10
>>782の間違いです,すみません.

789:デフォルトの名無しさん
08/05/04 20:15:45
>>787
なんで2重ループにしてるのかわからんw釣りにしてもレベル低ス

790:デフォルトの名無しさん
08/05/04 20:21:06
>>789
釣りではないです(笑)
やはり問題の解釈を間違えていたということですか.だったらもう少し頑張ってみます.
ご迷惑をおかけして,すみませんでした.

791:デフォルトの名無しさん
08/05/05 01:30:00
>>790
> iを0~9まで1ずつ増加させ,表示する
を、iという文字を1行あたり0個から9個まで変化させて出力する問題ととるのなら、それでいい。
まあ、2重ループにしなくてもできるけれどね。
iというのが数値型の変数名でiの値を0から9まで変化させて、
そのiの値を表示する問題であるのなら1重ループでSystem.out.println(i);するだけで十分。
for文をwhile文に修正するのは>>783のヒントのように、
for(A;B;C)D の形になっているものを A;while(B){D;C;} にすればいい。

792:デフォルトの名無しさん
08/05/05 02:20:34
>>781=787
質問。
> 【 課題 】while文を使い,iを0~9まで1ずつ増加させ,表示するプログラムを書きなさい.
の答えは、
0123456789
となってほしいのか、

i
ii
iii
iiii
iiiii
iiiiii
iiiiiii
iiiiiiii
iiiiiiiii
となってほしいのか、どっちだ?

793:デフォルトの名無しさん
08/05/05 02:57:28
後者だったらなんかうけるなw

794:デフォルトの名無しさん
08/05/05 03:44:52
>>793

課題の「i」という文字のコンテキストが読めないからな。
「変数i」とか書いてたら前者なのにな。

後者でも間違いではないとも言えるなw


795:デフォルトの名無しさん
08/05/05 09:42:29
PENTOMINOをjavaで作成中なのですがなかなかうまくいきません。。。
まだ90度回転は書いてないのですがとりあえずある程度のグラフィック表示と2339×4通りの出力を
実現したいのです;

URLリンク(www.dotup.org)
パスワード:pentomino
まだまだ初心者なのでぐちゃぐちゃですがアドバイスよろしくです><


796:デフォルトの名無しさん
08/05/05 11:09:03
>>795
>>1

797:デフォルトの名無しさん
08/05/05 20:16:28
【 課題 】drawCircleを使わずにdrawLineだけで円を描くプログラムを作成せよ
【 形態 】2. Applet
【 期限 】5/8
【 Ver  】java version "1.6.0_10-beta"
お願いします

798:デフォルトの名無しさん
08/05/05 20:59:10
>>797
import java.applet.Applet;
import java.awt.Graphics;

public class CircleApplet extends Applet {
@Override
public void paint(Graphics g) {
int centerX = 200; // 中心X座標
int centerY = 200; // 中心Y座標
int r = 100; // 半径
int n = 32; // 角の数(大きくするほど円に近くなる)

int x0 = centerX; // 線を引く時の始点座標
int y0 = centerY - r; // 最初は中心から0時方向の点

for(int i = 0; i < n; i++){
double rad = 2 * Math.PI / n * (i+1); // 中心から時計回りに360/n度方向の点を求める
int x1 = (int)(centerX + r*Math.sin(rad));
int y1 = (int)(centerY - r*Math.cos(rad));
g.drawLine(x0, y0, x1, y1); // 始点から求めた点まで線を引く
x0 = x1; // 現在の終点を次の始点にする
y0 = y1;
}
}
}


799:デフォルトの名無しさん
08/05/05 22:20:18
>>798
ありがとうございます

800:デフォルトの名無しさん
08/05/06 02:44:09
ところでdrawOvalでなくdrawCircleは使おうにも標準APIにそういうメソッドはないな
もしかしてupdate10で追加された?

801:デフォルトの名無しさん
08/05/07 00:49:41
【 課題 】モンテカルロ法を使って y=sinx の (0,0)から(1,2/π)までの面積を求めよ
【 形態 】Javaアプリケーション(main()で開始)
【 GUI  】制限なし
【 期限 】5/7
【 Ver  】java version "1.5.0_11"
【 補足 】丸投げでごめんなさい

802:デフォルトの名無しさん
08/05/07 03:42:49
>>801
import java.util.Random;
public class Monte {
  public static void main(String[] args) {
    Random rand = new Random();
    int maxCount = 10000;
    int inCount = 0;
    for (int i = 0; i < maxCount; i++) {
      double x = rand.nextDouble();
      double y = rand.nextDouble();
      if (y <= Math.sin(x * Math.PI / 2)) {
        inCount++;
      }
    }
    System.out.println(Math.PI / 2 * inCount / maxCount);
  }
}

803:デフォルトの名無しさん
08/05/07 03:58:39
>>801
> y=sinx の (0,0)から(1,2/π)までの面積を求めよ
ってのはy=sin(x)とy=0に挟まれた面積を求めよってことだよね?
sin(1)≠2/πだけれど積分範囲は0から1でいいの?
もしかして、(1,2/π)は(π/2,1)のつもりで積分範囲は0からπ/2かもと思って、
コメントアウトしている部分にその場合のコードも入れておいた。
import java.util.Random;
public class MonteCarlo {
public static void main(String[] args) {
Random r = new Random();
int N = 1000000;
int n = 0;
// 積分範囲が[0,1]の時 解析解=1-cos(1)
for (int i = N; i > 0; i--) if (Math.sin(r.nextDouble()) > r.nextDouble()) n++;
System.out.println((double)n / N); // モンテカルロ法
System.out.println(1 - Math.cos(1)); // 解析解
// 積分範囲が[0,π/2]の時 解析解=1
/*double p2 = Math.PI / 2;
n = 0;
for (int i = N; i > 0; i--) if (Math.sin(r.nextDouble() * p2) > r.nextDouble()) n++;
System.out.println((double)n / N * p2);*/
}
}

804:803
08/05/07 04:01:30
うお、リロードしていなかったorz
やっぱり[0,π/2]って考えるよね

805:デフォルトの名無しさん
08/05/07 04:19:26
>>802
助かりました
ありがとう

806:デフォルトの名無しさん
08/05/07 04:20:32
>>803
リロードしてなかった;
ありがとうございます

807:デフォルトの名無しさん
08/05/07 21:41:24
下着にか

808:デフォルトの名無しさん
08/05/07 22:56:09
コレクションフレームワークを使って、以下の要件を満たすクラスEmployeeDataAccessor.javaを作ってください。
標準入力から社員No、社員名のデータを5名分受け取って社員No、社員名のセットでデータを格納する
標準入力から社員Noを入力すると該当する社員名が表示される
「A」または「a」と入力すると全社員が昇順にソートされて表示される
「Q」または「q」と入力する終了する
方法1:ArrayListクラス、HashMapクラス、StringTokenizerクラス、Collectionsクラスのsortメソッドを使う
方法2:TreeMapクラスを使う
(制限時間: 30分)

809:デフォルトの名無しさん
08/05/07 23:01:53
>>808
>>1

810:デフォルトの名無しさん
08/05/07 23:12:59
【 課題 】コレクションフレームワークを使って、以下の要件を満たすクラスEmployeeDataAccessor.javaを作ってください。
標準入力から社員No、社員名のデータを5名分受け取って社員No、社員名のセットでデータを格納する
標準入力から社員Noを入力すると該当する社員名が表示される
「A」または「a」と入力すると全社員が昇順にソートされて表示される
「Q」または「q」と入力する終了する
方法1:ArrayListクラス、HashMapクラス、StringTokenizerクラス、Collectionsクラスのsortメソッドを使う
方法2:TreeMapクラスを使う
【 形態 】Javaアプリケーション(main()で開始)
【 GUI  】制限なし
【 期限 】5/8
【 Ver  】java version "1.5.0_11"
【 補足 】丸投げでごめんなさい


811:デフォルトの名無しさん
08/05/08 01:21:03
>>810
ソートのキーは何?

812:デフォルトの名無しさん
08/05/08 04:01:08
>>810
URLリンク(sourcepost.sytes.net)

813:デフォルトの名無しさん
08/05/08 08:45:24
【 課題 】
フレーム上にDrawLineメソッドだけを使ってSin関数のグラフを描画せよ。
併せてフレームの中心部に原点をとるx軸、y軸も描画すること。

【 形態 】1. Javaアプリケーション(main()で開始)
【 GUI  】1. AWTのみ
【 期限 】5月9日
【 Ver  】java version"1.5.0_11"
【 補足 】丸投げですですがよろしくお願いします。

814:デフォルトの名無しさん
08/05/08 12:38:58
>>813
URLリンク(sourcepost.sytes.net)

815:デフォルトの名無しさん
08/05/08 19:26:44
【 課題 】配列を用い、可変個数のint型のデータの集合を扱えるようなメソッド群を作成しなさい。
具体的には、int型の配列に対して値の追加、削除、検索、要素の表示などさまざまな操作を行うメソッドを作成しなさい。具体的には次のとおり。
メソッド init: 配列 a と int 型の値 b を引数にとり、配列 a のすべての要素を b の値で初期化するメソッド
メソッド add: 配列 a と int 型の値 b を引数に取り、配列 a のデータが入っている要素の末尾に b を追加するメソッド
メソッド remove: 配列 a と int 型の値 b を引数に取り、配列 a の要素から b を探し削除するメソッド
メソッド printIndexOf: 配列 a と int 型の値 b を引数に取り、値 b が配列の何番目に入っているか表示するメソッド
メソッド print: 配列 a を引数に取り、配列 a に格納されているデータすべてを表示するメソッド
さらに、メソッド main に、これらのメソッドを使い集合にいろいろな操作を行うプログラムを書きなさい。

新たな集合を作り、1, 9, 6 を追加すると、1 9 6
次に 10 を追加すると、1 9 6 10
また、6 を検索すると 2 番目であることがわかるようにする。
そして、集合から 6 を削除すると1 9 10となる。

可変個のデータを扱うことから、配列の何番目まで意味のあるデータが入っているかを管理する必要がある。
それを行う一つの方法として、最初に配列全体を「空」を表わす特別な値 (たとえば -1) を決めて初期化し、先頭から順番に値を入れていくことが考えられる。
値を順に取り出すときには -1 が見つかったら、取り出しを終了すれば良い。
次に、値が削除されたとき、削除済のデータを配列内で管理する必要がある。一つの方法として次のような処理が考えられる。
削除済みを示す特別な値 (たとえば -2) を決めて、値が削除されたときに配列要素にその値を書き込むようにする。
データを取り出すときは -2 があったらその要素を読み飛ばすようにする。
プログラム名は CollectionByArray とする。
【 形態 】Javaアプリケーション(main()で開始)
【 GUI  】1. AWTのみ
【 期限 】5/9(金)の17時まで
【Ver 】1.5.0_11
【 補足 】丸投げとなりますが、どうぞよろしくお願いします。



816:デフォルトの名無しさん
08/05/08 19:58:11
【 課題 】URLリンク(rg550.hp.infoseek.co.jp)
【 形態 】1. Javaアプリケーション(main()で開始)
【 GUI  】制限なし
【 期限 】5/8(木)の23時まで
【Ver 】1.5.0_11
【 補足 】丸投げとなりますが、どうかよろしくお願いします。

817:デフォルトの名無しさん
08/05/08 20:19:17
【 課題 】URLリンク(rg550.hp.infoseek.co.jp)
【 形態 】1. Javaアプリケーション(main()で開始)
【 GUI  】制限なし
【 期限 】5/8(木)の23時まで
【Ver 】1.5.0_11
【 補足 】前の書き込みの>>816です。まだ問題があったのを書き込み忘れていました・・・どうかよろしくお願い致します。

818:デフォルトの名無しさん
08/05/08 20:47:17
>>816
URLリンク(rg550.hp.infoseek.co.jp)

819:818
08/05/08 20:52:14
>>816
URLリンク(rg550.hp.infoseek.co.jp)
はフライングです。

820:デフォルトの名無しさん
08/05/08 21:42:49
>>814
ありがとうございます!

821:デフォルトの名無しさん
08/05/08 22:20:32
>>817
URLリンク(rg550.hp.infoseek.co.jp)
問題1のみです。

822:デフォルトの名無しさん
08/05/08 23:32:14
>>817
URLリンク(sourcepost.sytes.net)
問題2のみです。

823:816,817
08/05/09 00:40:00
>>818,>>819,>>821
ありがとうございます!助かりました。

824:デフォルトの名無しさん
08/05/09 15:13:44
【 課題 】鳥の画像を表示させるようにプログラムを改造しなさい。
改造前のプログラム→URLリンク(sourcepost.sytes.net)
【 形態 】Javaアプリケーション(main()で開始
【 GUI  】AWT
【 期限 】5月12日、16:30分
【 Ver  】1.5.0_11(多分)
【 補足 】鳥の画像がうまくアップできないので、プログラムのどの部分に
鳥の画像を表示させるプログラムを入れればいいのかを教えていただければ有難いです。
よろしくお願いします。
何かあれば、ご指摘下さい。



825:デフォルトの名無しさん
08/05/09 16:25:23
>>824
GUIはAWTって書いているけど、ソースを見る限りswingだよね?
どこに画像を入れるかはっきりしないけど、
画像用に別途JLabelをCheckBoxTest8に配置してやればいいと思う。
JLabelはコンストラクタやsetIconメソッドでIconを指定して画像を表示できるので、
IconのサブクラスのImageIconで画像ファイルから直にインスタンスを作っておいて、
JLabel用のIconとして使用できる。
画像の変更のタイミングはメッセージの変更と同じところにsetIconを記述すればいいと思う。

826:825
08/05/09 16:52:29
正確にはIconはインタフェースなのでImageIconはIconを実装したクラス

827:デフォルトの名無しさん
08/05/10 00:41:42
【課題提示用テンプレ】
【 課題 】1、2、3,4をそれぞれ1つずつ使い28になる式を全て抽出せよ。
       条件・()は使えない。1と3で31という使い方も可能。四則記号はおなじものを何度使ってもよい。
【 形態 】1. Javaアプリケーション(main()で開始)
【 GUI  】1. AWTのみ/2. Swing/3. SWT/4. 制限なし/ 5. その他(明記すること)
       《GUIの課題の場合必ず選択》 制限なし
【 期限 】5月11日23時59分
【 Ver  】java version "1.5.0_11"
【 補足 】丸投げになりますが、何卒よろしくお願いいたします。

828:デフォルトの名無しさん
08/05/10 01:33:30
>>827
【GUI】制限なしです。
記入ミスすいません。

829:デフォルトの名無しさん
08/05/10 03:07:50
めんどくさそーな問題だな

830:デフォルトの名無しさん
08/05/10 07:40:30
必ず1つだけ使用しなければいけないから結構範囲せまいかも

831:デフォルトの名無しさん
08/05/10 17:14:00
数と演算子の組み合わせパターンを全部生成して試していく方法を採ったとしても、
4桁の整数みたいな絶対正解になりえない場合も枝刈りせずに含めて、
1234から作られる全ての並びが 4! = 24通りで、
それぞれの並びに対して、
全部が一つの整数になる場合が1通り、
二つの整数になる組み合わせが3通りで、それぞれ整数間に演算子が4通り入り、
三つの整数になる組み合わせが3通りで、それぞれ整数間に演算子が4^2通り入り、
四つの整数になる組み合わせが1通りで、整数間に演算子が4^3通り入るから、
全部で 4! * (1 + 4 * 3 + 4^2 * 3 + 4^3) = 3000通りかな。

832:デフォルトの名無しさん
08/05/11 00:08:14
>>827
URLリンク(rg550.hp.infoseek.co.jp)
合ってるかな?ドキドキ

833:デフォルトの名無しさん
08/05/11 02:59:06
>>832
作られた式を全部出力(答は抜き)させて、
sort | uniq をかけてもかけなくても3000行だったから、
>>831によれば少なくとも全部の式を作っていると思う。
計算が正しく行われているかについては見ていないが。

834:デフォルトの名無しさん
08/05/11 05:24:18
>>831

整数間の演算子の数が5個(四則演算+両端の整数を連結する演算)、
その演算子のいずれかが4個の整数の間(3箇所)に入るので、
4! * 5 * 5 * 5 = 3000通り、と自分は導出してみた。


835:デフォルトの名無しさん
08/05/11 05:47:17
>>832
例えば、1+23+4=28 とかのいくつかの抜けがあるような。
確かめると、1+23+4=24.0とかになってる感じ。
URLリンク(sourcepost.sytes.net)
これは検算用に別実装で式の生成と値の算出をしたものだけど、
答が28個出てきた(>>832は22個)。
ただし、このソースはJDK6用なので、回答にはならない。
要求バージョンが6だったらネタ回答用に出そうと思ったけど残念w

836:デフォルトの名無しさん
08/05/11 06:59:09
>>827
俺も挑戦。
URLリンク(sourcepost.sytes.net)
答は28個でてきた。

837:832
08/05/11 10:45:59
URLリンク(rg550.hp.infoseek.co.jp)
直した。今度は28個だから良さげ

838:832
08/05/11 11:20:43
URLリンク(rg550.hp.infoseek.co.jp)
う~ん

839:デフォルトの名無しさん
08/05/11 16:41:40
【 課題 】実数値(double)を格納するスタックを実装せよ。
URLリンク(x072.s10.x-beat.com)
【 形態 】1. Javaアプリケーション(main()で開始
【 期限 】5/11 22:00
【 Ver  】1.6.0_10
【 用語 】数学用語、専門用語の意味、説明を書きます。
【 補足 】丸投げです。空白を埋めればいいんだと思います。

840:デフォルトの名無しさん
08/05/11 16:49:00
>>839
すいません、コメントの部分が日本語だと文字化けしてしまうみたい。
URLリンク(aaabbbccc.s6.x-beat.com)
SSで許してください。

841:デフォルトの名無しさん
08/05/11 17:14:54
>>1を読めばアップローダのURLまで書かれているというのに

842:デフォルトの名無しさん
08/05/11 17:21:42
>>841
容量小さすぎてupできなかったorz

843:デフォルトの名無しさん
08/05/11 18:14:05
>>839
自己解決しました。

844:デフォルトの名無しさん
08/05/11 18:44:58
自己解決して当然だろ。

845:デフォルトの名無しさん
08/05/11 18:52:05
自己解決が正しいあり方なのは当然だけど、ひとたび依頼があった以上、
自己解決したのならその報告がないと無駄手間取らされる人間が出る。
依頼する前にもうひとがんばりして解決するのが一番いいのだが。

846:デフォルトの名無しさん
08/05/11 19:29:45
>>831-838
どうもありがとうございました。
本当に助かりました。教えていただいた
コードを見てどういう動きをしているか位は
理解します。本当にどうもありがとうございました。

847:デフォルトの名無しさん
08/05/11 20:26:23
String型で 例えば "なむあみだぶつ、なむあみだぶつ、なむあみだぶつ"ってあったとして
"あみ" が合計何文字入ってるか計算したいんだけどこの場合どうすれば?
何の関数使うのか、はたまた関数すら使わないのか意味不明です
お知恵を貸して下さい。

この場合答えは3ってしたいです



848:デフォルトの名無しさん
08/05/11 21:11:39
>>847
indexOf(String str, int fromIndex)メソッドでインデックスの位置をずらしながら、出現回数をカウントしながら、ループさせてゴニョゴニョ

849:デフォルトの名無しさん
08/05/11 23:23:03
>>847
今度から質問は質問スレへ
新しいのがたっていないからって違うスレに投げるのはよくない
単発質問スレを立てるわけじゃないんだから
無ければテンプレを引き継いで堂々と質問スレを立てればいい

850:デフォルトの名無しさん
08/05/12 10:51:06
【 課題 】ペントミノの作成。5つのピースを用いて全通りを自動検出・表示する。また全部で何通りあるか。
【 形態 】 Applet      
【 GUI  】AWTのみ
【 期限 】5/13
【 Ver  】1.6.0_02
【 用語 】数学用語、専門用語の意味、説明を書きます。
【 補足 】自分なりにプログラムを作ってみました
      URLリンク(rg550.hp.infoseek.co.jp)
      2339通りあることは分かっているのですがカウントされず
      ピースのグラフィックも表示できません。
      

851:850
08/05/12 10:55:06
【 課題 】
class SelectionSort{
//比較回数を覚えておくための変数
static int compare = 0;//コピー回数を覚えておくための変数
static int copy = 0;
static void swap(int a[], int i, int j){//1-1:配列の要素を入れ替えるメソッド
//動作:配列aの要素a[i]とa[j]の値を入れ替える
//例: a[0]=10, a[1]=30, a[2]=20の場合
// swap(a,1,0)を実行するとa[0]=30, a[1]=10, a[2]=20となる。
// swap(a,1,2)を実行するとa[0]=10, a[1]=20, a[2]=30となる。
//★以降を適切に埋めよ(課題1-1)
}static int findMin(int a[], int N, int from){
//1-2:最小値のある場所を見つけるメソッド
//動作:N個の要素を持つ配列aに対し、a[from]からa[N-1]の間にある
//最小値を見つけ、最小値のある場所の添え字を返す
//最小値を見つけるまでに行った比較回数を変数compareに加算
//例: a[0]=10, a[1]=30, a[2]=20の場合
// findMin(a,3,0)は0を返す(a[0]からa[2]の範囲ではa[0]が最小値だから)
// compareの値は2増える。
// findMin(a,3,1)は2を返す(a[1]からa[2]の範囲ではa[2]が最小値だから)
// compareの値は1増える。
//★以降を適切に埋めよ(課題1-2)
int min = 0;
return min;}

852:850
08/05/12 10:57:42
static void showArray(int a[], int N){
//1-3:配列の内容を表示するメソッド
//動作:N個の要素を持つ配列aの要素を全て画面に表示する
//例: a[0]=10, a[1]=30, a[2]=20の場合
// showArray(a,3)を実行すると画面に
// 10 30 20
// と表示される。
//★以降を適切に埋めよ(課題1-3)}
static void initArray(int a[], int N){
//1-4:配列にランダムな値を代入するメソッド
//動作:N個の要素を持つ配列aに対し、1~Nまでの範囲の数をランダムに入れる
//ただし、a[0]には常に0を入れること。
//ヒント:次のようにして乱数を使えば1~Nまでの範囲の数をランダムに1つ作れる
//int n;
//n = (int)(java.lang.Math.random()*(N-1)) + 1;
//
//配列に入れる値に重複が無ければ望ましい
//★以降を適切に埋めよ(課題1-4)}
static void selection(int a[], int N){
int i;
//1-5:選択ソートを実行するメソッド
//動作:選択ソートの過程を表示しながら、N個の要素を持つ配列aをソートする
もう少し詳しく書くとこうなる。
/*選択ソートの手順:
iの値を1からN-1まで増やしながら次のことを行う。
1.findMinメソッドを使って、a[i]からa[N-1]の間にある最小値の場所minを探す
2.swapメソッドを使って、a[i]とa[min]の値を入れ替える
3.showArrayメソッドを使ってソート途中の配列aの内容を表示する
*/
//★以降を適切に埋めよ(課題1-5)}

853:850
08/05/12 11:00:47
public static void main(String args[]){
//1-6:上で作ったメソッドを用いて、ソート過程を表示しながら
//選択ソートを実行
//手順は次のようになる。
/*
1.要素を(20個もつ)整数型配列aを宣言
2.整数型変数Nに配列aの要素数を保存
3.initArrayメソッドを用いて配列aを初期化
4.showArrayメソッドを用いてソート前の配列aの内容を表示
5.変数compareの値を0に初期化
6.selectionメソッドを用いて配列aを選択ソート
7.showArrayメソッドを用いてソート後の配列aの内容を表示
8.ソートにかかった比較の回数を表示
*/
//★以降を適切に埋めよ(課題1-6)}}

1-1:配列の要素を入れ替えるメソッドを完成させよ。
1-2:最小値のある場所を見つけるメソッドを完成させよ。
1-3:配列の内容を表示するメソッドを完成させよ。
1-4:配列にランダムな値を代入して初期化するメソッドを完成させよ。
1-5:選択ソートを実行するメソッドを完成させよ。
1-6:mainメソッドを完成させ、ソート過程を表示しながら選択ソートを実行するようにせよ。

854:850
08/05/12 11:02:05
【 形態 】1. Javaアプリケーション(main()で開始
【 期限 】5月15日
【 Ver  】1.4.1
【 用語 】1-1~1-5はメソッドを作成します。
【 補足 】丸投げです。是非教えて下さい。

855:デフォルトの名無しさん
08/05/12 11:45:30
ひどい設計だな

856:デフォルトの名無しさん
08/05/12 13:54:25
>>854
問題に沿って作ってないけど、多分これで動くはず。
これをヒントにがんがってみれ
URLリンク(rg550.hp.infoseek.co.jp)

857:850
08/05/12 14:33:05
>>856
分かりました。頑張って作成してみます。

858:デフォルトの名無しさん
08/05/13 11:02:10
>>824
です。

>>825
ご指摘ありがとうございます。仰る通り、swingでした。
一応、作ってみたんですがどうもイマイチ・・・↓
URLリンク(sourcepost.sytes.net)

最初から画像が表示されるのでは無く、チェックを入れると画像が表示されるようにしたいのですが・・・
締め切りも間違っていて、明日の16時半まででした・・・
どなたかフォローよろしくお願いします・・・

859:デフォルトの名無しさん
08/05/13 12:19:23
最初に張り付ける画像をダミーにしといてイベントリスナでチェックボックス変更時に
描画する画像ファイル記憶しといてリスナ内でrepaint()呼んで
paintConponent()内でJLabel#setIcon()呼び出すとかじゃだめだっけ?

あと
label2.setText(new String(sb));

label2.setText(sb.toString());の方が良い。

860:デフォルトの名無しさん
08/05/13 13:48:34
【 課題 】20角錐を表示させる
【 形態 】1. Javaアプリケーション(main()で開始)
【 GUI  】1. AWTのみ
【 期限 】明日の16時まで
【 Ver  】"1.6.0_05"
【 用語 】なし
【 補足 】なし。
よろしくお願いします。

861:デフォルトの名無しさん
08/05/13 15:58:22
>>858
別領域に表示でなくチェックボックスの画像として表示するのね。その場合でもあまり難しく考えず、
> 画像の変更のタイミングはメッセージの変更と同じところにsetIconを記述すればいいと思う。
って書いたように、itemStateChanged内でメッセージを変えるようにIconも変えればいいんじゃないかと思う。
URLリンク(sourcepost.sytes.net)
かなり適当だけどこれは最初は画像なしで、itemStateChangedが呼ばれるタイミングでIconを設定したり消したりして、
それに合わせてpackでウインドウサイズも変えるようにしている。
ウインドウサイズがころころ変わるのが嫌だったら、
鳥の画像サイズに合わせて空白(緑色?)のダミー画像をIconに設定しておき、
itemStateChanged内でIconを消す(setIcon(null))ところは、ダミーを再設定するようにすればいいと思う。

それと、>>858のコードで、
> check1 = new JCheckBox("モリバト", false);
> check1. setBackground(Color.green);
> check1.addItemListener(this);
> JCheckBox check1 = new JCheckBox("モリバト", new ImageIcon("./images/bird1.jpg"), true);
...
> p.add(check1);
ってしているところがあるけれど、上3行のcheck1はインスタンス変数のcheck1で、
そのあとの新しくnewしているcheck1はローカル変数なので別物になっている。
JPanelにaddして表示いるものはリスナを設定したり背景色を変えたものと異なるので挙動が思ったようにならない。
フィールドとローカルとで同じ名前の別の変数を定義できるので注意。

862:デフォルトの名無しさん
08/05/13 16:54:33
【 課題 】
1)プログラムhighArray.javaのHighArrayクラスに配列の中で
 一番大きなキーを持った値、あるいは配列が空の場合は-1を返すgetMax()を追加せよ。
 キーはすべて正であると仮定する。
2)上のプロジェクト1)を、一番大きなキーを持ったアイテムがこのメソッドで返されると同時に
 配列から削除されるように変更せよ。そのメソッドはremoveMax()とする。
3)上の2)のメソッドremoveMax()を使えば、キーの値で配列の中身を整列(sorting)することできる。HighArrayクラスは変更せずに、mainだけを変更して整列プログラムを作れ。逆の順位整列された第2の配列が必要とする。
【 形態 】java
【 GUI  】AWTのみ
【 期限 】今日中
【 Ver  】1.6.0.01
【 補足 】以下がhighArray.javaのソースです
URLリンク(sourcepost.sytes.net)

上の(1)(2)の問題は過去ログにあったのですが、(3)が解決しないので(3)をお願いします
ついでに過去ログの(1)(2)のレスが次です



863:デフォルトの名無しさん
08/05/13 16:54:47
だからといって、
check1 = new JCheckBox("モリバト", new ImageIcon("./images/bird1.jpg"), true);
とかしても、それ以前のcheck1が参照するインスタンスとは違うものになるのでだめだけど。

Iconはチェックするボックス画像の代わりなので、
空白のダミー画像を設定するとボックスが無くて変かもしれない。
その場合は、新しくJLabelをJCheckBoxの横に配置して、
そのJLabelの方に鳥やダミーの画像を設定した方がいいかも。

864:デフォルトの名無しさん
08/05/13 16:55:04
1)
public long getMax(){
long max = -1;
if (nElems == 0)
return max;
for (int i = 0; i < nElems; i++)
if (max < a[i])
max = a[i];
return max;
}

2)
public long removeMax(){
int index;
long max = -1;

if (nElems == 0)
return max;

for (int i = 0; i < nElems; i++){
if (max < a[i]){
max = a[i];
index = i;
}
}
for (int i = index; i < nElems -1; i++){
a[i] = a[i+1];
}
nElems--;
return max;
}

865:デフォルトの名無しさん
08/05/13 17:15:12
>>862
>プログラムhighArray.javaのHighArrayクラス
すまんがどこにも発見できないので答えられんw


866:デフォルトの名無しさん
08/05/13 17:50:22
>>862
適当に入れても取り出すときには必ず中身の最大のものを取り出せる魔法のバッグを手にしてるんだから
整列させたいアイテムを全部入れて順番に取り出して並べれば大きい順に整列したものになっている
もし小さい順に整列させたいなら大きい順に並べたものの順序を逆にするか
取り出したものを配列に入れて並べていくのなら逆順の場合は配列の最大インデックスから入れていけばいい

867:デフォルトの名無しさん
08/05/13 21:36:45
【 課題 】【配列のコピー(clone)】
配列のコピーを行う際、clone()メソッドを使用することがある。
メソッド Object.clone() は、戻り値としてあるオブジェクトのコピーを作成する。
大きさ3のString[ ]型配列 をローカル変数として異なる名前で3つ作成し、
直接代入した場合と、clone() メソッドでコピーした場合で、比較演算子 == による
比較結果が異なることを確認しなさい。

初期化:
配列1: "あ", "い", "う"
配列2: "か", "き", "く"
配列3: "さ", "し", "す"

実行例:
$java Exam05
> 配列1: あ い う
> 配列2: か き く
> 配列3: さ し す
> 1を2に直接代入...
> 1を3にクローンコピー...
> 配列1: あ い う
> 配列2: あ い う
> 配列3: あ い う
> 1 == 2 ? --> MATCH
> 1 == 3 ? --> UNMATCH

【 形態 】1. Javaアプリケーション
【 期限 】今日の0時まで
【 Ver  】"1.6.0_05"
【 用語 】なし
【 補足 】なし。
どうぞ、よろしくお願いします。


868:デフォルトの名無しさん
08/05/13 22:57:50
>>867ってclone()メソッドの実装によって等値性の意味変わってくると思うんだが、
そもそも==で比較するのも間違ってないか?


869:デフォルトの名無しさん
08/05/13 23:18:41
>>860
URLリンク(rg550.hp.infoseek.co.jp)
ソース汚いけど一応完成。
おまけでマウスドラッグによる回転も付けてみた。

870:デフォルトの名無しさん
08/05/13 23:24:23
>>867
public class Exam05 {
public static void main(String[] args) {
String[] 配列1 = {"あ", "い", "う"};
String[] 配列2 = {"か", "き", "く"};
String[] 配列3 = {"さ", "し", "す"};
System.out.println("> 配列1: " + java.util.Arrays.toString(配列1).replaceAll("[],\\[]", ""));
System.out.println("> 配列2: " + java.util.Arrays.toString(配列2).replaceAll("[],\\[]", ""));
System.out.println("> 配列3: " + java.util.Arrays.toString(配列3).replaceAll("[],\\[]", ""));
配列2 = 配列1;System.out.println("> 1を2に直接代入");
配列3 = 配列1.clone();System.out.println("> 1を3にクローンコピー");
System.out.println("> 配列1: " + java.util.Arrays.toString(配列1).replaceAll("[],\\[]", ""));
System.out.println("> 配列2: " + java.util.Arrays.toString(配列2).replaceAll("[],\\[]", ""));
System.out.println("> 配列3: " + java.util.Arrays.toString(配列3).replaceAll("[],\\[]", ""));
System.out.println("> 1 == 2 ? --> " + (配列1 == 配列2 ? "MATCH" : "UNMATCH"));
System.out.println("> 1 == 3 ? --> " + (配列1 == 配列3 ? "MATCH" : "UNMATCH"));
}
}

871:デフォルトの名無しさん
08/05/13 23:36:35
【 課題 】URLリンク(sourcepost.sytes.net)
【 形態 】1. Javaアプリケーション
【 GUI  】??
【 期限 】本日中
【 Ver  】わかりません。。。
【 用語 】なし
【 補足 】 丸投げです

872:871
08/05/13 23:44:08
すいません>>871の問題文が抜けていました・・・
問題の一部の画像です
URLリンク(rg550.hp.infoseek.co.jp)

873:デフォルトの名無しさん
08/05/13 23:59:57
>>870
どうも、ありがとうございました。

【 課題 】【領域再確保(オブジェクト再作成)】
空のクラスHumanを作成し、ランダムにHumanインスタンスの数を変化させる
プログラムを作成したい。Math.random() を利用し、得られた0 ~ 9 の数を
引数として、SampleクラスのフィールドHuman humans[ ] の数を変化させよ。
※人数の表示には、humans.lengthを使用すること。

・Sampleクラスのメソッド
/* 領域を確保し直し、再確保後の配列要素数を表示するメソッド */
public void addMember(int nNum)

実行例:
$java Sample
> 人口は8人になりました。
> 人口は4人になりました。
> 人口は5人になりました。
> 人口は0人になりました。
> 絶滅です。処理を終了します。

【 形態 】1. Javaアプリケーション
【 期限 】今日の1時まで
【 Ver  】"1.6.0_05"
【 用語 】なし
【 補足 】なし。
よろしければ、おねがいします。

874:デフォルトの名無しさん
08/05/14 00:19:01
>>850
むり

875:デフォルトの名無しさん
08/05/14 00:34:22
乱数を利用して0~53の値をランダムで配列に格納するプログラムなんですけど、
永久ループになってしまいます。値は一意です。
どなたか助けてください!


public class XXX {
public static void main(String[] args) {
/* 変数宣言 */
int[] card = new int[53];
int nn, num;
boolean frg = false; // 配列との比較用フラグ

/* 乱数の発生と格納 */
nn = 0;

while (nn != 52) {
num = (int)(Math.random() * 54);

for (int i = 0; i < nn; i++){

if (num == card[i]) {
frg = true;
break;
}
}

if (frg == false) {
card[nn] = num;
nn++;
}
}

876:デフォルトの名無しさん
08/05/14 00:35:03

/* 結果の表示 */
String buf;

for (int i = 0; i < card.length; i++){
buf = " " + card[i];
buf = buf.substring(buf.length() - 4);
System.out.println(buf);

if (i % 10 == 0){
System.out.println();
}
}
}
}

877:デフォルトの名無しさん
08/05/14 00:57:18
質問スレいこうね

878:デフォルトの名無しさん
08/05/14 01:33:30
public class XXX {
public static void main(String[] args) {
int[] card = new int[53];

// 格納
for(int i = 0; i < card.length; i++){
int num;
boolean chk;
do{
num = (int)(Math.random() * card.length);
chk = false;
for(int j = 0; j < i; j++){
if(num == card[j]){
chk = true;
break;
}
}
} while(chk);
card[i] = num;
}

// 表示
for(int i = 0; i < card.length; i++){
System.out.println("card[" + i + "]=" + card[i]);
}
}
}

879:デフォルトの名無しさん
08/05/14 04:53:43
すみません、別のプロジェクト内のクラスのインスタンスを作ることって可能なんでしょうか?
教科書にスタックの考え方を再現したJAVAプロジェクトと、前置記法のアルゴリズムを再現したJAVAプログラムがあり、
そのうち前置記法のプロジェクトが当然のようにスタックのプロジェクト内のクラスのインスタンスを作っているのですが。
エクリプス上でその部分に赤線が引かれており、実行してもエラーが出ます。
また、別のクラスを呼び出すために「Javaのビルド・パス>プロジェクト」と「プロジェクト参照」の設定」とやらも試してみたのですが、
そうすると赤線部分はなくなったのですが、実行しても何も起こりません。
前置記法のプログラムの最初にはimport java.io.*; とあるのですがそれが関係しているのでしょうか?

880:デフォルトの名無しさん
08/05/14 05:28:41
>>879
スレ違い
質問スレへいけ

881:デフォルトの名無しさん
08/05/14 13:05:41
>>858 です。

>>859
>>861
>>863
無事動きました。今日の期限内に出せそうです。
ありがとうございました。


882:デフォルトの名無しさん
08/05/14 15:57:26
【 課題 】
簡易ドローエディタにさまざまな改良を加えてください.最低限,次の二つの改良は加えることとします.
色の指定.赤以外の色を指定できるようにする.あらかじめ基本色を決めておいてよい.
図形の追加.四角形以外の図形が描画できるようにする.

【 形態 】Java
【 GUI  】Swing
【 期限 】5/17(土)
【 Ver  】1.5.0_15
【 補足 】URLリンク(www2.uploda.org)
      ここまで作成しましたがこれをJButtonでなくJComeboBoxに変え図形に直線と塗った四角を追加したいです
      さらに色変更に関しても同様にして赤青緑+αで変更にしなければなりません
      どうかよろしくお願いします

883:デフォルトの名無しさん
08/05/14 16:00:57
>>882に追記です
その前の問題で作成した簡易ドローエディタはこちらです
URLリンク(www2.uploda.org)

884:デフォルトの名無しさん
08/05/14 21:08:59
遅くなりましたが、
>>869さん
ありがとうございます。助かりました

885:デフォルトの名無しさん
08/05/14 21:55:03
>>882-883
404

886:デフォルトの名無しさん
08/05/14 22:48:01
>>852
すいません、死んでました

>>882のソースが
URLリンク(www.uploda.net)

>>883のソースが
URLリンク(www.uploda.net)
です

887:デフォルトの名無しさん
08/05/14 23:53:13
【 課題 】URLリンク(rg550.hp.infoseek.co.jp)
【 形態 】1. Javaアプリケーション
【 期限 】今日の2時まで
【 Ver  】"1.6.0_05"
【 用語 】なし
【 補足 】どうか宜しくお願いいたします。

888:デフォルトでない名無しさん
08/05/15 01:17:23
【 課題 】カーソル入力で画像を移動させるアプレット
【 形態 】2. Applet
【 GUI  】1. AWTのみ
【 期限 】5月15日 13時まで
【 Ver  】1.6.0_05
【 補足 】タイトルのままです。ほぼ完成しましたがカーソルで移動させる
となぜか残像が残ってしまいます。残像を解決すれば終了です

途中までのソース↓
URLリンク(sleep-soul0131.hp.infoseek.co.jp)


889:デフォルトでない名無しさん
08/05/15 01:19:45
>>888期限間違えで16日です

890:デフォルトの名無しさん
08/05/15 02:27:13
>>887
URLリンク(rg550.hp.infoseek.co.jp)

文字コードはUTF8
よく分からんとこは勝手に書いた

891:デフォルトの名無しさん
08/05/15 05:56:06
>>888
【解答】
paint() メソッド内の、
> OffScreen_Object.drawImage(OffScreenBuf, 0, 0, this);
を、
OffScreen_Object.setColor(getBackground());
OffScreen_Object.fillRect(0, 0, width, height);
に変更。

【理由】
paint()メソッドの終了後も、OffScreenBuf内のイメージは保持されるため。

…でいけると思うんだけど、動作確認してませんごめんなさい。

892:デフォルトの名無しさん
08/05/15 11:30:58
>>891

893:デフォルトでない名無しさん
08/05/16 08:03:43
>>891

うまくでき提出完了しました。ありがとうございます。

894:デフォルトの名無しさん
08/05/17 00:16:32
【 課題 】
つぎのプログラムのactionPerformedを2通りの方法で,1つのクラスにまとめて,プログラムを書き直してください
1つ目は, actionPerformedの引数のActionEvent型のオブジェクトのgetSource()メソッドを使ってイベントが起こった部品のオブジェクトを調べる方法
2番目は,予め部品に setActionCommand()でアクションコマンドと呼ばれる文字列を付けておき,
getActionCommand()でイベント発生時にどの部品で起こったイベントであるか調べるという方法
さらに2番目の方法で書き直したプログラムを,さらに,無名クラスを使って書きなおしてください.
(ヒント:1つの無名オブジェクトを3つのボタンにaddActionListenerしましょう)
【 形態 】1. Javaアプリケーション
【 GUI  】Swing
【 期限 】5/17
【 Ver  】1.5.0
【 補足 】プログラムソースはURLリンク(rg550.hp.infoseek.co.jp)です
       丸投げです、よろしくお願いします

895:デフォルトの名無しさん
08/05/17 00:36:05
【 課題 】
問題1
Lesson classが起動するようにLesson class の すべてのフィールドの内容を表示するメソッドvoid print を完成させてください.例えば,表示は以下のようになります.
Lesson :Jikken
Teacher :Yokoshima
#students:4
123,Goro,100
124,Tatsuya,74
125,Sinji,30
126,hiro,60
----------
直接代入する方法(l.st[l.num++]= new Student(..);) を用いて,必ず Student を3名分以上登録して,print が正しく動作するか確認してください

問題2
Lesson class の すべてのフィールドをprivate にできるように,
l.st[l.num++]= new Student("012200","Ichiro",100);
と同じ動作を行うメソッド boolean add(Student s) を追加しましょう.その際,numがmaxを越えないかどうかチェックして,num>=max ならば,
false を返すようにしましょう.なお,オブジェクトは生成したものを直接引数で渡すことができて,
add(new Student("012200","Ichiro",100));
とすることが可能です.
必ず Student を3名分以上登録して,Lesson class の print を利用して,結果が正しいか確認してください.
なお,オブジェクトを引数とする関数呼出しでは,参照渡しになるので,生成されたオブジェクトがaddに渡されることになります.
レッスンクラス
URLリンク(rg550.hp.infoseek.co.jp)
スチューデントクラス
URLリンク(kansai2channeler.hp.infoseek.co.jp)
です
【 形態 】1. Javaアプリケーション
【 期限 】5/17 18時
【 Ver  】 1.5.0
【 補足 】Studentclassは自作ですが後は丸投げです
      課題1,2のソースは別々で作っていただきたいです、お願いします

896:デフォルトの名無しさん
08/05/17 00:43:27
>>895
追記です
ソースは二つを利用して全体を書いていただけると嬉しいです

897:デフォルトの名無しさん
08/05/17 18:25:31
【 課題 】URLリンク(rg550.hp.infoseek.co.jp)
【 形態 】1. Javaアプリケーション
【 期限 】5/18 15時
【 Ver  】1.5.0
【 補足 】/*flagを初期化*/&/*ここを記述*/の所わかりません><。よろしくお願いしますorz。

898:デフォルトの名無しさん
08/05/17 20:46:45
>>897 クラスSecretだけ↓にして
class Secret{

private String ans = "ふとんがふっとんだ。";
private static final int KEY = 2005;
private boolean flag;

public Secret(){
flag=true;
}

public String getAns(int key){
if(key == KEY){
flag=false;
return "--------\nよくぞここまできましたな。\n" + "秘密の言葉は,「" + this.ans + "」でした。";
}else{
return "暗号が違います。残念ながら秘密を教えることはできません!";
}
}

public boolean getFlag(){
return flag;
}
}

899:デフォルトの名無しさん
08/05/17 21:40:30
>>898
ありがとうございます!

900:デフォルトの名無しさん
08/05/18 14:47:46
【 課題 】URLリンク(rg550.hp.infoseek.co.jp)
【 形態 】1. Javaアプリケーション(main()で開始)
【 期限 】5/19 23:00
【 Ver  】jdk1.6.0_10
【 補足 】丸投げです。お願いします。

901:デフォルトの名無しさん
08/05/19 08:58:59
【 課題 】
以下の機能を持つ StringConverter クラスを定義しなさい。
SampleString(String str): str を data に入れるコンストラクタ。
String toLowerCase(): data の大文字を小文字に変換した文字列を返す。
String toUpperCase(): data の小文字を大文字に変換した文字列を返す。
String toString(): data を返す。
なお、String クラスは Java の標準クラスライブラリに用意されている。 SampleString.java を使用して動作を確認すること。
public class SampleString
{
public static void main(String[] args) {
StringConverter sc = new StringConverter(new String("Tokyo Disney Land"));
System.out.println(sc);
System.out.println(sc.toLowerCase());
System.out.println(sc.toUpperCase());
}
}

【 形態 】Java
【 GUI  】Swing
【 期限 】5/21(水)
【 Ver  】1.5.0_15
【 補足 】どこから手をつけていいか分からない状態です。宜しくお願いします
      

902:デフォルトの名無しさん
08/05/19 12:51:10
>>901
dataてのはStringConverterが内部で持つフィールドでいいの?
ならString#toLowerCase()とString#toUpperCase()をラップしてtoString()を実装すれば良いだけ。

仕様が内部実装に関与すんな屑講師って言っとけ。

903:デフォルトの名無しさん
08/05/19 18:14:28
>>900
(2)だけでもやってくれませんか?

904:デフォルトの名無しさん
08/05/19 20:12:49
あのソースのLinkedListの部分を他のコレクションに書き換えてジェネリックス型をStringに特化させれば良いだけだろ。
(1)の方がめんどくさいぞ。

905:デフォルトの名無しさん
08/05/19 20:52:55
【 課題 】URLリンク(rg550.hp.infoseek.co.jp)
【 形態 】1. Javaアプリケーション
【 期限 】明日の2時まで
【 Ver  】"1.6.0_05"
【 用語 】なし
【 補足 】どうかよろしくおねがいいたします。


906:デフォルトの名無しさん
08/05/20 17:35:48

【 課題 】鶴と亀の頭の数が10本、足の数が合計30本、鶴と亀は何匹いるか?
       プログラミングで答えよ。
【 形態 】1. Javaアプリケーション(main()で開始
【 期限 】明日
【 Ver  】1.5.0_15
【 用語 】ない
【 補足 】Javaエクリプスを使用しての学校からの課題です。
      プログラミングで鶴と亀が何匹いるか答える課題です。
      明日、提出なのでどうかおねがいします。


907:デフォルトの名無しさん
08/05/20 18:21:20
>>906
せっかく計算機にやらせるなら方程式を解くなんて野暮なことはしない
public class TsuruKame {
private static final int ATAMA = 10;
private static final int ASHI = 30;
public static void main(String[] args) {
boolean solved = false;
loop: for (int tsuru = 0; tsuru <= ATAMA; tsuru++) {
for (int kame = 0; tsuru + kame <= ATAMA; kame++) {
if (kame + tsuru == ATAMA && kame * 4 + tsuru * 2 == ASHI) {
System.out.println("鶴は" + tsuru + "羽、亀は" + kame + "匹");
solved = true;
break loop;
}
}
}
if (! solved) System.out.println("鶴亀算は不成立");
}
}

908:デフォルトの名無しさん
08/05/20 18:27:29
> 方程式を解く
人間が前もって、ね

909:デフォルトの名無しさん
08/05/20 18:58:05
>>907

助かりました。
これで、何とか点数はもらえるかとおもいます!!
本当に感謝します。
ありがとうございました!

910:デフォルトの名無しさん
08/05/20 20:46:03
【 課題 】任意の2数を入力して,最大公約数と最小公倍数を求めるプログラムを作れ.
【 形態 】1. Javaアプリケーション
【 期限 】5月21日
【 Ver  】java version "1.6.0-oem"
【 補足 】自分なりに考えたプログラムがあるんですが,実行できなくて困っています.
URLリンク(kansai2channeler.hp.infoseek.co.jp)
よろしくお願いします.

911:デフォルトの名無しさん
08/05/20 22:15:07
>>910
面倒なので最小限の修正で
import java.io.*;
public class Test3 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int a = Integer.parseInt(br.readLine());
int b = Integer.parseInt(br.readLine());
int koyaku = gcd(a, b);
int kobai = (int)((long)a * b / koyaku);
System.out.println("最大公約数は" + koyaku);
System.out.println("最小公倍数は" + kobai);
}
private static int gcd(int a, int b) {
while (true) {
int c = a % b;
if (c == 0) return b;
a = b;
b = c;
}
}
}

912:デフォルトの名無しさん
08/05/20 22:27:21
long kobai = (long)a * b / koyaku;
の方がよかったか

913:デフォルトの名無しさん
08/05/20 22:35:48
>>911
結構おかしい場所があったんですね・・・修正ありがとうございました!

914:デフォルトの名無しさん
08/05/24 17:12:30
【 課題 】URLリンク(rg550.hp.infoseek.co.jp)
【 形態 】1. Javaアプリケーション
【 期限 】5/24 24時
【 Ver  】1.5.0
【 補足 】よろしくお願い致します。

915:デフォルトの名無しさん
08/05/24 19:44:37
>課題4:次のメインプログラムをもとに,必要に応じて,クラス,抽象クラス,イン
ターフェースなどを記述し,完成させよ。
こんな糞設計分かるかボケ。

916:デフォルトの名無しさん
08/05/24 23:40:55
>>914
URLリンク(sourcepost.sytes.net)

917:デフォルトの名無しさん
08/05/24 23:59:22
>>916
ありがとうございました。

918:デフォルトの名無しさん
08/05/25 01:23:10
【 課題 】SQL文を実行してデータベースの情報を表示する
【 形態 】3. Servlet
【 期限 】5/25  22時
【 Ver  】1.60_02
【 補足 】SQL文を実行して情報を表示させることは出来たのですが、全ての情報を
      表示させることができません。zipの中に作成中のプログラムと仕様書を入れますので
      お力添えお願いします。
      URLリンク(rg550.hp.infoseek.co.jp)


919:918
08/05/25 19:05:45
無理そうですかね…

920:918
08/05/25 22:15:33
>>918ですが、26日の午前8;00までに、どなたかといて貰えないでしょうか。
お願いします。

921:デフォルトの名無しさん
08/05/26 01:23:58
> 918
URLリンク(rg550.hp.infoseek.co.jp)

部分的にしかやってないけど、無いよりマシかな?
こちらには動作環境が無くて動作確認できてないから、確認はしっかりと。


922:924
08/05/26 10:49:05
【 課題 】
class ShellSort{
static int compare = 0;
static int copy = 0;
static void showArray(int a[], int N)
{
//2-0:逆順数と共に配列の内容を表示するメソッド
//動作:N個の要素を持つ配列aの要素を全て画面に表示する
//例: a[0]=10, a[1]=30, a[2]=20の場合
// showArray(a,3)を実行すると画面に
// 逆順数=1: 10 30 20
// と表示される。
//★以降を適切に埋めよ}
static void initArray(int a[], int N){
//2-0:配列にランダムな値を代入するメソッド
//動作:N個の要素を持つ配列aに対し、1~Nまでの範囲の数をランダムに入れる
//ただし、a[0]には常に0を入れること。
//ヒント:次のようにして乱数を使えば1~Nまでの範囲の数をランダムに1つ作れる
//int n;
//n = (int)(java.lang.Math.random()*(N-1)) + 1;
//配列に入れる値に重複が無ければ望ましい
//★以降を適切に埋めよ}
static int shiftLargerElements(int a[], int v, int i){
//2-0:ソート済み部分に新しい値を挿入するための空き場所を
// 作るメソッド
//動作:配列aに対し、a[i]より手前にあるvより大きい要素を後ろ
//に1つずつずらしてvを挿入するための空き場所を作る。最後に、
//できた空き場所の添え字を戻り値として返す。
//空き場所を作るまでに行った比較回数を変数compareに加算
//空き場所を作るまでに行ったコピー回数を変数copyに加算

923:924
08/05/26 10:50:08
/*例: a[0]=0, a[1]=30, a[2]=20,a[3]=10の場合
shiftLargerElements(a,a[3],3)を実行すると
a[0]=0, a[1]=30, a[2]=30,a[3]=20
となり、戻り値として1を返す。*/
int space = 0;
int j;
j = i;
while((compare++ >= 0) && (a[j-1] > v)){
a[j] = a[j-1]; copy++;
j--;}
space = j;
return space;}
static int shiftLargerElements(int a[], int v, int i, int h){
//2-1:ソート済み部分に新しい値を挿入するための空き場所を
// 作るメソッド
//動作:配列aに対し、a[i]より手前にある要素
//a[i-h],a[i-2h],a[i-3h],...のうち、vより大きい各要素を後ろに
//hだけ移動させてvを挿入するための空き場所を作る。
//最後に、できた空き場所の添え字を戻り値として返す。
//空き場所を作るまでに行った比較回数を変数compareに加算
//空き場所を作るまでに行ったコピー回数を変数copyに加算
/*
例: a[0]=0, a[1]=30, a[2]=20,a[3]=10の場合
shiftLargerElements(a,a[3],3,1)を実行すると
a[2]とa[1]が後ろに1つずつ移動して
a[0]=0, a[1]=30, a[2]=30,a[3]=20
となり、戻り値として1を返す。

924:924
08/05/26 10:53:36
shiftLargerElements(a,a[3],3,2)を実行すると
a[1]が後ろに2つ移動して
a[0]=0, a[1]=30, a[2]=20,a[3]=30
となり、戻り値として1を返す。
shiftLargerElements(a,a[3],3,3)を実行すると
a[3]はa[0]より大きいので要素の移動は起こらず
a[0]=0, a[1]=30, a[2]=20,a[3]=10
となり、戻り値として3を返す。*/
/*ヒント:処理手順は次のようになる。
1.a[j-h]がvより大きい間、次のことを行う。
1-1.a[j-h]の値をa[j]にコピー
1-2.jの値をhだけ減らす
1-3.copy,compareの値を適切に増やす
2.上記処理終了後のjの値を元に空き場所の添え字を計算し、変数spaceに保存
*/
//★以降を適切に埋めよ(課題2-1)
int space = 0;
return space;}
static int reverseNumber(int a[], int N){
//2-2:配列の逆順数を計算するメソッド
//動作:要素をN個持つ配列aに対して逆順数(テキストp.119参照)
// を計算する/*
例: a[0]=0, a[1]=30, a[2]=20,a[3]=10の場合
reverseNumber(a,3)を実行すると3を返す
a[1]より大きくかつ左側にある要素は0個
a[2]より大きくかつ左側にある要素は1個
a[3]より大きくかつ左側にある要素は2個
以上を合計すると3になる。*/
//★以降を適切に埋めよ(課題2-2)
int val = 0;
return val;}

925:924
08/05/26 10:55:34
static int smallerInterval(int h){
//2-3:今の歩幅より一段小さい歩幅を計算するメソッド
//動作:歩幅hの次に小さい歩幅を
// インターバル数列 h = 3h +1
// に従って計算する
// 次に小さい歩幅が1より小さいときは歩幅として0を返す
//★以降を適切に埋めよ(課題2-3)
int interval = 0;
return interval;}
static int largerInterval(int h){
//2-0:今の歩幅より一段大きい歩幅を計算するメソッド
//動作:歩幅hの次に大きい歩幅を
// インターバル数列 h = 3h +1
// に従って計算する
int interval = 0;
return interval;}
static int largestInterval(int N){
//2-4:配列の大きさに一番合った歩幅を計算するメソッド
//動作:要素数Nの配列をシェルソートする時に使う最も大きい歩幅を
// インターバル数列 h = 3h +1
// に従って計算する
/*ヒント:処理手順は次のようになる。
歩幅1から始め、歩幅が配列の大きさを超える寸前までlargerIntervalメソッドを使って歩幅を一段階ずつ大きくしていく*/
//★以降を適切に埋めよ(課題2-4)
int interval = 1;
return interval;}

926:924
08/05/26 10:57:34
static void insertion(int a[], int N){
//2-0:挿入ソートを行うメソッド
int i;
int v,space;
for(i=1;i<N;i++){
v = a[i]; copy++;
space = shiftLargerElements(a,v,i);
a[space] = v; copy++;}}
static void insertion(int a[], int N, int h){
//2-5:歩幅hの挿入ソートを行うメソッド
/*shiftLargerElementsメソッドを用い、
a[0],a[h],a[2h],a[3h],...
a[1],a[1+h],a[1+2h],a[1+3h],...
a[2],a[2+h],a[2+2h],a[2+3h],...
.
.
.
a[h-1],a[(h-1)+h],a[(h-1)+h],a[(h-1)+h],...
の各グループをそれぞれ挿入ソートする。*/
/*a[j],a[j+h],a[j+2h],a[j+3h],...のグループを挿入ソートするための手順は次の通りである。
iの値を(i+jの値がNを超えない範囲で)hずつ増やしながら次のことを行う。
1.変数vにa[i+j]の値を覚えておく
2.shiftLargerElements(配列,値,添え字,歩幅)メソッドを用い、a[i+j]を挿入するための空き場所を作る
3.上記2.で作った空き場所にvの内容をコピー
あとは0,1,2,...,h-1の各jの値に対して上の要領で各グループを挿入ソートすればよい*/
//★以降を適切に埋めよ(課題2-5)

927:924
08/05/26 11:08:33
int i,j,v,space;
for(j=0;j<h;j++){
//a[j],a[j+h],a[j+2h],a[j+3h],...のグループを挿入ソート
//1グループ分のソートが終わる毎に配列の内容を表示
}}
static void shellSort(int a[], int N){
//2-6:シェルソートを行うメソッド
int h;
/*処理手順は次のようになる
1.largestIntervalメソッドを使って最初の歩幅を計算
2.歩幅が0より大きい間次の処理を繰り返す
2-1.歩幅の値を画面に表示
2-2.insertion(配列,要素数,歩幅)メソッドを使って歩幅hの挿入ソートを実行
2-3.smallerIntervalメソッドを使い、歩幅hを一段階小さい歩幅に更新
*/
//★以降を適切に埋めよ(課題2-6)}
public static void main(String args[]){
//2-7:上で作ったメソッドを用いて、ソート過程を表示しながら
//シェルソートを実行
//手順は次のようになる。

928:924
08/05/26 11:11:59
//手順は次のようになる。
/*
1.要素を(27個もつ)整数型配列aを宣言
2.整数型変数Nに配列aの要素数を保存
3.initArrayメソッドを用いて配列aを初期化
4.showArrayメソッドを用いてソート前の配列aの内容を表示
5.変数compare,copyの値を0に初期化
6.shellSortメソッドを用いて配列aをシェルソート
7.showArrayメソッドを用いてソート後の配列aの内容を表示
8.ソートにかかった比較・コピーの回数を表示*/
//★以降を適切に埋めよ(課題2-7)}}

問題は、

2-1:ソート済み部分に新しい値を挿入するための空き場所を作るメソッドを完成させよ。
2-2:配列の逆順数を計算するメソッドを完成させよ。
2-3:今の歩幅より一段階小さい歩幅を計算するメソッドを完成させよ。
2-4:配列の大きさに一番合った歩幅を計算するメソッドを完成させよ。
2-5:歩幅hの挿入ソートを行うメソッドを完成させよ。
2-6:シェルソートを行うメソッドを完成させよ。
2-7:mainメソッドを完成させ、ソート過程を表示しながらシェルソートを実行するようにせよ。
2-8:作成したプログラムが正しく選択ソートを実行していることが分かる実行結果を示し、正しく動作していることを説明せよ。

929:924
08/05/26 11:13:32
【 形態 】1. Javaアプリケーション(main()で開始
【 期限 】5月29日
【 Ver  】1.4.1
【 補足 】922~928がプログラムリストです。
      丸投げですので、是非教えて下さい。

930:デフォルトの名無しさん
08/05/26 16:06:06
あげまくりつつ長々とスレを消費しているのを見ているだけで胸焼けがする

931:デフォルトの名無しさん
08/05/26 16:50:34
プログラムをわかりにくく文書化するコンテストかなんか?

932:デフォルトの名無しさん
08/05/26 16:52:47
sage進行でもないのでage、sageの是非は好みだろうけど、
何のためのろだなんだとは思うな。

933:デフォルトの名無しさん
08/05/26 18:54:49
>>924
ろだにまとめてあげてください
読める気がしません

934:924
08/05/26 19:29:19
>>933
こちらです。
URLリンク(rg550.hp.infoseek.co.jp)

935:デフォルトの名無しさん
08/05/26 20:12:11
卒倒したw

936:デフォルトの名無しさん
08/05/26 20:55:00
うpしたらまず自分の目で確かめて欲しい。

937:デフォルトの名無しさん
08/05/26 21:55:27
穴埋め問題とはレベルが高い
・・・がレベル低いな・・・length使わせろよ・・

938:デフォルトの名無しさん
08/05/26 22:08:08
画面イメージ
+---+---+---+---+---+
| 20  |  * |  * | *  |  $  |
| *  |  2  |  * | $  |  *  |
|  3  |  * |  $ | *  |  *  |
| *  |  $ |  * | *  |  *  |
| $  |  * |  * | 7   |  *  |
+---+---+---+---+---+

939:デフォルトの名無しさん
08/05/26 22:16:42
>>935-936の意味が分からなかったがIEで開いてみて分かった。
Content-Type: text/plainをhtmlとして解釈するブラウザを使っている?
javaのプログラミング演習でなく実装例を通したシェルソートのアルゴリズム理解が主眼だとしても、
設計といい実装ヒントといい、これはあまりよくない問題だな。

940:デフォルトの名無しさん
08/05/26 22:41:28
int a[]の書き方とか全部がstaticとか元々Cで教えていたコードをJavaに手っ取り早くそのまま変換したんじゃないかい

941:デフォルトの名無しさん
08/05/26 22:50:10
なんで挿入ソート・シェルソートときてバブルソート・コムソートがないんだ!
というかへんな設計だな。

942:デフォルトの名無しさん
08/05/26 22:59:15
バブルソート→コムソートの問題は、この課題の次に出てくるか先にやったんだろ。
まあ、期限はまだ先だから、変だと文句を言いつつ暇な人がそのうちやりそうだ。
なにせツンデレさんが集まるスレだからな。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch