• ベストアンサー

JAVAプログラミング

こんにちは。今JAVAで一つの値をコマンドラインから読んで、その値の数だけのIQスコアをさらに入力し、100以上と100以下の値がどれだけあるかというプログラムを書いている所です。データを読み取るメソッドと100以下か以上かを調べるメソッドの二つ必要で、入力したIQスコアの為に配列を利用しなければならないのです。もう何日もトライしているのですが、うまくいきません。どなたかアドバイス頂けるとうれしいです。よろしくお願い致します。

  • Java
  • 回答数4
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

何かの宿題ですか? 要件が明確にわからないけどこんな感じでしょうか? 注:エラー処理は全くしていません import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class AAA { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Please insert the # of IQ scores"); String strCnt = br.readLine(); int intCnt = Integer.parseInt(strCnt); int[] arrayScore = new int[intCnt]; System.out.println("Please insert " + intCnt + " scores"); readdata(arrayScore, br); aboveandbelow(arrayScore); } private static void readdata(int[] arrayScore, BufferedReader br) throws IOException{ for(int i = 0; i < arrayScore.length; i++){ String strScore = br.readLine(); int intScore = Integer.parseInt(strScore); arrayScore[i] = intScore; } } private static void aboveandbelow(int[] arrayScore){ int BOUND_VAL = 100; int above = 0; int below = 0; for(int i = 0; i < arrayScore.length; i++){ if(arrayScore[i] >= BOUND_VAL){ above++; } if(arrayScore[i] <= BOUND_VAL){ below++; } } System.out.println("above " + above); System.out.println("below " + below); } }

bmwm52006
質問者

お礼

どうもありがとうございました!! 細かく教えて下さって本当に助かりました! もっと勉強します。

その他の回答 (3)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.4

>受け取った値の受け渡し方や配列を使ってスコアを受け取る仕方がわかりません。 メソッドの引数にする、あるいはreturnで返すだけのように思います。 入力していいく数値が100以上と100以下の値がどれだけあるかを計数するだけなら、いちいち別のメソッドを用意するまでもありません。 質問では、2つのメソッドを用いるということですが、 その仕様(どういう引数を受け取って、何を返すのか)がわからなければ、それ以上書きようもありません(というか仕様の違うモノをよしんば書いてもしょうがない) とりあえず、今できているところを補足してください。 課題臭がするので、このままだと削除されると思います。

bmwm52006
質問者

お礼

返信ありがとうございました!

  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.2

コマンドラインからデータを入力するには http://www.nextindex.net/java/array.html を参考にされては。

bmwm52006
質問者

お礼

よい情報感謝します。 トライしてみます。

  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.1

>うまくいきません。 もう少し具体的に質問しましょう。この質問では何がわかっていて何がわからないのか見た人がわかりません。

参考URL:
http://www.hyuki.com/writing/techask.html
bmwm52006
質問者

補足

質問の補足をします。 プログラムの動きですが、最初に「Please insert the # of IQ scores」と表示させ、 その後一つのintの値をコマンドラインから入力し、 次に「Please insert -入力した数値- scores」と受け取った数を表示させて、 その数だけのIQスコアをさらにコマンドラインから入力して、 そのIQスコアの値で100以上が幾つ、100以下が幾つと表示させるプログラムです。 メインとともに二つのメソッド、 readdataとaboveandbelowというメソッドが必要です。 readdataメソッドはIQスコアをゲットして、配列を使って受け取り、 aboveandbelowを使って100以下か以上かを調べるようです。 受け取った値の受け渡し方や配列を使ってスコアを受け取る仕方がわかりません。 皆さんの助けを必要としています。 よろしくお願いいたします!

関連するQ&A

  • 【JAVA】配列の要素の平均について

    JAVAで質問となります。 以下のプラグラムを教えていただきたいです。 ____________________ n 個の要素で構成される int 型の配列を引数として受け取り,配列内の全要素の平均値を返すメソッドを作成してください. また,コマンドライン入力に整数値を入力すると,作成したメソッドを使用して,入力した整数値の平均値を求め,結果を標準出力に出力するプログラムを作成してください. このプログラムを作成する際は,以下の要件を満たすように作成してください:  【メソッド】 配列内の全要素の平均値を求めるメソッドは,以下の仕様とする: メソッド名:calcAverage 引数:配列 - int 型の配列 戻り値:平均値 - double 型 内容:引数として受け取った配列のすべての要素の平均値を計算する.  【入力】 整数値のデータは,コマンドライン入力に入力する. その際,各整数値は,半角スペースで区切る.  【出力】 コマンドライン入力に1つ以上の整数値が入力された場合は,それらの平均値を出力する. コマンドライン入力に何も入力されなかった場合は,何も出力しない. 平均値の出力は,全体を左詰めで小数点以下2桁まで出力する. 行の先頭には空白を入れず,行の左端から出力する.

  • javaのネットワークプログラミングについて

    テキストベースのコマンドをTCP/IPで介してやり取りする、OSシミュレータについての質問です。 このシミュレータは例えば、"DR 400 100"といったコマンドを入力すると、400番地の内容を100の長さ返します。 javaで上記のコマンドをサーバに送り、番地の内容を受け取るプログラムを作成したいのですが、うまくいきません。 byte型の配列buffに"DR 400 100"を格納して outstr.write(buff,0,n); としているのですが、返答を受け取る instr.read(buff)のところでプログラムが止まってしまいます。 サーバへのデータの受け渡しが悪いのか、受け取りの仕方が悪いのかよくよくわかりません。 分かる方がいましたら、アドバイスをお願いします。

    • ベストアンサー
    • Java
  • JAVAのプログラミングについて質問があります。

    私は今、javaのGUIのAWTについてのプログラミング問題で頭を抱えています。自分でも一応考えてみたのですが1週間やってみましたが歯がたちません。お忙しいところ恐縮なのですが問題の答えを示してもらえると大変助かります。以下が問題文です。「1953×2250pixelの画像を以下の方法で描画するプログラムを作成しなさい。 配列pixelcolor[1953][2250]に0から254までの値が与えられている。0を黒、254を白、その中間は値が大きくなるほど白に近づくグレーとし、配列pixelcolor(x.y)の値からpixel(x.y)を描画する。」 どうかお願いいたします。

    • ベストアンサー
    • Java
  • java ソート

    java ソート ソートプログラムを作ってみましょう ? double型の配列とメソッドを持つクラスを定義 ? コンストラクタで配列を初期化(0.0で初期化) ?配列を昇順,降順に並び替えるメソッドを持つこと ? 2種類のメソッドを持っても良い ? 引数の値で変えても良い ? ソート済み配列をチェックするメソッドを持つこと ? 1000000要素程度のソーティングで時間計測 課題です 全く手が出せず困ってます・・・。 ヒント、手順、解答 なんでも良いので、救いの手をお願いします!!

  • JAVAについて教えてください

    JAVAに関しての質問です。 以下のプログラムを教えていただけますでしょうか? 以下の漸化式で定義される数列 an について a0=0,a1=0,a2=1, an+3=an+2+an+1+an(n≧0) コマンドライン入力に非負の整数値 n(n≧0) を入力すると、 an を計算しその結果を標準出力に出力するプログラム 【実行例1】 「コマンドライン入力」 1 「標準出力」 a(1):0 【実行例2】 「コマンドライン入力」 10 「標準出力」 a(10):81 【実行例3】 「コマンドライン入力」 30 「標準出力」 a(30):15902591 よろしくお願いします。

  • Javaのプログラミングについてご指導お願いします。

    現在Javaを勉強しています。 このたび下記の実行結果となるように、次のソースにコードを追加しなくてはいけなくなったのですが、どうすればよいかわからずまったく手をつけることができません。 【ソース】 ・ Shopping.java class Shopping { public static void main(String args[]) { Fruit fruit; //下で生成するFruitクラス型オブジェクト名の定義 int price = 0; //商品検索結果(単価)を格納する変数 switch(args.length){ //コマンドライン引数の個数を判定 case 1: //コマンドライン引数が1つ(商品名のみ)の場合の処理を記述 //****** 以下、コメントに対応するコードを追加し、処理を完成させます ********* // Fruitクラスのオブジェクトを生成 // 商品検索(Fruitクラスのsearch()メソッドを実行) // 結果表示(Fruitクラスのdisplay ()メソッドを実行) case 2: // コマンドライン引数が2つの場合の処理を記述 //****** 以下、コメントに対応するコードを追加し、処理を完成させます ********* // Fruitクラスのオブジェクトを生成 // 商品検索(Fruitクラスのsearch()メソッドを実行) // 結果表示(Fruitクラスのdisplay ()メソッドを実行) default: // コマンドライン引数が1つ,2つ以外の場合の処理を記述 //****** 以下、コメントに対応するコードを追加し、処理を完成させます ********* // 引数の個数が違うエラーメッセージを表示する } } } ・ Fruit.java public class Fruit{ // インスタンス変数の定義 private String fName; //商品名 private int fNum; //個数 // 商品リストの登録(商品名、単価) String[][] fruittable = { {"Strawberry","500"},{"Apple","150"},{"Orange","100"}, {"Mango","1500"},{"Banana","200"},{"Peach","400"} }; // 商品名と個数を引数にもつコンストラクタの定義 //****** ここにコンストラクタの定義を追加します ********* //search()メソッド 単価を戻す int search(){ //search()メソッドの戻り値retval int retval = -1; //****** 以下、コメントに対応するコードを追加し、処理を完成させます ********* //商品リストにコマンドライン引数から入力した商品名と同じ商品名があるか検索し、 //見つかった場合は単価を戻す。見つからなかった場合は、-1を戻す。 } // display ()メソッド 引数として単価を受け取る void display(int price){ //****** 以下、コメントに対応するコードを追加し、処理を完成させます ********* // 商品名、単価、個数、合計金額を画面に表示する // 商品名が見つからなかった場合には、エラーメッセージを表示する } } 【実行結果】 ☆ 商品名と個数を入力すると、商品名、単価、個数、合計金額を表示する(個数が入力されない場合は1個とみなす) > java Shopping Orange 商品:Orange 単価:100円 個数:1個 合計:100円 > java Shopping Orange 3 商品:Orange 単価:100円 個数:3個 合計:300円 ☆ 商品が見つからなかった場合には、エラーメッセージを表示する > java Shopping Melon 3 Melonは商品ではありません。 ☆ 引数の数が0または3つ以上の場合は、エラーメッセージを表示する > java Shopping Orange Apple Peach 引数には商品名と個数を入力してください。 【条件】  (1) Shoppingクラスはmain()メソッドを持つ。  (2) 実行時の引数に商品名と個数を入力する。個数が入力されなかった場合は1とみなす。  (3) Fruitクラスのsearch()メソッドは、商品が存在するかどうかを検索するメソッドで、商品が存在した場合は単価を戻す。商品が見つからなかった場合には-1を戻す。  (4) Fruitクラスのdisplay ()メソッドは、商品名、単価、個数から合計金額を計算して表示するメソッドである。商品が登録されていない場合はメッセージを表示する。 Javaの先輩方に、どのようにコードを打てばよいのかご解説頂ければと思います。 恐れ入りますがよろしくお願いします。

  • Javaで

    C言語ではUNIX上のコマンドを呼ぶには System("呼びたいコマンド");とすればコマンドがプログラムから呼べたと思います。Javaで同じようにUNIX上のコマンドを呼ぶ関数(メソッドっていうのかな?)はなんですか?

  • Javaの応用問題で

    以下のプログラムがさっぱりわかりません。 全ての値が0の2次元配列を,以下のルールに基づいて全て1にするゲームTurnAllPanels.javaを作成する。ルール:ある座標を指定すると,指定した座標とその上下左右の座標について,その値が0ならば1,1ならば0に交換する。プログラムは以下の仕様を満たす。 1,int型2次元配列のフィールドboard を持つ。これがこのゲームの盤となる。 2,盤の行と列の大きさを保持するint型のフィールド、rowMaxとcolumnMaxを持つ。 3,board の内容を、次のスライドで示す形式で表示できるメソッドshowBoard() を持つ。 4,指定された座標位置の配列の値が0ならば1,1ならば0に交換するメソッドturnOverを持つ。 5,指定された座標位置の配列の値とその上下左右の値を、turnOverを用いてひっくり返すメソッドturnPlaceSettingを持つ。ただし指定された座標位置がboard の端の場合は、その上下左右の内のどれかが無いので、場合分けが必要。 6,終了条件(全ての値が1かどうか)をチェックするメソッドcheckBoard() を持つ。 7,mainメソッドでは、board の配列の縦横の大きさを入力させ,それぞれcolumnMax,rowMaxとして、これらを用いてこのクラスのオブジェクトpanel を生成する。 8,次に交換したい座標の指定を行わせ,それをcolumn, rowとする。座標がcolumnMax, rowMaxよりも大きい場合や0以下の場合には警告を出力させる。 9,panel にshowBoardやturnPlaceSettingを実行させることで、次のスライドに示すような表示を得る。 10,3×3の場合,ゲーム終了までの最速の手順は5手,「左上」「右上」「中央」「左下」「右下」を一度ずつ指定するものである。

    • ベストアンサー
    • Java
  • javaプログラミング

    JAVAプログラミングです。 教えてください 次のコードを実行すると、 「ary= new int[-5]; 」では例外が発生するのでtry文を用いてこの例外に対する例外処理をしたいんですがどう書けばいいですか?プログラムを実行した後に[例外処理後の実行例〕になるようにしたいです。 〔NegativeArraySizeException 例外を発生するコード〕 class Assignment9_1 { public static void main(String[] args) { int[] ary; // 例外 NegativeArraySizeException が発生 ary=new int[-5]; } } 〔例外処理前の実行結果〕 Exception in thread "main" java.lang.NegativeArraySizeException at Assignment9_1.main(Assignment9_1.java:7) 〔例外処理後の実行例〕 配列要素数の指定は負です

    • ベストアンサー
    • Java
  • javaプログラミング

    javaプログラミングの問題わからないのでプログラム書いていただけないでしょうか。 キーボードから キーボードから 2つの実数 aと b〔double 型〕を入力し、 Math クラスのメ ソッド double pow(a, b);を用いて aの b乗を求め 画面に出力しなさい。 〔実行例〕 aの b乗を求めます 実数 aの値を入力してください 2 実数 bの値を入力してください 3 2.0 の 3.0 乗は 8.0 です

    • ベストアンサー
    • Java

専門家に質問してみよう