【掲示板ご利用上の注意】

 ※題名は具体的に!
 ※学校の課題の丸投げ禁止!
 ※ソースの添付は「HTML変換ツール」で字下げ!
 ※返信の引用は最小限に!
 ※環境(OSとコンパイラ)や症状は具体的に詳しく!
 ※マルチポスト(多重投稿)は謹んで!

 詳しくはこちら



 本当はこんなに大きく書きたくはないのですが、なかなか守っていただけなくて…。
 守ってくださいね。お願いします。(by管理人)

C言語ソース⇒HTML形式ツール   掲示板2こちら


管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.18684

配列の受け渡しについて
投稿者---さやか(2004/12/13 19:32:53)


課題なのですが、u[j]を計算してその値をc[j]に渡してc[j]の解を出そうとしています。u[j]の値はu[0]〜u[99]まで出るように出来たのですが、そのあとがわからず困っています。どなたかご教授ください。(インデントなしで見ずらくてすいません。)

#include <iostream.h>
#include<math.h>
#include<complex.h>

typedef complex<double> dcomplex;
const int NUMBER=100;

dcomplex u[NUMBER];
dcomplex c[NUMBER];
complex<double> I(0,1);
double x;
int N=NUMBER;
double L=10.0;

//void()
int main()
{

for(int j=1;j<=N;j++)
{
double x=L/N*(2*j-N);
u[j]=1.0/cosh(x)*exp(I*x);
}

//int main()
{
int j, k, m;
for(int j=1;j<=N;j++)
for(int m=j+1;m<=N;m++)
for(int k=j-1;k<=N;k++)

c[j]=(-1.0-0.02*pow(1/cosh(x),2))*u[k]+2.0(I+1)*u[j]+
(-1.0+0.02*pow(1/cosh(x),2))*u[m];


for(int j=1;j<=N;j++)
{

cout<<"c["<<j<<"]="<<c[j]<<endl;
}
}
return 0;
}



この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:配列の受け渡しについて 18689 REE 2004/12/13 20:03:32
<子記事> Re:配列の受け渡しについて 18693 もぐりん 2004/12/13 22:02:01
<子記事> Re:配列の受け渡しについて 18698 さやか 2004/12/14 00:21:54
<子記事> Re:配列の受け渡しについて 18735 さやか 2004/12/15 12:53:06


No.18689

Re:配列の受け渡しについて
投稿者---REE(2004/12/13 20:03:32)


>課題なのですが、u[j]を計算してその値をc[j]に渡してc[j]の解を出そうとしています。u[j]の値はu[0]〜u[99]まで出るように出来たのですが、そのあとがわからず困っています。どなたかご教授ください。(インデントなしで見ずらくてすいません。)

※ソースの添付は「HTML変換ツール」で字下げ!
※環境(OSとコンパイラ)や症状は具体的に詳しく!



この投稿にコメントする

削除パスワード

No.18693

Re:配列の受け渡しについて
投稿者---もぐりん(2004/12/13 22:02:01)


【掲示板ご利用上の注意】を読んでから再度質問してください。
HTML形式ツールを使うことも忘れずに!

何をするソースなのかもう少し詳しく書いてもらえませんか?




この投稿にコメントする

削除パスワード

No.18698

Re:配列の受け渡しについて
投稿者---さやか(2004/12/14 00:21:54)


大変失礼しました。環境は OS:Windows2000 コンパイラ:Borland C++ です。やろうとしていることは u[j] で表せられる波の式において、幅が-10から10の範囲を100分割してu[0]〜u[99]の解をまず得ます。以下にそのソースを添えます。(これはコンパイルでき、ちゃんと計算できます。)

/*
    SampleSource
#include <iostream.h>
#include<math.h>
#include<complex.h>

typedef complex<double> dcomplex;
const int NUMBER=100;              //分割数
int main()
{
   dcomplex u[NUMBER];
   complex<double> I(0,1);
   double x;
   int N=NUMBER;
   double L=10.0;                  //表示xの範囲-L〜L
 
   for(int j=1;j<=N;j++)
     {
       double x=L/N*(2*j-N);
       u[j]=1.0/cosh(x)*exp(I*x);
     }
     for(int j=1;j<=N;j++)
       {

      cout<<"u["<<j<<"]="<<u[j]<<endl;
     }

return 0;
}


つぎにそのu[i]をつかって 
c[j]=(-1.0-0.02*pow(1/cosh(x),2))*u[j-1]+2.0(I+1)*u[j]+
          (-1.0+0.02*pow(1/cosh(x),2))*u[j+1];

を出力したいと思っています。まだ分かりずらいとは思いますがよろしくお願いします。




この投稿にコメントする

削除パスワード

No.18700

Re:配列の受け渡しについて
投稿者---RAPT(2004/12/14 01:08:27)


いや、だから「何を」したくて「何が」分からないのか、
が回答者に伝わっていません。

質問が質問になっていないことに気付いていますか?



この投稿にコメントする

削除パスワード

No.18701

Re:配列の受け渡しについて
投稿者---しっぽ(2004/12/14 01:52:00)


c[j] もループの範囲に気とつけて、u[j]と同じように計算し、同じように出力すれば
いいだけのことです。私もどこが疑問なのか判りません。ひょっとして、やりたいことと
タイトルが違うのかも。main のブロック内で行いたいのですか?それとも関数に渡して
処理をしたいのですか?

> (これはコンパイルでき、ちゃんと計算できます。)
そうでしょうか。
for(int j=1;j<=N;j++)
だと
u[NUMBER]
への代入などが行われてしまうのでダメです。



この投稿にコメントする

削除パスワード

No.18735

Re:配列の受け渡しについて
投稿者---さやか(2004/12/15 12:53:06)


もう少し自分で勉強致します。
初心者の的を得ない質問に付き合ってくださった皆さんありがとうございました。


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧