[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2chのread.cgiへ]
Update time : 01/05 16:54 / Filesize : 170 KB / Number-of Response : 513
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C/C++の宿題片付けます 155代目



1 名前:デフォルトの名無しさん [2012/01/04(水) 23:04:36.09 ]
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他の発言はスルーの方向で。

【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。 >>2以降にあります。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。

482 名前:475 mailto:sage [2012/01/20(金) 19:59:39.65 ]
とりあえずbugは潰しておいた。
ideone.com/AGrLl

配置の仕方を賢くするかは週末考えて、
うまく言ったら書き込む。
↑で及第点はもらえるはずだから、とりあえず安心して

483 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 20:09:29.91 ]
[1] 授業単元:C言語の活用
[2] 問題文(含コード&リンク):
www.kent-web.com/pubc/book/test/uploader/uploader.cgi?mode=downld&no=5079
[3] 環境
 [3.1] OS: Vista
 [3.2] コンパイラ名とバージョン: visual stadio 2010
 [3.3] 言語:C言語
[4] 期限: 2012年01月25日19:00まで
[5] その他の制限:
提出するときに自分で解説しないといけないので
できるだけ簡単におねがいします.
プログラム中に解説があると助かります.

484 名前:デフォルトの名無しさん [2012/01/20(金) 20:19:31.52 ]
>>476 
じゃんけんの無限ループから抜け出せないんです><

485 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 20:21:20.58 ]
>>482
bl[i].size_x = 50;
bl[i].size_y = 50;
にしたら1個しか置かないし
bl[i].size_x = 11;
bl[i].size_y = 11;
にしたら82個置けてしまうぞ

486 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 20:46:44.18 ]
>>484
まさかと思うが、ジャンケンの手を全角で入力してる?

487 名前:デフォルトの名無しさん [2012/01/20(金) 21:12:05.16 ]
>>486
日本語のところ以外はすべて半角で打ち込みました

488 名前:デフォルトの名無しさん [2012/01/20(金) 21:15:35.54 ]
[2] 問題文(含コード&リンク): 構造体
ある人の生まれた年,生まれた月をそれぞれ構造体で内部的に表現する. 2人分のデータを入力した後,2人の年令の差(年,月まで)を 計算して以下のような結果を示すプログラムを作成する.
実行例
-----------------------------------------------------
 [1] Aさんのデータを入力
 [2] Bさんのデータを入力
 [3] 結果表示
 [9] 終了
-----------------------------------------------------
#コマンドを入力して下さい:1
Aさんの生れた年は?:1967
Aさんの生れた月は?:8

#コマンドを入力して下さい:3
まだBさんのデータが入力されていません!

#コマンドを入力して下さい:2
Bさんの生れた年は?:1987
Bさんの生れた月は?:10

#コマンドを入力して下さい:3
Aさんは 20年と2ヶ月 Bさんより年上です.

#コマンドを入力して下さい:9
留意点
・メニュー形式で実装.
・関数化を行うこと.
 main 関数のみのプログラムは不可とします.
[3.3] 言語: c言語
[4] 期限: 1月22日
よろしくお願いします

489 名前: ◆QZaw55cn4c mailto:sage [2012/01/20(金) 21:44:52.21 ]
>>458
賛同しかねます

490 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 21:54:01.22 ]
>>487
実行時の話かと



491 名前:475 mailto:sage [2012/01/20(金) 21:55:36.58 ]
>>485
bug出しありがちょ

bl[i].size_x = 50;
は、

187, 188
を以下のようにすればいいよん
if( i + box->size_x <= field_x &&
  j + box->size_y <= field_y) {
= を付け加えるだけ

bl[i].size_x = 11;
は、bugじゃなかったよ。

> 置ける箱の数は最大で 82 個
> 結局置けた箱の数は 81 個で
って言ってたよ

82個っていうのは面積でのみ考えた場合の最大個数なんで。
絞込みを簡単に&計算を速くするために用意しておいただけなんで。

492 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 22:21:43.78 ]
>>491
そりゃ失礼

493 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 22:23:30.45 ]
[1] 授業単元:画像処理
[2] 問題文(含コード&リンク):s2.etowns.slyip.net/~c_cpp_homework/cgi-bin/joyful/img/307.txt
[3] 環境
 [3.1] OS: Windows Vista
 [3.2] gcc
 [3.3] 言語: C
[4] 期限: 1月23日

宜しくお願い致します。

494 名前:475 mailto:sage [2012/01/20(金) 22:41:43.18 ]
ideone.com/zGSVQ

現在の↑の版はbugも無いし、ちょっとだけ賢くなったので
私は手を引きます。

この版では、available_places変数は置ける場所の数を格納しています。
置ける場所が少なければ少ないほど、早めに置いておく必要があるし、
置ける場所の多ければ多いほど、後に置けばいいので、
cmp_available_places()内では、

置ける場所が多い < 置ける場所が少ない

として数の大小を逆にして比較関数を作成しています。

srand()とした場合に私の乱数では以下のような箱を生成します。

495 名前:475 mailto:sage [2012/01/20(金) 22:43:58.32 ]
現在はこいつらを20個置けるのですが、
こいつらを21個以上置けるようになりましたら教えて下さい。
私も勉強させて欲しいです。

置ける箱の数は最大で 25 個
置ける箱の一覧
bl[i](size_x, size_y, S, x, y)
bl[0](4, 20, 80, -1, -1)
bl[1](30, 3, 90, -1, -1)
bl[2](94, 1, 94, -1, -1)
bl[3](68, 2, 136, -1, -1)
bl[4](9, 16, 144, -1, -1)
bl[5](6, 26, 156, -1, -1)
bl[6](2, 81, 162, -1, -1)
bl[7](4, 52, 208, -1, -1)
bl[8](37, 6, 222, -1, -1)
bl[9](10, 28, 280, -1, -1)
bl[10](98, 3, 294, -1, -1)
bl[11](25, 15, 375, -1, -1)
bl[12](14, 27, 378, -1, -1)
bl[13](22, 20, 440, -1, -1)
bl[14](20, 25, 500, -1, -1)
bl[15](12, 43, 516, -1, -1)
bl[16](40, 13, 520, -1, -1)
bl[17](44, 12, 528, -1, -1)
bl[18](19, 29, 551, -1, -1)
bl[19](32, 18, 576, -1, -1)
bl[20](7, 84, 588, -1, -1)
bl[21](76, 8, 608, -1, -1)
bl[22](88, 9, 792, -1, -1)
bl[23](14, 58, 812, -1, -1)
bl[24](12, 69, 828, -1, -1)

496 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 23:19:57.45 ]


497 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 23:43:23.44 ]
>>490
実行時も半角です

498 名前:442 mailto:sage [2012/01/20(金) 23:58:58.14 ]
>>494
ありがとうございます!ほんとうにありがとうございます!
この土日でいっしょうけんめい読み込んで理解してみせます!

499 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 00:04:19.78 ]
>>494
コードを見ずにレスしててすまんが、小さい箱のサイズはばらばらにしてるんだよね

500 名前:499 mailto:sage [2012/01/21(土) 00:05:24.62 ]
ああ、なってそうだったごめん。



501 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 01:16:56.46 ]

Sequence-pair - Wikipedia
技術的背景
集積回路設計の一工程である配置計画では、回路として実現するために必要な様々なモジュールを、シリコン基板上にどのように配置するかを検討する。
「集積回路を出来るだけ小さく設計する」という要求は、配置計画において「モジュールを互いに重なることなく、出来るだけ小さい矩形領域内に配置する」という要求に置き換えられる。
隙間無く配置する作業はモジュールが数個から十数個程度であればまるでパズルのようだが、これが数百、数千、それ以上となると、とても人間が手に負える規模ではないことが明らかだろう。
このような理由から、「モジュールを互いに重なることなく、出来るだけ小さい矩形領域内に配置せよ」という要求はフロアプラン問題と呼ばれ、
1980年代になると集積回路設計の自動化に取り組む内外の研究者の格好の研究対象となった。
フロアプラン問題はモジュールの形状を矩形に限定すると、大きさの異なる矩形をできるだけ隙間無く詰め込む問題となる。
この問題は矩形パッキング問題と呼ばれ、NP困難であり[1]、多項式時間で最適解を得る方法は知られていない。
ブロックの数が増えれば増えるほど配置のバリエーションが爆発的に増えていくため、問題解決のために配置の全バリエーションを探索するのは非現実的である。



切出し・詰込み問題に対する実用的解法
切出し・詰込み問題は,いくつかの図形を互いに重ならないように与えられた領域内に配置する問題であり,多くの分野に応用を持つ最適化問題である.
この問題は,長方形詰込み問題,円詰込み問題,コンテナ詰込み問題,多角形詰込み問題など図形の次元や形状によりさまざまなバリエーションを持つ.
切出し・詰込み問題のバリエーションの多くは NP 困難のクラスに属する組合せ最適化問題であり,実用的な規模の問題例に対して厳密な最適解を求めることは非常に困難である.
本稿では,さまざまな形状や大きさの多角形を長方形の容器に詰め込む多角形詰込み問題を取り上げて代表的な近似解法を紹介する.
www6.ocn.ne.jp/~seisan/612/612-56.pdf

502 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 01:22:06.74 ]
そこで遺伝的アルゴリズムの出番ですよ

503 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 02:22:38.87 ]
>>501
思考停止の人だ

504 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 04:15:37.45 ]
完全解でなく回答速度、回答精度で課題の得点を決めるやつなのでは。速く正確な方がいいってやつ。

505 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 06:07:33.34 ]
NP困難を持ち出してどうすんだっていう。

506 名前:デフォルトの名無しさん [2012/01/21(土) 19:02:20.22 ]
[1] 授業単元:アルゴリズムとC言語
[2] 問題文(含コード&リンク):
複数の単語を二次元の文字型配列w[20][10](20単語×(9文字+1))に入力し、一つの英文に合成して出力するプログラムを作りなさい。
ただし以下の仕様を満たすものとする。
・単語の入力を終了する場合は"END"を入力すること。
・一つの英文に合成するときは、単語間に空白を入れること。
・単語入力、英文合成は、それぞれtango、gouseiというサブプログラムを用いること
・ 文字列操作関数strcpy、strcat、strcmpを用いること。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2012年1月25日23:59まで

よろしくお願い致します。

507 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 21:38:58.70 ]
>>506
strcmpが必要な箇所がないように見えるが・・・使いたきゃ使えってだけか?

508 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 21:57:52.57 ]
ENDを入力して単語入力を終了するとき必要じゃね?

509 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 22:51:08.73 ]
>>506
ideone.com/CC4BG

510 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 22:51:18.62 ]
>>506
ttp://codepad.org/Bf6XmEwO
strcpy使ってないけど…だめですか?



511 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 23:01:49.55 ]
>>510
main()のint i;消すの忘れてたわ

512 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 23:25:15.18 ]
#include <stdio.h>
int main() 笑






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<170KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef