1 名前:デフォルトの名無しさん [2008/10/01(水) 07:28:51 BE:151474728-PLT(18888)] あなたが解けない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++の宿題を片付けます 115代目 pc11.2ch.net/test/read.cgi/tech/1217741118/
549 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 20:26:48 ] >>541 問1 最後のfor内を次のようにする printf("%+d", pwork->coef); if(pwork->degree_of_x) printf("x^{%d}", pwork->degree_of_x); 問2 printf("Input the coefficient: ");の前にpmx->next = poly;を入れる poly = pmx;の後ろのpmx->next = poly;を消す
550 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 21:22:28 ] [1] 授業単元: 信号処理 [2] 問題文(含コード&リンク): @ 209921行5列の2次元配列のファイルを読み込みなさい。ファイルの値を1024個で区切り1024個中の値の平均値と平均値から突飛している値=最大値を求めなさい。最大値をmax1、max2、max3、・・・・として最大値は1個とは限らないこととする。 また1024個の最大値を求め終わったら、次の1024個の最大値を求めなさい。 この作業をファイルの最後の2097152個目の値までやりなさい。 ただし、ファイルのサイズは17.2MBととし十分なメモリ領域を確保すること。 ヒント:malloc関数 ※ファイル↓(17MBもあるのでDLするのに時間がかかるかもしれません。お手数かけます。) kissho6.xii.jp/14/src/1yon14506.zip.html DLKey:data A 求めた最大値を2次元配列でpeak.txtに出力しなさい。1行目を最初の1024個中で求めた最大値を出力させ、2行目からは次の1024個中から求めた最大値を出力させなさい。 同様に3行目、4行目、・・・と順次最大値を出力させなさい。 例:peak.txt → 472 234 800 578 ・・・・ 677 347 554 532 ・・・・ 843 637 347 551 ・・・・ ・ ・ ・ [3] 環境 [3.1] OS: Windows XP [3.2] コンパイラ名とバージョン: LSI−86 [3.3] 言語: C [4] 期限: 2008年10月23日午後3時 [5] その他の制限: 特になし >>500 gccでコンパイルしてみたんですが、うまくいきませんでした。 エラー表示 → main.c:56: undefined reference to`_nao_DList_t_ctor' よろしくお願いします。
551 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 21:25:05 ] >>497 >>550 問題文修正しました [1] 授業単元: 信号処理 [2] 問題文(含コード&リンク): @ 209921行5列の2次元配列のファイルを読み込みなさい。ファイルの値を1024個で区切り1024個中の値の平均値と平均値から突飛している値=最大値を求めなさい。最大値をmax1、max2、max3、・・・・として最大値は1個とは限らないこととする。 また1024個の最大値を求め終わったら、次の1024個の最大値を求めなさい。 この作業をファイルの最後の2097152個目の値までやりなさい。 ただし、ファイルのサイズは17.2MBととし十分なメモリ領域を確保すること。 ヒント:malloc関数 ※ファイル↓(17MBもあるのでDLするのに時間がかかるかもしれません。お手数かけます。) kissho6.xii.jp/14/src/1yon14506.zip.html DLKey:data A 求めた最大値を2次元配列でpeak.txtに出力しなさい。1行目を最初の1024個中で求めた最大値を出力させ、2行目からは次の1024個中から求めた最大値を出力させなさい。 同様に3行目、4行目、・・・と順次最大値を出力させなさい。 例:peak.txt → 472 234 800 578 ・・・・ 677 347 554 532 ・・・・ 843 637 347 551 ・・・・ ・ ・ ・ [3] 環境 [3.1] OS: Windows XP [3.2] コンパイラ名とバージョン: gcc または LSI−86 [3.3] 言語: C [4] 期限: 2008年10月23日午後3時 [5] その他の制限: 特になし >>500 gccでコンパイルしてみたんですが、うまくいきませんでした。 エラー表示 → main.c:56: undefined reference to`_nao_DList_t_ctor' よろしくお願いします。
552 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 21:31:09 ] [1] 授業単元: C++ [2] 問題文(含コード&リンク): 標準入力から山の名前とその標高を入力し、標高の高い順にソートして、山の名前を表示するプログラムを作れ。 STLのpairを使うこと。 [3] 環境 [3.1] OS: Windows XP [3.2] コンパイラ名とバージョン: VC [3.3] 言語: C++ [4] 期限: 明日 [5] その他の制限: 特になし
553 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 21:44:28 ] [1] 授業単元:C言語演習 [2] 問題文(含コード&リンク): void desc_array(int n, int *array) { int i; for (i = n-1; i >= 0; i--) array[i] = i; } 降順にソートされた配列を作成したいが、上の関数では昇順に配列が作成されてしまうので誤りである。 そこで上の関数を正しい形に修正し、ディスプレイに表示し実際に降順となっていることを確かめられるプログラムを作れ。 (降順というのはたとえば、a[0] = 0, a[1] = -1, a[2]= -2, ..., a[n-1] = -(n-1)となっていればいい。) [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 10月23日 [5] その他の制限:無し お願いします。
554 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 21:56:59 ] >>551 あれ、だめだったのか。 Terminalから、makeするだけでいいはずなんだけどconfigure作ってなかったからかもしれないなぁ。 READMEファイルでも読んで、ダメだったらどうしよう。 kissho1.xii.jp/7/src/7jyou16183.zip.html DLkey : foo 処理の効率化とかヘッダファイルに使いかたとか書いといたので、うまくいかなかったらソース自体変更してみてね。
555 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 22:17:30 ] >>553 array[i] = i; ↓ array[i] = -i;
556 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 22:20:37 ] >>554 :set backupdir=/tmp とでもするといいよ。ってemacsでも~作るんだったらそっちはわかんね><
557 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 22:29:17 ] >>552 こんなん? kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7824.txt
558 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 22:49:48 ] >>556 ありがたく追加させていただきました。 基本viを使っています。たまにvimになったり、geditになったりもしますが、emacsは使いません。 でも、S式っていいよね、とか言ってみるてst。
559 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 23:22:08 ] >>551 これでいい? kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7827.txt
560 名前:デフォルトの名無しさん [2008/10/22(水) 23:31:34 ] [1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク):x^3-7x^2+16x-10=0 の解をニュートン法を用いて求めるプログラムを作りなさい。 [3] 環境 OS: Windows [4] 期限: 2008.10.24 お願いします。
561 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 23:47:43 ] >>560 はい。 #include<stdio.h> #include<math.h> #define EPS 0.0001 //x^3-7x^2+16x-10 double f(double x){ return x*(x*(x-7)+16)-10; } //3x^2-14x+16 double df(double x){ return x*(3*x-14)+16; } int main(){ double x,next=0; do{ x=next; next = x - f(x)/df(x); }while(fabs(next-x) > EPS*fabs(x)); printf("%f\n",next); }
562 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 23:51:22 ] [1] 授業単元: C [2] 問題文(含コード&リンク): プログラムの冒頭で #define YEAR 2005 #define MONTH 12 #define DATE 24 #define HOUR 00 #define MIN 00 #define SEC 00 #define STEP 20 と定義して、STEP秒毎の西暦、月、日、時、分、秒を99STEP分出力する関数を作成せよ。 「出力例」 01:2005/12/24/00:00:00 02:2005/12/24/00:00:20 03:2005/12/24/00:00:40 04:2005/12/24/00:01:00 ・ ・ ・ 99: [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: borland c++5.5 [3.3] 言語: C [4] 期限: ([2008年10月24日まで] [5] その他の制限: なし 以上よろしくお願いします。
563 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 00:04:47 ] >>555 ありがとう。作成した配列をディスプレイに表示する所が分からないのですが、 printf内にどうやってdesc_arrayで作成したarray[i] = iの部分を書けばいいのでしょうか?
564 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 00:06:39 ] printf("array[%d] = %d,i,srray[i])
565 名前:デフォルトの名無しさん [2008/10/23(木) 00:11:11 ] >>561 ありがとうございます。
566 名前:デフォルトの名無しさん [2008/10/23(木) 00:19:41 ] すいません>>560 ですが コンパイルしようとすると bccは内部コマンド、外部コマンド 操作可能なプログラムコマンドまたはバッチファイルとして認識しません。 と出るんですが、どうすればいいのですか??
567 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 00:25:41 ] bcc32じゃないの? つーかそもそもコンパイラはいってるの?
568 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 00:26:32 ] 宿題以前だろ…
569 名前:デフォルトの名無しさん [2008/10/23(木) 00:38:00 ] >>567 >>568 すいませんでした・・・ 解決しました。
570 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 00:40:20 ] >>562 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7829.c
571 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 00:42:54 ] >>562 #include<stdio.h> #include<stdlib.h> #include<time.h> #define YEAR 2005 #define MONTH 12 #define DATE 24 #define HOUR 00 #define MIN 00 #define SEC 00 #define STEP 160000 int main(){ int i; char buf[1024]; struct tm date; time_t now; date.tm_year = YEAR - 1900; date.tm_mon = MONTH - 1; date.tm_mday = DATE; date.tm_hour = HOUR; date.tm_min = MIN; date.tm_sec = SEC; for(i=1;i<=99;i++){ if((now = mktime(&date)) == -1) return 1; strftime(buf,sizeof(buf),"%Y/%m/%d/%X",&date); printf("%02d:%s\n",i,buf); date.tm_sec += STEP; } }
572 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 01:17:36 ] [1] 授業単元:C [2] 問題文(含コード&リンク):3つの整数を入力し,それらを比較して,大,中,小を判定しなさい. 3つの整数が同じ値の場合,あるいは2つの整数が同じ値の場合でも 正確に判定ができるように対応すること. 全ての条件を場合分けするプログラムは不可とする. [3] 環境 [3.1] OS: Windows Vista [3.2] コンパイラ名とバージョン:gcc [3.3] 言語: C [4] 期限: 10月30日13:00 [5] その他の制限: 特になし お願いします
573 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 01:18:46 ] 下記のように出力するプログラムをprintf,getsを用いて作成せよ. ./a.exe 学籍番号は? XXXXXXXXX 名前は? AAAA BBBB 学籍番号: XXXXXXXXX 名前 :AAAA BBBB
574 名前:573 mailto:sage [2008/10/23(木) 01:21:05 ] >>573 の続き ↓じゃ出力のAAAAが出ないのですがどうしたらいいですか? #include<stdio.h> int main() { char st1[80]; char st2[80]; printf("学籍番号は?"); scanf("%s",st1); gets(st2); printf("名前は?"); scanf("%s",st2); gets(st2); printf("学籍番号:%s\n",st1); printf(" 名前 :%s\n",st2); }
575 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 01:23:25 ] >>574 scanfいらない
576 名前:573 mailto:sage [2008/10/23(木) 01:25:35 ] >>573 の補足 学籍番号は? XXXXXXXXX 補足→ XXXXXXXXXはキーボードで打ちます 名前は? AAAA BBBB 補足→ AAAA BBBBはキーボードで打ちます
577 名前:573 mailto:sage [2008/10/23(木) 01:27:02 ] >>575 即レスありです。 両方ともいらないですか?
578 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 01:35:17 ] >>577 両方いらないです。
579 名前:573 mailto:sage [2008/10/23(木) 01:41:48 ] 名前はちゃんと出ましたが学籍番号がちゃんと出ません><
580 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 02:02:51 ] >>579 記載ミスだと思ってスルーしてましたが 1つめのgetsの引数は st1 にしていますよね?
581 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 02:03:35 ] >>574 #include<stdio.h> int main() { char st1[80]; char st2[80]; printf("学籍番号は?"); gets(st1); printf("名前は?"); gets(st2); printf("学籍番号:%s\n",st1); printf(" 名前 :%s\n",st2); return 0; }
582 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 04:59:48 ] >>572 #include<stdio.h> int main(void){ int a, b, c, flag = 0; printf("Input Number (a,b,c) : "); scanf("%d,%d,%d", &a, &b, &c); if(a >= b) flag |= 0x01; if(b >= c) flag |= 0x02; if(c >= a) flag |= 0x04; printf("大中小\n"); switch(flag){ case 0x01: printf("%2d%2d%2d\n", a, c, b); break; case 0x02: printf("%2d%2d%2d\n", b, a, c); break; case 0x03: printf("%2d%2d%2d\n", a, b, c); break; case 0x04: printf("%2d%2d%2d\n", c, b, a); break; case 0x05: printf("%2d%2d%2d\n", c, a, b); break; default: printf("%2d%2d%2d\n", b, c, a); } return 0; }
583 名前:573 mailto:sage [2008/10/23(木) 08:21:48 ] >>581 ありがとうございます。
584 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 09:54:51 ] >>564 #include<stdio.h> void desc_array(int n, int *array) { int i; for (i = n-1; i >= 0; i--) array[i] = -i; } int main() { int n,i; int *array; n =8; desc_array(n,array); printf("array[%d] = %d",i,array[i]); return 0; } mainの中のどこが違うんでしょうか?セグメントエラーを吐きます。
585 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 10:00:08 ] >>554 >>556 ありがとうございました。うまくコンパイルすることができました。 本当に助かりました。m(__)m >>559 シンプルでわかりやすいプログラムありがとございます。 まだちゃんと解読してないんですけど、peak.txtの出力した最大値が 1024個中5個だけってことなんでしょうか? 一応、求めた平均値より突飛して高い値(最大値とする) をpeak.txtに出力したいんですけど・・・最大値の数は特に指定はないです。
586 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 10:11:17 ] >>584 main() 無効なアドレスをさしている変数 array たぶんやりたいのは、 #include <stdlib.h>を、#include <stdio.h>のしたあたりに追加。 n = 8;の後に、array = (int *)malloc(sizeof(int) * n); if ( array == NULL ) { fprintf(stderr, "Error : Bad alloc !\n"); exit(8); } その後、desc_array(n, array); で、arrayを使わなくなったら、free(array);
587 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 10:17:06 ] MCIでデータ1データ2データ3を同時に鳴らした時、 コールバックでどのデータが終了したか どうやって判断したらいいですか?
588 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 10:47:44 ] [1] 授業単元: 情報工学演習 [2] 問題文(含コード&リンク): 数独のような問題を解くプログラムと、ポーカーでの強さを判定するプログラム 詳細は下のテキストファイルに書いてあります kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7830.txt [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 10月24日13時まで [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) main関数は必ずテキストファイルに書いてあるもののままにしてください。 それ以外の部分もなるべくそのままでお願いします。 また、なるべく理解したうえで少し自分なりに手直したいので、 どんな手順で判定を行っているのかなど、軽く説明していただけると助かります。 できれば今日中にお願いします。急なお願いで申し訳ありません。
589 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 10:49:54 ] >>584 int *array; を int array[8]; にしたらいい
590 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 11:37:57 ] >>584 そもそも i に値がはいってないな。
591 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 12:22:37 ] >>585 なんか5個だと思い込んでたw てか最大値って言葉わかりにくいー極大値とか外れ値とかそんな感じ?? 飛び抜けて大きな値って平均値の何倍かとかで調べたいんですか? よくわかんないので標準偏差の何倍かで調べるようにしてみました。 てかこのまえupした画像で考えると、グラフで飛び出した点を求めなきゃいけないとするといったん並べ替えるのはよくないのだろうか・・・?? kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7831.txt
592 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 12:56:53 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): ユーザから2から100までのいずれかの整数を受け取り、1からその数までの総和を計算する プログラムをfor文を使って書け。利用者が範囲外の数値を入力した場合、「値が範囲内にありません」 などのエラー表示を行え。 [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名 gcc [3.3] 言語: C [4] 期限: 2008/10/25 [5] その他の制限:まだ初めて日が浅く、習ったのはif else文やforループくらいまでです。 よろしくお願いします。
593 名前:デフォルトの名無しさん [2008/10/23(木) 13:03:19 ] 1] 授業単元:c++ builder [3] 環境 [3.1] OS:Widows XP [3.3] 言語:C++ [4] 期限:2008/10/24 [5] その他の制限:Cの基本言語程度 Memo1に60行の配列の乱数を出したのですが、そのMemo1にある60行の乱数の平均の数を Edit1に出すプログラムがどうしてもできません。 どなたか教えていただけないでしょうか。よろしくおねがいします。
594 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 13:19:31 ] [1] 授業単元:C言語 [2] 問題文(含コード&リンク):100 個の整数型配列を宣言して,各要素に2〜200 の偶数値を格納し,配列要素の 総和を求めて出力するプログラムをつくりなさい。ただし,配列への値の格納,総和の 計算ともポインタを用いて実行すること。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:08年10月24日24:00まで どうかお願いします。
595 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 13:55:57 ] >>588 問2 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7832.txt これでいい? 問題文にあった3つの動作例でしかチェックしてない。
596 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 14:07:55 ] [1] 授業単元:プログラム・C言語 [2] 問題文(含コード&リンク): 以下のようなプログラムを作成しなさい まず標準入力から、姓と名をそれぞれ別のchar配列型変数で受取る。 次に別の空のchar配列型変数に名と姓の間にスペースを挿入して格納し、表示するプログラム。 ※ヒント 空のchar配列型変数に「名」を入れる時はstrcpy()、スペースと「姓」を追加する時はstrcat()を使う とよい。 実行例 ./a family name? sato first name? zin zin sato [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名 gcc [3.3] 言語: C [4] 期限: 2008/10/25 [5] その他の制限:まだ序の口レベルです。 #include <stdlib.h>のみでお願いします。 何卒よろしくお願いします。
597 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 14:19:28 ] >>592 #include <stdio.h> int main(void) { int n, i, sum=0; printf("値を入力してください\n"); scanf("%d", &n); if(n < 2 || n > 100) { printf("値が範囲内にありません\n"); } else { for(i=1; i<=n; i++) { sum += i; } printf("総和 = %d\n", sum); } return 0; }
598 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 14:22:11 ] >>596 #include <stdio.h> #include <string.h> int main() { char family_name[16], first_name[16], name[32]; printf("family name? "); gets(family_name); printf("first_name? "); gets(first_name); strcpy(name, first_name); strcat(name, " "); strcat(name, family_name); printf("%s", name); return 0; }
599 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 14:29:38 ] >>594 #include <stdio.h> void Set(int *buf) { int i; for(i = 0; i < 100; i++) buf[i] = (i+1)*2; } int Sum(int *buf) { int i, sum = 0; for(i = 0; i < 100; i++) sum += buf[i]; return sum; } int main() { int buf[100]; Set(buf); printf("%d", Sum(buf)); return 0; }
600 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 14:40:52 ] >>595 返答ありがとうございます。 無理でしたら構いませんが、なるべく関数poker_hand内で全ての動作を 記述している形がよいので、できればその形に組みなおしていただきたいのですが とりあえず参考にしつつ自分でも作ってみておきます。 問1に関してもできればnumber_place内で全て記述している形でお願いします。 無茶な要求をしてしまって申し訳ありません。
601 名前:デフォルトの名無しさん [2008/10/23(木) 14:59:44 ] [1] 授業単元:CG(C言語使用) [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7835.zip OpenGLによるCGを用いたプログラムを、自由に設計する課題を作成。 条件として、「アニメーションが行えること」、「キーボード入力によって何らかの 操作が行えること」、「シェーディングやテクスチャマッピングを適切に使用できること」 です。前者2つとシェーディングは何とか理解出来ますが、テクスチャマッピングが 思うように設計できません。どなたか専門知識をお持ちの方、私が添付したプログラムのどの 辺にどのような関数をセットすればよいかなど、いわゆる作成方法についてご指導 お願いします。なお、テクスチャマッピングは壁を設計する予定です。 [3] 環境 [3.1] OS:WindowsXP [3.2] コンパイラ名とバージョン:Borland C++(bcc32) [3.3] 言語:C [4] 期限:2008年10月23日22時半 なお、期限については今日中としますが、今日中に良い意見が集まらなければ明日も 募集する予定です。宜しくお願いします。
602 名前:デフォルトの名無しさん [2008/10/23(木) 15:02:17 ] [1] 授業単元:C言語 [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7833.lzh ↑↑の画像の一番明るい場所を、 画像の中心を(0,0)とした座標として表示するプログラムを つくりなさい。また、その明度の値も表示するようにしなさい。 例に示した画像はjpeg形式ですが、非圧縮bmp(白黒) の場合でも可能です。 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:Visual Studio 2005 [3.3] 言語:C [4] 期限:今月中 [5] その他の制限:なし よろしくお願いします。
603 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 15:08:51 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): 文字列を入力し、その文字列が外部のテキストファイルに存在すれば、OK!と表示するプログラムを作れ 外部テキストは apple egg ・ ・ ・ のように10万個ほどの単語が書かれている。 効率的に探せるならば、C++のSTL等を用いてよい [3] 環境 [3.1] OS: Xp [3.2] VC 6.0 [3.3] 言語: C++ [4] 期限:明日 [5] その他の制限: お願いします
604 名前:592 mailto:sage [2008/10/23(木) 15:12:26 ] >>597 早いレスで助かります。 どうもありがとうございました。
605 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 15:22:15 ] >>600 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7836.txt もうやだ。こんなプログラム見たくねえorz
606 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 15:33:58 ] ただのストレートでも 10 → A いけるんだとしった ロイヤルの時だけだと思ってたわ
607 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 15:36:11 ] >>582 ありがとうございます
608 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 15:38:37 ] >>588 問1 ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7837.txt 合ってるといいなw
609 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 16:03:17 ] >>603 こんなでいい? #include<iostream> #include<fstream> #include<string> #include<set> using namespace std; typedef set<string> Dictionary; int main(){ string word; Dictionary dict; ifstream ifs("in.txt"); if(!ifs.is_open()) return 1; while(!ifs.eof()){ ifs >> word; dict.insert(word); } ifs.close(); while(1){ cout << "Search:"; cin >> word; if(dict.find(word) != dict.end()) cout << "OK!" << endl; else cout << "Not found." << endl; } }
610 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 16:09:27 ] >>599 丁寧な回答ありがとうです!
611 名前:デフォルトの名無しさん [2008/10/23(木) 17:50:21 ] [1] 授業単元:文字列の探索 [2] 問題文(含コード&リンク): (1)ファイルの先頭からテキストを1行ずつ(1行の文字数は999文字以下とする)読み込み、 何行目の何文字目に検索文字列の先頭が存在するか出力する。 (2)探索文字列中に同じ文字が複数含まれる場合について検索方法を改良する。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7838.txt [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: gcc (ver不明です) [3.3] 言語: C言語 [4] 期限: 2008年10月27日23:59まで [5] その他の制限:問題文中のプログラムの「//ここにボイヤームーア法」の場所を補ってプログラムを組む感じです。 どうかお願いします。。
612 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 19:16:59 ] >>602 libjpeg 使っていいんだったら kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7840.txt
613 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 19:37:45 ] >>598 あなたのお陰で非常に助かりました。 ありがとうございます。
614 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 19:41:20 ] [1] 授業単元: アルゴリズムとデータ構造 [2] 問題文:次の関数のゼロ点を求めるプログラミングをせよ。 f(x) = x^4-10x^3+ 35x^2-50^x+24 探索区間はx = 0から5(数学的表現では、x = [0; 5))であり 実数解が4個あることを留意せよ。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 10月24日1300まで [5] その他の制限:2分法を使って組んでいただけませんか。
615 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 20:49:21 ] >>614 #include <stdio.h> #include <math.h> double f( double x ) { return pow(x,4) -10 * pow(x,3) + 35 * pow(x,2) - pow(50,x) + 24; } int main() { double x = 1.0; printf( "f(%lf) = %lf\n", x, f(x) ); return 0; }
616 名前:614 mailto:sage [2008/10/23(木) 20:54:54 ] >>615 おい ふざけんな
617 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 21:09:28 ] 【質問テンプレ】 [1] 授業単元:仕事 [2] 問題文(含コード&リンク): "00 00 01 bd 80 80 ...." とスペースや改行も含めた テキストファイルから 0x00 0x00 0x01 のバイト列に 変換するコードをください [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C/C++どちらでも可 [4] 期限: 2008/10/24 10:00 [5] その他の制限:特に無しです よろおね
618 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 21:11:04 ] >>614 実数解が1個しか無いんだが。。。 #include <stdio.h> #include <math.h> #define DELTA 1e-4 double f(double x) { return pow(x, 4) - 10*pow(x, 3) + 35*pow(x, 2) - pow(50, x) + 24; } int main(int argc, char *argv[]) { double left = 0.0, right = 5.0, mid = 2.5; if (f(left) * f(right) > 0) { return 1; } while (fabs(f(mid)) > DELTA) { mid = (left + right) / 2; if (f(left) * f(mid) < 0) right = mid; else left = mid; } printf("x = %f\n", mid); return 0; }
619 名前:614 mailto:sage [2008/10/23(木) 21:16:10 ] すいません関数が間違っていました f(x)=x^4-10*x^3+35*x^2-50*x+24
620 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 21:27:33 ] [1] 授業単元:文字列 [2] 問題文(含コード&リンク): mozi1_mozi2_mozi3のように_で区切られた文字列を標準入力から入力し、stringに格納する。 char *list1[5] = {"test","test2","test3","test4","test5"} と *list2[3] = {"hoge",hoge2","hoge3"} の文字列へのポインタの配列 がある。 mozi1はlist1の文字列と比較し、一致するものがあればその添え字を表示し、 mozi2はlist2の文字列と比較して、同様の動作をするプログラムを作れ。 mozi1がtest2であれば1を表示 mozi2がhoge3であれば2を表示する。一致するものがなければその旨を表示すること [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: VC [3.3] 言語: C++ [4] 期限: 2008年10月25日 [5] その他の制限 お願いします。
621 名前:615 mailto:sage [2008/10/23(木) 21:43:09 ] >>619 >>616
622 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 21:55:07 ] >>611 質問が BM法ってリスト2つ使った奴じゃないと駄目? それとも簡略版でいいのかしら
623 名前:デフォルトの名無しさん [2008/10/23(木) 22:49:19 ] 1] 授業単元: C++ [2] 問題文: ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7841.txt [3] 環境 [3.1] OS:Windows XP [3.2] コンパイラ名とバージョン:Visual stdio2005 [3.3] 言語:C++ [4] 期限:10月 24日(土)まで 期限が短いですがお願い致します。
624 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 22:53:58 ] ここってGUIも受け付けてもらえますか?
625 名前:デフォルトの名無しさん [2008/10/23(木) 22:56:54 ] 受け付けてもらえます
626 名前:611 [2008/10/23(木) 22:57:38 ] >>622 ありがとうございます。 講義内でも問題文に書かれた以上のことは言われなかったのですが、簡略版で大丈夫です。 とりあえず、「力まかせの探索」でなければ大丈夫とのことでした。
627 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 22:58:21 ] [1] 授業単元: 信号解析 [2] 問題文(含コード&リンク): 一定周期を持つ弱い外力f(t) とガウス分布するノイズξ(t) を受けながら、ポテンシャル Vo(x) 中を動く玉の運動は、玉の座標をx(t) として、 τdx/dt = -dV/dx + ξ(t) < ξ(t)ξ(t') > = A * б (t - t') < ξ(t) > = 0 …@ で記述される。ここで、A はノイズの強さ、τ は系の時定数である。また、全ポテンシャル V (x; t) は、時間と共に周期的にその形を変える: V(x,t) = Vo(x) - f(t)x = -1/2*ax^2 + 1/4*bx^4 - hxcos(wt) で与えられる。 a = 1.0 * 10^(-3)、b = 1.0 * 10^(-5)、 h = 2 * 10^(-3)とする。 t = 0 において、玉はx = 10 にあるとする。 τ = 1.0 * 10^(-4)、ノイズの分散 A = 7.0*10^(-4)、ω = 2π/10とする。 @式を時間発展させて、玉の位置と周期的な外力f(t)に比例する量である10cos(ωt)をグラフに表せ。 [3] 環境 [3.1] OS:WindowsXP [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2008年10月24日23:59まで [5] その他の制限: 特になし よろしくお願いします
628 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 23:00:13 ] >>624 では書きます。 [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): ファイルを開く・保存のコモンダイアログを使い、選択されたファイルをテキストに書き出すプログラムを作れ。 ファイルは複数選択される場合もある。 express版の場合、外部のリソースエディタは用いてかまわない。 出力されるファイル test.bmp data.wav data2.wav [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: Visual studio 2008 [3.3] 言語: C or C++ [4] 期限: 2008年10月26日 [5] その他の制限
629 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 23:02:11 ] >>627 問題文修正しました [1] 授業単元: 信号解析 [2] 問題文(含コード&リンク): 一定周期を持つ弱い外力f(t) とガウス分布するノイズξ(t) を受けながら、ポテンシャル Vo(x) 中を動く玉の運動は、玉の座標をx(t) として、 τdx/dt = -dV/dx + ξ(t) < ξ(t)ξ(t') > = Aб(t - t') < ξ(t) > = 0 …@ で記述される。ここで、A はノイズの強さ、τ は系の時定数である。また、全ポテンシャル V (x; t) は、時間と共に周期的にその形を変える: V(x,t) = Vo(x) - f(t)x = -1/2*ax^2 + 1/4*bx^4 - hxcos(wt) で与えられる。 a = 1.0 * 10^(-3)、b = 1.0 * 10^(-5)、 h = 2 * 10^(-3)とする。 t = 0 において、玉はx = 10 にあるとする。 τ = 1.0 * 10^(-4)、ノイズの分散 A = 7.0*10^(-4)、ω = 2π/10とする。 @式を時間発展させて、玉の位置と周期的な外力 f(t) に比例する量である 10cos(ωt) をグラフに表せ。 [3] 環境 [3.1] OS:WindowsXP [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2008年10月24日23:59まで [5] その他の制限: 特になし よろしくお願いします
630 名前:デフォルトの名無しさん [2008/10/23(木) 23:03:31 ] この分野では、Sunday のアルゴリズムが究極では? 表 : 実行結果 : 時間 (秒) : 比較回数 ------------------------------- 力任せ : 0.133 : 149,938 BM 法 : 0.046 : 30,168 BMH 法 : 0.041 : 29,728 quick : 0.033 : 25,094 www.geocities.jp/m_hiroi/light/pyalgo11.html
631 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 00:41:06 ] 名前を変えるほど改良されてる訳でもない気がしないでもない
632 名前:デフォルトの名無しさん [2008/10/24(金) 01:09:30 ] Quick Search algorithm www-igm.univ-mlv.fr/%7Elecroq/string/node19.html The C code void preQsBc(char *x, int m, int qsBc[]) { int i; for (i = 0; i < ASIZE; ++i) qsBc[i] = m + 1; for (i = 0; i < m; ++i) qsBc[x[i]] = m - i; } void QS(char *x, int m, char *y, int n) { int j, qsBc[ASIZE]; /* Preprocessing */ preQsBc(x, m, qsBc); /* Searching */ j = 0; while (j <= n - m) { if (memcmp(x, y + j, m) == 0) OUTPUT(j); j += qsBc[y[j + m]]; /* shift */ } }
633 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 01:11:48 ] [1] 授業単元:C [2] 問題文: (1)1〜50までの整数の中から異なるいくつかをえらんび、 掛け合わせても一の位が0にならないようにする。選ぶことができる整数は40個。 上の文をプログラムで出力せよ。 (2)1〜50までの全てを掛け合わせると末尾の0を数えるプログラムを書け。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: gcc [3.3] 言語:C [4] 期限: 10月24日8:00 [5] その他の制限:特になし (1)は2の倍数、5の倍数が少なくとも1個ずつ入ったときにだけ1の位が0になる ので2の倍数と5の倍数が同居しないように計算します。
634 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 02:25:39 ] >>633 (2) #include <stdio.h> int main(void) { int i, c1 = 0, c2 = 0; for(i=1; i<=50; i++) { int temp = i; for(; !(temp%2); c1++) temp /= 2; for(; !(temp%5); c2++) temp /= 5; } printf("%d", c1 < c2 ? c1 : c2); return 0; }
635 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 02:55:22 ] >>634 あたまいいなあ
636 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 03:09:59 ] (2)は50を5^nで割った商を足してけばいいと思う int cnt=0,t; for(t=5;50/t;t*=5){ cnt+=50/t; } printf("%d\n",cnt);
637 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 03:12:31 ] 理由は素因数として2より5の方が少ないから。 数字を並べてみて1~50までに因数の5がいくつあるか数えるには?
638 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 03:36:40 ] 理由はもっともだが>>636 にはハテナがたくさんだ
639 名前:デフォルトの名無しさん [2008/10/24(金) 04:41:46 ] >>623 期限は10月24日(金)の11:00でした。 書き間違えてすみません。 よろしくお願いします。
640 名前:639 mailto:sage [2008/10/24(金) 06:35:26 ] 期限はアメリカ東海岸時間(EST)の10月24日(金)の11:00です 日本時間だと10月25日の11:00になります。 再再度訂正すみません
641 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 06:43:17 ] すいません、C/C++以外の課題を聞けるスレってあります?
642 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 06:59:49 ] [1] 授業単元: C [2] 問題文: 2つの固有値から2×2の行列を求めるプログラムを作りなさい。 固有値は整数のみとする。 [3] 環境 [3.1] OS:WindowsXP [3.2]コンパイラ名とバージョン:Visual studio [3.3] 言語:C [4] 期限:明日まで [5] その他の制限:特になし
643 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 11:03:10 ] 620をお願いします
644 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 11:44:17 ] [1] 授業単元:C言語 (ポインタ) [2] 問題文(含コード&リンク):出力例のように キーボードから0〜9 の数字d と,正の整数n を読み込み,n 以下の整数x で, x とx の2 乗の10 進数表示の両方にd を含むものをすべて出力するプログラムをつくりなさい。 ただし,次のプロトタイプ宣言で示すように,整数x とd を仮引数として, x とx の2 乗の10 進数表示の両方にd を含む場合に1,そうでない場合に0 を返す 関数hit_digit を作成しなさい。 int hit_digit(int x, int d); ▼出力例 0〜9 の数字d を入力して下さい:7 正の整数n を入力して下さい:100 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:08年10月25日24:00まで [5] その他の制限:C言語の基本的な関数のみでお願いします。
645 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 12:04:13 ] >>639 和訳くらいしたらどうなの・・・
646 名前:602 [2008/10/24(金) 12:33:22 ] >>612 回答ありがとうございます! 助かりました。
647 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 12:41:56 ] >>644 #include <stdio.h> int hit_digit(int x,int d); int main(void) { int d,n,x; printf("0〜9 の数字d を入力して下さい:"); scanf("%d",&d); printf("正の整数n を入力して下さい:"); scanf("%d",&n); for(x=0;x<=n;x++) if(hit_digit(x,d)) printf("%d\n",x); return 0; } int hit_digit(int x,int d) { int y,z; y=x; z=x*x; for(;y;y/=10) if(y%10==d) for(;z;z/=10) if(z%10==d) return 1; return 0; }
648 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 13:34:34 ] >>591 レス返信遅くなりました。 最大値というよりは極大値という感じですね。 飛び抜けて大きな値ってのは (平均値+5*ρ) 以上の値のことを指し示すのですが ρってのが平均値の標準偏差です(たぶん)。 グラフで飛び出した点を求めたら、並べ替えなくていいそうです。 てかコンパイル通したら、peak.txtが出力されませんでした。今、プログラム解読中です(汗)
649 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 14:39:57 ] [1] 授業単元: C言語 [2] 問題文:縦軸「|」横軸「-」グラフ「*」 を使って±√xのグラフを書け [3] 環境 [3.1] OS:mac [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C言語 [4] 期限: 10月26日 [5] その他の制限: 基本的な関数のみでお願いします