ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Javaの課題丸投げコミュのコンパイル通りません&その他もろもろよろしくお願いします。

  • mixiチェック
  • このエントリーをはてなブックマークに追加
import java.awt.*;
import java.awt.event.*;

class FNMagicPhalanxPanel extends Panel {
public void paint(Graphics g) {
final int N=8;
int i,j;
int[][] hojin =new int[N+1][N+1];

for (j=1;j<=N;j++) {
for (i=1;i<=N;i++){
if (j%4==i%4 || (j%4+i%4)%4==1)
hojin[i][j] = (N+1-i)*N-j+i;
else
hojin[i][j]=(i-1)*N+j;
}
}
g.drawString("4N Magic Phalanx (N="+N+")",160,20);
for (i=1;i<=N;i++){
for (j=1;j<=N;j++)
g.drawString(""+hojin[i][j],40*j,20*i+20);
}
}
}
class FNMagicPhalanxFrame extends Frame{
public FNMagicPhalanxFrame(){
setSize(400,250);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
Panel p=new FNMagicPhalanxPanel();
add(p);
}
}
public class FNMagicPhalanx{
public static void main(String[] args){
Frame w=new FNMagicPhalanxFrame();
w.show();
}
}

コンパイルを通すと以下の文章が出ます。先生のプリント通り入力してるはずなのですが…

FNMagicPhalanx.java で宣言しなければなりません。
public class FNMagicPhalanx{
^
注:OddMagicPhalanx.java は推奨されない API を使用またはオーバーライドしています。
注:詳細については、-Xlint:deprecation オプションを指定して再コンパイルしてください。
エラー 1 個


それと、このプログラムは「奇数魔法陣」を求めるためのプログラミング(らしい)です。奇数魔法陣とはn×n(n は奇数)の正方形のマスの中に、1〜n×nまでの数字を各行、各列、対角線のそれぞれの合計が、全て同じ数になるように並べたものです。プログラム中のNの値(N=7になっている)をいろいろ変化させてみよう。できれば、Nを入力できるようにプログラムを改良してみよう。
…できません。
助言等々よろしくお願いします。

コメント(7)

1でしのぶさんがおっしゃっていますが、
publicなクラスは1ファイルにつき1つで、
なおかつ、そのクラス名をファイル名にしなければなりません。

なので、このソースコードのファイル名は、
「FNMagicPhalanx.java」にしましょう。

2でchunさんがおっしゃっていますが、
> 推奨されない API を使用またはオーバーライド
という警告メッセージは、
「今は使わないでください」と言われてるメソッドを使っている場合に出ます。
学校の講義は旧バージョンを対象に行っているにもかかわらず、
ぼくささんが比較的新しい環境でコンパイルしてしまったことが原因でしょう。
おそらく、具体的な原因はFrameクラスのshowメソッドでしょうけど、
現行バージョンではまだ動くはずなので、
講義でこのメソッドを使え、と言われてるのであれば、
この警告は、今はとりあえず無視しても、支障はないと思います。
(「使わないでください」って言われてるだけあって、
 将来的には動かなくなる可能性があるので、
 Javaをこれからも使う場合は、代替手段を学習してください。)
ありがとうございます!

Nを入力できるようにプログラムを改良してみよう!というのはどうすれば良いんですか?
別画面で魔方陣画面のNを制御してロードすればいい。
魔方陣画面だけでも制御できるが面倒。課題なら別画面にする方が楽だろう。
すいません、理解できてませんあせあせ(飛び散る汗)

それと、もう一つ、「4N魔法陣」なるものを求めるプログラムを作成しなさい。4N魔法陣とは、n×n(nは4の倍数)の正方形のマスの中に1〜n×nまでの数字を各行、各列、対角線のそれぞれの合計が、全て同じ数になるように並べたものです。

このプログラムもお願いします!
>すいません、理解できてません

メインプログラムの入力で制御する方が楽かな。

public class FNMagicPhalanx{
public static void main(String[] args){
Frame w=new FNMagicPhalanxFrame();
FNMagicPhalanxPanel.N=Integer.parseInt(args[0]);// add
w.show();
}
}

class FNMagicPhalanxPanel extends Panel {
static int N=8; // add
public void paint(Graphics g) {
// final int N=8; // del
...

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Javaの課題丸投げ 更新情報

Javaの課題丸投げのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。