
どうしても エラーが出ます
エラーの表示は 下のようなものなのですが、どういう意味かわかりません。
C:\Documents and Settings\gc60117\デスクトップ\Project3\CodeFile1.cs(20): 引数を '2' 個指定できる、メソッド 'Vector' のオーバーロードはありません。
自分なりのプログラミングデータを記述します。
間違いを指摘していただけると助かります。
using System;
class Vector
{
private double x;
private double y;
public double Length
{
get{return Math.Sqrt(x*x+y*y);}
}
public void Write()
{
Console.Write("({0},{1})",x,y);
}
public static Vector I
{
get{return new Vector(1,0);}
}
public static Vector J
{
get{return new Vector(0,1);}
}
public static Vector operator*(double k,Vector a)
{
Vector t= new Vector();
t.x=k*a.x;
t.y=k*a.y;
return t;
}
public static double operator*(Vector a, Vector b)
{
double z= new double();
z=a.x*b.x+a.y+b.y;
return z;
}
public static Vector operator+(Vector a,Vector b)
{
Vector u=new Vector();
u.x=a.x+b.x;
u.y=a.y+b.y;
return u;
}
public static double Angle(Vector A,Vector B)
{
double r=new double();
r=A*B/(A.Length*B.Length);
r=Math.Acos(r);
r=r/6.28*360;
return r;
}
}
class kadai53
{
static void Main()
{
Vector A;
double x, y;
Console.Write("ベクトルAの成分を入力してください\n");
Console.Write("x成分は ? ");
x = double.Parse(Console.ReadLine());
Console.Write("y成分は ? ");
y = double.Parse(Console.ReadLine());
A = x * Vector.I + y * Vector.J; //静的プロパティと,一つ目の*演算子,+演算子の呼び出し
Console.Write("A = "); A.Write();
Vector B = new Vector(0, 1);
Console.Write("\nB = "); B.Write();
Console.WriteLine("\nベクトルAとベクトルBの内積の値は{0}です", A*B);//二つ目の*演算子の呼び出し
Console.Write("ベクトルAとベクトルBがなす角度は{0}度です\n", Vector.Angle(A,B));
}
}
No.2ベストアンサー
- 回答日時:
using System;
class Vector
{
private double x;
private double y;
/* コンストラクタ */
public Vector(){
}
/* 二つのdouble値を引数に持つコンストラクタ */
public Vector(double a,double b){
x = a;
y = b;
}
public double Length
{
get{return Math.Sqrt(x*x+y*y);}
}
public void Write()
{
Console.Write("({0},{1})",x,y);
}
public static Vector I
{
get{return new Vector(1,0);}
}
public static Vector J
{
get{return new Vector(0,1);}
}
public static Vector operator*(double k,Vector a)
{
Vector t= new Vector();
t.x=k*a.x;
t.y=k*a.y;
return t;
}
public static double operator*(Vector a, Vector b)
{
double z= new double();
/* 式が間違っている */
/* z=a.x*b.x+a.y+b.y; */
z=a.x*b.x+a.y*b.y;
return z;
}
public static Vector operator+(Vector a,Vector b)
{
Vector u=new Vector();
u.x=a.x+b.x;
u.y=a.y+b.y;
return u;
}
public static double Angle(Vector A,Vector B)
{
double r=new double();
r=A*B/(A.Length*B.Length);
r=Math.Acos(r);
/*
A = (1,0)の時
90度からずれるため,Math.PIを使うことにした
*/
r=r/(2 * Math.PI) *360;
return r;
}
}
class kadai53
{
static void Main()
{
Vector A;
double x, y;
Console.Write("ベクトルAの成分を入力してください\n");
Console.Write("x成分は ? ");
x = double.Parse(Console.ReadLine());
Console.Write("y成分は ? ");
y = double.Parse(Console.ReadLine());
A = x * Vector.I + y * Vector.J; //静的プロパティと,一つ目の*演算子,+演算子の呼び出し
Console.Write("A = "); A.Write();
Vector B = new Vector(0, 1);
Console.Write("\nB = "); B.Write();
Console.WriteLine("\nベクトルAとベクトルBの内積の値は{0}です", A*B);//二つ目の*演算子の呼び出し
Console.Write("ベクトルAとベクトルBがなす角度は{0}度です\n", Vector.Angle(A,B));
}
}
No.1
- 回答日時:
> 引数を '2' 個指定できる、メソッド 'Vector' のオーバーロードはありません。
「(引数を '2' 個指定できる)Vectorクラスのコンストラクタ」が定義されていないのが原因なのでは?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラムでの数字につく”f”の...
-
c言語で、繰り返し文の中で、0....
-
doubleの変数にintとintの割り...
-
数値を指数部と仮数部に分離したい
-
^この記号を使わない
-
C言語でsqrt(a^2+b^2)のテーブ...
-
doubleは常に%lfとするべきなのか
-
至急です! マクロ定義で #defi...
-
C 開放してるのにエラー(doubl...
-
最早開始時間と最遅完了時刻を...
-
【C++】関数ポインタの使い方
-
既定のコンストラクタがありま...
-
Aの値からBの値を除するとは??
-
「Aに対するBの割合」と「Aに対...
-
信頼区間の1.96や1.65ってどこ...
-
a^2の√=a が成り立たない場合
-
VB6.0での小数点の扱いについて
-
配列をnビットシフトする
-
数学 一次関数 関数 y=-3/4x+k(...
-
c languageで 簡単な質問があ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラムでの数字につく”f”の...
-
C 開放してるのにエラー(doubl...
-
c言語で、繰り返し文の中で、0....
-
doubleの変数にintとintの割り...
-
至急です! マクロ定義で #defi...
-
C言語 関数プロトタイプ宣言の...
-
浮動小数点の定数
-
DWORDの警告
-
C言語の型による処理速度の違い
-
C言語で台形公式を使った二重積...
-
C言語を実行すると-infが出てき...
-
int とdoubleの比較
-
C言語初心者 構造体 課題について
-
たくさんの数の平均を求める方...
-
EXE1→DLL→EXE2数値を受け渡す方法
-
プログラミングでのテイラー展開
-
C++初心者です。簡単なスコア計...
-
【C言語】二階微分方程式をル...
-
fgets()による繰り返し入力(c言語)
-
2分法で方程式の複数の解を自...
おすすめ情報