1 名前:デフォルトの名無しさん [2008/02/04(月) 23:32:19 ] あなたが解けない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++の宿題を片付けます 103代目 pc11.2ch.net/test/read.cgi/tech/1200318925/
340 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 01:16:50 ] つ lint
341 名前:337 mailto:sage [2008/02/20(水) 01:25:54 ] * get * sprintf * strcat * strcpy * vsprintf が検出できれば OKです
342 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 01:28:57 ] 先に書けよ
343 名前:337 mailto:sage [2008/02/20(水) 01:33:14 ] すみません。
344 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 04:14:35 ] ・getってなんだよ。 ・scanfはスルーかよ。
345 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 04:23:51 ] >>337 #include <stdio.h> #include <stdlib.h> #include <string.h> #define BUFMAX 1024 int main(int argc, char *argv[]) { FILE *fp; char buf[BUFMAX]; int line = 0; if (argc < 2 || (fp = fopen(argv[1], "r")) == NULL) { printf("Usage: a.out [assemble code file]\n"); exit(0); } while (fgets(buf, BUFMAX, fp)) { ++line; if (!strcmp(buf, "\tcall\tscanf\n") || !strcmp(buf, "\tcall\tgets\n") || !strcmp(buf, "\tcall\tsprintf\n") || !strcmp(buf, "\tcall\tstrcat\n") || !strcmp(buf, "\tcall\tstrcpy\n") || !strcmp(buf, "\tcall\tvsprintf\n")) { printf("find at line%d: %s", line, buf); } } fclose(fp); return 0; } こんな感じでいいのかな。アセンブリコードに対して検索した方が楽だよな。
346 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 04:35:42 ] >>345 その発想はなかったわw
347 名前:337 mailto:sage [2008/02/20(水) 07:49:57 ] ありがとうございます
348 名前:デフォルトの名無しさん [2008/02/20(水) 11:53:11 ] >>330 1問目 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6068.txt 構造体変数名はlist_tとする意図が汲み取れないが、それは無視して作った。 構造体のtypedefした名前をlist_tとするの間違いじゃなかろうか・・・
349 名前:デフォルトの名無しさん [2008/02/20(水) 12:13:13 ] >>330 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6069.txt 問題をそのまま書いた方が良いと思うよ・・・
350 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 19:57:42 ] >>336 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6070.txt kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6071.txt 一応作ってみた 考え方が良く分からんから、まぁたぶん大丈夫だろう的なレベル
351 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 20:47:15 ] >>348-349 ありがとうございます。
352 名前:デフォルトの名無しさん [2008/02/20(水) 21:23:03 ] >>350 ありがとうございます
353 名前:デフォルトの名無しさん [2008/02/22(金) 00:51:17 ] [1] 授業単元: プログラミング実習 [2] 問題文(含コード&リンク): ・リスト構造 アルファベットの文字列をいくつか読み込み、それを、アルファベット順にソートし、以下のコマンドが入力された場合、それぞれの命令を実行せよ。 条件として、リスト構造が使われていること、サブ関数の呼び出し(単純なものでもよい)が使われていること、malloc関数が使われていること。 p :入力された文字列を表示する。 a :指定された文字列をリストに追加する。(アルファベット順に並ぶように) d :指定された文字列をリストに削除する。(不要になった記憶領域はfree()を使って開放すること。また、指定された文字列がリストに無い場合は、その旨を表示。) q :プログラムを終了する。 ? :使用可能なコマンドの一覧を表示する。 end:データ入力の終了 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:2月26日まで [5] その他の制限: こんな感じです。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6072.txt できればなるべく簡単な方法でお願いします。
354 名前:353 [2008/02/22(金) 00:54:56 ] ごめんなさい、訂正です。 × d :指定された文字列をリストに削除する。 ○ d :指定された文字列をリストから削除する。
355 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 02:55:06 ] >>353 BUFSIZE文字以上の入力があった場合に異常動作を起こす他、色々と問題・手抜きは抱えてるが少なくともその実行例は通る ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6073.c
356 名前:353 [2008/02/22(金) 03:24:27 ] >>355 ありがとうございます。 しかし、まんまコピペでコンパイルが通りませんでした… そしてNode型とかようわからん件…ごめんなさい低級で とりあえず自分なりにいじってみます。ダメだったらまたくるかも。
357 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 03:27:56 ] >>356 あぁ、VC++2008でコンパイルしたから気付かんかったけど C99形式のコメント(//〜)を使ってるからそれかもしれん その部分を全部消してみてくれ
358 名前:353 [2008/02/22(金) 03:50:47 ] >>357 消してみましたが、やはり同じようです。 とりあえずvistaですが、bccでまんまコピペでコンパイルしてみた結果、以下が表示されました。 list.c: 警告 W8060 list.c 24: おそらく不正な代入(関数 insert ) 警告 W8060 list.c 24: おそらく不正な代入(関数 insert ) 警告 W8060 list.c 32: おそらく不正な代入(関数 insert ) 警告 W8060 list.c 32: おそらく不正な代入(関数 insert ) 警告 W8060 list.c 56: おそらく不正な代入(関数 deleteNode ) 警告 W8060 list.c 56: おそらく不正な代入(関数 deleteNode ) エラー E2468 list.c 100: void 型の値は許されない(関数 appendProc ) 警告 W8019 list.c 100: コードは効果を持たない(関数 appendProc ) エラー E2468 list.c 114: void 型の値は許されない(関数 deleteProc ) 警告 W8019 list.c 114: コードは効果を持たない(関数 deleteProc ) エラー E2468 list.c 136: void 型の値は許されない(関数 main ) 警告 W8019 list.c 136: コードは効果を持たない(関数 main ) *** 3 errors in Compile ***
359 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 04:01:06 ] >>358 コメントを消した状態ならこっちではANSI C準拠の設定でgcc通る(警告は出る)以上分かりかねる bcc捨ててくれとしか言い様がない 使用したgccは以下 gcc version 3.4.4 (cygming special, gdc 0.12, using dmd 0.125) gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)
360 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 04:21:12 ] これはbccのバグっぽい
361 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 04:24:08 ] 多分三項演算子とfgetsの合わせ技でエラーになってんだろうな bccだとvoid fgetsで定義されてるとかか?
362 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 04:26:26 ] [1] 授業単元: 基礎プログラミング [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6074.txt [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:本日正午まで(恐らく本日中であればなんとかなります) [5] その他の制限: なるべく自分でどうやっているプログラムなのか理解した上で提出した方がいいため、 if文やfor文使いまくりでもいいので、簡単なプログラムにしていただけると助かります。
363 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 04:37:40 ] >fgets(buf, BUFSIZE, stdin) ? 0 : exit(1);
364 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 04:39:46 ] >>358 fgets(buf, BUFSIZE, stdin) ? (void)0 : exit(1); これで回避できるみたいだが、よくわからんな。 bccの3項演算子の扱いが謎。
365 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 04:46:17 ] voidとそうじゃないものを並べちゃいけないみたいだね。 void同士ならOKらしい。
366 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 05:53:24 ] >>362 とりあえず適当 (1) #include<stdio.h> void num2roma(int num,const char roma[]){ const int mod = num % 10; const int div = num / 10; const int mod5 = num % 5; int i; if(div)num2roma(div,roma+2); if(mod5==4){ putchar(roma[0]); putchar(roma[mod/4]); }else{ if(mod5!=mod) putchar(roma[1]); for(i=0;i<mod5;++i) putchar(roma[0]); } } int main(void){ int num; while(scanf("%d",&num)==1){ num2roma(num,"IVXLCDM"); putchar('\n'); } return 0; }
367 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 05:54:59 ] (2) #include<stdio.h> int main(void){ int count[100]; int i,j,h; for(i=0;i<100;++i){ count[i] = 0; } for(i=0;i<30;++i){ if(scanf("%d",&h) != 1){ break; } ++count[h/5]; } for(i=0;i<100;++i){ if(count[i] != 0){ printf("%d...%d%8d : ",i*5,i*5+5,count[i]); for(j=0;j<count[i];++j){ putchar('*'); } putchar('\n'); } } return 0; }
368 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 18:01:06 ] >>362 >>366 はでかいミスがあった それは忘れてこっちを使ってくれ (2) 3999までの正整数をローマ数字にする int2roman.cpp ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6075.txt
369 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 19:32:04 ] ここのスレはソースをはってどこがおかしいか おしえてくれるスレですか? かなりながいソースなんですが。
370 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 19:45:43 ] >>369 そりゃもう手取り足取り どれだけ長いソースでも宿題であれば片付けるよ それが2ちゃんクロリティ
371 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 19:50:06 ] ただちょっと専門的な話だから 流れをかいたファイルといろいろこみの tar.gz形式のファイルでうpします あとで。
372 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 19:53:24 ] >>371 教授から出されたような難解で困難な宿題?
373 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 23:14:14 ] [1] 授業単元: 認識 [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6076.txt [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:月曜日までといいたいところですが [5] その他の制限: おねがいします。わからないことがあれば聞きます。
374 名前:373 mailto:sage [2008/02/22(金) 23:20:53 ] www12.axfc.net/uploader/18/so/Ne_12654.gz.html こちらです すいません。
375 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 23:24:36 ] >>373 件のファイルが既にありません。 しかも、「実行ファイルを実行せよ」というのはかなり怪しいです。 ウィルスなら誰も手を出しません。
376 名前:373 mailto:sage [2008/02/22(金) 23:35:20 ] //としてるとこは全部消してもらってもかまいません。 あとでみたらログチェックしたままのファイルでした
377 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 23:47:07 ] 誰もがDVIファイル読める環境にあると思うなよw せめてPDFくらいは・・・ あと実行ファイルは誰も実行せんがな(´・ω・`)
378 名前:373 mailto:sage [2008/02/22(金) 23:50:28 ] kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6077.txt すいません。
379 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 23:53:25 ] DVIを読むためにいろいろと導入するのが理系の学生だと思うけどなぁ…… でも俺の周りでdvioutとかGhost Scriptとかまで入れてるのは二三人しかいないなぁ…… そもそもTeXすら入れてないってやつが多いし…… Linuxのパッケージ?にはUNIX派生のいろいろが入っているからいいんだろうけど……
380 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 00:55:59 ] このスレって理系の学生が答えるスレだったっけ?
381 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 00:58:44 ] >>378 そのファイル読んだけど、やってる処理に関する知識を持ってないから全く分からん その点も説明して貰わんと、分かる人間しか答えられんぞ
382 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 01:19:49 ] 余計な文消して文消して コメントをいれるようにしてもう一度うpします。 そっちのほうがわかるとおもうので。
383 名前:373 mailto:sage [2008/02/23(土) 13:37:46 ] gaiyou.txtと図をいれてみました。pngもしくはjpg形式です。 お願いします。 www12.axfc.net/uploader/18/so/Ne_12711.gz.html
384 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 16:16:36 ] チェックしてみようかと思ったが、 コンパイルすら通らずにエラーや警告出まくりなんで止めた。
385 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 16:21:04 ] コンパイルはとおるけど
386 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 17:21:51 ] >>384 ヘッダファイルをチェックしてみては? Windowsには無くてLinuxにはある、っていうヘッダがたくさん含まれている可能性もある
387 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 19:14:26 ] tarファイルって書いてあるのにgzなのが気になって仕方が無い
388 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 19:27:17 ] uploader側で末尾のピリオド以降を拡張子と自動認識されてるんじゃないの
389 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 19:52:27 ] それにしてもtar.gzファイルとかtgzファイルとか書き方があると思った
390 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 23:02:52 ] 宿題がこないね
391 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 23:08:25 ] #include <stdio.h> void main(void) { FILE *kadaip; char buff[256]; int n; printf("文字を入力してください!\n"); printf("(Enterを入力すると終了)\n"); scanf("%c",&n); kadaip = fopen("C:\\kadai.txt","w"); if(kadaip != NULL) { gets(buff); while(buff[0] !='\0') { buff [256]= fprintf(kadaip,"%c\n",n); printf("文字を入力してください!\n"); printf("(Enterを入力すると終了)\n"); scanf("%c",&n); gets(buff); } if(buff < 0) printf("出力エラー!\n"); fclose(kadaip); } else printf("openエラー入力エラー!\n"); } 全然わからなくて、とりあえず作ってみたのがこれです。間違いだらけだと思いますが教えていただけたら嬉しいです。 あと、プログラムの終了条件は文字データの入力がないときです。よろしくお願いいたします。
392 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 23:09:55 ] [1] 授業単元:プログラミング [2] 問題文:キーボードから入力した内容をファイルに保存して表示するプログラムを作りなさい。 [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン: visual stdio [3.3] 言語: C [4] 期限:2月25日まで [5]上のものです。間違って先にプログラムの方を投稿してしまいました。 環境等はこちらです。すみませんでした。
393 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 23:22:40 ] >>392 #include <stdio.h> int main(void) { FILE *kadaip; char buff[256]; int n; kadaip = fopen("C:\\kadai.txt","w"); if(kadaip != NULL) { printf("openエラー入力エラー!\n"); return 1; } while(1) { printf("文字を入力してください!"); printf("(Enterのみを入力すると終了)\n"); gets(buff); if(buff[0] =='\0') break; n=fprintf(kadaip,"%s\n",buff); if(n<=0) { printf("出力エラー!\n"); break; } } fclose(kadaip); return 0; }
394 名前:393 mailto:sage [2008/02/24(日) 00:01:01 ] >>393 が間違ってたので訂正 if(kadaip != NULL) ↓ if(kadaip == NULL)
395 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 00:04:26 ] 373ですけど どうですかね? バグはみつかりましたか?
396 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 00:58:57 ] >>394 訂正のとおりに実行してみたら無事にできました。お早い返答ありがとうございました。
397 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 01:54:24 ] www.nicovideo.jp/watch/sm2417405 これか
398 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 02:00:08 ] >>397 どれだよw
399 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 02:09:19 ] www.akibablog.net/archives/2008/02/hardcore-080221.html こちらか
400 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 13:10:21 ] [1] 授業単元: プログラミング演習 [2] 問題文(含コード&リンク): 巡回セールスマン問題の厳密解を求めるプログラムを作成せよ [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: VC 2008 Exp [3.3] 言語: どちらでも可 [4] 期限: 2/25 12:00 ごろ 動的計画法で求めようとしているのですが、最小コストは求まったものの そのルートを求める方法がいまいちわかりません。 dist[a][b] には a -> b の距離が入っています (a->b = b->a) n は巡回頂点数です kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6084.txt
401 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 15:13:14 ] >>400 ちょっと質問 ソースとか全然みてないでいうんだが、問題文は「厳密解」になってるけど 動的計画法って「近似解」を求める方法じゃない?
402 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 15:19:46 ] >>401 すまn 漏れの勘違いだったorz
403 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 02:00:32 ] >>400 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6086.c ・cost のサイズがでかすぎで手元でコンパイル通らなかったので減らした ・n や dist や CITY_NUM の定義が分からなかったので適当に補間した 以後ソースを挙げるなら定義の部分も含めてくれ 実行可能であることが最も望ましい
404 名前:403 mailto:sage [2008/02/25(月) 02:01:47 ] >>403 >コンパイル通らなかったので減らした これは間違いで、コンパイルは通ったが実行時エラーが出たので減らした
405 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 17:53:48 ] [1] 授業単元: プログラミング演習 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6089.txt [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2月29日正午ごろまで(できれば28日中) [5] その他の制限: 問題文の例の図がずれて見づらくなっちゃってます。すみません。 ←valueの行で‖と‖の間が空白の場所は数値が入っておらず、演算子に対応してる位置だと思ってください。 また、大分長くなってしまってもいいので、なるべく簡単なプログラムでお願いします。 可能であればでいいので、何を目的とした部分なのか程度の注釈をいくつかつけてくださると助かります。
406 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 20:57:34 ] [1] プログラミング [2] 問題文長くなるので下に書くごめんなさい [3] 環境 [3.1] OS: Windows2000 [3.2] すいませんわかりません [3.3]C 言語 [4] 期限: ([2008年2月26日まで] できるだけ早くお願いしたいです。 [5] 制限は特になし 機動及びmain関数(kin_main.c) このプログラミングの実行ファイルの名称は(kintai)のする。起動時に因数として勤怠情報ファイルを引数を与える。 >kintai kin0004 引数なしで機動した場合には、ファイル名を入力するようにメッセージを表示させる。 >kintai >勤怠情報ファイルパスを指定してください。 > このプログラミングのmain関数。初期化処理(kin_init()),勤怠情報記録ファイル読み込み処理(kin_file_read()), 入力情報論理チェック機能(kin_logic_chk()),勤怠計算機能(kin_calc()),標準出力機能(kin_display),CSVファイル生成機能(kin_create_csv()), を順次に呼び出し。各関数の戻り値がエラーの場合にはその時点でmain関数に戻る。プログラムを終了にするにはmain関数 出なければならない。エラー情報はいかに示す。 エラーディファイン 出力情報 意味 ERR_INIT 初期化エラー 初期化関数内でエラー ERR_FILE_ACCESS ファイルアクセスエラー ファイルアクセスに失敗した場合 ERR_LINE_NUM_OVER 勤怠情報ファイル文字数オーバー 勤怠情報ふぁいるの1行分文字数が所定の値を超える場合 ERR_PARSE 勤怠ファイル構文エラー 勤怠情報記録の構文が誤ってる場合 ERR_TIME_LOGIC 論理チェックエラー 入力された勤怠情報に誤りがある場合 NG 内部処理エラー 上記のエラーに該当しない場合。 丸なげでごめん
407 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:04:29 ] >>406 勤怠情報ファイルのフォーマットもなしどうしろと? 丸なげどころか、情報がたりなすぎる
408 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:19:28 ] >>407 すまんまだはじめたばっかで フォーマットを検索してもわからん でもこんな感じになるはずなんだ yutori.2ch.net/test/read.cgi/news4vip/1203862807/ の>>4 と>>5
409 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:24:18 ] >>408 見えない なんで検索しないといけないのかも分からんよ
410 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:26:18 ] >>406 とりあえずツッコミどころが満載だな…… ・CSVファイル生成機能(kin_create_csv())でのエラーは捕まえないの? ・エラーを出すのなら、その逆として「●●の処理は成功しました」と順次表示していくと親切じゃない? ・NG→ERR_internal の方がかっこよくない? ・ERR_TIME_LOGICで、「一ヶ月の勤務日数が32日です」とか 「終業時刻+残業時間が、退勤時刻を超えてる」とかも出したほうが親切じゃない?
411 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:32:10 ] int main(int argc,char **argv){ int Result=0; if(argc<2){ puts("勤怠情報ファイルのパスを指定してください"); }else{ FILE *pFile=fopen(argv[1],"rb"); if(pFile==NULL){ printf("%s はオープンできないよ\n",argv[1]); }else{ printf("%s をオープンしたよ\n",argv[1]); puts("閉じるよ"); Result=kin_init(); if(Result<0)printf("kin_init()が %d だと言ってる\n",Result); すまんこんな感じになると思うんだ
412 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:34:46 ] >>410 すごい親切だと思うけどどうやるかさっぱりわからん
413 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:36:34 ] 最初のif else 文からしてあやしい。 fopenを二回やることになるぞ ・引数ありで起動した場合 ・引数なしで、ファイルパスを指定(入力?)する場合
414 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:47:15 ] >>411 のは昨日やってもらったやつなんだ 引数与えないと起動しないようにするらしい kintai kin0004.txtをつけるなければきどうしないようにする 0004は日付が入るyymmでyyが西暦の下二桁mmが該当月 .txt入らないと起動しないようにするみたいなです
415 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:53:12 ] >>414 「ファイル構文」という用語を持ち出すほどだから、 勤怠情報のファイルフォーマットはxmlくらいのものだと思った CSV出力があるのなら、最初からCSV形式で勤怠情報のファイルフォーマットを策定すればいいんじゃない? 古い諺だが データ構造+アルゴリズム=プログラミング と言うし。
416 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:58:06 ] >>415 ありがと でも初心者の俺にはさっぱり意味がわからん
417 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 22:15:29 ] もしかして勤怠情報ファイルのフォーマットは決まってないのか?
418 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 22:32:40 ] 正直フォーマットって言葉がでてこないから決まってないです。 問題文にkintai kin0004.txtだった 。.txtぬけてたすまん
419 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 23:22:08 ] 週末、勢い込んでカレー作った。 たまねぎ炒めるところから始めて、 かなり気合入れて作った。 たまねぎの量、土日あわせて6玉。 うまかった。 でも今日の屁が死ぬほどくさい。
420 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 23:27:19 ] 余ったタマネギは犬猫に食べさせちゃだめだよ!!! でも実験という名目ならいいのかな??
421 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 23:33:19 ] だるいから嫌
422 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 23:33:53 ] だるいから嫌
423 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 23:35:56 ] だるいから嫌
424 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 00:03:54 ] だるいから嫌
425 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 02:25:49 ] >>405 多少問題文とやり方が違うし、あんま自信ないけど、一応できたのでうp kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6091.txt
426 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 04:07:54 ] だるいから嫌
427 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 07:14:34 ] >>425 乙です ありがとう
428 名前:デフォルトの名無しさん [2008/02/26(火) 11:45:04 ] [1] 授業単元: C [2] 問題文(含コード&リンク): 3次元配列を用いたカレンダー生成プログラム 任意の西暦年数nを与えて、n年のカレンダーを下記の仕様により、作成せよ。 1)3次元配列day[12][6][7]を使用する。 2)出力形式は 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月 とする。 3)うるう年にも対応させる。 [3] 環境 [3.1] OS:MacOSX 10.5 [3.2] コンパイラ名とバージョン:gcc 4.0.1 [3.3] 言語:Cでお願いします。 [4] 期限:2/27に提出です。 [5] その他の制限:特にありません。できれば、配列に組み込む部分と出力部分には関数を使ってほしいです。 日を配列に組み込むところで、つまってしまい、どうにもならなくなってしまいました。 最終的には理解できるようにしたいので、簡単なコメントなどつけてくれると嬉しいです。 急ぎで申し訳ありませんが、よろしくお願いしますm(_ _)m
429 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 12:11:46 ] わざわざ配列に入れる必要なんてないと思うけど
430 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 12:32:22 ] [1] 授業単元: C++ [2] 問題文(含コード&リンク): 個人課題 )IDカードを読み込んだら、その番号を"IDList.txt"に出力せよ。 buf[]にはそれぞれ二桁の16進数が入ってるのですが、それを繋げて、 strとしました。このstrに入った値を"IDList.txt"に書き込んでいきたいのです。 略) sprintf(str, "%02x%02x%02x%02x%02x\n", buf[0], buf[1], buf[2], buf[3], buf[4]); これ以降をよろしくお願いします。 ※カードを読み込むたびにstrは変わります。 [3] 環境 [3.1] OS:XP [3.2] コンパイラ名とバージョン:VS2005pro [3.3] 言語:C++ [4] 期限:特になし [5] その他の制限:特になし ド素人な課題で申し訳ないのですがよろしくお願いします。
431 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 13:21:29 ] >>430 それ本当にC++の授業なのか? C++の特色のひとつは、Cから格段に進化した文字列操作だぞ
432 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 13:31:08 ] >>430 つーかそれ、FILE * fp = fopen("IDList.txt", "w")してsprintf(str, ...)をfprintf(fp, ...)にすればいいだけじゃん。
433 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 13:55:13 ] >>431 C++の授業ではないのですが、C言語の授業の延長の授業で、 環境がC++だったんでそのように書きました、申し訳ありません。 確かにやっていることは++は含んで無いのだと思います。 >>432 ありがとうございます。 "a"にしたら望んでいた物になりました。
434 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 16:43:10 ] [1] 授業単元: プログラミング演習 [2] 問題文(含コード&リンク):ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6092.txt [3] 環境 [3.1] OS: Linux /Windows [3.2] コンパイラ名とバージョン: (Linux)gcc /(Windows)コマンドプロンプト上でコンパイル [3.3] 言語: C [4] 期限: 2月28日中 [5] その他の制限:長いプログラムになっても構いませんので簡単めなプログラムでお願いします。 設問1と設問3は自分で考えて辿り着いた答を書いてます。違っていたら指摘お願いします。 問2のコメント以下は実際に実行時間を計測して考察しろ的なものだと思うのですが、 どうやればいいのかいまいち分からないため簡単にでいいのでどうやればいいのか教えてください。
435 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 18:53:38 ] >>434 これ問題文そのまま「コピペ」してるか?
436 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 18:59:02 ] >>434 設問2 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6093.c 設問3 NULL: 「これ以上前の文字が存在しない」はOK、「次の文字に移る」は、違う DEL: 「これ以上後の文字が存在しない」はOK、「全文字の並べ替え終了」は、違う s1 スタックには下→上に、文字が小→大で積まれる s2 スタックには下→上に、文字が大→小で積まれる ので、s1,s2のスタックに有効な文字データが無い状態をチェックするために使用している(番兵) つまり、2.aの処理の場合にNULL文字がなければ、 s1スタックにデータが無いという状態をチェックする文( if (s1が空) { ... } のような文 ) が必要になるが、 番兵(NULL文字)を用いることにより、その必要がなくなる (番兵については、wikiでもみてね)
437 名前:400 mailto:sage [2008/02/26(火) 20:51:48 ] >>403 ありがとうございます。 説明不足で余計なお手数をおかけしてしまい申し訳ありません。 確かに、double では静的確保に成功する配列サイズなのに、 int で同じ添え字の配列を確保しようとすると確かにクラッシュするようです。不思議ですね。 その点は malloc で動的確保することで無事に動作しました。
438 名前:438 mailto:sage [2008/02/26(火) 21:23:50 ] >>428 行数制限のため入出力は関数にしなかったが。 #include<stdio.h> int day[12][6][7]; int z(int y,int m,int d){ if(m<3)y--,m+=12; return(y+y/4-y/100+y/400+(m*13+8)/5+d)%7; } int main(void){ int y,s,m,w,d; while(1){ printf("y="); scanf("%d",&y); //格納 for(m=0;m<12;m++) for(w=0;w<6;w++) for(d=0;d<7;d++){ day[m][w][d]=w*7+d+1-z(y,m+1,1); if(day[m][w][d]<1||day[m][w][d]>(z(y,m+2,1)-z(y,m+1,1)+7)%7+28) day[m][w][d]=0; } //表示 for(s=0;s<3;s++) for(w=0;w<6;w++,printf("\n")) for(m=0;m<4;m++,printf(" ")) for(d=0;d<7;d++) if(day[s*4+m][w][d]>0) printf("%2d",day[s*4+m][w][d]); else printf(" "); } return 0; }
439 名前:デフォルトの名無しさん mailto:sage [2008/02/27(水) 00:11:44 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): 文字頻度と文字の連接頻度をカウントするプログラムを作成せよ。 尚、入力ファイルにhamlet3-1をWebからダウンロードして使い、tsv形式で結果を出力せよ。($./a.out hamlet3-1.txt > hamlet.tsv としてプログラムを実行) ‐処理 ・入力ファイルを「読み込みモード」でオープンする ・ファイルの銭湯から1文字ずつ読み込みながら小文字にそろえて、'a'〜'z'の範囲にある場合は以下の処理を行う。 @'a'〜'z'の各文字g亜出現する頻度を計数する。 A連続する2文字の連接頻度をa-a,a-b,...z-zまで計数する。 途中にスペース、改行などアルファベットが入った場合は連接していないとする。 ・計数結果を標準出力に出力 hamlet3-1 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6095.txt [3] 環境 [3.1] OS:Windows XP [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限: 2008/02/27 23;59迄 [5] その他の制限:特にありません。 よろしくお願いします。
440 名前:デフォルトの名無しさん [2008/02/27(水) 00:17:52 ] [1] 授業単元:プログラミング演習 [2] 問題文: 空気中でつるされている銅球の温度変化は以下の式で求まる。 Cp・ρ((πd^3)/6)dT/dt=-πd^2((λ/d)Nu)(T-Tair) 周辺空気の温度Tair=300K、流速3m/sのときの銅球の温度変化を計算しなさい。 なお、t=0sで銅球の初期温度はT0=700K、銅球の温度分布は無視し、各物性値は500Kで計算のこと。 (Cp=1.03kJ/kgK、ρ=8813kg/m^3、λ=39.71×10^3W/mK、Nu=11.04) [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: [3.3] 言語:C++ [4] 期限: 2008年2月27日15:00 [5] その他の制限:使用したアルゴリズムは全て関数化する。 ルンゲクッタ法を使用 どうしてもわからないのですみませんがお願いします。