- 1 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 22:18:31 ]
- あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。
【質問者へ】 回答者の便宜のため、質問の際は以下を行うことを推奨します。 ・質問は【質問テンプレ】を利用してください。 ・問題文は、出題されたまま全文を書いてください。 ・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう. ・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。 ・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。 ・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。 ・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。 【質問テンプレ】 [1] 授業単元: [2] 問題文(含コード&リンク):() [3] 環境 [3.1] OS: (Windows/Linux/等々) [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) [3.3] 言語: (C/C++/どちらでも可 のいずれか) [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) 【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm 【C 関数検索 man on WWW】 www.linux.or.jp/JM/index.html 【過去ログ検索】 chomework.sakura.ne.jp/ 【wiki】 www23.atwiki.jp/homework/ 【前スレ】 C/C++の宿題を片付けます 106代目 pc11.2ch.net/test/read.cgi/tech/1209810861/
- 331 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 16:14:17 ]
- >>171
>>172 二人とも、ありがとうございました! 返事が遅くなってすみません。
- 332 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 16:23:42 ]
- >>288 >>272 修正
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6759.c
- 333 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 16:26:41 ]
- お礼の豊作じゃー><
>>329 途中を削除ってのはやってますが、リストの途中に追加、というのを やってないことに気づきました。 そのような処理を実装できなさそうなら言ってください。 >>330 よかったです。こちらも初めてのforkでしたのでドキドキしてました。
- 334 名前:292 mailto:sage [2008/06/01(日) 16:34:28 ]
- 大変申し訳ありません。ミスがありましたので訂正します。
[2] ○実験1、マルコフ情報源の生成プログラムの作成 プログラムは double markov(int K ,double alfa, double *a_coeff, double *mem); のように、次数Kとαの値および長さKの係数配列a_coeffとメモリ配列memのポインタを引数としマルコフ情報源出力Xnを返す関数文で書く。 main文では、Kとαの値の設計および配列a_coeffとmemの確保と配列の値の設定を行う。 なお、memは全零に初期設定する。 main文で関数marukovを呼出す度にマルコフ情報源の系列の値が順次得られ、N個のデータをファイルに記憶する。 なお、一様乱数からガウス関数への変換は(1)または(2)の方法を用いる。 ○実験2、マルコフ情報源の生成実験 上で作成したプログラムを用いて、K=1の1次マルコフ情報源についてのみ系列の生成実験を行う。 ここで、係数a1は安定条件より|a1|<1の範囲に限定する必要があり、実験では、a1=±0.1、±0.9の4種類についてマルコフ情報源出力系列の1024個のデータ(最初の1番目のデータは捨てる)をファイルに出力され、それらのグラフを描く。 なお、係数αは出力系列Xnの分散σx^2=1になるように決定する。 問題【1】実験1のマルコフ情報源の生成プログラムを示しなさい。 問題【2】実験2のマルコフ情報源出力系列を図示し、AR係数a1=±0.1、±0.9の場合について、系列の違いを定性的に説明しなさい。 また、その違いの出る理由をK=1のときの式(1)のファイルの周波数応答F(e^jω)=α/(1+a1・e^-jω)より説明しなさい。 F(z)=α/(1+a1・z^-1+a2・z^-2+・・・・・・+ak・z^-K) ・・・・・(1)式 (1)1系列の一様乱数Unから以下の計算により1系列のガウス乱数Gnを得る。 Gn= U12n + U12n+1 + ・・・・・ + U12n+11 −6 (n=0,1,2,・・・・) (中心極限定理) (2)Box-Muller法:2系列の一様乱数 Un,1 , Un,2 から以下の計算により独立な2系列のガウス乱数 Gn,1 , Gn,2 を得る。 Gn,1=(√-2ln(1-Un,1))×cos(2πUn,2) Gn,2=(√-2ln(1-Un,1))×sin(2πUn,2) 急ぎですいません。問題【2】実験2は図示があるので問題【1】だけでもいいのでお願いします。 式など分かりにくいところがありましたら言って下さい。期限は過ぎてもかまわないのでよろしくお願いします。
- 335 名前:デフォルトの名無しさん [2008/06/01(日) 18:02:21 ]
- >>334
プログラム以前にマルコフ情報源とか応答特性についての知識がスッポリ抜けてることに驚いた とりあえずこの辺の情報がないと俺できない/(^o^)\
- 336 名前:316 mailto:sage [2008/06/01(日) 19:11:24 ]
- >>333
すみません、できなさそうなのでよかったらお願いしますm(v_v)m
- 337 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 19:20:16 ]
- >>367
火曜日まででOKです・・
- 338 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 19:35:00 ]
- >>336
こんなのでも適当に放り込んでみては? work = head->next->next->next->next; work2 = create_node(100); work2->next = work->next; work->next = work2; work = head->next->next->next->next->next->next; work2 = create_node(200); work2->next = work->next; work->next = work2;
- 339 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 19:36:17 ]
- [1] 授業単元: プログラミング1
[2] 問題文 ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6761.txt [3] 環境 [3.1] OS: Windows XP [3.2] コンパイラ名とバージョン: Vidual Studio2005 [3.3] 言語: C++ [4] 期限:2008年6月8日 [5] その他の制限: 初歩関数まで 色々調べて試してみましたがさっぱり 自作関数を定義する方法がいまいち理解できない\(^o^)/
- 340 名前:デフォルトの名無しさん [2008/06/01(日) 19:42:54 ]
- >>339
int Min, Max; void minmax(int x, int y, int z); void minmax(int x, int y, int z){ int min=x, max=x; if(min>y) min=y; if(min>z) min=z; if(max<y) max=y; if(max<z) max=z; Min=min; Max=max; }
- 341 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 20:32:47 ]
- >>325
キュー blackapples.web.fc2.com/i/cmemo/src/que.txt スタック blackapples.web.fc2.com/i/cmemo/src/stack.txt
- 342 名前:デフォルトの名無しさん [2008/06/01(日) 21:22:42 ]
- test
- 343 名前:デフォルトの名無しさん [2008/06/01(日) 22:03:33 ]
- >>174です。
大事なとこが抜けてました。 成績データレコード struct PERSONAL_REC { unsigned char number; (クラス番号) unsigned char reserve[3]; (予備) unsigned char name[80]; short kokugo; short sansuu; }; 成績集計レコード struct CLASS_REC { unsigned char number; (クラス番号) unsigned char reserve[3]; (予備) short kokugo; short sansuu; }; を使うということです! どなたか明日のお昼までにお願いします! m(__)mm(__)m
- 344 名前:側近中の側近 ◆0351148456 [2008/06/01(日) 22:11:36 ]
- >>174
(っ´▽`)っ ヒント:qsort
- 345 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 22:16:18 ]
- >>343
pc11.2ch.net/test/read.cgi/tech/1180856695/945 たまたま同じ質問してる人がいるからそっちの結果を見てみたら?
- 346 名前:デフォルトの名無しさん [2008/06/01(日) 22:22:11 ]
- >>345
結果出てないんです。 3日間考えたけどわからないんです…。
- 347 名前:デフォルトの名無しさん [2008/06/01(日) 22:31:23 ]
-
【質問テンプレ】 [1] 授業単元: CSVファイルをきれいに表示するツールを作りたい [2] 問題文(含コード&リンク):まずはオープンダイアログを作りたい [3] 環境 [3.1] OS: Windows Vista Home Basic [3.2] コンパイラ名とバージョン: VC++.net 2003 [3.3] 言語: C++ [4] 期限: 2008年6月3 [5] その他の制限: 以下の分でビルドエラーがでます private: System::Void file_open_Click(System::Object * sender, System::EventArgs * e) { this->file_open->Click += new System::EventHandler(this, file_open_Click); if(openFileDialog1->ShowDialog() == DialogResult::OK) { System::IO::StreamReader * sr = new System::IO::StreamReader(openFileDialog1->FileName); MessageBox::Show(sr->ReadToEnd()); sr->Close(); }
- 348 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 22:43:14 ]
- マルチする奴は消えろ
- 349 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 22:50:43 ]
- すいません、>>252 >>265 お願いしますm(_ _)m
- 350 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 22:51:55 ]
- >>340
ありがとうございます
- 351 名前:側近中の側近 ◆0351148456 [2008/06/01(日) 22:58:04 ]
- >>174
(っ´▽`)っ 入力の条件が書かれてないから適当に。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6762.txt
- 352 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 23:01:23 ]
- [1] 授業単元:情報処理
[2] 問題文(含コード&リンク):ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6763.txt [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン:LSI-C86 [3.3] 言語: C [4] 期限: 特に無し [5] その他の制限: if文とswitch文まで習いました。よろしくお願いします。
- 353 名前:174 [2008/06/01(日) 23:13:49 ]
- >>351
ありがとうございます!!!!!!! 明日までに自分で解析できるように頑張ります!
- 354 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 23:19:43 ]
- >>352
maという、変数を、チャル型に、して、『ma=’−’;』のように、囲んで、 テレビに、出すときは、%cに、してみては、いかがでしょう??
- 355 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 23:27:24 ]
- >>352
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6764.txt
- 356 名前:352 mailto:sage [2008/06/01(日) 23:30:18 ]
- >>354-355
アドバイス、ありがとうございます。チャル型というのは、まだ習っていません・・・。 それを使わないとしたら、if型でまた分けるのでしょうか。
- 357 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 23:33:28 ]
- キャラ型(char型)をチャルってのは・・・w
- 358 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 23:36:07 ]
- たまにチャーと言ってしまいます。
- 359 名前:デフォルトの名無しさん [2008/06/01(日) 23:38:56 ]
- ノッってるときはカールって言ってる
- 360 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 23:39:46 ]
- >>352
#include <stdio.h> int main(void) { int score; printf("点数を入力してください:"); scanf("%d", &score); if(score > 100) printf("評価できません。\n"); else if(score == 100) printf("評価はA+です。\n"); else if(score < 60) printf("評価はFです。\n"); else { switch(score/10) { case 9: printf("評価はA"); break; case 8: printf("評価はB"); break; case 7: printf("評価はC"); break; case 6: printf("評価はD"); break; } switch(score%10) { case 9: case 8: case 7: printf("+"); break; case 0: case 1: case 2: case 3: printf("-"); break; } printf("です。\n"); } return(0); }
- 361 名前:352 mailto:sage [2008/06/01(日) 23:44:43 ]
- >>360
おおおおお!!!!ありがとうございます!!
- 362 名前:347 [2008/06/02(月) 00:30:24 ]
- 意味不明な質問してしまって、すみません・・・
- 363 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 00:50:38 ]
- >>362
なんかしらんけどエラーメッセージ貼ってみたら?
- 364 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 06:16:33 ]
- いやソースをよこせ
- 365 名前: ◆tr.t4dJfuU mailto:sage [2008/06/02(月) 09:12:24 ]
- >>332
大変ありがとうございました。
- 366 名前:デフォルトの名無しさん [2008/06/02(月) 10:27:30 ]
- [1] 授業単元:情報処理
[2] 問題文(含コード&リンク)kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6765.txt [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン:VC9.0 [3.3] 言語: C [4] 期限: 特に無し [5] その他の制限: ファイルの入出力あたりがどうもこんがらがってしまって
- 367 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 11:59:01 ]
- >>366
難しく考えることないでしょ。 入力ファイルオープン 全部を一旦エリアAに読み込み(この段階で長さも判明) 入力ファイルクローズ 同じ長さのエリアBをもう1つ確保、エリアA->エリアBへ判定転送処理を行う。 出力ファイルオープン 完成したエリアBを書き込み 出力ファイルクローズ
- 368 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 12:10:56 ]
- >>367
ファイルサイズが大きいとアレじゃない? fseekとか使ってオンメモリで処理できるサイズのバッファごとに反転させるほうがよさげ。
- 369 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 12:12:49 ]
- と思ったけど問題主の雰囲気からいってそれで十分かもだったorz
おさわがせしますた。
- 370 名前:367 mailto:sage [2008/06/02(月) 12:15:41 ]
- >>368
でもPCのメモリでも足らないとなると 今度は入力側と出力側の両方のファイルを開けておいて 入力側はシークで最後までファイルポインタを移動して 読み込み->判定・加工処理->出力側へ・・・
- 371 名前:デフォルトの名無しさん [2008/06/02(月) 12:26:49 ]
- [1] 授業単元:情報実験
[2] 問題文(含コード&リンク): ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6767.txt [3] 環境 [3.1] OS: Mac OS X [3.2] コンパイラ名とバージョン:gcc [3.3] 言語: C [4] 期限: 特に無し [5] その他の制限:ヘッダはstdio.hとstdlib.hしか扱ってないのでこれらのみでお願いします
- 372 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 12:29:59 ]
- いきなり答えのサイト貼るのはありかな?
www.geocities.jp/ky_webid/algorithm/011.html
- 373 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 13:01:39 ]
- >>366
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6768.txt
- 374 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 13:03:09 ]
- >>372
構造体が違うんで完璧な答えにはならんけど、ヒントにはなる。
- 375 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 13:14:53 ]
- まあリスト(線、循環、双方向)とか2分探索木とかってネットで探せば
いくらでもサンプルはでてくるからな〜
- 376 名前:368 mailto:sage [2008/06/02(月) 13:33:29 ]
- >>370
両方開きっぱでいいと思うよっていうか、いいたかったことを>>373が実装したw
- 377 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 13:53:46 ]
- >>373の実装だとちょっとおかしくね?
でかいファイルを扱うことを想定してるのであればmallocでわざわざワークを 確保しなくてもリードしてそのまま書き込めばいい。 小さいファイルを扱うことを想定してるのだと読んだあとわざわざ入力側を 開けっ放しにする必要があるのかどうか・・・
- 378 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 13:56:14 ]
- [1] 授業単元:プログラミング
[2] 問題文:スタック,キューの理解 リスト構造によるスタックとキューそれぞれについて,格納されている 要素数を取得する方法を利点,欠点を交えて説明せよ。 また,取得した要素数の用途について考察せよ。 [3]言語:C [4] 期限:2008年6月5日まで プログラム組む問題ではないですが、調べてもわからなかったのでお願いします。
- 379 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 13:58:46 ]
- あれホント。よく見てなかったよー。
ある程度の大きさのバッファに読み込んで、それを逆にして出力を 繰り返してるものだと思い込んでた。 1バイトずつ読んで書いてより、ある程度のバッファ単位で処理したほうが 多分速くなると思うんだ。HDDのキャッシュ的に。
- 380 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 14:04:50 ]
- >>378
www.mm.ics.saitama-u.ac.jp/~ohsawa/Lect/dstr/04.pdf スタックというのはアセンブラなんかでcall命令を使う際に レジスタの内容や戻り先アドレスを格納するのに使ったりしますね。 www.geocities.jp/naosacra/mops/forbeginner/8.html これをリスト構造でってのは使うことあるのかな? アセンブラなんかだとスタックポインタというのがあってそれで管理してるんですけどね。 キューというのはメッセージキューなんかで使われるものです。 FIFOとかいう言葉も関連します。 まあこれはリスト構造を使って実現することが多いですけど。
- 381 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 14:05:00 ]
- スタックとキューの実装方法によらない?
リスト構造であるという点で同じであれば何か小細工をしない限り 要素数を数えるコストは同じだと思うので、利点欠点は無いと思う。 用途は制限かけたいときに使えるとかじゃないの?
- 382 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 14:06:25 ]
- >>379
windowsの場合だと一度読みに行くとキャッシュにあがってるから 1バイト読みでも問題ないんじゃないかな? ただファイルの最終から読む場合はキャッシュの扱いはわからんw
- 383 名前:373 mailto:sage [2008/06/02(月) 14:28:52 ]
- >>366
言われたとおりバッファ消しました kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6769.txt
- 384 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 14:41:52 ]
- >>371 をやり始めたんだが、なんかその補足に書かれていることから
すでに間違っているが・・・とりあえず適当に書き換えておきまつ
- 385 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 15:45:44 ]
- 判定処理もないじゃん。
- 386 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 15:50:46 ]
- >>366
>その際、逆順バイト列内に0x54,0x450x53,0x54があればファイルの先頭からのオフセットを表示する >また、ファイル長は不定とする これってさ >その際、逆順バイト列内に0x54,0x45,0x53,0x54があればファイルの先頭からのオフセットを表示する >また、ファイル長は不定とする ということでOK? 後オフセットを表示するってのは標準出力でいいのかな?
- 387 名前:デフォルトの名無しさん [2008/06/02(月) 15:52:50 ]
- [1] 授業単元: プログラミング
[2] 問題文:簡単なアニメーションを考案して作成せよ(できればマウスやキーイベントも考慮) [3] 環境 [3.1] OS: Windows XP [3.2] コンパイラ名とバージョン: gcc [3.3] 言語:C [4] 期限:2008年6月2日24時まで まったくわかんねー\(^o^)/
- 388 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 15:54:35 ]
- >>387
なんだよ、その漠然とした例題はw
- 389 名前:デフォルトの名無しさん [2008/06/02(月) 15:58:43 ]
- 自分でやれ
- 390 名前:デフォルトの名無しさん [2008/06/02(月) 16:00:13 ]
- >>388
#include <math.h> #include <GL/glut.h> #include <time.h> float R_ball=0.1, x_ball=0.0, y_ball=0.5; float dx, dy; float g=0.01, elasticity_x=0.98, elasticity_y=0.98; void gdisc(float xc,float yc, float r){ float x, y, dt; int i,N=60; dt=2.*M_PI/(float)N; glBegin(GL_POLYGON); for(i=0; i<N; i++){ x=xc+r*cos((float)i*dt); y=yc+r*sin((float)i*dt); glVertex2d(x,y); } glEnd(); } void myDisplay(void){ glClear(GL_COLOR_BUFFER_BIT); glColor3f(0., 0., 0.); gdisc(x_ball,y_ball,R_ball); glutSwapBuffers(); } void myIdle(){ x_ball=x_ball+dx;
- 391 名前:デフォルトの名無しさん [2008/06/02(月) 16:01:12 ]
- if(x_ball<=-1.+R_ball){
x_ball=-1+R_ball; dx=-dx*elasticity_x; } else if (x_ball>=1.-R_ball){ x_ball=1.-R_ball; dx=-dx*elasticity_x; } y_ball=y_ball+dy; if(y_ball<=-1.+R_ball){ y_ball=-1.+R_ball; dy=-dy*elasticity_y; dx*=0.99; } else if (y_ball>=1.-R_ball){ y_ball=1.-R_ball; dy=-dy*elasticity_y; dx*=0.99; } dy=dy-g; Sleep(1); glutPostRedisplay(); } int main(int argc, char *argv[]){ glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA); glutCreateWindow("Ball");
- 392 名前:デフォルトの名無しさん [2008/06/02(月) 16:01:50 ]
- glClearColor(1.0, 1.0, 1.0, 0.0);
glutDisplayFunc(myDisplay); glutIdleFunc(myIdle); srand(time(NULL)); dx=0.01*(rand()%5+1); dy=0.01*(rand()%5+1); glutMainLoop(); return 0; } 自力でここまでやりましたがこれだと駄目と言われたので これに何らかのキーボードイベントを入れたいわけです で、そのキーボードイベントの入れ方がわかんねー\(^o^)/ というわけです。
- 393 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 16:02:13 ]
- ソース貼るならできればテキストファイルをどこかロダにあげて
そのリンクを・・・w
- 394 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 16:03:55 ]
- >>392
pc11.2ch.net/test/read.cgi/tech/1183861564/83 なんてどう?
- 395 名前:デフォルトの名無しさん [2008/06/02(月) 16:06:37 ]
- アニメーション
1 アニメーション ピクセルの色を制御することができれば、図形を自由自在に表現することができるようになる。更に、図形の 位置、形状または色を徐々に変化させて図面を更新することにより、アニメーションの実現が可能である。そのポ イントは 1. 図形の位置、形状または色を少し変化させる 2. 変化した図面を再描画する 3. 手順1 へ戻る の3 点にある。「繰返して図形に変化を与える」には関数 void glutIdleFunc(void (*f)(void)) を用いて「変化を与える」関数fを指定する。指定された関数fは繰り返して呼び出されるため、その中に図形 の座標、形状、色を変化する文があれば、定期的に図形に変化を与えることになる。更に、変化した場合再描画 する関数 void glutPostRedisplay() を呼び出すことで図面を更新することを指示する。 関数glutIdleFunc で指定した関数f はイベントが起きていない限り繰返して呼び出される。図面更新の時間間 隔の調整はSleep(int seconds) 関数が有効だが、繰り返しの時間間隔はやはりCPU の性能やコンピュータに与え られているタスクにより異なる。CPU の性能などによらずに時間間隔を制御したい場合は、関数 void glutTimerFunc(unsigned int msecs, void (*f)(int value), int value) を使うことが可能。この関数は指定されたミリ秒数msecs の後に関数f(int value) を1 回呼び出す。また、呼び出 しを区別するために、与えられた整数value を関数f に渡す。関数glutTimerFunc を用いてアニメをつくるには、 繰り返しを実現するために関数f(int value) の中で最後にglutTimerFunc を再度呼び出すように指示しなければ ならない(glutIdleFunc を用いる場合は不要)。 以下は例を用いてglutIdleFunc の使い方を説明する。ウインドウの中で横を移動し、境界に当たると移動方向 を逆転するボールのアニメーションを考えよ。このアニメは塗りつぶした円形の描画と上記の仕組みを用いて実 現でき、プログラムBall.c を用いて簡単に説明する。
- 396 名前:デフォルトの名無しさん [2008/06/02(月) 16:06:56 ]
- >>394
たしかに動くけどw
- 397 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 16:09:58 ]
- int main () {
for(;;) { :処理 i f (Esc押されたら) break; } return 0; } これでいいんじゃね(>ω< =3
- 398 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 16:11:35 ]
- >>397
それじゃあ無理だろw ソース全部貼ってるのが主だとすればgl使ったものなので
- 399 名前:デフォルトの名無しさん [2008/06/02(月) 16:16:35 ]
- >>398
glです。 できれば何かのキーを押したら重力がなくなるとかのイベントがいいです
- 400 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 16:16:37 ]
- >>341
ありがとうございます!
- 401 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 16:25:02 ]
- >>387>>390-392>>395
のようにじゃなくてソースをどこかに上げたほうがいいと思うぞw >>1にロダも貼ってあるし
- 402 名前:デフォルトの名無しさん [2008/06/02(月) 16:32:31 ]
- void myKeyboard(unsigned char key, int x, int y){
switch(key){ case 'a': g=0.; glutPostRedisplay(); break; 課題のサンプルがあってこんなのを入力したらなんかできましたw ありがとうございますw
- 403 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 16:35:19 ]
- >>402
>>387なのか? 名前欄に質問した際のレス番号いれてくれないとわかりにくいぜ。
- 404 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 19:12:12 ]
- [1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6772.txt [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン:Vidual Studio2003 [3.3] 言語:C++ [4] 期限:今日の23時59分59秒まで [5] その他の制限: 繰り返し関数return使えば問題ないと思われます。よろしくお願いします
- 405 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 19:16:40 ]
- >>404
www.geocities.jp/supermisosan/newtonhou.html
- 406 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 19:16:56 ]
- >>292>>334のものですが過去レポという最強のものを手に入れたのですがそれがC言語なのです。
出来れば今日中にお願いしたいのですが、↓のものをC++に変換して頂けないでしょうか? #include<stdio.h> #include<stdlib.h> #include <math.h> double markov(int K,double alfa,double *a_coeff,double *mem); void main(void){ int i; double *a_coeff,*mem,alfa,*x; FILE *fp; int N=1024,K=1; char *file_name="output.dat"; if((fp=fopen(file_name,"w"))==NULL){ printf("%s can't open",file_name); exit(-1); } x=new double [N]; a_coeff=new double [K]; mem=new double [K]; for(i=0;i<K;i++){ mem[i]=0.; } a_coeff[0]=0.1; alfa=sqrt(1.-a_coeff[0]*a_coeff[0]); for(i=0;i<N;i++){ x[i]=markov(K,alfa,a_coeff,mem);
- 407 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 19:17:20 ]
- if(i!=0){
printf("%d\t%f\n",i,x[i]); fprintf(fp,"%d\t%f\n",i,x[i]);} } printf("\n"); fprintf(fp,"\n"); delete[] mem; delete[] a_coeff; delete[] x; fclose(fp); } double markov(int K,double alfa,double *a_coeff,double *mem) { int i; double u1,u2,g,x=0.,PI=3.1415926; u1=(1./(RAND_MAX+1.))*rand(); u2=(1./(RAND_MAX+1.))*rand(); g=sqrt(-2.*log(1-u1))*cos(2.*PI*u2); for(i=K-1;i>=0;i--){ x+=a_coeff[i]*(mem[i]); if(i-1>=0) mem[i]=mem[i-1]; } mem[0]=alfa*g-x; return (mem[0]); }
- 408 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 19:19:07 ]
- >>405
これみても分からない俺ガイル。。 タスケテ('A`)
- 409 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 19:22:35 ]
- >>406
最初の三行を #include <cstdio> #include <cstdlib> #include <cmath> using namespace std; に変えて、 void mainの行を int main() { に変えればOK。
- 410 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 19:27:21 ]
- >>409
即レスありがとうございます!大変助かります
- 411 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 19:34:04 ]
- >>410
>409でいいのか? 本当にいいのか?w
- 412 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 19:41:53 ]
- >>411
どうなんでしょうか?ww >>409=>>411ですか?
- 413 名前:411 mailto:sage [2008/06/02(月) 19:48:07 ]
- 要は、>406の要求する「C++」が何を指しているのか、だな。
C++としてコンパイルできるだけでいいのなら、>409でいい。 iostreamを使わないといけないなら入出力周りを作り直す必要がある。 まぁまさか、この程度でオブジェクト嗜好に則ってクラス設計しろってことはないだろうけれど。
- 414 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 19:55:19 ]
- >>413
なんか難しいんですけど、iostreamを使ったやり方だとかなり変更が必要ってことですか? 出来ればiostreamの方がいいのですが。
- 415 名前:371 mailto:sage [2008/06/02(月) 19:59:19 ]
- >>372を見ましたがよくわかりませんでした…。
各関数単体でもよいのでよろしくお願いします。
- 416 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 20:00:07 ]
- 過去レポを手に入れたが理解できず、C++にコンバート依頼まで
するような相手にみんな親切だな。 他人のソースコードを許可無くうpしてんのかなあ
- 417 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 20:01:41 ]
- >>415
/* 循環リストに要素を追加する */ void addlist(void) /* 循環リストから要素を削除する */ void deletelist(void) /* 循環リストの内容を表示する */ void showlist(void) という関数が記載されていたが、ほしいのはこれじゃないってことー?
- 418 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 20:02:37 ]
- >>414
つーか、>406もC++だね。古い流儀で書かれているけど。 寧ろ、new/deleteを使っているからCじゃコンパイルできない。 いい練習だと思って、自分でiostream版に書き換えたら?
- 419 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 20:36:46 ]
- >>418
ちょっと考えましたけど自分にはちょっと・・・・。 甘えてばっかりいたらいけないと思いますが、提出期限が明日で時間的に厳しいので教えていただけるとうれしいです。
- 420 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 20:52:26 ]
- >>419
提出期限がよくわからない。 結局いつが期限なの?
- 421 名前:415 mailto:sage [2008/06/02(月) 20:53:44 ]
- >>417
欲しいのは大体それと同じなんですが、 例えばaddlistなら追加するデータがint型の整数じゃなくてData型の整数と文字じゃないですか? それをどうやって渡すのかよくわからなくて・・・
- 422 名前:デフォルトの名無しさん [2008/06/02(月) 20:55:02 ]
- すいません >>269言語はC++でコンパイラはVisual Stadio2003です。宜しくお願いします。
- 423 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 20:56:12 ]
- >>420
すいません、提出期限は明日です。 期限: 2008年6月1日24:00だったのは他のレポートもありましてそれの兼ね合いからです。
- 424 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 20:57:04 ]
- >>421
addlistのなかで整数と文字を入力させて、それをData構造体に放り込めばよいのでは?
- 425 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 21:04:39 ]
- >>424
いやそんなことしなくても>>372のサンプルで>>421で言ってることに十分対応できる。 >>371の実行例が最初よくわからんかったけど (0) Insert a Node (1) Delete a Node (2) View the List (3) exit : でコマンド待ち 0でエンターすると No.: Name: 入力になって終わると (0) Insert a Node (1) Delete a Node (2) View the List (3) exit : を再度表示なので
- 426 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 21:07:50 ]
- >>423
明日の何時なの?ここでは「自分にはちょっと・・・・」とか言ってるのにさ、 自信満々に「作ってきましたあ!」って言って丸パクリの過去レポ出しちゃうの? 俺がその立場なら「…え?これで、、、マルコフ情報源、生成できる?ねぇ?」 とかカマかけられただけでションベン漏らすね。間違いない。 そんなこと想像したらもう今日寝れねえな。
- 427 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 21:08:52 ]
- >>419
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6773.txt
- 428 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 21:13:14 ]
- >>427
ちょっと見てみたんですけど自分には難しすぎますので教授を 納得させられるようなコメントを記述してもらえませんか? 提出が明日なので何とかお願いします。
- 429 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 21:17:39 ]
- >>371
作りかけ kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6774.txt addlistのところは参考程度にいじった
- 430 名前:427 mailto:sage [2008/06/02(月) 21:20:13 ]
- >>428
俺はC++に直しただけであってマルコフなんたらってのは知らん
- 431 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 21:22:06 ]
- しかし、勉強になるし面白いなw
社会に出たらほとんど組まないであろうニュートン法のプログラムとかw さすがに微分積分とか苦手なんで無理w
|

|