1 名前:デフォルトの名無しさん [2010/05/26(水) 07:45:28 BE:94671825-S★(522522)] あなたが解けない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++の宿題片付けます 135代目 pc12.2ch.net/test/read.cgi/tech/1269438098/
362 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 20:20:28 ] 宿題というか、既存のプログラムのバグ消しのお願いです AviUtlという画像編集・エンコソフトを使っているですが、 そのソフト用にNL-Means Filterというものが出ています。 ですがそのフィルターを使うとソフトがフリーズしてしまいます。なんとか解決できませんか? 症状としては、そのフィルターをオンにすると、AviUtlを終了しようとした時にフリーズします。 GPU支援を使う、計算モード3のときのみ起こります。お願い致します kishibe.dyndns.tv/index.php?%E3%83%95%E3%83%AA%E3%83%BC%E3%82%BD%E3%83%95%E3%83%88%2FNL-Means%20filter からダウンロードするとソースらしきものもついてきます
363 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 20:56:36 ] [1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10650.txt [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限: 2010年6/8まで [5] その他の制限:なし 2問ありますが、よろしくお願いします。
364 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 21:06:03 ] >>363 <課題2> #include <stdio.h> #include <stdlib.h> int main(void) { int i, j, k, n; double *x, temp; scanf("%d", &n); x = malloc(n * sizeof(double)); for(i=0; i<n; i++) scanf("%lf", x + i); for(i=n-1; i; i=k) { for(j=k=0; j<i; j++) { if(x[j] > x[j+1]) { temp = x[j]; x[j] = x[j+1]; x[j+1] = temp; k = j; }}} for(i=0; i<n; i++) printf("%f\n", x[i]); free(x); return 0; }
365 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 21:30:33 ] >>363 <課題1> codepad.org/i9GSGdcP
366 名前: ◆QZaw55cn4c mailto:sage [2010/06/06(日) 21:36:06 ] >>363 codepad.org/XdsWKbxa codepad.org/qynZDN0h
367 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 21:44:36 ] ぐだぐだ言い訳されるのわかってても突っ込みたくなるなw
368 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 21:45:38 ] >>367 どうぞどうぞ突っ込んでくださいな。楽しみにしています。
369 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 21:48:51 ] 実数と整数の区別もつかないアホ ソート部分がクソ
370 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 21:55:59 ] >>363 です ありがとうございます
371 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 21:56:08 ] >>363 2番目の課題を訂正します。 codepad.org/qgboBPOZ >>369 普通のバブルソートですが、何か問題でも?
372 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 21:57:51 ] だからそれはバブルソートじゃないって言っただろw
373 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 22:02:21 ] >>372 あれ?私は en.wikipedia.org/wiki/Bubble_sort を参照したんですけれどもね。
374 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 22:09:35 ] それが言いたくてわざわざ効率の悪いほう使ったのかw
375 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 22:10:08 ] >>373 バブルソートは for(j=0;j<n-1;j++){ for (i = 0; i < n - 1; i++) { if (x[i] > x[i + 1]) { t = x[i]; x[i] = x[i + 1]; x[i + 1] = t; } } } だろ。わざわざdo{} while()にしても比較回数が減ることはない。
376 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 22:16:38 ] >>373 だから全部読めって前も言ったよな? Optimizing bubble sortのところで何でn := newn + 1ってなってると思ってるんだ?
377 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 22:17:08 ] >>375 そうですよね。>>375 であげていただいたやり方もバブルソートといいますよね。 でも >>372 はお気に召さないようなんですよ。 確かに日本語版 wiki やドイツ語 wiki では、幾分効率をあげたものが採用されているようですが、 どうオプティマイズしても計算オーダーはΟ(n^2) で変わらないのですけれども、>>372 は計算オーダーの概念がよくわかっていないらしい。 pc12.2ch.net/test/read.cgi/tech/1269438098/706 のように、ある一種のバブルソートの実装にこだわっているんです。
378 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 22:18:14 ] >>376 Optimizing のところでは、長さを縮めていますが、そうでない実装も、やっぱり bubble sort でしょう?
379 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 22:21:35 ] 計算オーダーが同じでも明らかに効率悪い方に拘る意味が分からんw
380 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 22:24:12 ] こだわっているんではなくて、計算効率がちょびっとよくなるか悪くなるかの差で、バブルソートとよんだりよばなかったりするのはおかしいといっているのです。 英語版 wiki にのっている実装もバブルソート、 >>375 のやりかたもバブルソートなんですよ。無論私のもバブルソート。
381 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 22:42:15 ] ん、バブルソートですね
382 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 22:48:20 ] 知識とコードのアンバランスさから見て、どっかの大学講師かな。 実務経験があるようには見えないし、頭堅いのにプライドだけは高いし。
383 名前: ◆QZaw55cn4c mailto:sage [2010/06/06(日) 23:20:44 ] >>382 今は助教というのですよ。現在の大学教員の序列を知らないところから見ると、高校生かな?
384 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 23:21:28 ] 高校生に負ける助教って・・・
385 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 23:29:08 ] どうりで高校生なら計算オーダーの話は理解できなくてもしかたありませんね。でも重要ですからよく勉強しておくように。
386 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 23:29:24 ] 日本語まともに読めないクズの分際で、 なんで自分より下しか想像できないんだろうw
387 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 23:31:46 ] バブルソートでも色々あるんですよ。ひとつのパターンだけ決め付けてこれはバブルソート、あれは違う、などと見識の狭いことをいってはいけません。 もっと広い感覚で物事を理解することです。
388 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 23:32:52 ] 実数と整数の区別もつかない盲が何言ってんだw
389 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 23:35:12 ] というか本当に助教なの?せいぜい院生くらいかと思ってたんだけど。 日本語の読めなさはやばいってレベルじゃねーだろw
390 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 23:35:43 ] 小さなミスはその都度修正すれば済むこと。でもバブルソートがなにかを理解していなければ、ヒープソート、シェルソート、クィックソート、マージソート その他いろいろなソートでもつまづきますよ。これらの理論では計算オーダーが重要ですからよく勉強しておくことです。
391 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 23:39:51 ] なんで相手がそれらのソートを知らないことになってんだよw
392 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 23:40:02 ] >>382 で講師だろうといっていたくせに、 >>389 で院生くらいだとおもっていた、 とは随分とおっしゃることがころころかわるのですね。日本語が読める読めないというより、日本語を使って思考できないのではないですか?
393 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 23:40:32 ] ちょ、同一人物認定されたw
394 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 23:40:43 ] >>391 計算オーダーを理解していないようですからね。
395 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 23:54:27 ] すいません、できたら>>362 お願い致します 流石に無理ですかね・・・
396 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 23:55:50 ] >>395 スレ違いな上に、金取るぞってレベルの話なんだがw
397 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 23:57:10 ] >>395 無理に決まってるだろw
398 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 23:57:21 ] やっぱり無理ですよねw じゃあだめもとで他当たってきます ありがとうございました
399 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 23:58:06 ] >>395 作者に直接言ってみれば もちろん、単にエラーが出るとだけ。 ttp://twitter.com/_kenkun
400 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 23:59:34 ] 大体フィルタだろ? フィルタのソースはAviUtilの作者とは違うだろ。
401 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 00:00:30 ] >>399 いや、AviUtlに問題があるわけではなくて このフィルタに問題があるんですよね フィルタの作者はAviUtlの作者ではないんで・・ でももしかしたらAviUtl側でなんとかできるかもしれませんね ありがとうございます。
402 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 00:01:58 ] 関係ないフィルタの不具合を報告されても困るだろw
403 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 00:18:46 ] まぁここはご覧の通り高校生レベルの議論なんで・・
404 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 00:19:12 ] 高校生以下のおじさんもいるけどね
405 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 02:09:08 ] 高校生だったころに戻りたいな
406 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 04:04:49 ] 中学レベルの英語力すらない人が多いみたいだけどね
407 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 06:55:32 ] that's too mad.
408 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 12:38:44 ] >>395 せっかちだなぁ
409 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 19:02:23 ] >>406 んじゃ、そのあんたのレスを英語で頼む
410 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 19:09:19 ] all your base are belong to us
411 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 20:02:34 ] ポインタを使い1〜12までの数字を入力すると英語で月の名前が出力され、 そうでない場合はunknown month と出力されるプログラム作りで困ってます。 入力例 3 5 13 11 出力例 March May unknown month November ヒントでは、 char *month_name(int n)を書き入れる事 month_name(6)はJuneである事 static char *months[] = { "January","February","March", "April","May","June", "July","August","September", "October","November","December"}; を用いる事が書かれてます。 暇な人が居たらお願いします。
412 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 20:16:30 ] >>411 char *month_name(int n) { if (n < 1 || 12 < n) { return "unknown month"; } return months[n-1]; }
413 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 20:20:27 ] staticだから関数内にmonths[]置くんじゃないの?
414 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 20:24:16 ] じゃあそれで
415 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 21:12:44 ] 途中経過を…プログラミングは下手ですがっ #include <stdio.h> static char *months[] = { "January","February","March", "April","May","June", "July","August","September", "October","November","December"}; int main(void) { int n; char *month_name(int n) {if (n < 1 || 12 < n) { return "unknown month"; }return months[n-1]; } scanf("&lf",&n); printf("%s",*months); return(0); } これでやるとどんな数字入れても出力がJanuaryになってしまうのですが、 どこらへんを変えればいいでしょうか?
416 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 21:14:17 ] >>415 &lf ってなんだよ
417 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 21:15:40 ] scanf("%d", &n);
418 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 21:18:19 ] つーか関数内に関数置くな
419 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 21:21:46 ] >>415 なんという残念な使い方w
420 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 21:24:05 ] >>415 ideone.com/kEyhc scanf("&lf",&n); printf("%s",*months); の一連の流れをおかしいと思わなかったのはまずい
421 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 21:31:08 ] 残念な頭なのでmonth_nameの中に *months入れるのは思いつきませんでした…orz
422 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 21:37:19 ] >>421 慣れ、馴れ。数書くうちに体にしみこむ。
423 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 22:08:57 ] ケチ付けるわけではないけどif文はmainの中のほうがunkownのとき 関数を呼ばなくていいんじゃなかろうか。
424 名前:9 [2010/06/07(月) 22:11:27 ] 【質問テンプレ】 [1] 授業単元:C言語課題 [2] 問題文(含コード&リンク):2つの正の整数(aとb)の最大公約数をユークリッドの互除法を用いて表示するプログラムを作成せよ。ただし、0<b≦a≦32767とする。 ≪ユークリッドの互除法≫ ユークリッドの互除法による最大公約数(GREATEST COMMON DIVISOR:GCD)は、次のように求める。 @2数(aとb)の中で大きい値をl、小さい値をmとする。 Alをmで割り、あまりをrとする。 r=0ならば、mが最大公約数となる。 r≠0(0<r<m)ならばl←m、m←r として再びAの処理を行う。 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:main.c Visual Studio 2008 [3.3] 言語:C++ [4] 期限:2010年6月18日17:00まで [5] その他の制限:(まだ本当に初心者なので)do文やif文、for文まで習いました。 期限までは時間がありますが…宜しくお願いしますm(_ _)m
425 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 22:29:12 ] #include <iostream> int main() { int a, b, r; std::cin >> a >> b; while(r = a % b) a = b, b = r; std::cout << b; }
426 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 23:09:24 ] >>423 逆にその関数として、不正な値が渡された時はどういう挙動にしようか
427 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 23:10:21 ] for(i = 0 ; i < 5 ; i++){ printf("%d,", i ); } これで出力したら 1,2,3,4,5, みたいに最後にもカンマがついちゃうんでfor文の外側に printf("\b\n"); を付け加えたんだけどうまく最後のカンマが消えません その理由とどうすればいいのか教えてください
428 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 23:21:48 ] \bは書き込む位置が1文字分戻るだけだから スペースで上書きする必要がある printf("\b \n");
429 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 23:23:30 ] なるほど d
430 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 23:25:03 ] >>427 端末側がバックスペースをサポートしていない、と思われる。 仕方がないから、 #include <stdio.h> #define N 5 int main() { int i; for (i = 1; i <= N - 1; i++) printf("%d, ", i); printf("%d\n", i); return 0; } でごまかすしかない。
431 名前:430 mailto:sage [2010/06/07(月) 23:29:20 ] >>428 そのような手があったんですね。これでうまくいきました。(cygwin) #include <stdio.h> #define N 5 int main() { int i; for (i = 0; i < N; i++) printf("%d, ", i); printf("\b\b \n"); return 0; }
432 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 23:32:36 ] >>424 #pragma warning(disable:4996) #include <stdio.h> int main(void){ int a, b, l, m, r; printf("整数 a と b を入力して下さい > "); scanf("%d %d", &a, &b); if(a>b) l=a, m=b; else l=b, m=a; while(r = l % m) l=m, m=r; printf("GCD = %d", m); }
433 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 23:46:04 ] >>426 #include <stdio.h> char *month_name(int n){ static char *months[]={"January","February","March", "April","May","June","July","August","Septmber", "October","November","December"}; return months[n-1];} int main(void) { int n; scanf("%d",&n); if (n<1||n>12)printf("unkown month\n"); else printf("%s\n",month_name(n)); return 0; } 不正な値が行く場合がわかりませんので教えて下さい。
434 名前:430 mailto:sage [2010/06/07(月) 23:53:41 ] >>433 できている、と思うのですが。
435 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 23:55:12 ] しっかし無駄なstaticだ
436 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 23:55:25 ] >>433 関数をライブラリとして提供した場合に、使う側に対して値チェックを強制するべきか、 それとも不正な値を渡された場合にunknown monthを返却する仕様とするのかという話。 で、使用者に対して値チェックを強制した場合、使用者の不手際により 不正な値が渡されることを考慮しなければならない。 その際、メモリアクセス違反で落ちるライブラリでよしとするのか?ということ。 例外機構があれば例外を投げるのも手だけれど、Cではどうするのか。 型をboolにし、out引数を追加するのもありだよね。 でも今回はプロトタイプが指定されている。 その上での考えを教えてほしい。
437 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 23:57:16 ] NULLを返却するのは? 結局関数の中で範囲チェックすることになるけど。
438 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 23:58:00 ] >>435 これstatic消したら関数抜けた時に戻り値のアドレスが破棄されるんじゃないの?
439 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 00:00:30 ] >>438 リテラルのアドレスが返るから問題ない
440 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 00:11:50 ] >>438 sizeof(months) == sizeof(char *) * 12
441 名前:デフォルトの名無しさん [2010/06/08(火) 00:16:14 ] [1] 授業単元: 情報数学 [2] 問題文(含コード&リンク): 次の連立一次方程式をガウスザイデル法とSOR法で解け {2 , -1 , 0} {x1} {-1} {-1 , 2 , -1} * {x2} = {2} {0 , -1 , 2} {x3} {1} なお、反復回数を20、x1-3の初期値x1-3^0を0、SOR法の・をそれぞれ1.2と1.5で計算せよ。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 本日中、出来ればお昼までにお願いします。
442 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 00:20:40 ] >>440 要するに、予約語staticをつけなくとも、 monthsはその各々の要素が文字列リテラルの先頭へのポインタであるから 静的領域に確保されると。
443 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 00:27:51 ] それって規格で決まってたっけ? そうでなくても、いちいち呼ばれるたびに確保するような処理系なさそうだけどさ。
444 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 00:35:16 ] >>436 いろいろとありがとうございました。 今回は不正な値を渡された場合にunknown monthを返却する仕様のつもりです。 使用者に対しての値チェックのやり方はどれがいいかまだよくわかりません。 難しいですね。
445 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 00:58:11 ] >>442-443 文字列リテラルがstatic const char[]か?ならYes 6.4.5 文字列リテラル 文字列リテラルを指すポインタ非可変長配列がstaticか?ならchar const * const []であってもNo 6.2.4 オブジェクトの記憶域期間
446 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 01:03:04 ] >442>443 横レスだけど months自体は自動変数だから、スタックに置かれるよ。関数が返しているのは スタック変数を指すポインタではなく、静的領域に置かれている文字列リテラルの ポインタ。
447 名前:443 mailto:sage [2010/06/08(火) 01:34:03 ] >>445 d
448 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 08:57:28 ] [1] 授業単元:プログラミング演習2 [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10651.txt [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:6月9日12時まで [5] その他の制限: libstation.aが無いのでやりずらいかもしれませんが、形だけでもお願いします。
449 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 10:20:42 ] >>441 をお願いします。
450 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 10:44:00 ] >>449 とりあえずガウスザイデル法のみ kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10652.txt
451 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 11:08:42 ] >>449 SOR法 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10653.txt
452 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 12:04:27 ] >>451 ありがとうございます。
453 名前:デフォルトの名無しさん [2010/06/08(火) 13:17:45 ] [1] 授業単元: 上級プログラミング [2] 問題文(含コード&リンク): 1、VisualC++2008のWindowsフォームアプリケーションのプロジェクトを作成し、DataGridViewを作成なさい。列は A,B,C の3列とする。 2、列Aに入力された4桁の数値を日付形式に変換し表示する様にしなさい(○月○日)。 3、sample.txtの内容を読み取り、その内容を使って列Bにオートコンプリートを実装しなさい。 sample.txtの内容は あいうえお abcde 12345 と言う様に、1行に1単語とする。 [3] 環境 [3.1] OS: Windows [3.2] VC++2008 [3.3] 言語: C/C++ [4] 期限: 6/12 [5] その他の制限:とくに制限はありません 1はできますが2以降がよくわかりません。 2はプロパティでCellStyleを設定しましたが動いてくれませんでした。 3は調べてみたのですが、C++での実装はのっていなかったので・・・ よろしくお願いします。
454 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 13:21:57 ] C++/CLIの宿題スレってないの?
455 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 13:43:20 ] >>448 適当に見繕ってttp://codepad.org/Hzoa3JtQ
456 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 14:00:14 ] (1) 【main 関数のみ】 int型配列 x[101] を定義し、キーボードから人数 N と N 人分の点数を入力し、平均点と 偏差値を計算し、結果を画面に出力するプログラムを作成せよ。 ◆ 条件 人数 N に負の値や101以上の値が入力されたときには、再入力するものとす る。 点数 x[i] に負の値や100点を超える値が入力されたときには、再入力する ものとする。 ◆ 偏差値 Ti の計算式 10( xi ) Ti 50 ただし N 1 x i N i 1 N 1 (x )2 i N i 1 ここに、N :データの数 xi :個々の点数 μ:平均 σx:標準偏差
457 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 14:01:04 ] 実行例 Input N (0<N<101):0 ← 入力エラー Input N (0<N<101):5 Input x[1] (0<=x<=100):200 ← 入力エラー Input x[1] (0<=x<=100):30 Input x[2] (0<=x<=100):50 Input x[3] (0<=x<=100):-1 ← 入力エラー Input x[3] (0<=x<=100):60 Input x[4] (0<=x<=100):80 Input x[5] (0<=x<=100):90 平均点 62.0 No. 1 点数 30 偏差値 35.0 No. 2 点数 50 偏差値 44.4 No. 3 点数 60 偏差値 49.1 No. 4 点数 80 偏差値 58.4 No. 5 点数 90 偏差値 63.1
458 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 14:02:48 ] (2) 【平均点と偏差値を計算する関数の作成】 (1)のプログラムにおいて、平均点と学力偏差値を計算する部分を関数 seiseki に改 めたプログラムを作成せよ ◆ 条件 データの入力と結果の出力はmain関数で行う。 人数 N に負の値や101以上の値が入力されたときには、再入力するものと する。 点数 x[i] に負の値や100点を超える値が入力されたときには、再入力す るものとする。 main関数から関数seisekiに データの数 N N人分の点数 x[] を渡し、関数seisekiからmain関数に 平均点 μ 偏差値 T[] を受け渡す。 ただし、平均点は戻り値を用いて返す。
459 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 14:06:09 ] 3)【ポインタを用いた平均点と偏差値の計算】 (2)で作成したプログラムの関数 seiseki の中 次のプログラム例を参考にして、 の配列要素をポインタを用いて表すプログラムを作成せよ。 #include <stdio.h> float average( int N, float *h); int main(void){ float ave, height[101]; int i,N; printf("Input N:"); scanf("%d",&N); for(i=1; i<=N; i++){ printf("身長 "); scanf("%f",&height[i]); } ave = average(N,height); printf("平均 %6.1f \n",ave); return 0; } float average( int N, float *h){ int i; float av, total=0.0; for(i=1; i<=N; i++){ total = total + *(h+i); } av = total/N; return av; }
460 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 14:35:27 ] >>456 wakaran
461 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 14:42:29 ] >>459 問題文が日本語になっていない コードも直接貼ってるから読みにくい
462 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 14:51:41 ] >>448 ありがとうございます。 セグメンテーション違反になりましたが、ここからは自分で頑張ってみます。