課題のとき方教えてください。

[戻る]
ともだち 2003/02/19(水) 12:45:24
さっぱり分からないのでよろしくお願いします。
問題1   複素数の表現方法には,講義で扱った class mycomplex2 のように
実部と虚部とで表現する方法の他に,絶対値と偏角であらわす方法がある。

y = a+ bi を絶対値 r と 偏角 θとで表すと
r = √(a*a + b*b)   tanθ= b/a となる。


複素数を絶対値と偏角で表す class mycomplex3 を作り、
・四則演算オペレータ
・入出力関数
・class mycomplex2 との相互変換
を実現せよ。
提出プログラムは,
・3つの mycomplex3 オブジェクト c1, c2,c3 の入力
・入力内容の確認出力
・c1,c2,c3 を mycomplex2 に変換した結果 d1,d2,d3の出力
・ (c1+c2)/c3 の計算結果の出力
・ (c1+c2)/c3 の計算結果をmycomplex2に変換した結果出力
・ (d1+d2)/d3 を計算した結果出力
・ (d1+d2)/d3 を計算した結果を再度mycomplex3 に変換した結果を出力

を行うものを作成せよ。
(c1+c2)/c3 の計算結果と (d1+d2)/d3 の計算結果を mycomplex3 に
変換した結果は一致するはずである。

補足 相互変換には friend class 宣言(講義では説明せず)
が必要である。

問題2  
5000 以下の自然数について

a)素数をすべて求め小さい順に並べよ。
b)素数番目の素数をすべて出力せよ。

例: a)素数を小さい順に並べる  
        2 3 5 7 11 13 17 19 23 29 31...
    b)素数番目の素数を出力する
        3 11 17 31....

ヒント:素数は配列に記憶する。

改行を行い,見やすく出力せよ。

. 2003/02/19(水) 12:50:52
http://hpcgi1.nifty.com/MADIA/Vcbbs/wwwlng.cgi?print+200302/03020025.txt

επιστημη 2003/02/19(水) 13:17:17
> さっぱり分からないのでよろしくお願いします。

なにをお願いしているのかわかりません。

らふ 2003/02/19(水) 13:48:20
マルチポスト&課題丸投げ な質問にレスするのも何ですが…

問題1
 複素数の極座標表示についてしっていますか?
 知らなければ高校の数学の教科書でもみてください。
 ネットで検索してもよいでしょう。
問題2
 エラトステネスのふるい、について調べればヒントが見つかるでしょう。

で、ここからが本題です。
>補足 相互変換には friend class 宣言(講義では説明せず)が必要である。
                    ^^^^^^^^^^^^^^^

これってひどくないですか?
せめて課題に最低限必要な事柄くらいは講義で説明すべきかとおもいます。
#もちろん単なる数学の知識などは「最低限必要な事柄」に入りませんが。

επιστημη 2003/02/19(水) 13:56:53
>>補足 相互変換には friend class 宣言(講義では説明せず)が必要である。
>                                  ^^^^^^^^^^^^^^^
>これってひどくないですか?
>せめて課題に最低限必要な事柄くらいは講義で説明すべきかとおもいます。

friendが必要だと教えてくれてるんだからひどいとは思いません。
"本を読み調べるコトができるようにおなりなさい"というセンセの
意図と解釈します。

# ってゆーか、相互変換くらいfriendなくても作れるぞ。

らふ 2003/02/19(水) 14:30:56
>friendが必要だと教えてくれてるんだからひどいとは思いません。
>"本を読み調べるコトができるようにおなりなさい"というセンセの
>意図と解釈します。

それもそうですね。
さしてややこしいところでもありませんし。

># ってゆーか、相互変換くらいfriendなくても作れるぞ。
同意です。

επιστημη 2003/02/19(水) 14:52:09
/*
 * 問2-a : 5000以下の素数
 *
 * 答案をそのままお見せするよなヤボな真似はしたくないので、
 * さっぱりわからない(であろう)コードの例:
 */
#include <iostream>
#include <iomanip>
#include <vector>
#include <algorithm>
#include <functional>

using namespace std;

int main() {
  const int N = 5000;
  int i;
  vector<int> primes;
  for ( i = 2; i < N; ++i ) {
    if ( find_if(primes.begin(), primes.end(),
                 not1(bind1st(modulus<int>(),i))) == primes.end() ) {
      primes.push_back(i);
    }
  }
  for ( i = 0; i < primes.size(); ++i ) {
    cout << setw(4) << primes.at(i) << (i % 10 == 9 ? '\n' : ' ');
  }
  return 0;
}

古いスレッドには追加発言できません。