- 1 名前:デフォルトの名無しさん [2012/07/22(日) 23:08:24.46 ]
- あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他の発言はスルーの方向で。
【質問者へ】 回答者の便宜のため、質問の際は以下を行うことを推奨します。 ・質問は【質問テンプレ】を利用してください。 >>2以降にあります。 ・問題文は、出題されたまま全文を書いてください。 ・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。 ・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。 ・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。 ・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。 ・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
- 357 名前:デフォルトの名無しさん mailto:sage [2012/08/03(金) 10:00:44.10 ]
- 0xE0でマスクしようと思ったけどシフト演算子使えという仕様だもの
- 358 名前:デフォルトの名無しさん mailto:sage [2012/08/03(金) 10:31:28.67 ]
- unsignedでないことを問題にしてるなら、この場合は関係ない
- 359 名前:デフォルトの名無しさん mailto:sage [2012/08/03(金) 11:12:54.24 ]
- >>347です
【質問テンプレ】 [1] 授業単元:c言語 [2] 問題文(含コード&リンク): uproda.2ch-library.com/560146xiQ/lib560146.png uproda.2ch-library.com/560147u8p/lib560147.png uproda.2ch-library.com/560148L12/lib560148.png [3] 環境 [3.1] OS: (Windows/Linux/等々)windows上仮想化linux [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)gcc [3.3] 言語: (C/C++/どちらでも可 のいずれか)c [4] 期限:8月5日22:00まで [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) 問題文の中にどの様に組むか指定されているのでそれにしたがって組むこと、と書いてあります。 以下が vector.h というc言語ヘッダーのリンクです。 uproda.2ch-library.com/560151ZK1/lib560151.h これを落として include "vector.h" をつかえとの指摘も問題文にありました さきほどまで自分で解こうと必死こいてましたが 期限が迫っているのに進展がほぼなかったのでここで質問させていただきました くどいようですがどうかお願いします
- 360 名前:デフォルトの名無しさん mailto:sage [2012/08/03(金) 14:57:12.06 ]
- >>355
どこかにそう断らないとまずいだろう。いつどこで模範解答として使われるかもわからない。
- 361 名前:デフォルトの名無しさん mailto:sage [2012/08/03(金) 15:03:11.01 ]
- >>360
それは、宿題スレ如きから模範回答を作ろうとする輩の責任だな。
- 362 名前:デフォルトの名無しさん mailto:sage [2012/08/03(金) 18:54:28.56 ]
- 【質問テンプレ】
[1] 授業単元: c言語入門 [2] 問題文(含コード&リンク): スライダーとプログレスバーを連動させスライダーを動かすとその分プログレスバー が動くプログラムを作成せよ [3] 環境 [3.1] OS:Windows7 [3.2] vc2010 [3.3] 言語: C [4]期限なし お願いします
- 363 名前:デフォルトの名無しさん mailto:sage [2012/08/03(金) 23:24:29.33 ]
- cuiでスライダーとプログレスバーを作るということ?
- 364 名前:デフォルトの名無しさん mailto:sage [2012/08/03(金) 23:29:26.64 ]
- いやGUIだろ
- 365 名前: 忍法帖【Lv=40,xxxPT】 mailto:sage [2012/08/03(金) 23:34:41.24 ]
- > [3.3] 言語: C
?
- 366 名前:デフォルトの名無しさん mailto:sage [2012/08/03(金) 23:46:39.57 ]
- >>362
DelphiかC++Builder使ってもいいのならすぐに出来るよ
- 367 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 00:45:37.90 ]
- できた。完璧だわ。
#include <stdio.h> int slider_pos = 0; void draw_slide(void) { int i,c; printf("<-"); for(i=0; i<slider_pos; i++) { printf(" "); } printf("+"); for(i=slider_pos; i<20; i++) { printf(" "); } printf("->\n"); c = getch(); if(c == 0x4B) { if(slider_pos > 0) { slider_pos--; } } else if(c == 0x4D) { if(slider_pos < 20) { slider_pos++; } } } void draw_progress(void) { int i; for(i=0; i<slider_pos; i++) { printf("■"); } for(i=slider_pos; i<20; i++) { printf("□"); } printf("\n"); }
- 368 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 00:46:08.32 ]
- 続き
int main(void) { while(1) { system("cls"); draw_progress(); draw_slide(); } return 0; }
- 369 名前: 忍法帖【Lv=18,xxxPT】 mailto:sage [2012/08/04(土) 05:33:59.80 ]
- [3.3] 言語: WinMain で始める。
- 370 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 08:06:54.49 ]
- qoly.jp/index.php/news/11207-olympic-20120731-swiss
ミシェル・モルガネッラは、自身のツイッターに「韓国人みんなボコボコにしたいぜ。業火に焼かれちまえ。この先天異常者どもが」と投稿。 経過 サッカーの試合で韓国選手がスイス選手の足を少し踏む ↓ やや大袈裟に倒れ、韓国選手にイエロー ↓ モルガネラのフェイスブックに「ダイブ」だと批判の書き込みが殺到し炎上 ↓ モルガネラ激怒、ツイッターで「韓国人はクレージー」発言 ↓ 韓国人が「人種差別」と通報 ↓ モルガネラ、ツイッターで謝罪しアカウント削除 ↓ 事態を重く見たスイスオリンピック委員会がモルガネラをチームから追放 ↓ ニダーさん達、にっこり
- 371 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 09:52:28.98 ]
- >>362
ttp://ideone.com/ywyNN
- 372 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 14:25:49.53 ]
- >>371 367 ありがとうございました
- 373 名前:109 [2012/08/04(土) 20:28:10.56 ]
- >>109です。
以前、こちらに書き込みをして、 >>197さんが回答してくださり、 一週間ほど考えてみましたが、 内容が自分では理解できませんでした。 どなたか197さんのプログラムについて、 各行の処理の意図を解説していただけないでしょうか。
- 374 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 20:30:52.23 ]
- >>373
>>295
- 375 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 00:51:09.99 ]
- 韓国ハンファグループ日本法人のハンファ・ジャパンは2日、
総合商社の丸紅が建設を計画している日本全域の太陽光発電所に、 向こう4年間で約50万キロワット分の太陽光モジュールを供給することで 丸紅側と合意したと明らかにした。近く本契約を締結する。 供給されるモジュールは全てハンファソーラーワンの製品で、 売上額は6000億ウォン(約416億円)に達すると見込まれる。 日本への太陽光モジュールの供給が本格化したのは、 東日本大震災が発生した昨年3月以降だ。 ハンファグループは震災後、鳩山由紀夫元首相の支援要請に応じて 太陽光発電システムなど10億ウォン相当の支援を実施。 これを機に金升淵(キム・スンヨン)グループ会長が日本を訪れ、 野田佳彦首相や丸紅の朝田照男社長と面会し、太陽光発電事業での提携を協議した。 japanese.yonhapnews.co.kr/headline/2012/08/02/0200000000AJP20120802003300882.HTML >ハンファグループは震災後、鳩山由紀夫元首相の支援要請に応じて >太陽光発電システムなど10億ウォン相当の支援を実施。 >これを機に金升淵(キム・スンヨン)グループ会長が日本を訪れ、 >野田佳彦首相や丸紅の朝田照男社長と面会し、太陽光発電事業での提携を協議した。
- 376 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 01:26:36.73 ]
- >>375
だからこういうスレ貼るな 再利用可能エネルギーの高価買取りの時点で売国なのは分かってたし 韓国製や中国製のソーラーパネルは10年でダメになる 日本製のは10年以上使える
- 377 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 08:45:16.56 ]
- 【質問テンプレ】
[1] 授業単元:アルゴリズムと最適化 [2] 問題文(含コード&リンク):問題ファイルを読み込み、タブーサーチアルゴリズムを用いて最適化を行いなさい。 問題ファイル: www.opt.math.tu-graz.ac.at/qaplib/data.d/tai20b.dat [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 無期限 [5] その他の制限: 特になし どうもうまくいきません。 お手数ですがよろしくお願いします。
- 378 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 08:56:42.81 ]
- >どうもうまくいきません
ならそのコードを書け
- 379 名前: ◆QZaw55cn4c mailto:sage [2012/08/05(日) 09:22:49.73 ]
- >>377
問題文を全文教えてください。できれば日本語か英語で。 リンクで示されたデータは何をあらわすのでしょうか? どういう問題を解きたいのでしょうか? 初期解、近傍解生成法、評価関数は問題により適切に設定しなければいけませんが、 なんの問題がわからなければどうしようもありません。
- 380 名前: 忍法帖【Lv=19,xxxPT】 mailto:sage [2012/08/05(日) 11:18:51.39 ]
- あのゲームのCM見てて、釣りって言葉が嫌いになった。
- 381 名前: 忍法帖【Lv=19,xxxPT】 mailto:sage [2012/08/05(日) 12:34:11.50 ]
- >>197 コンパイルはしてない。当然実行もしてない。
jbbs.livedoor.jp/bbs/read.cgi/computer/32221/1246384344/45
- 382 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 16:55:19.46 ]
- 【質問テンプレ】
[1] 授業単元: [2] 問題文:objファイルを任意の点から任意の座標軸に平行に切断して、その断面のデータを出力するプログラムを作成せよ [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン: visual studio 2010 express [3.3] 言語:C++ [4] 期限: 2012年9月末 [5] その他の制限:objファイルの読み込み・表示には「objファイル 表示」でググった一番上のページにあるobjファイル表示プログラムを使用 とっかかりすらつかめない… どうかお願いします
- 383 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 17:42:38.30 ]
- fuckだな
メタセコイアでやれと言わんばかりの課題だ それとも それのpluginでも作るのか?
- 384 名前:デフォルトの名無しさん [2012/08/05(日) 21:26:36.76 ]
- [1] 授業単元:プログラミング
[2] 問題文: >>52の問題を ideone.com/PQY6f のように提出したのですがが以下のように添削が入りました。 必要に応じて、const型修飾子を使いましょう。 まだ、使える部分があります。 外積の関数以外はn次元ベクトルに対して計算できるので、 汎用性を考えて作ってください。 つまり、関数の引数にベクトルの次元を取ります。 お手数ですが、どなたか修正お願いします。 [3]環境 [3.1]OS:Linux [3.2]コンパイラ:gcc [3.3]言語: C [4] 期限:8月8日 [5] その他の制限:
- 385 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 21:34:20.05 ]
- [1] 授業単元:C
[2] 問題文(含コード&リンク):pastebin.com/Unq37FBw 以下のプログラムにコメントを付け加えよ。 [3] 環境 [3.1] OS:Windows [4] 期限: 2012年8月6日 [5] その他の制限:ソート関数プログラムです。 初心者が見ても関数の動きや構造が分かるようにコメントをお願いいたします。
- 386 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 21:39:23.28 ]
- >>384
ttp://ideone.com/iHDiX
- 387 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 23:40:45.03 ]
- >>385
pastebin.com/gfQtbt3a
- 388 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 00:11:43.68 ]
- >>387
とても分かりやすいコメントありがとうございました
- 389 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 00:15:25.89 ]
- よくやる気になるなあんた職業プログラマに向いてるよ
- 390 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 00:17:03.99 ]
- [1] 授業単元:C
[2] 問題文(含コード&リンク):pastebin.com/HFp4SWZW 以下のプログラムにコメントを付け加えよ。 [3] 環境 [3.1] OS:Windows [4] 期限: 2012年8月7日 [5] その他の制限:16進変換関数プログラムです。 初心者が見ても関数の動きや構造が分かるようにコメントを付けてくださると助かります。 長いプログラムでお手数おかけしますがよろしくお願いいたします。
- 391 名前:デフォルトの名無しさん [2012/08/06(月) 02:40:35.06 ]
- [1] 授業単元: パーティクル、ビルボード、加算合成を使用したプログラム
[2] 問題文(含コード&リンク): DIRECTXを使って パーティクル、ビルボード、加算合成を使用した演出プログラムの作成。 例)炎や爆発など [3] 環境 [3.1] OS: Windows7 [3.2] コンパイラ名とバージョン: Microsoft Visual Studio 2008 [3.3] 言語: C/C++/どちらでも可 [4] 期限: ([2012年8月10日20:00まで] [5] その他の制限: お手数ですが、コメントのほうよろしくお願いします。
- 392 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 07:02:10.62 ]
- fuckだな
gimpでやれと言わんばかりの課題だ それとも それのfilterでも作るのか?
- 393 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 10:18:37.92 ]
- デジャビュー
- 394 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 11:19:20.10 ]
- >>378
語弊でした。ほぼわかってない状態です・・・ >>379 返信おそくなり、申し訳ないです このファイルのデータは正方20行で表される2つの行列A,Bです。 近傍解を2-opt(行列の数字を入れ替え)に生成、タブーリストと呼ばれるリストから局所解にとどまるのを防ぐのですが、いまいち理解してない点が多いです。 ideone.com/FULhj これが実際のソースコードみたいなのですが、とても精錬にかかれているため初心者には理解が難しいです。 もし、良ければこちらのソースコードを解説して頂けないでしょうか?
- 395 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 15:33:17.25 ]
- >>384
>>52は問題が違うようですが、元の出題はどこですか?
- 396 名前:384 mailto:sage [2012/08/06(月) 15:46:29.99 ]
- ガタガタぬかさんとさっさと答えろカス
- 397 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 16:23:35.44 ]
- >>396
盗人猛々しいw
- 398 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 16:59:58.36 ]
- >>396
それくらい自分でやれよw
- 399 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 17:10:41.56 ]
- このスレも夏厨だらけ・・・
- 400 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 18:06:09.22 ]
- >>396
お前偽物だろ
- 401 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 18:10:27.24 ]
- struct node {
int value; struct node * next; }; int main(void) { int i=0; struct node top; struct node *newNode,*tmp; /* top.next=NULL; うまくバグになる良いのだが */ top.value=0; for (i=0;i<10;i++) { newNode=(struct node *) malloc(sizeof(struct node)); newNode->next=top.next; newNode->value=i*3; top.next=newNode; } tmp=⊤ while(tmp!=NULL) { printf("%d\n",tmp->value); tmp=tmp->next; } return 0; } セグメンテーションフォルトを直したいんだけれど教えていただけないだろうか
- 402 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 18:14:35.86 ]
- ごめんなさい、レンプレ読んでませんでした>>401に加えて
[1] 授業単元:プログラミング [2] 問題文 「セグメンテーションフォルト」を見つける [3] 環境 [3.1] OS: (Windows/Linux/等々) [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) [3.3] 言語: C [4] 期限: 2011年8月10日16:00まで。
- 403 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 18:21:05.34 ]
- >>402
ttp://ideone.com/BWZKo 13行目でNULLをセットしてないと22行目のループでセグメンテーションフォルトになる
- 404 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 18:29:05.97 ]
- >>403
ありがとうございます whileループで思いっきりNULL判定使ってましたね・・・ 先生も気付きやすいようコメントで書いてくれてるというのに.. いやはや助かりました
- 405 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 18:34:34.45 ]
- つーかコメントも問題文の一部かよ
答え書いてあるようなものじゃないか
- 406 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 20:19:04.86 ]
- プログラミング以前に
なにか読み書きの中枢に異常があるんだろ それか注意力欠陥とか 文章を読みこむ能力が足りないとか、 根本的に脳の配線がおかしいとか、 キーボード打つまえにもっと能力向上の余地がある 逆に、無いと困る これでMAXとかいったら 学校じゃあなくてもっと別の保健所的な場所に赴いた方がいい
- 407 名前:デフォルトの名無しさん mailto:sage [2012/08/07(火) 10:23:36.32 ]
- >>406
社会に出たらそんな連中ばかりだぞ
- 408 名前:デフォルトの名無しさん mailto:sage [2012/08/07(火) 18:56:24.87 ]
- どんな社会に居るんだよ・・・
- 409 名前:デフォルトの名無しさん mailto:sage [2012/08/07(火) 20:06:10.27 ]
- [1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):codepad.org/oJZv75HG プログラムを実行した時に10個のサイトが表示されるが、その中でも右上の黒枠が濃いラベルを持つサイトが一つある。 このラベル部分に他のラベルが重っているかどうかを判定するプログラムの作成。 [3] 環境 [3.1] OS:Vista [3.2] VC [3.3] 言語:C++ [4] 期限: 2012/08/07 [5] その他の制限: よろしくお願いします。
- 410 名前:デフォルトの名無しさん mailto:sage [2012/08/07(火) 20:08:36.08 ]
- ずいぶんと力作じゃあねぇか
とくに glBegin(GL_LINE_LOOP); glVertex2f(LPx[i], LPy[i]); glVertex2f(LPx[i]+Lx[site[i]], LPy[i]); glVertex2f(LPx[i]+Lx[site[i]], LPy[i]+Ly); glVertex2f(LPx[i], LPy[i]+Ly); glEnd(); のトコロなんて あまりにも嬉しくて涙が出そうになった ttp://www.pro.or.jp/~fuji/mybooks/cdiag/ ここに投稿するといい ソースの殿堂に並ぶ、という栄誉を得られる
- 411 名前:デフォルトの名無しさん mailto:sage [2012/08/08(水) 16:33:56.46 ]
- >>410
この程度で殿堂入りできるわけねーだろ
- 412 名前:デフォルトの名無しさん mailto:sage [2012/08/10(金) 06:31:47.09 ]
- 今の時期は宿題少ないなぁ。
8月最終週になったらドバッと来るんだろうけど。
- 413 名前: ◆QZaw55cn4c mailto:sage [2012/08/10(金) 07:46:50.89 ]
- どうせやらないかんのならはやめにこのスレに晒してくれ。
- 414 名前:デフォルトの名無しさん mailto:sage [2012/08/10(金) 15:44:50.19 ]
- 無職のオッサンは暇だなあ
- 415 名前:デフォルトの名無しさん [2012/08/11(土) 13:34:58.15 ]
- [1] 授業単元:プログラミング演習
[2] 問題文:1行ごとに1単語(英単語)が書かれたファイルがある。 このとき、このファイルの内容をソートして出力するプログラムを作成せよ。 ファイルの行数は不定(事前にわからない)とし、また上限を定めないこと。 ソートは昇順あるいは降順いずれにも対応できること。 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:8月31日まで [5] その他の制限: ・ファイルの読み込みは1回のみとする。 ・Cライブラリ関数のqsortは利用してはならない。 ・単語を格納するデータ構造として配列は使用してはならない。 どうかよろしくお願いします。
- 416 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 13:38:47.12 ]
- windowsなら
まずは sort data.txt > data_sorted.txt とでも試してみろ
- 417 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 14:32:15.70 ]
- >>415
ファイルの行数が不定という事は、メモリに全部テキストを読み込めない 可能性も考慮しなければいけないって事? もしその場合はランファイルを用いたマージソートが必要になるけど メモリに収まると分かっているのなら簡単
- 418 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 15:14:53.12 ]
- ランファイルって何?
- 419 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 15:39:22.22 ]
- 外部ソート ラン でぐぐってみ
要するにマージソートの途中過程をファイルにして持っておくしか手がないわけだ その細かく分割されたそれ自体はソート済になっているファイルをランと呼ぶ それをマージする時にソートを崩さないようにマージして行き、済んだらマージ前の ランは消去 こういうアルゴリズム
- 420 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 15:55:06.58 ]
- www.ice.gunma-ct.ac.jp/~tsurumi/courses/Pro/2_4.pdf
これだとアルゴリズムがそっくり載ってるからこのままプログラムすればいいな
- 421 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 17:35:02.18 ]
- それだと今度はディスクに十分な空きがあることが条件になるだけだし
> ファイルの読み込みは1回のみ という制限に引っかかるんじゃね?という気がする。 だから単純に全部オンメモリでもいいと思うけど 期限はまだ先だし題意を確認してからのほうがいいだろ
- 422 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 17:43:02.79 ]
- >>421
まあそうなんだけどわざと意地悪してみた >ファイルの行数は不定(事前にわからない)とし、また上限を定めないこと。 この場合はリストでも使うかポインタ配列にしてポインタ配列をrealloc()するかだな ただしC++のstd::vectorと同じくrealloc()する度にポインタ配列のサイズを倍々にしていかないと O(1)でメモリが確保できなくなる >・ファイルの読み込みは1回のみとする。 だから先読みして行数をカウントするのは駄目だし >・Cライブラリ関数のqsortは利用してはならない。 自前のクイックソートでいいんでしょ
- 423 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 17:43:43.42 ]
- リストにするとソートが大変なんで結局 char *が入ったポインタ配列になるだろうな
- 424 名前: ◆QZaw55cn4c mailto:sage [2012/08/11(土) 17:51:52.72 ]
- >>415
toro.2ch.net/test/read.cgi/tech/1313183984/17 ideone.com/aaZlW オンメモリね。過去問で、今回の題意にあうかあまり検討してないのはごめんなさい。
- 425 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 18:07:12.79 ]
- >>424
こりゃまたひどいプログラムですねww
- 426 名前: ◆QZaw55cn4c mailto:sage [2012/08/11(土) 18:16:40.76 ]
- >>415
toro.2ch.net/test/read.cgi/tech/1313183984/338 ごめんなさい。 >ソートは昇順あるいは降順いずれにも対応できること。 が抜けていた。あと、同一単語が連続するとリークしてました。 >>425 どういうところが「ひどい」とお感じになったのか、よろしければぜひ。
- 427 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 18:32:21.62 ]
- >>426
>ソートは昇順あるいは降順いずれにも対応できること。 が抜けていた。あと、同一単語が連続するとリークしてました。 それから xmalloc()ってなんですかあ?マクロで無効にされてますけど 走らせてみたら木構造を表すのにデータの1/2ほどのメモリを使ってますよ
- 428 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 18:42:23.89 ]
- codepad.org/iUgdapWZ
約1GBのランダムなテキストファイルを作るプログラム これを食わせてソートしてみよう
- 429 名前: ◆QZaw55cn4c mailto:sage [2012/08/11(土) 18:53:37.75 ]
- >>427
>xmalloc()ってなんですかあ?マクロで無効にされてますけど #define xmalloc(x, y) malloc(x) #define xfree(x, y) free(x) #define xrealloc(x, y, z) realloc(x, y) #define xmallocdump() がすべてです。そう読み替えてくださいな。 >走らせてみたら木構造を表すのにデータの1/2ほどのメモリを使ってますよ 単語が短いとね、というか単語は短いものだしね。仮に木構造をマネージする構造体 >>426 の struct node が、sizeof(struct node) == 12 なら、 >木構造を表すのにデータの1/2ほどのメモリ というのは単語の平均長が24くらいになりますね。ちょっとありえないか。 どこぞのキャッチフレーズ「重複排除」とか不定長構造体をつかってみましょうか。
- 430 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 18:59:20.47 ]
- >>429
いや>>428のプログラムを走らせて言ってるんだけど 一行が1001文字ありますよ? 約1.4GBのメモリ食ってます
- 431 名前: ◆QZaw55cn4c mailto:sage [2012/08/11(土) 19:52:02.75 ]
- >>430
検証ありがとうございます。こちらでも >>428 で確かめました。しかし、 >約1.4GBのメモリ食ってます はこちらでは確認できませんでした。 17c17 < #define BUFFSIZE 3 /* >= 2 */ --- > #define BUFFSIZE 1024 /* >= 2 */ codepad.org/rm5Gl0qf で状況が変わる性質のものでしょうか?
- 432 名前: ◆QZaw55cn4c mailto:sage [2012/08/11(土) 19:54:09.41 ]
- 環境: PhenomIIx6(1100T?)/16G/Windows7-64bit/gcc4.3.2(cygwin)32bitアプリとしてコンパイル
- 433 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 19:57:54.63 ]
- 0.4なら誤差かも知れない
- 434 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 20:49:02.48 ]
- >>432
見栄張らなくていいのに(。´・д・) PenV850MHzなんでしょ それともCPU-Zのスクショマダァ?(・∀・ )っ/凵⌒☆チンチン
- 435 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 20:52:29.45 ]
- 簡単に見抜く方法があるぞ
SSE3のバイナリ吐かせて走らせてもらえばいい
- 436 名前: ◆QZaw55cn4c mailto:こんなのばかりがなぜか湧く..... [2012/08/11(土) 20:58:18.37 ]
- >>434
愛用していた Let's note ではあったのですが、残念なことに壊れてしまいました。 でも凋落著しいアムド屁ノムごときで見栄を張っているとかいわれても困惑するばかりなのですけれども。 >>435 ソースを codepad に貼り付けていただければ、その実行結果をお返ししますよ。
- 437 名前: ◆QZaw55cn4c mailto:sage [2012/08/12(日) 01:20:39.61 ]
- >>429
>「重複排除」とか不定長構造体 codepad.org/70zSBg25 >>428 で生成したデータでは重複排除は意味がありませんでした。
- 438 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 02:44:21.95 ]
- >愛用していた Let's note ではあったのですが、残念なことに壊れてしまいました。
じゃ今使っている現用機のCPU-Zのスクショ貼れるよな?
- 439 名前: ◆QZaw55cn4c mailto:sage [2012/08/12(日) 07:54:35.92 ]
- >>415
>>422 の方針でかきました。>>426 よりずいぶんとはやくなりました。 toro.2ch.net/test/read.cgi/tech/1313183984/351
- 440 名前: ◆QZaw55cn4c mailto:こんなのばかりがなぜか湧く..... [2012/08/12(日) 09:16:05.41 ]
- >>433
メモリ使用量の算出で、 malloc() での要求量を積算し、free() での解放は考えないタイプ(どうせ端したをfree()してもOSに返るわけでもなし) malloc() 自体が要求量よりも大目にあらかじめ確保しておくタイプ(PHK malloc() とか) realloc() = malloc() + memcpy() + free() なタイプ みたいなものであれば、40% ほど大目にでてきても仕方がないかもしれません。 >>431 で示しているとおり、アイデアリスティックな表現 #define BUFFSIZE 3 /* >= 2 */ のために realloc() が頻発してしまっているのが悪そうです。 そんな処理系があるかどうかはよくわかりません。
- 441 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 12:03:06.88 ]
- shell関数でsort呼べばいいんじゃね?
- 442 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 12:27:33.01 ]
- そんな夢の無いこと言うなよw
ま iinuxやらBSDのsortのソースは見ろ と勧めるが ttp://ftp.gnu.org/gnu/coreutils/ ttp://heirloom.sourceforge.net/tools.html
- 443 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 13:30:52.21 ]
- キッチン・トイレメーカー
- 444 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 15:33:49.41 ]
- やってみた
いろいろ手抜き #include <stdlib.h> #include <stdio.h> #include <limits.h> int main(int argc, char *argv[]) { char c[PATH_MAX+1]; switch(argc){ case 2: sprintf(c,"sort %s",argv[1]); break; case 3: sprintf(c,"sort %s %s",argv[1],argv[2]); break; default: exit(1); break; } system(c); }
- 445 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 15:35:27.11 ]
- これもうそのままsort使えば早いんじゃないかな
- 446 名前: ◆QZaw55cn4c mailto:sage [2012/08/12(日) 18:41:53.87 ]
- >>415
toro.2ch.net/test/read.cgi/tech/1313183984/358 >>423 無理してみましたが、線形リストのソートはどうあがいても遅くなってしまいました。昔うんこ呼ばわりされたのも仕方がない。
- 447 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 20:43:38.79 ]
- オンメモリが前提でよければ、stat呼んで、ファイルサイズ取得し、
必要メモリサイズを確保して一気読みしたら?
- 448 名前: ◆QZaw55cn4c mailto:こんなのばかりがなぜか湧く..... [2012/08/12(日) 21:07:46.89 ]
- >>447
stat(2)/fstat(3) が標準Cライブラリなら。となれば fseek()/ftell() か。 一揆読みのあと、一行の単位で区切らなければいけないのが、はてさて。
- 449 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 21:09:08.56 ]
- >>447
パイプ使って標準入力から流れてきたらどうすんの?
- 450 名前: 忍法帖【Lv=40,xxxPT】 mailto:sage [2012/08/12(日) 21:20:11.33 ]
- >>449
>>415に >[2] 問題文:1行ごとに1単語(英単語)が書かれたファイルがある。 とありました。
- 451 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 21:20:50.69 ]
- 分かった
これは標準のsortが どれだけ洗練されているかを理解させるための実習なんだ
- 452 名前:デフォルトの名無しさん mailto:sage [2012/08/13(月) 01:50:40.45 ]
- >>447-448
一気読みしたファイルの \n を \0 に置き換えながら char* 配列に文字列先頭アドレスを格納する char* 配列のサイズは一気読みしたファイルサイズの5〜10分の1くらいを確保して足りなくなったら拡張する >>449 を考慮しないなら一番早いかも知れないね
- 453 名前:デフォルトの名無しさん mailto:sage [2012/08/13(月) 20:08:28.47 ]
- こんな課題にムキになんなよなぁ
速いのが欲しいならflash sortでもしろよO(n)だぞ
- 454 名前:デフォルトの名無しさん mailto:sage [2012/08/13(月) 21:16:02.49 ]
- >>453
口だけ達者でコードは書けないのですね
- 455 名前:デフォルトの名無しさん mailto:sage [2012/08/13(月) 21:21:53.23 ]
- >>454
そりゃflash sortとか書けねーよ, 金貰えるなら調べて頑張るかもしらねーけど.
- 456 名前:デフォルトの名無しさん mailto:sage [2012/08/13(月) 21:36:30.54 ]
- >>455
コードひとつかけないのなら死ね
- 457 名前:デフォルトの名無しさん mailto:sage [2012/08/13(月) 21:39:50.30 ]
- >>456
お前が金くれんなら書くけど.
|

|