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

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

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

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

Q&A

2回答

1200閲覧

重心座標を求めて、出力するプログラム

Cheqki

総合スコア0

Java

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

0グッド

0クリップ

投稿2023/04/21 04:23

実現したいこと

引数で受け取るPointオブジェクト群の重心座標を出力する。

前提

javaでメソッド基礎問題ドリルの問題24というものを解いています。
インスタンスを生成し、それらを配列として定義し、引数としてメソッドを呼び出すところまではできたと思うのですが、メソッドの処理で重心を求め、その値を戻す方法が分かりません。コンパイルしたさいに、エラーが出てしまい、うまくいきません。
申し訳ないのですが、教えていただけませんでしょうか。

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

Practice3.java:12: エラー: シンボルを見つけられません
public static p4 getBaryCenter(p4[] points){
^
シンボル: クラス p4
場所: クラス Practice3
Practice3.java:12: エラー: シンボルを見つけられません
public static p4 getBaryCenter(p4[] points){
^
シンボル: クラス p4
場所: クラス Practice3
Practice3.java:14: エラー: シンボルを見つけられません
for(int i = 0; i < p4.length; i++){
^
シンボル: 変数 p4
場所: クラス Practice3
Practice3.java:15: エラー: シンボルを見つけられません
b += p4[i];
^
シンボル: 変数 p4
場所: クラス Practice3
Practice3.java:17: エラー: シンボルを見つけられません
double ave = b / p4.length;
^
シンボル: 変数 p4
場所: クラス Practice3
Practice3.java:35: エラー: シンボルを見つけられません
System.out.println(ave);
^
シンボル: 変数 ave
場所: クラス Practice3
エラー6個

該当のソースコード

public class Practice3{
public static p4 getBaryCenter(p4[] points){
int b = 0;
for(int i = 0; i < p4.length; i++){
b += p4[i];
}
double ave = b / p4.length;
return ave;
}

public static void main(String[] args){ Point x = new Point(2.5, 6.0); Point y = new Point(4.2, 9.0); Point[] p4 = {x, y}; getBaryCenter(p4); System.out.println(ave);

}
}
class Point{
double x;
double y;

Point(double x, double y){ this.x = x; this.y = y;

}
}

試したこと

重心座標の求め方の検索。
シンボルの定義。
メソッド内の条件文の変更。

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

ここにより詳細な情報を記載してください。

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

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

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

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

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

episteme

2023/04/21 04:58

構文/文法デタラメなのが理由でエラーになっていることは理解してますか?
jimbe

2023/04/21 07:20 編集

ソースコードや画面に表示されたものは、各々毎にコードのマークダウンをご利用ください。 そうしないと一部の記号が文章の装飾と解釈されて表示されなかったりしてしまいます。 また、「メソッド基礎問題ドリルの問題24」と言われても他人には何のことだかさっぱり分かりません。 p4 って何でしょう。クラスですか、変数(配列)ですか。
guest

回答2

0

きっとこんなことがやりたかったんだろなー...とエスパー回答:

Java

1public class Practice3 { 2 public static Point getBaryCenter(Point[] points){ 3 Point center = new Point(); 4 for ( Point p : points ){ 5 center = center.addPoint(p); 6 } 7 return center.div(points.length); 8 } 9 10 public static void main(String[] args){ 11 Point[] p4 = { new Point(2.5, 6.0), new Point(4.2, 9.0)}; 12 Point center = getBaryCenter(p4); 13 System.out.println(center); 14 } 15} 16 17class Point{ 18 private double x; 19 private double y; 20 21 public Point(double x, double y){ 22 this.x = x; 23 this.y = y; 24 } 25 public Point() { this(0,0); } 26 27 public Point addPoint(Point p) { 28 return new Point(x + p.x, y + p.y); 29 } 30 31 public Point div(double d) { 32 return new Point(x / d, y / d); 33 } 34 35 public String toString() { 36 return "(" + x + "," + y + ")"; 37 } 38}

投稿2023/04/21 05:18

episteme

総合スコア16614

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

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

0

p4というクラスが存在しないため、p4という型を宣言することができません。

投稿2023/04/21 04:40

swordone

総合スコア20651

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問