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


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

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



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

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

352 名前:デフォルトの名無しさん mailto:sage [2012/08/03(金) 05:02:40.84 ]
  九州北部豪雨で不通となった豊肥線の立野(南阿蘇村)―緒方(大分県豊後大野市)間について、JR九州は「復旧に1年近くかかる」との
見通しを示した。線路に土砂が流れ込んだり線路の土台が流失したりしている場所は、同区間だけで130カ所にのぼる。

  阿蘇市の宮地―波野間では、トンネルからレールが外に流出。入り口で「とぐろ」を巻いていた。

  この区間を走る観光特急「あそぼーい!」(熊本―宮地)は、9月2日まで運転区間を博多―人吉に変更することが決まっている。観光への
影響も深刻だ。

mytown.asahi.com/kumamoto/news.php?k_id=44000001208010001
mytown.asahi.com/kumamoto/k_img_render.php?k_id=44000001208010001&o_id=6635&type=kiji.jpg


353 名前:デフォルトの名無しさん mailto:sage [2012/08/03(金) 06:47:54.48 ]
>>351
[\]^_` ?

354 名前:デフォルトの名無しさん mailto:sage [2012/08/03(金) 07:15:58.80 ]
('A') ンポーイ


355 名前:デフォルトの名無しさん mailto:sage [2012/08/03(金) 07:23:00.44 ]
isupper、islower使うな
上位3ビットの並びが010ならば大文字、011ならば小文字と判断しろ
という問題だからこれでいいのだ

356 名前:デフォルトの名無しさん mailto:sage [2012/08/03(金) 09:43:59.55 ]
>>351
char型をビットシフトするなとあれほど…

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 を考慮しないなら一番早いかも知れないね






[ 続きを読む ] / [ 携帯版 ]

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

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