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/
78 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 09:36:52 ] twintail.jpからel.hなくなってるじゃん コンパイルできないからうpれよ
79 名前:デフォルトの名無しさん [2008/10/05(日) 11:25:26 ] C と C++ とC# と、後なんか。 何がどう違うの? 簡単な表にしてZIPでくれ。
80 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 11:29:00 ] >>79 失せろ
81 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 11:30:17 ] >>80 「わかりません」ってハッキリ言えwww
82 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 11:47:12 ] >>79 どういう視点で違いを知りたい?
83 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 13:15:48 ] みなさん童貞ですか?
84 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 14:09:03 ] >>18 ワロタwwww
85 名前:74 ◆5/7mhL.nO6 mailto:sage [2008/10/05(日) 14:53:36 ] >>78 elってこれですか? www.dotup.org/uploda/www.dotup.org4202.zip.html
86 名前:デフォルトの名無しさん [2008/10/05(日) 16:52:12 ] AGE
87 名前:デフォルトの名無しさん [2008/10/05(日) 20:01:02 ] >>12 >>16 >>34 です どうか助けてもらえませんか…
88 名前:74 ◆5/7mhL.nO6 mailto:sage [2008/10/05(日) 21:16:20 ] 誰か>>74 をお願いいたします。
89 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 21:16:49 ] >>87 今から始める。のんびりまってて。
90 名前:デフォルトの名無しさん [2008/10/05(日) 21:28:25 ] >>87 ttp://www.nigauri.sakura.ne.jp/src/up5626.txt BCC Developerで拡張子を.cppとして作成。 コメントはほとんどなし。 間違ってたらすまない。 まぁ、参考程度にしてもいいし、ゴミ箱直行でもいいし。
91 名前:デフォルトの名無しさん [2008/10/05(日) 21:29:00 ] >>89 いくらでも待ちます。ハチ公のように。 本当にありがとうございます。
92 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 21:31:49 ] 二度と戻らぬ主人を待ち続けるハチ公であつた。
93 名前:90 [2008/10/05(日) 21:32:38 ] あ、>>89 さんゴメン。かぶった。 プログラム>>89 のほうがいいかもしれないよ。俺あんまりこのスレきたことないから
94 名前:デフォルトの名無しさん [2008/10/05(日) 21:33:39 ] >>90 ありがとうございます。参考にさせてもらいます。 C初めて間もないので、とても為になります。
95 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 21:44:25 ] >>93 大丈夫、実はやってない。
96 名前:デフォルトの名無しさん [2008/10/05(日) 22:08:56 ] >>95 マジですか?… わかりました。では>>90 さんのを元に、各行の説明付けに励みたいと思います。 >>90 さんありがとうございました。
97 名前:74 ◆5/7mhL.nO6 mailto:sage [2008/10/05(日) 22:18:48 ] >>74 の「八の字」の描き方もお願いします。 円はできたのですが、八の字はどのようにやったら良いかわかりません。
98 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 22:22:58 ] 円を二個くっつければ八の字にならないか?
99 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 22:53:16 ] ○○ でも八の字といえば八の字だよな
100 名前:デフォルトの名無しさん mailto:sage [2008/10/05(日) 23:01:11 ] [1] 授業単元:C言語演習 [2] 問題文(含コード&リンク):英文文書整形プログラム kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7754.txt [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限: 10月8日 [5] その他の制限:特にありません よろしくお願いします
101 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 00:10:49 ] >>99 ○ ○ こっちじゃね?
102 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 00:13:13 ] >>100 そこだけ見るとゼペット爺さんなんか痛い子
103 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 00:18:39 ] >>100 51文字目にカンマやピリオドがあったらどうする? 1.直前の単語ごと次の行へ 2.カンマやピリオドが行の先頭にあっても構わない 3.行の後ろにこっそりつける
104 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 00:29:53 ] >>103 ピリオドや?などは単語の一部という扱いでいいと思います ですので「1」で大丈夫です
105 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 03:10:26 ] >>97 >>76 は?もう期限近いけどさ。
106 名前:デフォルトの名無しさん [2008/10/06(月) 04:35:00 ] >>97 眠れないので作ってみた void teki_01_dp(void) { static float n = 0; static float inc = 0.1; for (cnt = 0; cnt < 17; cnt++) { if (init_fl[cnt] != 0) { /* 出現済みの敵の場合 */ /* 次の座標を計算 */ #if 0 spx[cnt] += spxg[cnt]; spy[cnt] += spyg[cnt]; zx[cnt] += FrameTime * spx[cnt]; zy[cnt] += FrameTime * spy[cnt]; #else zx[cnt] += cos(n * PI / 180) * FrameTime * 100; zy[cnt] += sin(n * PI / 180) * FrameTime * 100; n += inc; if (n >= 180.0) { inc = -0.1; } else if (n <= -180.0) { inc = 0.1; } #endif } } } 速度とかは超適当す。
107 名前:74 ◆5/7mhL.nO6 mailto:sage [2008/10/06(月) 07:10:44 ] >>105 期限は今週中なら一応大丈夫です。 >>106 これはどこのソースに書き込みましたか?
108 名前:106 mailto:sage [2008/10/06(月) 07:40:39 ] >>107 うpろだの内容はそのままビルドできんかったので 1.zako_01.cppを新規に作成 2.zako.cppをコピペ 3.teki_reqをtei_01_reqに変更 4.teki_dpをteki_01_dpに変更 5.読みにくかったので全面書き替え!! 5.teki_01_dpに>>106 のを書いた 6.teki_01_reqは固定位置出現にした 最終動きのイメージを今見たんだがハチの字の方向が違うかもしれん そこはまぁ適当によろしこ ちなみにPIは3.141592にdefineしてある
109 名前:106 mailto:sage [2008/10/06(月) 07:41:46 ] 書き忘れた もう仕事に行く時間なので 夜になるまで応答できないかも
110 名前:74 ◆5/7mhL.nO6 mailto:sage [2008/10/06(月) 08:11:20 ] >>109 ありがとうございます。 やってみるので、夜になったらまた見てもらえますか? それまで自分でやってみます。
111 名前:21 [2008/10/06(月) 11:27:20 ] >>61 よし動いた。 ・・・あれ肝心のソートがされてないorz 誰か13時までに原因を教えてください。
112 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 12:01:51 ] 1] 授業単元:C++ [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7745.txt ・「年(西暦)」「月」を入力したら,その月のカレンダーを表示するプログラムを作成しなさい。ただし,下記の条件を満たすものとする。 【条件】 (1)カレンダークラスを作成し,main関数でカレンダークラスの実体を生成し,カレンダークラス内のメンバ関数(show関数)を呼び出してカレンダーを表示する。 (2)カレンダークラスはカプセル化されていること。 (3)カレンダー表示には,年,月および曜日,日を表示すること。 (4)上記以外については自由に作成してよい。 [3] 環境 [3.1] OS:WindowsXP [3.2] コンパイラ名とバージョン:Visual Studio 2008 [3.3] 言語:C++ [4] 期限: ([2008年10月8日
113 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 17:59:06 ] >>112 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7755.cpp 問題文のリンクを元に作ったけども 正直カレンダークラスに year と month ないほうが綺麗になると思う
114 名前:デフォルトの名無しさん [2008/10/06(月) 18:40:58 ] [1] 授業単元:プログラミング演習 [2] n*3がたの行列Aと3*mの行列Bの積を計算する プログラムを作成せよ。 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:gcc バージョン5.5 [3.3] 言語:C [4] 期限: 10月9日 [5] その他の制限:特にありません よろしくお願いします。素人でもわかりやすい作りに していただければ幸いです。
115 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 18:40:59 ] >>113 そんなに無理矢理三項演算子使わなくても…
116 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 18:53:21 ] >>115 使わないと分かりにくいかなと思って使ったんだけども・・・ 取っても結果同じだから、違和感あるなら取ってね
117 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 19:22:49 ] #include<stdio.h> #define n 2 #define m 4 int main(){ int A[n][3] ={{1,2,3}, {4,5,6}}; int B[3][m] ={{1,2,3,4}, {5,6,7,8}, {9,10,11,12}}; int C[n][m],i,j,k,t; for(i=0;i<n;i++){ for(j=0;j<m;j++){ for(t=0,k=0;k<3;k++){ t += A[i][k]*B[k][j]; } C[i][j] = t; } } //A for(i=0;i<n;i++){ for(j=0;j<3;j++){ printf("%3d",A[i][j]); } printf("\n"); } //B for(i=0;i<3;i++){ for(j=0;j<m;j++){ printf("%3d",B[i][j]); } printf("\n"); } //C for(i=0;i<n;i++){ for(j=0;j<m;j++){ printf("%3d",C[i][j]); } printf("\n"); } }
118 名前:74 ◆5/7mhL.nO6 [2008/10/07(火) 00:33:44 ] >>108 のように書いたのですが、 このようなエラーはどう対処したら宜しいのでしょうか? ..\zako_01.cpp(52) : warning C4305: '初期化中' : 'double' から 'float' へ切り詰めます。 ..\zako_01.cpp(66) : error C2065: 'PI' : 定義されていない識別子です。 ..\zako_01.cpp(70) : warning C4305: '=' : 'double' から 'float' へ切り詰めます。 ..\zako_01.cpp(72) : warning C4305: '=' : 'double' から 'float' へ切り詰めます。
119 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 00:42:13 ] #define PI 3
120 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 00:55:07 ] 笑ったけど本気にしたらかわいそうだ >>118 #define PI 3.141592 warningってのは警告だから無視すればいい
121 名前:デフォルトの名無しさん [2008/10/07(火) 01:35:20 ] [1] C言語演習 [2] kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7756.txt kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7757.txt kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7758.txt [3] C [4] 今週の水曜日 よろしくお願いします。
122 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 02:49:18 ] >>118 > >>108 のように書いたのですが、 >>108 > ちなみにPIは3.141592にdefineしてある はぁ。
123 名前:74 ◆5/7mhL.nO6 [2008/10/07(火) 04:23:57 ] >>119 >>120 >>122 すみません見落としていました… とりあえず、>>106 を参考に作りました。 www.dotup.org/uploda/www.dotup.org6018.zip.html するとこのようなエラーが出るのですが…ファイルを見て確認してみて下さい。 zako_01.obj : error LNK2005: "float * zy" (?zy@@3PAMA) は既に zako.obj で定義されています。 zako_01.obj : error LNK2005: "int * init_fl" (?init_fl@@3PAHA) は既に zako.obj で定義されています。 zako_01.obj : error LNK2005: "float * spy" (?spy@@3PAMA) は既に zako.obj で定義されています。 zako_01.obj : error LNK2005: "float * spx" (?spx@@3PAMA) は既に zako.obj で定義されています。 zako_01.obj : error LNK2005: "float * spyg" (?spyg@@3PAMA) は既に zako.obj で定義されています。 zako_01.obj : error LNK2005: "float * zx" (?zx@@3PAMA) は既に zako.obj で定義されています。 zako_01.obj : error LNK2005: "float * spxg" (?spxg@@3PAMA) は既に zako.obj で定義されています。
124 名前:74 ◆5/7mhL.nO6 [2008/10/07(火) 06:01:05 ] >>123 のエラーは全て自己解決しました。 普通にコンパイルできるのにちゃんと表示されないのですが… www.dotup.org/uploda/www.dotup.org6039.zip.html >>108 のようにやったのに表示されません…
125 名前:106 mailto:sage [2008/10/07(火) 07:40:12 ] すまん。もともとあった内容は省略して書いてた。 ----- こっから //アニメーション----------------------------- timer_a[cnt]+=FrameTime; if(timer_a[cnt]>0.1){ timer_a[cnt]=0; no_a[cnt]++; if(no_a[cnt]>9) no_a[cnt]=0;//アニメーションのループ } //敵の表示 elDraw::Layer((int)zx_a[cnt],(int)zy_a[cnt],tkBMP[cnt],40*no_a[cnt],0,40*no_a[cnt]+40,40); // SHOW2((int)zx[cnt],(int)zy[cnt]-5,"no= %d",cnt); }//リクエスト if end }//for end if(out_cnt==17){//17個全て消えたか? for(cnt=0;cnt<17;cnt++){ init_fl_a[cnt]=0; } ---- ここまで をkadai_d_dpの最後に追加してみそ。 分かってるとは思うが //敵の表示 elDraw::Layer((int)zx_a[cnt],(int)zy_a[cnt],tkBMP[cnt],40*no_a[cnt],0,40*no_a[cnt]+40,40); のコールでビットマップを描画してるので これ消したら当然何も出ない罠
126 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 07:58:09 ] >>124 表示してないからあたりまえ #define PI 3.141592F void teki_01_dp(void) { static int no[17];//アニメ用 static float timer[17];//アニメ用 static float n = 0.0F; static float inc = 0.1F; int cnt; for (cnt = 0; cnt < 17; cnt++) { if (init_fl_01[cnt] != 0) { zx_01[cnt] += cos(n * PI / 180) * FrameTime * 100; zy_01[cnt] += sin(n * PI / 180) * FrameTime * 100; n += inc; if (n >= 180.0) { inc = -0.1F; } else if (n <= -180.0) { inc = 0.1F; } timer[cnt]+=FrameTime; if(timer[cnt]>0.1){ timer[cnt]=0; no[cnt]++; if(no[cnt]>9) no[cnt]=0;//アニメーションのループ } elDraw::Layer((int)zx_01[cnt],(int)zy_01[cnt],tkBMP[cnt],40*no[cnt],0,40*no[cnt]+40,40); } } }
127 名前:74 ◆5/7mhL.nO6 [2008/10/07(火) 08:04:53 ] >>125 >>126 できました!ありがとうございます! これを元に波線の軌道もやってみますので、分からなくなったら再び質問します。
128 名前:112 mailto:sage [2008/10/07(火) 10:41:20 ] >>113 デバックしましたけど何も表示されませんでした。
129 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 11:03:35 ] >>128 デバック??? 「修正してやったぜ」って意味か? 失礼な奴だな 知らない言葉は調べたほうがいいぜ
130 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 12:27:22 ] デバッグ実行のことじゃね
131 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 12:39:16 ] VSが「デバッグ開始」て書いてあるから間違って覚えたんだろ
132 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 12:41:45 ] >>128 コマンドライン引数が無いときの処理が無いからな
133 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 13:10:31 ] >>121 2番目の問題だけ kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7759.txt
134 名前:21 mailto:sage [2008/10/07(火) 16:58:43 ] 誰か61のプログラムでソートされない原因を 教えてください。 お願いします
135 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 17:07:23 ] >>134 やってみたらソートされたが、どんなデータを与えたの?
136 名前:21 mailto:sage [2008/10/07(火) 17:12:27 ] >>135 ./kadai3-2 s sa と入力しました。./kadai3-2が実行プログラムで Sが読み込ませるプログラムでsa
137 名前:21 mailto:sage [2008/10/07(火) 17:14:56 ] すいません途切れました。 saが出力させるファイルで sの中身は1,2,3,4,5,6,7,という 数字が記録されています。 実行するとsaの中身は 1,2,3,4,5,6,7となっていて ソートされてないのです。
138 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 17:20:01 ] >>137 落ち着けよ 意味がわからんよ
139 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 17:24:26 ] >>137 見事にソートされているように見えるんだが。。 たとえばsを 3,6,1,5,2,7,4 という内容にしてみたら。 ソートの意味がわかっていないのか、それとも>>21 の思っているソートがこちらに伝わっていないのか。
140 名前:21 mailto:sage [2008/10/07(火) 17:35:18 ] あっ、あぁ、ほんとだ。 ごめんなさい。 いつのまにか俺のなかで ソートの種類が勝手に順番を逆にするソート にすり変わってたorz 思い込みってやだな。 お手数かけました。 心よりお詫び申し上げます。
141 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 17:54:06 ] [1] 初級プログラミング [2] #include <stdio.h> int main(void){ int a,b,c,d,e,f,g,h,i,j,k,l,m;//a〜m(13個,数は固定)には整数0か1が毎回ランダムに入るとしてください a=1;b=0;c=0;d=1;e=0:f=1;g=1;h=1;i=1;j=0;k=1;l=1;m=0;//例 printf("%d",a); printf("%d",b); printf("%d",c); printf("%d",d); printf("%d",e); printf("%d",f); printf("%d",g); printf("%d",h); printf("%d",i); printf("%d",j); printf("%d",k); printf("%d",l); printf("%d",m); printf("\n"); //表示 1001011110110 /*以下に13ビットの値を16進数に変換するプログラムを記述せよ*/ printf("%d",?); printf("%d",?); printf("%d",?); printf("%d",?); printf("\n"); return 0; } abcdefghijklmが 1001011110110 の時は 12f6 と表示 aが4桁めb〜eが3桁めf〜iが2桁めj〜mが1桁めとなるようにする [3] 環境 [3.1] OS:linux [3.2] gcc3.4 [3.3] c [4] 期限: 10/8 [5] その他の制限:なし
142 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 18:01:51 ] >>141 ?を埋める形じゃないとだめ?
143 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 18:05:07 ] というわけでもないと思うので、こうしてみたよ。 printf("%d",a); printf("%x", b*8+c*4+d*2+e); printf("%x", f*8+g*4+h*2+i); printf("%x", j*8+k*4+l*2+m); もしくは printf("%d",a); printf("%x", b<<3|c<<2|d<<1|e); printf("%x", f<<3|g<<2|h<<1|i); printf("%x", j<<3|k<<2|l<<1|m);
144 名前:141 mailto:sage [2008/10/07(火) 18:06:39 ] >>142 ?は自分がこんな感じかなと勝手に考えて書いたものですので 無視してもらっても大丈夫です。
145 名前:141 mailto:sage [2008/10/07(火) 18:20:49 ] >>142 ,143 ありがとうございます。出来ました。
146 名前:デフォルトの名無しさん [2008/10/07(火) 20:51:46 ] ソース kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7760.txt データ kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7761.txt テキスト形式のデータを読み込んで,マージソートをして ナップサック問題をとくソートなんだが item数 n = 100 重量制限 B = 2000 データは item p[i] w[i]の順に並んでるよ ここにいてるできる奴ならもっと短くできるよね B5に収まるくらいの美しいソートおしえてたもれ <stdio.h><stdlib.h><math.h>くらいだけで シンプルにできる人、たのんます あっしのノー味噌ではうつくしくできないので.
147 名前:146 [2008/10/07(火) 20:58:31 ] ×美しいソート ○美しいソース です; 頭んなか、ソートだらけか….
148 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 21:15:30 ] >>1 くらい読め
149 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 21:15:47 ] >>146 qsort を使うとか
150 名前:146 [2008/10/07(火) 21:28:19 ] >>148 宿題を解いて,もっと短くできるから やってみろって言われたんです; テンプレどおりに書かなかったのはすみません。 >>149 マージソートで、数十行くらいで作れるらしいです。 それをやれといわれました; 教科書通りにやるのはできるんですが 短くするとなると、なかなか凡人クラスの頭のキレでは難しくて.
151 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 21:37:13 ] つstdlib.h
152 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 22:46:55 ] まず、このソースが何をしていて、どの辺で苦労して、どのあたりが改善できそうであるかを言ってみて。
153 名前:デフォルトの名無しさん [2008/10/07(火) 23:05:45 ] 1] 授業単元: 基礎プログラミング [2] ニュートンラプソン法を用いてnのルート、及び逆数の関数を作成せよ [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc 3.4 [3.3] 言語: C [4] 期限: 10/8 24:00
154 名前:デフォルトの名無しさん [2008/10/08(水) 02:34:55 ] >>153 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7762.txt
155 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 02:40:07 ] ありゃageになってたすまぬ
156 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 04:21:05 ] ttp://ja.wikipedia.org/wiki/%E7%B4%A0%E6%95%B0 > 2008年8月、史上最大の素数探求のための分散コンピューティング・プロジェクトである > GIMPSによって、その時点で史上最大とされる素数が発見された。これは知られている中で > 46番目のメルセンヌ素数、243112609 - 1 であり、十進記数法で表記したときの桁数は > 1297万8189桁に及ぶ。 上記の史上最大とされる素数を求めるプログラムきぼんぬ
157 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 09:32:16 ] >>156 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7764.c
158 名前:157 [2008/10/08(水) 09:51:30 ] 2^nの1桁目は0にならないから最後1引くのにループはいらなかった
159 名前:157 [2008/10/08(水) 09:54:31 ] #define END_POINT 243112609 は #define END_POINT 43112609 の間違いだな(>>156 のをそのままコピペしてしまった)
160 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 11:22:20 ] >>156 #include <stdio.h> #define MER_P 43112609 int main(void) { int i; printf("(2^%d) - 1 =\n", END_POINT); for (i = 0; i < MER_P; i++) { printf("1"); } printf("\n(2進数)\n"); return 0; }
161 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 11:23:22 ] 間違えた #include <stdio.h> #define MER_P 43112609 int main(void) { int i; printf("(2^%d) - 1 =\n", MER_P); for (i = 0; i < MER_P; i++) { printf("1"); } printf("\n(2進数)\n"); return 0; }
162 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 13:13:55 ] [1] 授業単元:C++ [2] 問題文(含コード&リンク): すごろくプログラムを作成しなさい。ただし,下記の条件を満たすものとする。 ・すごろくのコマとしてユーザクラスを作成しなさい。 ・すごろくのコマを移動させる場所としてマスクラスを作成しなさい。 ・main関数でユーザクラスの実体(2つ以上)とマスクラスの実体(5つ以上)を生成しなさい。 ・ここで,マスには,「スタート」「ゴール」「1つ進む」「1つ戻る」「2つ進む」「2つ戻る」「スタートへ戻る」「何もしない」の条件があるとする。 ・さらに,ユーザは初期状態で「スタート」とし「ゴール」になったら終了とする。 ・乱数でサイコロ(1つ)の数字を出しすごろくを行い,片方がゴールしたら終了とする(ちょうどゴールにとまらなくてもよい)。なお,すごろくをプレイしている状況は表示すること。 ・あとはすごろくとして成り立っていればどのようにプログラミングしてもよい(他のクラスが必要な場合は追加してもよい)。 [3] 環境 [3.1] OS:WindowsXP [3.2] コンパイラ名とバージョン:VisualStudio [3.3] 言語:C++ [4] 期限: ([2008年10月16日
163 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 22:33:18 ] [1] 授業単元:C言語入門 [2] #include <stdio.h> int add(int x, int y) { return x+y; } int main() { int a, b, c; } printf("calc a + b\n"); printf("input a b\n"); scanf("%d%d", &a, &b); c = add(a,b); printf("result: %d + %d = %d\n", a, b, c); return 0; } void accum(int *x, int y) { *x = *x + y; } このポインタを使って上の関数addを用いずに同じ動作をするプログラムを作れ。 お願いします(__)
164 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 22:38:31 ] >163 問題は正確に
165 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 22:40:21 ] #include <stdio.h> void accum(int *x, int y) { *x = *x + y; } int main() { int a, b; printf("calc a + b\n"); printf("input a b\n"); scanf("%d %d", &a, &b); printf("result: %d + %d", a, b); >>163 accum(&a, b); printf(" = %d\n", a); return 0; }
166 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 23:12:03 ] すみません。 VC++をいじってるんですが、double型の値を画面に表示させると 「0.000000」といった感じで小数部が6桁表示されてしまいます。 この小数部の表示桁数を制限したいのですが、何か良い関数など があれば教えて下さい。 よろしくお願い致します。
167 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 23:16:43 ] printf("%5.2lf",12.34); ってやったらどうだろう
168 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 23:27:28 ] それは間違いだ いやc99ならいける というレスが続きそうな気がするので先に言っておこう
169 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 23:29:23 ] >>168 C99なら…それでもC99ならきっとなんとかしてくれる…
170 名前:お願いします [2008/10/08(水) 23:58:33 ] 【質問テンプレ】 [1] 授業単元: アルゴリズムデータ構造2 [2] 問題文(含コード&リンク): 52枚のトランプを5人に配るシミュレーション [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: コマンドプロンプト バージョンはすいません分からないです。 [3.3] 言語: C言語 [4] 期限: 10月13日(月)まで [5] その他の制限: 配列でswap関数を使って作ってもらいたいです。
171 名前:お願いします [2008/10/09(木) 00:16:55 ] >>170 アップローダの使い方がいまいち分からなかったので ソースを貼ります このプログラムを書き換えてください。 #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { int i; char *card[]={"Club","Diamond","Heaart","Spade"}; char *numb[]={"A","2","3","4","5","6","7","8","9","10","J","Q","K"}; srand(time(NULL)); i=rand()%52; printf("%s%s\n",card[i/13],numb[i%13]); return 0; }
172 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 00:37:56 ] >>171 こんなんでおk? #include <stdio.h> #include <stdlib.h> #include <time.h> void swap(int*a,int*b){int c = *a;*a=*b;*b = c;} int main(void) { int i,n; char *card[]={"Club","Diamond","Heaart","Spade"}; char *numb[]={"A","2","3","4","5","6","7","8","9","10","J","Q","K"}; int cards[52]; for(i=0;i<52;++i) cards[i] = i; srand(time(NULL)); //カードをシャッフルする for(i=0;i<52;++i) swap(cards+i,cards+rand()%(52-i)+i); for(i=0;i<52;++i) printf("%cさん %s%s\n","ABCDE"[i%5],card[cards[i]/13],numb[cards[i]%13]); return 0; }
173 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 00:39:59 ] ぎゃあ表示がバグってる。 たぶん空白だけだと思うけど念のためにもう一度。 #include <stdio.h> #include <stdlib.h> #include <time.h> void swap(int*a,int*b){int c = *a;*a=*b;*b = c;} int main(void) { int i,n; char *card[]={"Club","Diamond","Heaart","Spade"}; char *numb[]={"A","2","3","4","5","6","7","8","9","10","J","Q","K"}; int cards[52]; for(i=0;i<52;++i) cards[i] = i; srand(time(NULL)); //カードをシャッフルする for(i=0;i<52;++i) swap(cards+i,cards+rand()%(52-i)+i); for(i=0;i<52;++i) printf("%cさん %s%s\n","ABCDE"[i%5],card[cards[i]/13],numb[cards[i]%13]); return 0; }
174 名前:デフォルトの名無しさん [2008/10/09(木) 04:00:50 ] 1から指定した数までを足し算で計算するプログラム教えてくれ。
175 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 04:06:52 ] #include <stdio.h> int main() { int a; scanf("%d", &a); printf("%d", a * (1 + a) / 2); return 0; }
176 名前:デフォルトの名無しさん [2008/10/09(木) 15:08:33 ] [1] 授業単元:ランダムウォークと配列 [2] 問題文(含コード&リンク): 左右に動く点がありそれが連続で右に動いた回数をカウントし出力 一連続は**回 二連続は++回 [3] 環境 [3.1] OS:WinXP [3.2] コンパイラ名とバージョン:Visual Basic 2005 [3.3] 言語: C++ [4] 期限: 無期限 よろしくお願いします
177 名前:176 [2008/10/09(木) 15:14:43 ] 失敬 開発環境はMicrosoft Visual Studio 2005です
178 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 17:20:26 ] >>176 #include <iostream> #include <cstdlib> int main() { int i, j, n, r1 = 0, r2 = 0, state = 0; std::cout << "繰り返し回数 = "; std::cin >> n; for (i = 0; i < n; i++) { j = std::rand() % 2; // 0で左、1で右 if (j == 1) // 右へ動いた switch (state) { case 0: // 左へ動いた直後か右へ二回動いた直後 r1++; state = 1; break; case 1:// 右へ一回動いた直後 r1--; r2++; state = 0; break; default: break; } else state = 0; } std::cout << "一連続は" << r1 << "回 " << "二連続は" << r2 << "回" << std::endl; }