1 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 22:18:31 ] あなたが解けない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++の宿題を片付けます 106代目 pc11.2ch.net/test/read.cgi/tech/1209810861/
730 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:10:02 ] >>725 逆も上げとくわ sum += ++a;は a = a + 1; sum = sum + a;
731 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:11:29 ] >>729 sum += a++ が一番簡単で単純だろ?
732 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:12:13 ] 直感的ではないよ
733 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:15:09 ] >>731 そうだな。 こっちのPart28終わりからPart29の頭にかけてa++関連の未定義問題で論争があったくらいだ。 C言語なら俺に聞け(入門篇) Part 29 pc11.2ch.net/test/read.cgi/tech/1212329099/
734 名前:733 mailto:sage [2008/06/06(金) 00:15:52 ] >>733 は>>731 への同意ではなく>>732 への同意だ。
735 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:17:36 ] インクリメントを禁止してるプロジェクトに関わった事があったな。。。。。 ちょっと新鮮だった。
736 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:21:07 ] 実際のところたとえば a = a + 1; sum = sum + a; を sum += ++a; としたところでコンパイル後のバイナリレベルでどのくらいクロックやメモリ を稼げるものなんだ? それと引き換えに新人が保守するかも知れないリスクとの天秤にかけた場合の コストも。
737 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:23:16 ] まだ学生だからわからんのだけど仕事でやってて、それに引っかかる人いるの?
738 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:24:10 ] 万人にわかるようにするんだよ。
739 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:25:54 ] そんなのもわからないやつにソース触らせんなよw
740 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:27:30 ] しるかよw そういう規約をつくってるんだからw あ、デクリメントも禁止されてたよ。
741 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:28:09 ] >>737 ソースって案外長生きなんだよ。 COBOLとかあれだけクラサバ登場で無くなるといわれたのに 今だに残ってる。 webの発達でc出来る人口が減ってるのに、新人にわざわざ 今の程度の説明で時間取られたくないだろ?
742 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:29:04 ] >>736 最適化がかかればクロックやメモリは同等になるはず 好きな方を選べばいいだけ
743 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:29:54 ] インクリメントすら理解できないなら他の部分が大丈夫なわきゃないと思うんだが。
744 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:31:37 ] 前に、++aとa++って、何が違うんですかって、聞かれたことがあった。
745 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:35:52 ] それだけが1行にあれば機能は同じだけど、 条件判定の中にあったりすると面倒だし この間論争になったのは if (xxxxxx) printf("%d",(a++)*(a++)); こんな感じの結果の違いでもめてたし。
746 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:36:21 ] それ論争以前の未定義だから
747 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:37:33 ] >>746 新人がインクリメント覚えて使い出してこんなの書かれると また教える羽目になるでしょ。 だったら素直にインクリメントなどは使うなとしたほうがいい。
748 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:39:46 ] なんていうか、C言語の省略した記述って メモリやCPUなんかのハード資源が極端に 少なかったころのゲーム開発と似てて みみっちいという気がする。
749 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:40:29 ] それを論争とか言っちゃう人間が何を教えんの?
750 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:49:14 ] なんでいまさら宿題スレでインクリメントが問題視されるのかわからん
751 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 01:32:20 ] とても難しい問題が来ました しかし馬鹿な私と違って非常に優秀な諸兄にはわけないでしょう [1] 授業単元:C言語研修 [2] 問題文(含コード&リンク): 1から45の数(合計値)は1から9の数(要素)の和で作ることができる。(要素に同じ数を使わない) 例えば合計値6は最大3つ(要素数)の要素の和でつくることができ、要素数1であれば6、要素数2で あれば1+5と2+4の2通り、要素数3であれば1+2+3でつくる。この組み合わせで全てである。 合計値と要素数から要素の和の組み合わせ全てを計算する再帰関数を作れ。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: Microsoft Visual C++ 6.0 [3.3] 言語: C言語 [4] 期限: 起源はありませんが優秀な貴方方の手に掛かれば瞬殺でしょう [5] 制限はありません。貴方方の持っている全ての知識を注ぎ込んじゃって構いません
752 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 01:36:25 ] >しかし馬鹿な私と違って非常に優秀な諸兄にはわけないでしょう こういっておけば馬鹿が調子こいてやってくれるよwプゲラ という主の顔が浮かぶ
753 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 01:54:21 ] >>751 #include<stdio.h> int resolve_sub(int total, int num, int min) { static int ans[9], anslen = 0; int i, j; if(!num) return !total; for(i = min; i <= 9 && i <= total; i ++) { ans[anslen ++] = i; if(resolve_sub(total - i, num - 1, i + 1)) { for(j = 0; j < anslen ; j ++) printf("%d ", ans[j]); printf("\n"); } anslen --; } return 0; } void resolve(int total, int num) { resolve_sub(total, num, 1); } int main() { resolve(30, 6); /* (例)30を6個の和に分ける */ return 0; }
754 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 02:25:34 ] #include <stdio.h> void f(int size, int n, int *p) { static int pos = 0, start = 1; int i; if(pos==size-1) { p[pos] = n; for(i=0; i<size; i++) printf("%d ", p[i]); putchar('\n'); return; } for(i=start; i*2<n; i++) { start = i + 1; p[pos++] = i; f(size, n-i, p); pos--; } } int main(void) { int num, amount, *p; printf("要素数を入力して下さい:"); scanf("%d", &num); printf("合計数を入力して下さい:"); scanf("%d", &amount); p = malloc(sizeof(int) * num); f(num, amount, p); return 0; }
755 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 02:34:17 ] 問題読み違えた。 1から45まで限定で1から9しか使っちゃダメなのか。
756 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 02:50:08 ] >>751 #include<stdio.h> int O00O(int OOO0){ if(OOO0%2) return OOO0/2*(OOO0+1); return (OOO0+1)/2*OOO0; } void OOOO(int O0OO[], int OOO0, int OO0O, int OO00, int O0000){ int O, O000; if(OO00<=1){ O0OO[OO00]=OOO0; for(O=1;O<OO0O;O++) printf("%d+", O0OO[O]); printf("%d\n", O0OO[OO0O]); return; } O000=(OOO0-O00O(OO00-1)-1)/OO00; for(O=O0000;O<=O000;O++){ O0OO[OO00]=O; OOOO(O0OO, OOO0-O, OO0O, OO00-1, O+1); } } void O0O0(int OOO0, int OO0O){ int O0OO[1000]; if(OO0O>=sizeof(O0OO)/sizeof(O0OO[0])) return; OOOO(O0OO, OOO0, OO0O, OO0O, 1); } int main(void){ O0O0(100, 10); return 0; }
757 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 03:11:13 ] >>756 難読化乙
758 名前:デフォルトの名無しさん [2008/06/06(金) 11:37:44 ] #include <stdio.h> #include <float.h> int main(void) { float f; double x; long double ld; printf("\nTesting the precision of float, double, and long double : \n"); f = 1.0f + 1.0e-7; printf(" 1.0 + 1.0e-7 = %.10f\n", f); f = 1.0f + 1.0e-8; printf(" 1.0 + 1.0e-8 = %.10f\n", f); x = 1.0l + 1.0e-15; printf(" 1.0 + 1.0e-15 = %.20lf\n", x); x = 1.0l + 1.0e-16; printf(" 1.0 + 1.0e-16 = %.20lf\n", x); ld = 1.0L + 1.0e-19; printf(" 1.0 + 1.0e-19 = %.30Lf\n", ld); ld = 1.0L + 1.0e-20; printf(" 1.0 + 1.0e-20 = %.30Lf\n", ld); printf("\nThe experiment above is explained by constants from float.h :\n"); printf(" precision of float : %e\n", FLT_EPSILON); printf(" precision of double : %.15le\n", DBL_EPSILON); printf(" precision of long double : %.30Le\n", LDBL_EPSILON); return 0; } 表示された結果のうち、 1.0 + 1.0e-7 が 1.0000001 にならず、同様に 1.0 + 1.0e-15 が 1.000000000000001 にならず、 1.0 + 1.0e-19 が 1.0000000000000000001 という、きれいな数にならない理由を、FLT_EPSILON, DBL_EPSILON, LDBL_EPSILON との関係から説明してもらえないでしょうか。 よろしくお願いします。
759 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 11:43:55 ] >>758 単純な話管理できる桁があるので小数点側の切捨てが行われてるだけかと。 たとえば 1.0 + 1.0e-7 を 0.1 + 1.0e-7 や 0.01 + 1.0e-7 とした場合 おそらく.0000001は保持されると思われ。
760 名前:デフォルトの名無しさん [2008/06/06(金) 12:01:07 ] >>759 それをFLT_EPSILON, DBL_EPSILON, LDBL_EPSILON との関係から考察しなきゃならないんですけどいまいちわからなくて・・・
761 名前:759 mailto:sage [2008/06/06(金) 12:05:21 ] >>760 www.asahi-net.or.jp/~UC3K-YMD/Lesson/Section03/section03_13.html ここがいいかも イプシロン(誤差幅)だそうです。
762 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 12:06:34 ] ググったら直ぐ出てきたんだが…怒
763 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 12:32:01 ] >>758 質問と関係ないが printfの %l は整数にしか使えないと思うんだ
764 名前:デフォルトの名無しさん [2008/06/06(金) 12:41:53 ] 複素数を求めるプログラムなのですけど、 #include <stdio.h> #include <math.h> typedef struct { double rel; double imp; } complex; double mulcompl(complex x, complex y); /* 関数の戻り値の型を定義 */ int main(void){ complex c1, c2, c3; c1.rel = 3.2; c1.imp = 2.7; c2.rel = 2.5; c2.imp = 1.8; c3 = mulcompl( c1 , c2 ); /* complex変数c1,c2を仮引数としてmulcompl関数を呼び出す */ printf("複素数の積 \n"); printf("( %.2f + i %.2f ) * ", c1.rel, c1.imp); printf("( %.2f + i %.2f ) = ", c2.rel, c2.imp); printf("( %.2f + i %.2f )\n", c3.rel, c3.imp); return 0; } double mulcompl(complex x, complex y) /* 関数の戻り値の型を定義 */ { complex z; /* 仮引数x,yを使って複素数の掛け算を計算する */ z.rel = x.rel * y.rel - x.imp * y.imp; z.imp = x.rel * y.imp + x.imp * y.rel; return z; } それでどうしてエラーが取れないのですがどこが間違っているのか分かりません。 どなたかお願いします。
765 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 12:42:42 ] [1] 授業単元:オペレーティングシステム [2] 問題文(含コード&リンク):forkによる子プロセスの生成 子プロセスを2つ生成して、それぞれに、fork1, fork2 のプログ ラムを実行させるようなプログラムを作成しなさい。 ///fork1.c/// kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6800.txt ///fork2.c/// kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6801.txt [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:6月11日 前回は本当にありがとうございました。よろしくお願いします。
766 名前:ロベ mailto:sage [2008/06/06(金) 12:43:46 ] >>646 お願いします!!!!
767 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 12:58:20 ] いまどきこれはないだろ。VC++が無料で使えるってのに。 > [3.2] コンパイラ名とバージョン:Borland C++ 5.5.1 for Win32
768 名前:ロベ mailto:sage [2008/06/06(金) 13:00:53 ] VC++は家でつかってますb
769 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 13:07:42 ] >>764 double mulcompl(complex x, complex y) → complex mulcompl(complex x, complex y)
770 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 13:11:37 ] >>766 wikipediaみたらOS/2 2.xのヘッダ構造書いてなかったんでやる気無くした。
771 名前:ロベ mailto:sage [2008/06/06(金) 13:14:11 ] >>770 いちようBMPのヘッダについて書いてあるページは見つけたけど プログラムの技術がないからできなくて;; www.kk.iij4u.or.jp/~kondo/bmp/
772 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 13:31:33 ] とあるゲーム機のSS取るのに使った構造体 typedef struct { // char bfType[2]; unsigned long bfSize; unsigned short bfReserved1; unsigned short bfReserved2; unsigned long bfOffBits; } BmpFileHed; typedef struct { unsigned long bcSize; short bcWidth; short bcHeight; unsigned short bcPlanes; unsigned short bcBitCount; } BmpFileInfoOS2; typedef struct { unsigned long biSize; long biWidth; long biHeight; unsigned short biPlanes; unsigned short biBitCount; unsigned long biCompression; unsigned long biSizeImage; long biXPixPerMeter; long biYPixPerMeter; unsigned long biClrUsed; unsigned long biClrImporant; } BmpFileInfoWindows;
773 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 13:31:53 ] 残り typedef struct { BmpFileHed hed; BmpFileInfoWindows Info; char data[480*272*4]; } BmpWindows;
774 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 13:32:48 ] でも欠点があってgccでコンパイルすると共通のヘッダ部分に アライメントが入る。 誰だよBMの後に調整用の領域作らないヘボいフォーマット決めたの
775 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 13:35:11 ] typedef struct { BmpFileHed hed; BmpFileInfoWindows Info; char data[2]; } BmpWindows; typedef struct { BmpFileHed hed; BmpFileInfoOS2 Info; char data[2]; } BmpOS2;
776 名前:ロベ mailto:sage [2008/06/06(金) 13:50:42 ] >>772 >>773 >>775 この構造体をどう使えば・・・
777 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 13:54:30 ] >>766 期限に間に合わなかったので作るのやめたよ
778 名前:ロベ mailto:sage [2008/06/06(金) 13:59:04 ] >>777 6月10日まで期限延ばしてもらえたので お願いできませんか?
779 名前:777 mailto:sage [2008/06/06(金) 14:00:06 ] >>778 作りかけのやつ kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6802.c
780 名前:772 mailto:sage [2008/06/06(金) 14:03:19 ] >>779 unsigned long bcSize;(unsigned long biSize;)に該当する 部分を unsigned long bfOffBits; の後に持ってくると楽
781 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 14:05:06 ] BMとかどうせ使わないし読み捨てて構造体から排除しちゃえ。
782 名前:ロベ mailto:sage [2008/06/06(金) 14:05:22 ] >>777 どこまでできてるんですか?
783 名前:ロベ mailto:sage [2008/06/06(金) 14:06:25 ] ↑ >>779 の間違え
784 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 14:06:46 ] >>781 以前別スレでやってたけど #pragma pack(push, 1) この間に調整されたくない構造体を記述 #pragma pack(pop) するといいらしい
785 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 14:17:44 ] >>782 こいついったいなんなの? ソースがあるのにどこまでできているか聞くなんて。 自分で確認もできないのなら何でも適当なものをでっちあげてやれば、 ありがたがってそのまま提出しちゃうんじゃないかw
786 名前:777 mailto:sage [2008/06/06(金) 14:19:47 ] >>774 gccなら struct s0 { char a, b, c; } __attribute__ ((packed)); でパディングなし
787 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 14:21:14 ] >>786 おーそうなんだ 継続して作ってないなら続きやろうか?
788 名前:ロベ mailto:sage [2008/06/06(金) 14:22:28 ] >>787 おねがいできますか?
789 名前:777 mailto:sage [2008/06/06(金) 14:32:31 ] >>787 どうぞ 自分はグレースケール変換だけやってみる
790 名前:787 mailto:sage [2008/06/06(金) 14:53:08 ] うほ>>779 のを見てると自分の組み方が変則的なのかわかるorz 我流でやってるので悩むorz
791 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 15:06:00 ] 問03 学科の出席簿作成。 15人分の学生を表示し、入力により内容を変動させる。 表示順番: 出席表 <入力>学生番号0〜14 <入力>曜日番号0〜6 <入力>時限番号0〜3 <入力>出欠番号0〜1 <入力>学生番号0〜14の時に99を入力するとプログラム終了。 頼む。
792 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 15:10:28 ] >>646 の例題で不明な点があるんだけど ビットカウントが1,4,8のときはカラーパレットに対して処理するのか?
793 名前:777 mailto:sage [2008/06/06(金) 15:19:54 ] >>792 もうそれで作りつつある switch(bit_count) { // 2値なのでスケール化はできない case 1: printf("2値画像のため変換しません\n"); return; // パレットのみ変更 case 4: case 8: pal_count = 1 << bit_count; for (i = 0; i < pal_count; i++) { if (os == BMP_OS2) { y = (unsigned char)(pal3[i].rgbRed * YR + pal3[i].rgbGreen * YG + pal3[i].rgbBlue * YB); fwrite(&y, 1, 1, out_fp); fwrite(&y, 1, 1, out_fp); fwrite(&y, 1, 1, out_fp); } else if (os == BMP_WIN) { y = (unsigned char)(pal4[i].rgbRed * YR + pal4[i].rgbGreen * YG + pal4[i].rgbBlue * YB); fwrite(&y, 1, 1, out_fp); fwrite(&y, 1, 1, out_fp); fwrite(&y, 1, 1, out_fp); y = 0; fwrite(&y, 1, 1, out_fp); } }
794 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 15:21:07 ] いつまでだらだらとスレ消費すんだよw
795 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 15:21:58 ] フルフォーマット考えると結構面倒だなw
796 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 15:26:22 ] >>777 どうする?すでに読み込み用プログラム公開してるサイト見つけたんだけど・・・・
797 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 15:27:35 ] BMPの圧縮関係ってどう対処すれば正解? biCompressionフィールドって任意に拡張可能だった希ガス
798 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 15:29:19 ] >>797 まあそうなんだけどさ・・・ BMPで圧縮してるのなんてみたことないし。 でも出題した教師はこれを知ってかしらないでか出してるしな。 まともに対応を考えるとLibレベルになるよ。
799 名前:デフォルトの名無しさん [2008/06/06(金) 15:29:23 ] ちなみにBMP関係でこんなの見つけたお sunpillar2004.hp.infoseek.co.jp/data/files/bmp.html
800 名前:デフォルトの名無しさん [2008/06/06(金) 15:30:24 ] ああ,色深度16bitの時のビットフィールドの意味とかもいろいろあるし,BEかLEかで違いがあるんだっけか・・・? 忘れた
801 名前:796 mailto:sage [2008/06/06(金) 15:30:30 ] >>799 www.syuhitu.org/other/bmp/bmp.html こっちはLibにしてソースまで公開してくれてる。
802 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 15:30:57 ] >>800 あるね かなり面倒だよ、これ。
803 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 15:34:54 ] >>801 それでいいなら,プログラムの著者に連絡とって使ってみたら?
804 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 15:52:20 ] [1] 授業単元:メディア情報処理 [2] 問題文(含コード&リンク): マイク入力からの信号をリアルタイムに解析し、音名を表示するプログラムを作れ (チューナーみたいなもんですかね?) [3] 環境 [3.1] OS: Windows XP [3.2] コンパイラ名とバージョン: Visual Studio 2008 [3.3] 言語: C C++ [4] 期限: 6月8日 [5] その他の制限: なし
805 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 16:00:53 ] [1] C [2]kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6803.txt [3] [3.1] Linux [3.3] C [4] 6月10日 [5] 記載されているプログラムを改訂して作ってください スーパークイーンが求められません すいませんお願いします
806 名前:kokoro [2008/06/06(金) 16:16:03 ] はじめまして。 今、c言語をやっているのですが、分からないので 問題をのせますので、プログラムを作ってほしいです。 お願いします。
807 名前:kokoro [2008/06/06(金) 16:21:12 ] [1]授業単元:C言語 [2]問題文: ★下記の仕様を満たすプログラムを作成しなさい。 【仕様】 ATM簡易プログラム ▼取引は「預け入れ」「引き出し」「残高照会」の3種類とする。始めに どの取引をするかを選択させる。0が入力されたらプログラムを終了する。対応していない数字が入力された場合は、 「入力番号が正しくありません」と表示し、入力画面に戻る。 ▼どの取引を希望したとしても、次に暗証番号入力を促し、キーボードキーボード入力させる。 ▼あらかじめ設定しておいた番号と一致していれば、次の処理(最初に選択した取引)に入る。そうでなければ、 「暗証番号が違います。もう一度入力してください」と表示し、入力させる。 3回失敗したら、「防犯上の理由により、取引を中止します」と表示し、プログラムを 終了する。 ▼「預け入れ」を選択した場合は、預け入れ金額を入力させ、合計金額(あらかじめ適当な金額に設定しておく) を表示し、入力画面に戻る。 ▼「引き出し」を選択した場合は、引き出し金額を入力させ、残り金額を表示し、入力画面に戻る。ただし、 1回で引き出せる金額は500,000円までとし、それを超える金額を入力したら「1回で引き出せる金額は 500,000円までです」と表示し、再度入力させる。なお不足の場合は「残高が不足しています」と表示し、 というメッセージと残高を表示し、再度入力させる。 ▼「残高照会」を選択した場合は、残高を表示し、入力画面に戻る。 [3]環境 [3.1]OS:windows xp [3.2]コンパイラ名:bcc32 [3.3]言語:c言語 [4]期限:2008年6月7日 [5]その他:キーボード入力、if文、for文を使って。 お願いします。
808 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 16:24:49 ] >>805 8queenってやったことなかったな〜 で、参考になるサイト www.pro.or.jp/~fuji/puzzlestudy/8queen.html
809 名前:ロベ mailto:sage [2008/06/06(金) 16:25:00 ] >>646 の課題はわりと単純なものでもかまいません よろしくおねがいします
810 名前:ねね ◆ia23AXgoXg [2008/06/06(金) 16:30:29 ] [1] 授業単元: 工学実験(画像処理) [2] 問題文: 濃度ヒストグラムを伸長(濃度変換)する関数[extend()]を作成せよ [3.1] OS:WinXP [3.2] コンパイラ名とバージョン: VisualC++6.0 [3.3] 言語:C++ [4] 期限: 6/9 17:00 [5] その他の制限: 概念くらいしかわかってません…orz メインプログラムおいときます、無理に使わなくてもいいかと #include <stdio.h> #define X 260 /* 画像の横方向の画素数 この例では260 */ #define Y 60 /* 画像の縦方向の画素数 この例では60 */ unsigned char f[Y][X]; /* 入力画像配列 横X画素 ,縦Y画素 */ unsigned char g[Y][X]; /* 入力画像配列 横X画素 ,縦Y画素 */ main()
811 名前:ねね ◆ia23AXgoXg [2008/06/06(金) 16:31:12 ] main() /* 画像処理を行うメインプログラム */ { char source[80]; /* 入力ファイル */ char destin[80]; /* 出力ファイル */ unsigned char t; /* 閾値 */ printf("filename(input) ? "); scanf("%s",source); printf("filename(output) ? "); scanf("%s",destin); printf("threshold ? "); scanf("%d",&t); image_input(f,source); /* 画像の入力処理 */ threshold(f,g,t); /* 閾値処理の場合 */ image_output(g,destin); /* 画像の出力処理 */ どうかよろしくお願いします。・・・
812 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 16:36:16 ] >>805 for(k=0; k<3&&j>=0; k++, j--) if(i-3<=board[j] && board[j] <= i+3) flag = 0; を適当なとこに突っ込んでそれに合わせて少しいじればおk
813 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 16:55:28 ] >791 #include <stdio.h> void view(int attend[][7][4]) { int main(void) { int n, d, p, a, attend[15][7][4]={0}; while(0<=fputs("number : ", stdout) && scanf("%d", &n)==1 && 0<=n && n<=14) { if(0<=fputs("day : ", stdout) && scanf("%d", &d)==1 && 0<=d && d<=6 && 0<=fputs("period : ", stdout) && scanf("%d", &p)==1 && 0<=p && p<=3 && 0<=fputs("attend : ", stdout) && scanf("%d", &a)==1 && 0<=a && a<=1) { attend[n][d][p]=a; view(attend); } else { fputs("input error.\n", stdout); } } return 0; }
814 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:05:41 ] 途中で送信しちゃった void view(int attend[][7][4]) { int i,j,k; for(i=0; i<15; i++) { printf("student no.%d : \n", i); fputs(" S M T W T F S\n", stdout); for(j=0; j<4; j++) { printf("period %d : ", j); for(k=0; k<7; k++) { printf("%d ", attend[i][k][j]); } putchar('\n'); } } }
815 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:09:58 ] >>807 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6804.txt
816 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:11:23 ] >>797 っつか、劣化さえずにファイルサイズを小さくするってなら PNG辺りを
817 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:12:34 ] >>804 高度すぎてワロタ
818 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:14:42 ] まあ、最悪マイクからの信号を拾えたとしても 「リアルタイム」で解析し、音名を表示ってえぐいなまた と言うか音「名」ってなんだ?
819 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:15:22 ] >>818 ドとかそういうんじゃね?
820 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:16:17 ] 内部で絶対音感を持ってる人に処理させればおk
821 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:18:07 ] 内部で初音ミクが処理してるんですね、わかります
822 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:18:19 ] MikuMikuVoiceの機能を知りたい手合いか
823 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:21:58 ] 音名ってまた曖昧な ピアノのド=トランペットのレ=ホルンのソ 実音でいいのにな
824 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:21:58 ] 音名表示のソフトとかフリーであるでしょ まぁ俺はつくれんがwAPIはむり
825 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:23:04 ] >>805 スーパークイーン強すぎワロタ
826 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:24:02 ] >>807 すまん、>>815 間違ってるわ 微妙に修正 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6806.txt
827 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:24:45 ] >>646 グレイスケール化だけ 圧縮には未対応 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6805.c
828 名前:kokoro [2008/06/06(金) 17:27:10 ] >>826 もうチョット簡単になりませんか? for文のところの課題なので、for文(多重ループなど)を使ってお願いします。 ++count、#defineはまだ勉強してないのです。
829 名前:814 mailto:sage [2008/06/06(金) 17:28:32 ] >791 こっちのほうがいいかな kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6807.txt
830 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 17:29:16 ] >>828 #define ANSHOU_BANGO 1234 これはソース中にANSHOU_BANGOがあればコンパイル時に1234に置き換えますよということだけです。