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


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

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



1 名前:デフォルトの名無しさん [2010/01/18(月) 23:25:55 BE:265079647-S★(508111)]
あなたが解けない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++の宿題片付けます 133代目
pc12.2ch.net/test/read.cgi/tech/1260532772/

345 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 12:09:33 ]
>>341
宿題のレベル超えるから最適化アルゴリズムでも調べてくれ
>>342
それをやったとしても計算量のオーダーには寄与しないよ
テクニックとしては重要だが。
>>343
そのやり方だと「AとBが隣り合う」という条件を完全に満たして、
「身長差が小さい」についてはそこそこ、という解が得られる。
そういう解が欲しいときにはその手の方法がベストだと思う。
>>200の問題文を見る限り、その解釈でいいと思う。

346 名前:デフォルトの名無しさん [2010/01/30(土) 13:21:56 ]
Microsoft社 Visual Studio C++のソフトウェアを用いて
チャットアプリケーションを作れと言われたのですが、
当方C言語系がとても苦手で困っています;;

システムの仕様は
・1対1の環境でのみ動作。
・サーバ側はポート番号を指定して、クライアントからの接続を待つ。
・クライアント側はサーバのIPアドレスとポート番号を指定して、サーバに接続する。
・この時の通信はTCPで行う。
・クライアントが通信をやめたい場合は"endc"
・サーバ側がやめたい場合は"ends"と入力。
・WinSockを使用してWindowsのコンソールプログラムとして基本的な簡易なチャット

以上の条件でプログラミングしていただけると幸いです。
よろしくお願いします m__)m

347 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 13:38:34 ]
>>346
>>1

348 名前:200 mailto:sage [2010/01/30(土) 14:21:39 ]
身長順にソートできれば確かに楽になりそうですね。
ただ>>200の問題はもっと複雑なものの一部分を抜き出したもので、
本当は身長順というよりも2次元平面上で距離が近いもの同士って感じなんです。
そうなると・・・ちょっと安易にはソートできないかな?

なんにしても宿題としては提出してしまっているので自分が気になってるだけです。
最適化アルゴリズムでいろいろ見てみようと思います。

349 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 14:45:58 ]
Cマガのプログラミング研究会を思い出した。

350 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 15:26:06 ]
>>345
343じゃないけど、>>343のやり方で、
身長差が最小とならない場合って、どんな場合?
計算してみたら、常に最小になりそうなんだが。

それとも「そこそこ」ってのは
「最小にならない場合がある」って意味ではない?

351 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 15:29:09 ]
[1] 授業単元:プログラミング演習U
[2] 問題文(含コード&リンク):
□1□2□3□4□5□6□7□8□9
の□に四則の演算子(+,−)や空白を入れて100なるような
小町算の全ての解を求めるプログラムを作成すること

例えば
12 + 3 - 4 + 5 + 67 + 8 + 9 = 100
123 - 45 - 67 + 89 = 100
[3] 環境
 [3.1] OS: Windows
 [3.2] VC3.5SP1
 [3.3] 言語: C++
[4] 期限: 本日4時まで
[5] その他の制限: 特にないです

かなり切羽詰まってるのでお願いします…

352 名前:350 mailto:sage [2010/01/30(土) 15:42:36 ]
と、思ったけど、AとBが隣り合わない場合を考慮すると、
343のやり方では、身長差が最小とならない場合がある、
という意味だったのね。
失礼、読み違えてました。

353 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 16:14:36 ]
[1] 授業単元:コンピュータグラフィック
[2] 問題文(含コード&リンク):10468.txt
モノクロ画像を読み込み,(319,239) の画素値を 0 とする
画像を関数を使用して読み込み,それを 2 次元配列に格納する関数を作成する.
指定した画素の画素値をセットする.
2 次元配列に格納していた画像を 1 次元配列に再度格納し,関数を使用して画像ファイルとして書き戻す.

[3] 環境
 [3.1] OS:WindowsXP
 [3.2] VC 05
 [3.3] 言語:C
[4] 期限: ([2010年2月1日01:00まで]
[5] その他の:
前スレで24日辺りに回答を頂いた問題なのですが、差し戻されました
自分なりに分かる部分を書き直してみましたが、一向に解決しないので回答をいただけないでしょうか?



354 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 16:16:35 ]
>>351
31分でコードを作ってもらおうという考えは非常識

355 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 17:51:17 ]
>>351
前にIPAの試験に出てたので、そのまま作ってみたよ
codepad.org/2eIcdrm7

356 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 18:07:34 ]
[1]情報科学特論 (大学院講義レポート課題)
[2]kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10469.txt
[3] OS:Solaris GNU-C-compiler 4.0 C言語
[4] 2/11迄
[5] 面倒なのでよろしく

357 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 18:28:17 ]
[1] 授業単元:計算機自論
[2] 問題文(含コード&リンク):
LISPはCと同じで関数型言語ではないということを200文字以内で表現してください
[3] 環境
 [3.1] OS: すべて
 [3.2] コンパイラ名とバージョン: すべて
 [3.3] 言語: 日本語
[4] 期限: 無期限

358 名前:デフォルトの名無しさん [2010/01/30(土) 19:15:44 ]
[1] 授業単元:プログラミング演習U
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10471.txt
[3] 環境
 [3.1] OS:WindouwsXP
 [3.2] コンパイラ名とバージョン:VisualC++2008 Express Edition
 [3.3] 言語:C
[4] 期限:2010年2月2日15:00まで
[5] その他の制限:特になし

なんとか途中まで頑張りましたが、今の自分ではこれが限界でした・・・。
問題文リンク先の≪問題と条件≫の全てを満たすソースを、お教え下さい。
お手数かけますが、よろしくお願いします。

359 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 19:21:19 ]
>>351
なんか変数いっぱい散らかしてもっちゃりしてるけど。
処理もなんかぐねぐねぐねぐねとしてるし。駄目だな。
ttp://codepad.org/E2NpBjB2

>>355さんのを見て勉強しなおしてきます。

360 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 19:44:31 ]
>>358
#include <stdio.h>
int main(int argc,char *argv[]){
FILE *fp1=NULL,*fp2=NULL;
char buf;
int i=1;
int result=0;
if(argc!=3){
printf("引数が不正\n");
result=-1;
goto EXIT;
}
fp1 = fopen(argv[1],"rb");
fp2 = fopen(argv[2],"w");
if(fp1==NULL || fp2==NULL){
printf("file open error\n");
result=-1;
goto EXIT;
}
while(fread(&buf,1,1,fp1)){
fprintf(fp2,"%02X ",buf);
if(i%16==0)
fprintf(fp2,"\n");
i++;
}
EXIT:
if(fp1) fclose(fp1);
if(fp2) fclose(fp2);
return result;
}


361 名前:デフォルトの名無しさん [2010/01/30(土) 20:26:12 ]
360さん。回答ありがとうございます。
早速、このソースでコンパイルしたところ問題なくビルドは出来ました。
しかし、その後の「デバックなし」で実行してみましたが、
「引数が不正」と表示されてしまい、上手く出来ません。
これは何故でしょうか?しょぼい質問ですいません・・・。

362 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 20:38:24 ]
>>361
≪問題と条件≫
第1引数に指定したファイルからバイナリーモードで1バイトずつファイルを読み込み、
ファイルの内容を16進数で示したものを第2引数に指定したファイルに書き込むプログラムを作成せよ。ただし、16バイトごとに改行を入れること。
(実行)
>free1.exe test.txt test2.txt

でしょ?

363 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 20:41:50 ]
>>361
横からだけど、
今の場合引数っていうのは、プログラム実行時にプログラム名の後に続けて書くもの

>free1.exe test.txt test2.txt
この場合はtest.txtが第1引数で、test2.txtが第2引数

例えばここを
>free1.exe hoge.txt fuga.txt
にしても、ちゃんとhoge.txtから読み込んでfuta.txtに出力するような
プログラムを作れっていうのが、この課題なんじゃないかな



364 名前:デフォルトの名無しさん [2010/01/30(土) 20:45:52 ]
>>362
はい、そうです。

365 名前:デフォルトの名無しさん [2010/01/30(土) 20:51:31 ]
>>363
はい、test.txtとhoge.txtは、あらかじめ作成している状態です。

366 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 20:57:08 ]
分かってねー

367 名前:363 mailto:sage [2010/01/30(土) 20:59:19 ]
>>365
だったら実行時に指定しないと。
VC++でどうやって指定するか分かんないけど

368 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 21:11:35 ]
>>365
コマンドライン引数というものが分かってないので
ttp://www9.plala.or.jp/sgwr-t/c/sec11-4.html
ttp://www.geocities.jp/ky_webid/c/045.html
この辺読みましょう


369 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 22:28:36 ]
[1] 授業単元: プログラム演習U
[2] 問題文(含コード&リンク):
3次元空間において線分が平面を通過しているか判定するプログラムを作りなさい
(線分の座標(x1,y1,z1) (x2,y2,z2)と平面の四隅の座標は入力する)
平面を通過していても平面の四隅の中に交点がない場合は通過していないものとする
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:VC
 [3.3] 言語: C
[4] 期限:2010/2/8

お願いします

370 名前:デフォルトの名無しさん [2010/01/30(土) 22:43:05 ]
>>358です。
稚拙ですが、質問をURLにまとめたので、よろしくお願いします。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10472.txt

371 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 22:46:23 ]
>>370
>>368を読め。

372 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 22:58:55 ]
>>370
Cドライブ直下にfreeフォルダを作成します。
C:\free です。

>>360のソースを free1.c などとしコンパイルして free1.exe を作成します。
作成された free1.exe を C:\free フォルダ内にコピーします
C:\free\free1.exe です。

作成済みのデータ test.txt も同様に C:\free フォルダ内にコピーします
C:\free\test.txt です。

C:\free フォルダの中には free1.exe test.txt 2つのファイルがあります。

コマンドプロンプトを起動します。
スタート>ファイル名を指定して実行>cmd.exe OKボタン

コマンドプロンプトが立ち上がりました。
C:\............... >_ (_は点滅状態)
となります。

カレントディレクトリを C:\free に移動します。
C:\............... >cd c:\free
です。

C:\free>_ (_は点滅状態)
になりました。

この状態で
C:\free>free1.exe test.txt test2.txt
を実行します。

C:\freeフォルダの中に test2.txt が作成されました。おしまい。

373 名前:デフォルトの名無しさん [2010/01/30(土) 23:03:50 ]
>>340

ありがとうございます!助かりました!

課題4、5については引き続きどなたかよろしくお願い致します。。



374 名前:デフォルトの名無しさん mailto:sage [2010/01/30(土) 23:30:33 ]
>>353
ファイルの入出力はファイルポインタを用いたものに変更してます。
(インデントが変な所はタブをスペース4つに換えて下さい)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10473.txt

375 名前:デフォルトの名無しさん [2010/01/31(日) 00:04:17 ]
372さん。回答ありがとうございます。
アドバイス通りにしてみて、実行したのですが、
「Lhaplus slef extractor」というのが
表示されます。展開先のフォルダはC:\free を選べるのですが、
展開されるファイルが何故かfree1.cしか選べません・・・。
何度も見直して実行したのですが、結果は一緒です。
これは、なにか他に原因があるのでしょうか?

376 名前:デフォルトの名無しさん mailto:sage [2010/01/31(日) 01:53:57 ]
>>356
には手だすな。
>>357>>369
やんないほうがいい

377 名前:デフォルトの名無しさん mailto:sage [2010/01/31(日) 02:16:46 ]
>>375
それ以上の質問はスレ違いどころか板違い。

378 名前:デフォルトの名無しさん mailto:sage [2010/01/31(日) 02:35:35 ]
乱数は言語学習レベルの人がうかつに手を出すべきものじゃない。
補助的に使うのならともかく
高度に依存するプログラムの生成には高度な専門知識が必要で
専門家”集団”レベルで扱うべきもの。
みだりに使う癖だけは付けないほうが良い

以上自戒を込めて

379 名前:378 mailto:sage [2010/01/31(日) 02:37:05 ]
誤爆につき謝罪

380 名前:デフォルトの名無しさん mailto:sage [2010/01/31(日) 07:42:21 ]
around >>372
www.geocities.jp/ky_webid/c/image/commandline.png

381 名前:デフォルトの名無しさん [2010/01/31(日) 07:47:50 ]
[1] 授業単元:プログラミング演習U
[2] 問題文(含コード&リンク): 入出力とデータファイルへの保存とその間の処理あるプログラムを作成する
               kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10475.txt 
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C
[4] 期限:2010年2月4日まで
[5] その他の制限:特にありません

自分では手のつけようがなく、非常に困っています。
どなたかよろしくお願いします。


382 名前:デフォルトの名無しさん mailto:sage [2010/01/31(日) 14:33:52 ]
漠然としすぎ

383 名前:357 mailto:sage [2010/01/31(日) 15:40:24 ]
ほとほと困っています。どなたか回答お願いします。



384 名前: ◆QZaw55cn4c [2010/01/31(日) 15:41:15 ]
[1] 自主課題:前スレ pc12.2ch.net/test/read.cgi/tech/1260532772/776 関連
[2] パイプ機能(prog1|prog2|prog3) を有するシェルを作成せよ。
[3.1] WindowsXP/cygwin または Linux(Vine linux 4.2)
[3.2] gcc3
[3.3] C
[4] 特になし

前スレ pc12.2ch.net/test/read.cgi/tech/1260532772/776 を解こうとして挫折しました。
なにとぞ、お手本のプログラムを示していただきたく、お願いいたします。

私のほうでは、
まず、pipe() -> fork() ->read()/write()またはgetchar()/printf() の流れでチャイルドプロセスの鎖の間をパイプでつなごうとしましたがうまくいきません。

プログラムは 
codepad.org/lkCrVtuo です。

#define LOWLEVEL ではパイプが頭からお尻までつながって、 read()/write() 低水準入出力てデータが渡り、最後にプロンプトが表示されます。
ところが、
/* #define LOWLEVEL */ とコメントアウトした場合、FILE stdin, stdout でデータの読み書きを行うのですが、EOF を検出できず
チャイルドプロセスがロックしてしまいます。
ヒントでもかまいませんので、この種のプログラムのやりかたをどうか教えていただきたくよろしくお願いいたします。

385 名前:デフォルトの名無しさん mailto:sage [2010/01/31(日) 16:06:44 ]
>>384
> EOF を検出できず
EOFではなく0x0Aを検出したらどうでしょ

386 名前:デフォルトの名無しさん mailto:sage [2010/01/31(日) 19:35:06 ]
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10480.txt
どうぞ。

387 名前:デフォルトの名無しさん mailto:sage [2010/01/31(日) 19:43:07 ]

息抜きにって下さい。
自分は分からないっす

お客様に「今後の夏のセールには、必ず連絡してほしい」といわれた時

お客様に「もらいもので気に入らないので他の商品と取り替えて欲しい」といわれた時

販売員の正しい行動を。


388 名前:デフォルトの名無しさん mailto:sage [2010/01/31(日) 20:49:08 ]
上司に聞け

389 名前:デフォルトの名無しさん mailto:sage [2010/01/31(日) 22:26:49 ]
>>384
できたよ
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10481.c

390 名前:384 mailto:sage [2010/01/31(日) 23:00:10 ]
>>389
提示されたコードを読ませていただき、私のコードがうまくいかなかった原因がわかりました。
int fd[2];

pipe(fd);
dup2(fd[0], 0);
close(fd[0]);

のあとに、

close(fd[1]);

が必要でした。
その他、いろいろと示唆にとむコードを掲示していただき、ありがとうございました。

391 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 00:47:15 ]
すいませんが規制されてるので携帯から簡単に
問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10482.txt
環境:XP、gcc、C言語
期限:今日の午前中
その他制限:なし

構造体とfwrite関数とコマンドライン引数等を使うらしいのですがよく分かりません
よろしくおねがいします

392 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 00:50:31 ]
>>391
追加ですいません
バイナリファイルです

393 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 01:44:49 ]
>>391
名前〜年齢間のタブ数が一定ではないけどそのルールはどうなってるの?



394 名前:デフォルトの名無しさん [2010/02/01(月) 05:48:48 ]
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク): 住所録の機能を実現するプログラムを作成せよ。
[3] 環境
 [3.1] OS: unix
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:2月3日 17時まで
[5] その他の制限: 特になし

395 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 08:23:12 ]
>>384,390
EOFの検出はfeof()でできるよ。

396 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 09:15:16 ]
>>393
タブ数は共通して一回です

397 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 10:27:05 ]
>>391
codepad.org/YWsKOWtO

これじゃダメ?


398 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 10:28:21 ]
>>391
連投スマソ。
構造体も,fwrite() も使ってなかったorz
忘れて下さい。


399 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 10:32:02 ]
[1] 授業単元: C++実習
[2] 問題文(含コード&リンク):

●自由にクラスを設計する
設計図を提出 : クラスのデータメンバ、メンバ関数、仕様、
使い方等を詳しく説明したドキュメント 形式自由
(ただし電子化されたものに限る)


[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: VisualStudio2008
 [3.3] 言語: C++
[4] 期限: 2010年2月7日まで

プログラム作成ではないのですが、よろしければよろしくお願いします。


400 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 11:11:23 ]
設計図て。図まで書けと申すか。

401 名前:デフォルトの名無しさん [2010/02/01(月) 11:32:51 ]
規制中なので携帯から失礼します
[1] 授業単元:プログラミングI
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10477.txt
[3] 環境
 [3.1] OS:Windows vista
 [3.2] コンパイラ名とバージョン:visual studio2008
 [3.3] 言語:C++
[4] 期限:2010年02月5日まで
[5] その他の制限:特になし

自分では全然作れませんでした・・・
よろしくお願いします

402 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 12:47:47 ]
配列の使い方がイヤすぎるw

403 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 12:48:02 ]
schaffleって英語じゃないよな?何語?



404 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 12:51:07 ]
シャッフルしてランダムな結果を返すならシャッフル関数は2つもいらない気がする

405 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 12:55:25 ]
schaffle1(int n, int a[]) {
while(n > 1) {
int i = rand() / (RAND_MAX + 1.0) * n + 1;
int temp = a[n];
a[n--] = a[i];
a[i] = temp;
}}

schaffle2(int n, int a[]) {
int i, j, temp;
for(i=1; i<=n; i++) {
j = rand() / (RAND_MAX + 1.0) * i + 1;
temp = a[j];
a[j] = a[i];
a[i] = temp;
}}

406 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 14:48:08 ]
[1] 授業単元:プログラミング応用演習
[2] 問題文(含コード&リンク): ttp://mikilab.doshisha.ac.jp/dia/research/report/2008/1118/002/report20081118002.html
[3] 環境
 [3.1] OS: Windows
 [3.2] )
 [3.3] 言語:C++
[4] 期限: 2010/2/2or3
[5] その他の制限: ライブラリは使わず。問題文のリンク先のプログラム(DIRECT)を組む。

よろしくお願いします。できれば解説を付けてくださると助かります。

407 名前:390 mailto:sage [2010/02/01(月) 18:25:32 ]
>>395
C 言語というより UNIX/POSIX システムコールの問題でした。
パイプを pipe() で作成した後適切に処理しなければ、パイプが閉じたことにならず、EOF が検出できずに getchar()やread() がブロックされたのでした。
これは fcntl() で NONBLOCK 属性をつけてもうまくいきませんでした。

codepad.org/WiYTFttG

408 名前:395 mailto:sage [2010/02/01(月) 19:13:22 ]
>>407
オレの言いたかったのはget_line()の方。
これじゃコマンドを入力するときのEOFを検出できないと言いたかったの。

409 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 19:26:11 ]
[1] C言語演習
[2]
int x[10]={-1,2,-3,4,-5,6,-7,8,-9,10}
int y[10]={-5,-4,-3,-2,-1,1,2,3,4,5}
が与えられている。
値x[0]*y[0]+2*x[1]*y[1]+3*x[2]*y[2]+4*x[3]*y[3]+5*x[4]*y[4]+6*x[5]*y[5]
が最大/最小になるようにx,yの各要素を並べ替えたものを出力するプログラム
[3] Windows XP/Borland C++ 5.0/C言語
[4] 2/18迄
[5] 特に無し

410 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 20:27:14 ]
>>408
拙作のgetline() のほうでしたら、fgets() が NULL を返すのをみて、一行入力の終わりがきたことを検知できます。特に問題はありません。

411 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 20:36:37 ]
>>410
EOF入力してみた?

412 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 20:37:07 ]
>>409
6以降はどうすんの?

413 名前:410 mailto:sage [2010/02/01(月) 20:41:12 ]
>>411
わざわざ Ctrl-Dを入力しなくとも、一行の終わりは検知できていますが、何か?



414 名前:409 mailto:sage [2010/02/01(月) 20:43:57 ]
すみません。誤りがありましたので訂正させて下さい。
[1] C言語演習
[2]
int x[10]={-1,2,-3,4,-5,6,-7,8,-9,10}
int y[10]={-5,-4,-3,-2,-1,1,2,3,4,5}
が与えられている。
値x[0]*y[0] - 2*x[1]*y[1]+3*x[2]*y[2]- 4*x[3]*y[3]+5*x[4]*y[4]-6*x[5]*y[5]
+7*x[6]*y[6]-8*x[7}*y[7]+9*x[8]}*y[8]-10*x[9]*x[9]
が最大/最小になるようにx,yの各要素を並べ替えたものを出力するプログラム
最大/最小になる時のx[],y[]とその値を出力すること

[3] Windows XP/Borland C++ 5.0/C言語
[4] 2/18迄
[5] 特に無し

415 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 20:51:49 ]
>>413
入力してみ。

416 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 21:05:14 ]
>>415
特になにもおこりません。というか fgets() で一行入力できているのですが。
どんな振る舞いが発生して、どうおかしいのか教えていただけないでしょうか?

417 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 21:21:57 ]
>>416
> >
cannot found
がずっとでたけど。
EOFになったら綺麗に終了したほうがいいよ。

418 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 21:34:01 ]
[1] C言語プログラミング演習(大学専門課程選択教科期末課題)
[2]kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10483.txt
[3]
[3-1] Windows Vista
[3-2] Visual C++ 2005
[3-3] C/C++どちらでも可(なるべくC言語)
[4] 2/11迄
[5]SQLがイマイチ理解できないので、指針だけでも
よろしくお願いします


419 名前:デフォルトの名無しさん mailto:sage [2010/02/01(月) 21:36:53 ]
>>417
なるほど、bash でも Ctrl-D できれいに終了しますね。
これは改良の余地がありました。アドバイスありがとうございます。
コード中のgetline() (とmain())を書き直しました。
codepad.org/5NsN385B

420 名前:デフォルトの名無しさん [2010/02/02(火) 00:56:53 ]
[1] 授業単元:プログラミング実践
[2] 問題文
アフィン変換のプログラムを作成し、下の図の真ん中を座標の中心にして90°回転した結果を出力せよ。
(図)affin.txt
00000
00000
11111
00000
00000

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名: gcc
 [3.3] 言語:C++
[4] 期限:2010年2月4日まで
[5] その他の制限:特にありません

色々試しましたが、うまくいきませんでした。
よろしくお願いします。

421 名前:409 mailto:sage [2010/02/02(火) 00:59:25 ]
すみません。
>>414の問題なんですがこちらの写し間違いみたいですので
結構です。取り敢えず今回はお願いを取り消させてください。
もういちど確かめてお願いするかもしれません。

422 名前:418 mailto:sage [2010/02/02(火) 14:40:57 ]
>>418
の宿題のほう一部SQLが間違ったようですので
修正しました。まだ間違いがあるかもしれませんが。
注意事項も入れ忘れてましたので、いれました.
改めて依頼させて頂きます。

[1] C言語プログラミング演習(大学専門課程選択教科期末課題)
[2]kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10484.txt
[3]
[3-1] Windows Vista
[3-2] Visual C++ 2005
[3-3] C/C++どちらでも可(なるべくC言語)
[4] 2/11迄
[5]SQLがイマイチ理解できてないので、指針だけでも
よろしくお願いします

423 名前:デフォルトの名無しさん [2010/02/02(火) 15:56:42 ]
[1] 授業単元:DirectX研究
[2] 問題文(含コード&リンク):
サイコロを転がして目を決める。
 ・テーブルとサイコロを作成する。
 ・キー操作でサイコロを投げ下ろすように振る。
 ・落下してきて,1つの目を上にして止まる。
 ・何度でも遊べる

 ◎テーブルにサイコロの影がある
 ◎回転しながら落下してくる
 ◎自由な方向から見ることができる
 ◎テーブルの上でサイコロは跳ね,転がる。
 ◎サイコロとして正しい

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Microsoft Visual Studio 2008
 [3.3] 言語:C++
[4] 期限: 2月10日まで
[5] よろしくお願いいたします。



424 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 16:51:53 ]
>>420
どのように試したの?
>>421
素朴だが10!x10!の組み合わせ最適化問題
この手には一般論は無いだろから、奇麗なCプロ
グラム一つに纏めるという発想が頭にあると困難かと.
(いろいろ「補助手段」を開発しているうちに
別の手段で偶然、解けてしまって目的自体が大
きく喪失してしまう危険性がこの手の問題に
はつきまとう)
てか宿題としてC言語限定というのは不適当
>>422
SQLをわかる奴は少ないとオモ

425 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 16:59:09 ]
SQL文はわかるが、プログラムに組み込めといわれると・・・

426 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 17:06:40 ]
>>422
RDBMSには何を使うの?
コネクションを張ってSQL文を投げるのには何のライブラリ使うの?自作するの?

427 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 17:09:14 ]
SQL文を組み込むんじゃなくて、SQLで書かれた
抽象的な処理仕様に基づいて実装しろってことじゃ?
SQL鯖とかが出てなかった昔は結構この手の奴あった
常識的にこの手の奴ではテーブル配列自体は勝手に
ソート出来なかったり項目を拡張してはならなかったり
とか色々とウルサイし、処理速度向上の為に細かい
最適化が要求されてメンドイんで俺はパス

428 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 17:15:17 ]
>>427
そういう意味か。それは面倒だ。

429 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 17:21:16 ]
>>427
問題文の kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10484.txt
前半: 固定項で項目の拡張無しの配列

後半:
 解釈1) 題中のSQL文を与えたとして得られるであろう結果 と 同じ結果が得られるような関数を実装せよ
   (→ 関数実装時 SQL構文を解釈する必要は全く無い。 同じ結果を求めるコードを直接記述してね)

 解釈2) 題中のSQL文を渡して結果が得られるような 関数を実装せよ
   (→ 関数実装時 SQL構文を解釈する必要が出てくる) ((題中に出てこない SQL文に関してはスルーの方向で))

こう読み取れるっぽいけど… …俺 SQL文わからんのでパス

430 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 17:40:19 ]
>>429
どこの大学か知らんが、宿題として汎用SQLパーサーを
作れって奴出す教師も、それを真に受ける奴もちょっと
って感じ。
てか市販のRDBMSのSQLパーサーの性能は相当に
高くなってきてるけど、ちょっと大きなデータ+複雑なSQLに
なると手動で作ったCPG+CSVデータにパフォーマンスで
大敗することも多い。
酷いSQLだったり酷い構造のテーブルが多いってことも
多いけど

431 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 17:57:49 ]
>>429
とても動きそうにないコードだけど、これは 解釈1)の方だね。
pc12.2ch.net/test/read.cgi/tech/1261443439/569


432 名前:429 mailto:sage [2010/02/02(火) 18:09:32 ]
>>430
俺はそこらへんの事情を全く知らないんで勘弁して。
問題文の意図が分からなかったんで >>429 と…

433 名前:デフォルトの名無しさん mailto:sage [2010/02/02(火) 19:50:16 ]
あんだけgroup byがネストしてたらやる気失う。



434 名前:429 mailto:sage [2010/02/03(水) 00:28:45 ]
>>431
とりあえずありがとうございます。
がprologではなくあくまでもCの宿題なので、
参考のみにさせて頂きます。
ちなみにそのスレに私は書き込んでいません。
もし誰かが転記したのをやって頂いてここに貼りなおして
下さったというのであれば結果的に相当無駄なお手数を
おかけしたことになります。
構造体をほぼSQLのまま定義しその構造体の配列にデータ
が詰め込まれた状態でlist関数が呼び出されるという前提で、
SQLが記述しているセレクト処理で得られるレコードを
そのままコンソール出力すれば良いと
同輩が言ってたのですがやっぱり皆様が御指摘の
通りめんどうなコードになるんでしょうか?
(ちなみにSQL自体が何をする処理なのか
今ひとつつかめてません。おわかりの方が
いらしゃいましたら教えて頂けると嬉しいです)
DB板というのがあるそうでそちらのほうでも
聞いてみます。

435 名前:デフォルトの名無しさん [2010/02/03(水) 00:29:10 ]
どなたか317を作ってもらえませんか?
私の力では手におえません。。。
 

436 名前:418 mailto:sage [2010/02/03(水) 00:30:16 ]
レス番号のほう間違えました。
>>418=>>422=>>434でした。

437 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 00:42:08 ]
配列 int out[3]={1,5,3};
の配列の各要素の大小関係を比べるプログラムをfor文で作りたんですけど
どうすればいいですか?


438 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 00:42:52 ]
質問は「俺に聞け」スレで

439 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 00:49:00 ]
>>434
>>431じゃないけどSQLは多少わかる
「テーブルSEISEKIHYOUから、
より人数が多いクラスの5科目平均点
以上の5科目成績の生徒で、より人数が
多いクラスの国語平均点の最高よりは
下の国語成績で、数学が最も成績が
高かった生徒について、その担当教師
と氏名、数学成績、国語成績を
リストする。」

440 名前:デフォルトの名無しさん [2010/02/03(水) 00:58:45 ]
420のものです。

ファイル読み込みまではいけたのですが、回転はさっぱりでした。

ご教授ねがいます。

441 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 01:09:31 ]
>>440
公式を当てがうだけのつまらない問題だね
出来ないのは言語によるものじゃなくて
アフィン変換がどういうものか分かってないだけ。

442 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 01:13:22 ]
00000
00000
11111
00000
00000
を90度

回転させると

00100
00100
00100
00100
00100

これじゃ駄目?

443 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 01:14:55 ]
>>435
書こうと思ったけどエラー処理がめんどくさいんだよな




444 名前:デフォルトの名無しさん [2010/02/03(水) 17:13:38 ]
>>442

まさにその通りなんですが、それをプログラムでかくことができなかったです・・・

445 名前:デフォルトの名無しさん mailto:sage [2010/02/03(水) 18:28:27 ]
自分用のメモ
>>317







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

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

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