質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

解決済

2回答

1000閲覧

すべてのプログラムを読み取らせるには

kt-

総合スコア5

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2020/11/18 16:10

前提・実現したいこと

私はプログラミングを習い始めた新潟の大学の1年です。大学の課題なのですが、Javaを使い『次のメソッドをpublic staticメソッドとして作成しなさい』との課題が出ました。問題は以下の通りです。
(1) 平均
(メソッド名) heikin
(引数 1) double[] x
(戻り値) double : 配列 x の要素の平均値

(2) 内積
(メソッド名) naiseki
(引数 1) double[] x
(引数 2) double[] y
(戻り値) double :
x[0]y[0] + · · · + x[N − 1]y[N − 1]
ただし,N は配列 x の大きさである。
(注意) 配列 x と配列 y の大きさは同じとしてよい。

(3) ノルム
(メソッド名) norm
(引数 1) double[] x
(戻り値) double :
√x[0]^2 + · · · + x[N − 1]^2
ただし,N は配列 x の大きさ.

(4) 2 次方程式の根
(メソッド名) nijihouteisiki
(引数 1) double a
(引数 2) double b
(引数 3) double c
(戻り値) double[] : 2 次方程式ax^2 + bx + c = 0 の 2 つの解
−b ±√b^2−4ac/2aのうち、小さいほうの解を 0 番目の要素, 大きいほうの解を 1 番目の
要素としなさい。
(注意) a ̸= 0 としてよい。 根が実数でない場合は考えなくてよい。

そこでこの問題を自分なりに調べ真似しながら以下のようにeclipseに書いてみました.
public class sample21 {
//(1)
public static void main(String[]args) {
double[]x ={0,1,2};
System.out.println(heikin(x));
}
public static double heikin(double[] x){
double e = 0.0;
for(double i:x)
{e+= i;
}
return e/x.length;
}

//(2) public static void main1(String[]args) { double[]x ={0,1,2}; double[]y ={3,4,5}; System.out.println(naiseki(x,y)); } public static double naiseki(double[]x,double[]y) { double r=0; for(int i=0;i<x.length;i++) { r+=x[i]*y[i]; } return r; } //(3) public static void main2(String[] args) { double[]x= {1,2,3}; System.out.println(norm(x)); } public static double norm(double[] x) { double sum = java.util.Arrays.stream(x).map(y->y*y).sum(); return Math.sqrt(sum); } //(4) public static void main3(String[]args) { try (java.util.Scanner s = new java.util.Scanner(System.in)) { System.out.print("a="); double a = s.nextDouble(); System.out.print("b="); double b = s.nextDouble(); System.out.print("c="); double c = s.nextDouble(); double[] result =nijihouteisiki(a, b, c); System.out.printf("x0=%f, x1=%f%n", result[0], result[1]); } } public static double[] nijihouteisiki(double a, double b, double c) { double d=b*b-4*a*c; return new double[] { (-b - Math.sqrt(d)) / (2*a), (-b + Math.sqrt(d)) / (2*a)}; }

}

このプログラム4つ全て読み取らせたいのですが、最初の1つしか読み取ってくれません。
こちらの不具合なのか、それとも何かが足りないのか調べても一向に分かりません。
こんなプログラミングを碌に知らない若輩者に忙しい時間を割かせてしまう形になり申し訳ないのですが、ぜひともご教授いただけたら幸いです。
烏滸がましいようですが、出来ればこれよりもっと単純な方法を知っている方がいましたら是非ともご教授の方をよろしくお願いします。

発生している問題・エラーメッセージ

eclipseに実際これを打ち込んでみると、何らエラーメッセージは発生しないのですが前述の通り実行すると、最初の(1)だけを読み取るだけで何にも表示しないのです。

試したこと

前述の通り、eclipseの不具合なのかと疑い調べようとしましたがほかのプログラムはきちんと動くので全く不具合はなさそうでした。
そこで何が足りないのかを調べようとネットで様々な人に質問して前述のプログラムを添削し書き上げましたが一向に(1)以下が動作しません。今まさにどこから手をつければいいのかと、正直情けない話八方塞がりな状態です。改めてご教授の方をお願い致します。

補足情報(FW/ツールのバージョンなど)

eclipse

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

Javaのプログラムはpublic static void main(String[] args)から入り、そこに記述されている内容を実行して終わります。
今この形をしたメソッドは(1)しか存在せず((2)や(3)は余計な数字が付いている)、(1)から他のプログラムのメソッドを使う記述もありません。したがって、プログラムは(1)しか実行できません。

投稿2020/11/18 17:01

swordone

総合スコア20651

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kt-

2020/11/19 00:17

ということは、(1)以外にあるpublic static void main(String[] args)を消去すれば良いということでしょうか? それに(1)にほかのプログラムを使う記述がないと仰っていましたが、付け加えるべき箇所があるという事なら、詳しいご教授を願えるとありがたいです。
kt-

2020/11/19 01:47

申し訳ありません。既に解決いたしました。swordone様、貴重なお時間を頂き、ご教授いただきましてありがとうございました。
guest

0

ベストアンサー

  • javaプログラムははmain()を実行する。
  • main()以外のメソッドはmain()から直接、または間接的に呼び出されて実行される
  • ここで、heikinnaisekinormnijihouteisikiのうち、mainで呼び出されているのはheikinのみ
  • したがってmain1...3の内容を全部mainに書く必要がある
  • 手っ取り早いのはmainmain1...3を呼ぶ

投稿2020/11/19 00:31

ozwk

総合スコア13528

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kt-

2020/11/19 00:37

なるほど。良く分かりました。ありがとうございます。 しかし、そうなると、そのプログラムの表現例は具体的にどのようになるのでしょう? 無知な私にお力添えしていただけると幸いです。
ozwk

2020/11/19 00:39 編集

自分で考えて試行錯誤してください
k_n_h_r

2020/11/19 01:06

kt-さん >main1...3の内容を全部mainに書く もしくは >mainでmain1...3を呼ぶ のどちらかを行うだけです。
kt-

2020/11/19 01:25

なるほど、そういうことでしたか!申し訳ございません。ありがとうございました。
kt-

2020/11/19 01:39

ozwk様。k_n_h_r様、貴重なお時間を割いてしまい申し訳ありません。そして教授いただいてどうもありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問