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を探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語 二分法 プログラム
-
C言語を実行すると-infが出てき...
-
C言語の型による処理速度の違い
-
プログラムでの数字につく”f”の...
-
(C言語)ニュートン法のプログ...
-
C++で外積
-
指数の表示
-
C言語プログラム(二分法)につい...
-
ある線が円の範囲に入っている...
-
-1.#IND00と出てしまうのですが...
-
doubleは常に%lfとするべきなのか
-
関数のプログラム
-
プログラミングについての質問
-
c言語で、繰り返し文の中で、0....
-
C言語でのFFT(構造体とポインタ...
-
プロトタイプ宣言の説明
-
シンプソン公式の数値計算
-
ルンゲクッタ法によるマクスウ...
-
long doubleの表示方法
-
MATLABで画像のヒストグラムを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラムでの数字につく”f”の...
-
doubleの変数にintとintの割り...
-
C言語を実行すると-infが出てき...
-
float型とdouble型の変数の違い...
-
c言語で、繰り返し文の中で、0....
-
C 開放してるのにエラー(doubl...
-
関数におけるif文とreturn文に...
-
至急です! マクロ定義で #defi...
-
C言語 関数プロトタイプ宣言の...
-
浮動小数点の定数
-
int とdoubleの比較
-
C言語の型による処理速度の違い
-
c言語のコンパイルエラー canno...
-
doubleは常に%lfとするべきなのか
-
difftime()について
-
C言語初心者 構造体 課題について
-
C言語でintをdoubleに
-
listに構造体を格納
-
たくさんの数の平均を求める方...
-
(C,C++言語)関数の引数は自動キ...
おすすめ情報