A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
ここのサイトの情報でボーランドのただソフトを入手して
複素数cプログラムを作ってみたのですが動きました
そのプログラムは
gomi.cpp:
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#include<complex.h>
int main(void)
{
complex<double>j(0.0,1.0),z;
doublea,b,x,y;
printf("please input double number a\n");
scanf("%lf",&a);
printf("please input double number b\n");
scanf("%lf",&b);
z=a+j*b;
printf("abs(%lf+j*%lf)=%lf",a,b,abs(z));
getch();
return0;
}
(メモ帳で作成)
です
試してみてください
gomi.cppをコンパイルするには
bcc32 gomi
をリターンすればできます
実行は
gomi
をリターンすればいいのです
通常は
complex j(0.0,1.0),z;
でいけるのですがこの「ただコンパイラ」は
complex<double>j(0.0,1.0),z;
でないと駄目でした
下記サイトからダウンロードして試してください
参考URL:http://www.borland.co.jp/cppbuilder/freecompiler …
No.2
- 回答日時:
もしボーランドかマイクロソフトのコンパイラを使っているのなら
cとc++が統合されていますので
cでプログラムを組む場合であっても複素数型のクラスは使えます
クラスといってもほぼ通常の型と同じように使えます
使えるようにするには文頭で
#include <complex>
を記述しなければなりません
すると
complex x,y,z,j(0.0,1.0);
といったように複素数がていぎできます
double a=1,b=2,c=3.5,d=1.5;
として
x=a+j*b,y=c+j*d;
として
z=x*y;
といったように複素数の計算ができます
勿論
z=exp(j・b);z=exp(x);
とすることもできます
オイラーの式を知っているならばzの意味は分かると思います
ほかに関数
real、imag、conj、abs等もつかえます
相当便利ですよ
c++を知っていなくてもあたかも複素数型が一つ増えたかのように使えますよ
自分で複素数型を定義するにはやはりクラスで定義しないと駄目ですね
しかも自作の定義の場合abs、conj、real、imagなど
関連関数を(使いたいなら)自分で定義しなければなりません
簡単ですけど煩わしいですね
構造体で定義したものは通常の演算ができないし融通が利かないのでやめた方がいいでしょう
No.1
- 回答日時:
C言語では複素数型の変数を持っていませんから、実数のプログラムを拡張して複素数まで広げることはできません。
普通は複素数の実部と虚部を手計算で展開した式をプログラムに書き込まなければなりませんから大変面倒です。そこで、
(1)ここにある複素数計算パッケージが利用できる可能性はあります。自分で作るのであれば参考になるかもしれません。
http://www.mscom.or.jp/~tog/anna/CMPLX.C
(2)C99という1999年に規格化された言語に複素数の変数が規定されました。UnixであればGNUのC99コンパイラで使用することができるかもしれませんが、知人が挑戦して挫折していますので何か問題があるかもしれません。
http://seclan.dll.jp/c99d/
(3)C++ではComplexクラスを定義し、演算子をオーバーロードして複素数演算に拡張することができます。C++に慣れていればこちらはスムーズに実数演算を拡張できます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラムでの数字につく”f”の...
-
C言語を実行すると-infが出てき...
-
C# 引数の型 自由
-
difftime()について
-
float型とdouble型の変数の違い...
-
listに構造体を格納
-
C++で外積
-
doubleは常に%lfとするべきなのか
-
Cで3乗根を求める方法
-
ニュートン法
-
C言語 関数プロトタイプ宣言の...
-
C言語 入力した数値の平均値の...
-
C言語で
-
インデックスが配列の境界外です.
-
C言語で-23乗を取り扱うには
-
指数形式で入力するには
-
数値を指数部と仮数部に分離したい
-
浮動小数点の定数
-
c言語でDFTのプログラムを作成...
-
doubleの変数にintとintの割り...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラムでの数字につく”f”の...
-
C言語を実行すると-infが出てき...
-
c言語で、繰り返し文の中で、0....
-
C 開放してるのにエラー(doubl...
-
doubleの変数にintとintの割り...
-
至急です! マクロ定義で #defi...
-
C言語 関数プロトタイプ宣言の...
-
C言語の型による処理速度の違い
-
float型とdouble型の変数の違い...
-
int とdoubleの比較
-
関数におけるif文とreturn文に...
-
Cで3乗根を求める方法
-
c言語のコンパイルエラー canno...
-
2次方程式の解を求めるプログ...
-
浮動小数点の定数
-
-1.#IND00と出てしまうのですが...
-
doubleは常に%lfとするべきなのか
-
C言語のpow関数の不具合
-
difftime()について
-
C++で外積
おすすめ情報