- 1 名前:デフォルトの名無しさん [2009/05/18(月) 23:06:51 ]
- あなたが解けない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++の宿題片付けます 125代目 pc12.2ch.net/test/read.cgi/tech/1240226599/
- 52 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 21:09:19 ]
- >>51
確かにそうなのですが、マイナーなので他に聞く場所がありません。 ここなら分かる方もいるのではないかと思い質問させていただきました。
- 53 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 21:17:21 ]
- >>52
お引き取り下さい
- 54 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 21:24:27 ]
- >>52
Objective-C [ObjC part:4]; pc12.2ch.net/test/read.cgi/tech/1239721860/l50 スレ立てるまでもない質問はここで 97刷 pc12.2ch.net/test/read.cgi/tech/1240877154/l50
- 55 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 21:27:07 ]
- せめて適当なうpローダーにきちんとインデントを付けたコードをうp
してくれればObjective-C/C++でもある程度は答えてくれる奴が 居そうな感じだが読みにくいコードベタ張りは論外。基本的には 専用スレがありそこが過疎ってなければそちらのほうで聞くのが無難
- 56 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 21:58:11 ]
- >>23をお願いします。
- 57 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 21:59:17 ]
- BCDライブラリ書かないと誤差がすごくて・・・
- 58 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 22:04:49 ]
- >>56
>>41
- 59 名前:デフォルトの名無しさん [2009/05/21(木) 22:13:31 ]
- [1] 授業単元:情報処理
[2] 問題文(含コード&リンク): (1)キーボードから2整数を読み込んで読み込んだ順に標準出力にそれらの 値の10進数表現をスペース文字で区切って、1行に書き出し改行する。 読み込んだ1番目の整数の値が1000でなければ、次の2整数を読み込み 同様に書き出す。1番目の値が1000のときプログラムの実行を終了する。 このような仕様を満たすプログラムを作成せよ。(do-whileループで作成) (2)キーボードから3整数を読み込み、小さい順に出力するようなプログラム を作成せよ。(目的が達成されればどのようなプログラムでも構わない。) [3] 環境 [3.1] OS:XP [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:5月22日 13:00まで [5] (2)はなるべく簡単なものでお願いいたします。できたら数パターン 教えてくだされば幸いです。
- 60 名前:デフォルトの名無しさん [2009/05/21(木) 22:23:49 ]
- >>22 (・∀・)ニヤァ〜
- 61 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 22:39:40 ]
- >>59
(2) #include <stdio.h> int main(void) { int a, b, c; scanf("%d%d%d", &a, &b, &c); if(a < b) { if(c < a) printf("%d %d %d", c, a, b); else { if(b < c) printf("%d %d %d", a, b, c); else printf("%d %d %d", a, c, b); }} else { if(c < b) printf("%d %d %d", c, b, a); else { if(c < a) printf("%d %d %d", b, c, a); else printf("%d %d %d", b, a, c); }} return 0; }
- 62 名前:この板でいいの? [2009/05/21(木) 22:39:58 ]
- プログラミングは全くの初心者(CもJavaもなにも分からない)です。
質問があります。 ある資格試験の自動学習ソフト(将来的には自動学習ホームページ)を 作りたいと思っています。 そのための資料は既にあります。 A4で300頁程度で表、図もあります。 これを、 (1)順々に質問文をユーザに見せてから、回答ボタンをクリックすると答画面を示すモード (2)樹系図的に内容を表示するモード (3)画面の印刷を行うモード を有して学習するソフトを作りたいのですが、どうしたらよいでしょうか? とりあえず、試行的にテキストを貼り付けるだけで、質問画面と回答画面を表示できるソフトを 簡単に作れるようなものはないでしょうか? ソフトを作れる人に作成を依頼するとどのくらい費用はかかるでしょうか? よろしくお願いします。
- 63 名前: ◆1xScF1fQr2 [2009/05/21(木) 22:51:13 ]
- [1] 授業単元:C言語応用
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9218.txt [3] 環境 [3.1] OS:Windows XP [3.2] コンパイラ名とバージョン: gcc [3.3] 言語:C [4] 期限:2009年05月25日まで。 [5] その他の制限:階乗(n!)の計算とべき乗(xn)の計算には、再帰処理を使用する。 よろしくお願いします。
- 64 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 23:08:33 ]
- >>62
HTML+JavaScriptが一番簡単そう。 そしてもしそうするならスレ違い。
- 65 名前:123to [2009/05/21(木) 23:10:53 ]
- はじめたばかりです
[1] 授業単元: C言語 [2] 問題文(含コード&リンク): 課題 0〜100の範囲で画面から入力された複数の数値の中で、最大値と最小値を 表示するプログラムを作成する。 ○ソフトウェア構成要求 最大値と最小値はmain関数以外の一つの関数の中で求める(サブルーチン化する)。 ○動作要求仕様 -1が入力された場合は入力の終わりとする。 入力された数値を記憶する配列の要素数は10とし、 10個まで入力された場合は-1を入力されなくても最大値と最小値を出力する。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン:Borland C++ Compiler 5.5 [3.3] 言語: C [4] 期限: 2009年5月25日12:00まで [5] その他の制限:できるだけ簡単なもの
- 66 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 23:12:35 ]
- >>63
もしかして、その課題の後に自由課題ある?
- 67 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 23:17:52 ]
- >>62
有料なら考えてもいいが? 問題はどうやって連絡を取るかなんだが。
- 68 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 23:20:25 ]
- >>63
>>63 #include <stdio.h> #include <math.h> #define PI 3.14159 double power(double x, long int n); double sine(double x); long int kaijou(long int n); int main(void){ double sinx,sinf,x=0.0,dif; printf("+-------------------------------------+\n"); printf("| x | sine(x) | sin(x) | dif |\n"); printf("+-------------------------------------+\n"); do{ sinx=sine(x); sinf=sin(x); dif=sinx-sinf; printf("| %.4lf | % .4lf | % .4lf | %.4lf |\n",x,sinx,sin(x),dif); x+=PI/8; }while(x<2*PI); printf("+-------------------------------------+\n"); }
- 69 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 23:21:12 ]
-
long int kaijyou(long int n){ //再帰処理 if(n==0){ return 1.0; } else{ return n*kaijyou(n-1); //再帰処理実行 } } double sine(double x){ long int i, n=5; double ans=0.0; for(i=0;i<n;++i){ ans+=power(-1,i)*power(x,2*i+1)/kaijyou(2*i+1); } return ans; }
- 70 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 23:22:15 ]
-
dif=sinx-sinf; printf("| %.4lf | % .4lf | % .4lf | %.4lf |\n",x,sinx,sin(x),dif); x+=PI/8; }while(x<2*PI); printf("+-------------------------------------+\n"); } long int kaijyou(long int n){ //再帰処理 if(n==0){ return 1.0; } else{ return n*kaijyou(n-1); //再帰処理実行 } }
- 71 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 23:23:11 ]
-
double sine(double x){ long int i, n=5; double ans=0.0; for(i=0;i<n;++i){ ans+=power(-1,i)*power(x,2*i+1)/kaijyou(2*i+1); } return ans; } double power(double x, long int n){ //再帰処理 if(n==0){ return 1.0; } else{ return power(x,n-1)*x; //再帰処理実行 } }
- 72 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 23:24:20 ]
- 度数表示がないからやり直し
- 73 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 23:27:13 ]
- ごめん、微妙に作ったのと違った。
- 74 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 23:28:59 ]
- >>63
#include <stdio.h> #include <math.h> int fac(int i) { return i == 1 ? 1 : i * fac(i-1); } double mypow(double x, int n) { return n == 0 ? 1 : x * mypow(x, n-1); } double sine(double x) { int i, flg = 1; double ret = 0; for(i=0; i<5; i++, flg *= -1) ret += mypow(x, i*2+1) / fac(i*2+1) * flg; return ret; } int main(void) { int i; puts("+----------+----------+----------+----------+----------+"); puts("|x(degree) |x(radian) | sine(x) | sin(x) | dif |"); puts("+----------+----------+----------+----------+----------+"); for(i=0; i<=360; i+=15) { double r = i * M_PI / 180; double s1 = sine(r), s2 = sin(r); printf("|%-10d|%8.4f |%8.4f |%8.4f |%8.4f |\n", i, r, s1, s2, fabs(s1-s2)); } puts("+----------+----------+----------+----------+----------+"); return 0; }
- 75 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 23:31:41 ]
- >>43
// gcc --input-charset=cp932 --exec-charset=cp932 #include <stdio.h> int main() { int i; float daikei[][3] = { 0,2,2, 2,4,2, 4,6,2, 6,8,2, }, menseki, goukei = 0.0; for(i=0; i<sizeof(daikei)/sizeof(daikei[0]); i++) { menseki = (daikei[i][0]*daikei[i][0] + daikei[i][1]*daikei[i][1]) * daikei[i][2] / 2.0f; goukei += menseki; printf("(%d)a=%.0f^2 b=%.0f^2 h=%.0f 面積=%.0f\n", i, daikei[i][0], daikei[i][1], daikei[i][2], menseki); } printf("合計面積=%.0f", goukei); return 0; }
- 76 名前:デフォルトの名無しさん [2009/05/21(木) 23:40:32 ]
- >>59です。
>>61さん、ありがとうございます。
- 77 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 23:41:30 ]
- >>63
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9219.c ついでに自由課題も。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9220.c kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9221.c 中部大学工学部情報工学科の岡崎明彦教授の講義ね。ぐぐったらすぐ出てきた。
- 78 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 23:46:59 ]
- >>63へ
>>68->>71は19年度の同じような課題で教授が殆ど作ったやつ。
- 79 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 23:50:24 ]
- >>77
ほんとだC言語応用 マクローリン展開でみつかった。 意外と簡単に見付かるんだね。
- 80 名前:79 mailto:sage [2009/05/21(木) 23:58:13 ]
- でも年代が違う問題が出てくるんやね。
- 81 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 00:00:12 ]
- スレチだが
マクローリン展開って2radぐらいまでならそんなに誤差無いんだな 意外だった
- 82 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 00:09:13 ]
- 膜ろりン展開
- 83 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 00:10:09 ]
- >>79
「sinxの近似値を5項程度によるマクローリン展開で求める関数」でぐぐったら 2つめに今年のが出てきた
- 84 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 00:13:21 ]
- >>81
浮動小数点は積み残し誤差があるから計算して出たそれぞれの 項をソートして小さい方から順に足した方が誤差が少ないぞ やってみ
- 85 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 00:16:01 ]
- そんな手間かけるならsin(x)使うわ
欲しいのは高速動作だ
- 86 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 00:19:28 ]
- いやそりゃそうだが
x86FPUにもFSINあるしな ここは宿題スレだからマクローリン展開をコンピューターに やらせてみましょうって事なんじゃない?
- 87 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 00:26:38 ]
- >>63は>>74と>>77どっちを使うんだろうね。
自分としては>>77の方が分かりやすいけど。
- 88 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 02:37:41 ]
- >>62
お手軽にするならゲームツクール系でいいと思う
- 89 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 02:53:17 ]
- >>87
メイン関数のループが迂遠な感じだな、77のは。
- 90 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 03:02:10 ]
- >>65 >できるだけ簡単なもの <それなりに>
#include <stdio.h> void max_min(int *data, int num, int *max, int *min){ int lmax = 0, lmin = 100; for(num--; num >= 0; num--) { if(data[num] > lmax) lmax = data[num]; if(data[num] < lmin) lmin = data[num]; } *max = lmax; *min = lmin; } int main() { int i, max, min, data[10]; for(i=0; i<10; i++) { printf("%d:",i+1); if(scanf("%d", &data[i]) != 1) { scanf("%*s"); i--; continue; } if(data[i] == -1) break; if(data[i] < 0 || data[i] > 100) i--; } max_min(data, i, &max, &min); printf("max=%d min=%d\n", max, min); return 0; }
- 91 名前:kenco [2009/05/22(金) 03:06:33 ]
- [1] 授業単元:数値計算法
[2] 問題文(含コード&リンク):非線型方程式 f(x)=x^n-a=0 を考える。nは学生番号の下一桁の数字に2を加えたもの。aは誕生日の西暦の下2桁とする。 f(x)=0の実数解の近似値xを以下の条件を満足させる精度でニュートン法を用いて求めよ。 |f(x)-0|<1.0*10^(-8) [3] 環境 [3.1] OS: Windows vista [3.2] コンパイラ名とバージョン: C-Compiler [3.3] 言語: どちらでも可 [4] 期限: 23日まで [5] その他の制限: なるべく簡単なもので作ってください。
- 92 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 03:30:54 ]
- >>44
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9222.txt
- 93 名前:デフォルトの名無しさん [2009/05/22(金) 04:21:56 ]
- [1] 授業単元:プログラミング
[2] 問題文(含コード&リンク): 行列A={{0,1,2},{3,4,5},{6,7,8}} 行列B={{100,200,300},{400,500,600},{700,800,900}} のとき、A+Bを表示するプログラムを作れ [3] 環境 [3.1] OS:WindowsXP [3.2] コンパイラ名とバージョン:visual studio [3.3] 言語:C++ [4] 期限: 5月25日 [5] その他の制限: 初心者に分かりやすいようにお願いします
- 94 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 04:59:18 ]
- >>91
#define N (8.0 + 2.0) #define A 82.0 #define EPS 1e-08 #define LIMIT 50 /* 計算打ち切り回数 */ #include <stdio.h> #include <math.h> double f(double x) { return pow(x, N) - A; } double g(double x) { return N * pow(x, N - 1.0); } int main(void) { double x = 1.0, dx; int i; for (i = 0; i < LIMIT; i++) { dx = x; x -= f(x) / g(x); if (fabs(x - dx) < fabs(dx) * EPS) { printf("解 = %.8f\n", x); break; } } if (i == LIMIT) printf("収束しませんでした\n"); return 0; }
- 95 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 05:22:17 ]
- >>93
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9223.txt
- 96 名前:44 mailto:sage [2009/05/22(金) 10:16:33 ]
- >>92
ありがとうございます。
- 97 名前:デフォルトの名無しさん [2009/05/22(金) 14:46:03 ]
- [1] 授業単元:C言語プログラミング
[2] 問題文:10以上の種類の品物(果物など)を、その数が多い順にソートするプログラムを 「バブルソート」を用いて作成せよ。 ソート結果の表示にはどの品物が何個かも表示させること。 品物の種類・個数は任意とするが、なるべくばらけさせること。 品物が同じ個数だった場合の順番は特に指定しない。 [3] 環境 [3.1] Linux [3.2] gcc [3.3] 言語:C [4] 期限:2009/5/25まで [5] その他の制限:特に無し
- 98 名前:デフォルトの名無しさん [2009/05/22(金) 16:04:42 ]
- >>97
#include <stdio.h> #include <stdlib.h> #include <time.h> #define numberof(s) (sizeof(s) / sizeof(s[0])) typedef struct { char *name; int number;} ITEM; ITEM item[] = { {"めんたい味", 0},{"コーンポタージュ味", 0},{"なっとう味", 0},{"チーズ味", 0},{"テリヤキバーガー味", 0}, {"サラミ味", 0},{"やさいサラダ味", 0},{"チキンカレー味", 0},{"とんかつソース味", 0},{"エビマヨネーズ味", 0}, {"たこ焼味", 0},{"チョコレート味", 0},{"キャラメル味", 0},{"ココア味", 0},{"ぶたキムチ味", 0},{"牛タン塩味", 0} }; int main() { int i, j; srand(time(NULL)); for (i = 0; i < numberof(item); i++) { item[i].number = (int)((rand() / ((double)RAND_MAX+1.0f)) * 99) + 1; printf("%s, %d\n",item[i].name,item[i].number);} printf("---------------------------------------------------\n"); for (i = 0; i < numberof(item) - 1; i++) { for (j = numberof(item) - 1; j > i; j--) { if (item[j].number > item[j - 1].number) {ITEM tmp = item[j]; item[j] = item[j - 1]; item[j - 1] = tmp;} } } for (i = 0; i < numberof(item); i++) printf("%s, %d\n",item[i].name,item[i].number); return 0; }
- 99 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 17:57:00 ]
- >>98
うまい棒?
- 100 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 19:30:11 ]
- 10種類以上の果物名、思い付かん
- 101 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 19:35:54 ]
- >>100
リンゴの品種名だけでおk
- 102 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 20:12:26 ]
- アルプス乙女,ぐんま名月,ゴールデンデリシャス,シナノスイート,ジョナゴールド,
ジョナゴールド,つがる,デリシャス,ふじ,旭,王林,紅玉,国光,秋映,祝, 世界一,千秋,北斗,陽光,陸奥 20種類、ごく一部を除いて、どんなリンゴかはわからないw
- 103 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 20:32:15 ]
- ジョナゴールドが2個あるんすけど。
- 104 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 21:00:02 ]
- >ジョナゴールドが2個あるんすけど。
見逃した。済まない。 ー1 +7 さんさ,高嶺,スターキングデリシャス,ハックナイン,新世界,藤牧,シナノレッド
- 105 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 21:27:11 ]
- クイックソートなんですが
- 106 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 21:30:45 ]
- >>105
は?
- 107 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 21:36:31 ]
- >>105
依頼はバブルソートとあるが、 >>98はクイックソートなのか?
- 108 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 21:37:18 ]
- ご参考に
ttp://www.bohyoh.com/CandCPP/C/Library/qsort.html
- 109 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 22:25:48 ]
- >>98はバブルソートじゃないか
何を寝ぼけた事を言ってんの?
- 110 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 23:06:33 ]
- [1] 授業単元:
ヒューマンインターフェースとプログラミング [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9224.txt [3] 環境 [3.1] OS: (Windows/Linux/等々) Windows [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) Visual C++ 2008 Express Edition [3.3] 言語: (C/C++/どちらでも可 のいずれか) C++ [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 5/25 [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) なし よろしくおねがいします。具体的にあげられてる修正ポイントだけでもかまいません。
- 111 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 23:15:47 ]
- 猫でもわかるキー入力www
- 112 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 23:20:32 ]
- >>110
気づいた一点だけ。 そこまでコンソールのgetsにこだわる必要は無いと思う。 たとえばトリガーキーを押すとモードメニューに入って、モードを選んで、開始。 そんな感じにならないかねぇ。 MYGETSがちょっと不細工に感じるのはまちがってるかなぁ。。。 あとプロポーショナルフォントを使うのは筋違いだと思う。 こんなとこかな。
- 113 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 00:03:44 ]
- MyGetsに入る前にその前の入力メッセージは棄てなあかんね。
WM_DESTROYでfpのnullチェックしてないので、モードに入る前に終了すると例外。 WM_QUITを受け取ったGetMessageは0を返すので、MyGetsはTRUEを返し、再びメッセージ待機(Windowがないので終われない)。 基本的に待機するような処理は別スレッドに作るべき。 また待機スレッドのSleepは本物のSleepではなくEventをWaitし、終了要求などではそのEventをシグナル状態にする。 じゃないとSleepが完了するまで終われなくなる。
- 114 名前:113 mailto:sage [2009/05/23(土) 00:08:34 ]
- >MyGetsに入る前にその前の入力メッセージは棄てなあかんね。
ちょっと書き方おかしかったかも。要は反応待ちに入る以前のキー押下は棄てないかんってこと。
- 115 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 00:24:38 ]
- [1] 授業単元:
[2] 問題文 今テキストファイルAが1つとBが10個あるとする。 Aには haru natsu aki fuyu とかかれ Bにはそれぞれのテキストに以下のような文字列がかかれている wheiowfjhoiejwio2121oij3io12ji2oj3io2j3oijo iouaiojoiajwioejio121j3oi1j2iojlajia これらをまとめ テキストCに aki[tab]wheiowfjhoiejwio2121oij3io12ji2oj3io2j3oijo[改行] natsu[tab]iouaiojoiajwioejio121j3oi1j2iojlajia[改行] になるようなプログラムをかけ ただし。Bのそれぞれのテキストは非常に長くても大丈夫にせよ。 [3] 環境 [3.1] OS:linux [3.2] gcc [3.3 C [4] 期限: 5/23
- 116 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 00:27:50 ]
- >>115
問題文が意味不明 まとめ方のルールを明確にしないと誰も解けないよ
- 117 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 00:46:41 ]
- テキストCに
haru\tBのテキスト1つ目の中身\n natsu\tBのテキスト2つ目の中身\n aki\tBのテキスト3つ目の中身\n のように書き込んでほしいのですが。 Bのテキストが非常に長いんです。1テキストファイル20kバイトくらいでして
- 118 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 00:55:31 ]
- >>117
Bのテキストファイルが10個ある、と言うことなら、B01〜B10ってしていいかい? Aのテキスト1行目と、B01の全体をタブで繋いで1行にし、Cに出力。 Aのテキスト2行目と、B02の全体をタブで繋いで1行にし、Cに追記。 これをB10まで繰り返す。これであってる?
- 119 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 00:59:32 ]
- 要はBの1行がバッファサイズをオーバーするくらい長いってことじゃん?
- 120 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 01:02:08 ]
- テキストのサイズはそれほど重要ではないよ。
要は、何をして欲しいかを明確にする事。
- 121 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 01:05:28 ]
- >>115
後、期限が今日なら、締切時間も書いておいた方が良いかな。
- 122 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 01:12:37 ]
- >>117
だ〜か〜ら〜、〜のようにっていう表現は問題文にならないって。 テキストAとやらには4行しかないのにテキストBとやらは延べ10行あるんだろ? 5行目以降はどう纏めるんだい?
- 123 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 01:16:31 ]
- >>110
精度を上げるには「timeBeginPeriod〜timeEndPeriod」や「QueryPerformanceCounter」を使う手がある。 ビジーループにしてGetAsyncKeyStateでキー状態を検知すればメッセージ処理のオーバーヘッドは避けられると思う。 スレッドの優先度を上げるという方法もあるといえばある。
- 124 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 01:18:33 ]
- >>118
そうです。 Bのテキストは長いんですけど1行です。 一番最後に改行がはいるだけです。
- 125 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 01:25:41 ]
- >>124
ファイル名は適当に決めておいていいかい? >>122の指摘する危惧だけど、Aには10行データがある前提でいいかい?
- 126 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 01:45:56 ]
- Aには4行としまして
Bは1行に10行分くらい文字列がならんでるとおもってください。 で、Bは4ファイルあるとすればちょうどいいかと。
- 127 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 01:53:11 ]
- >>126
なんというか、まあ、久しぶりに絶句させてもらったよ。 課題が出されたんだよな? それを一字一句変えずに、「全部」書けよ。 お前の頭の中ではちょうどいいかも知れんが、 お前が今までのやり取りではっきりさせたのは ファイルAとやらが4行あるってことだけだぞ?
- 128 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 01:55:02 ]
- なんか杜撰な課題だな。ちゃんと投げられないだけか?
- 129 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 01:56:48 ]
- Bのテキストファイルが普通にコピーできないほどの長さだから
説明しにくい。
- 130 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 01:58:53 ]
- Bの長さはどうとにでもなってさっきから言ってるんだからから、
そこを無視して説明しろよ氏ね。
- 131 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 01:59:10 ]
- 20KBで?
- 132 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 02:03:59 ]
- >>129
は?お前の説明は要らない。 課題をそのまま書き出せよ。 あとな、1行の長さなんてどうだって良いんだよ。 「一行の長さは不定です」 「あ、っそ」 で済むことなんだよ。 重要なのは、 「プログラムの実行前にどんなデータがあって」 「プログラムの実行後にどんなデータがあるか」 ってことなんだよ。 ファイルAには>>115にあるように4行分のデータがある。 これは分かった。 んでファイルBってのはなんだよ?
- 133 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 02:12:12 ]
- 1行にコピーできないくらいの長さの文字列がある
- 134 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 02:12:46 ]
- ダメだこりゃ
- 135 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 02:17:53 ]
- 何だ、Bは4つになったのかw
>>126 1行に10行分文字列があるって意味がわからんが。 2000文字位あると勝手に理解するけどいいね。 ソースをコンパイルして実行する環境はあるのか?
- 136 名前:132 mailto:sage [2009/05/23(土) 02:19:24 ]
- >>134
俺は>>133は>>115でないって信じたいw >>133 とりあえず、問題を明らかにしようか。 ファイルBは何個か存在する。 だからここでは後ろに番号をつけるとする。 例えば、ファイルBが3つある場合、 ファイルBのそれぞれをB1,B2,B3としよう。 そして、ファイルBの行番号をアンダースコアの後に数字をつけることで表そう。 例えばB1の1行目はB1_1、2行目はB1_2となる。 ついでにファイルAの一行目はA_1と表すようにしよう。 んで、ここからが本題。 ファイルCを作るにあたって、 A_1と同じ行になるファイルBの行は何か?選択肢から選べ 選択肢1: A_1 B1_1 A_1 B2_1 A_1 B3_1 ・・・ A_1 Bi_1 選択肢2: A_1 B1_1 A_1 B1_2 A_1 B1_3 ・・・ A_1 B1_j 選択肢3:上二つは違います。
- 137 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 02:20:33 ]
- ツンデレだねぇ。なんか後出しがあると思うけど
- 138 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 02:26:57 ]
- >>115
今の内に課題の条件をキチンと説明しておかないと 誰かが早とちりしてプログラムを書いてしまって後出しで 条件を付けても誰も相手にしてくれないかもしれんぞ 今までそういう事が何回もあった 後出し条件というのは相当嫌われる
- 139 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 02:28:31 ]
- Bはこういうファイルです
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9225.txt
- 140 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 02:30:44 ]
- 短いファイルでこれくらいです
これが60kバイトくらいです 最大で778kバイトくらいまで
- 141 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 02:34:18 ]
- >>140
だ〜か〜ら、長さはどうだっていい。 ファイルBは全部でいくつある? ファイルB全ては1行しかないんだな?
- 142 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 02:34:52 ]
- そうです。
- 143 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 02:36:16 ]
- 2行目にも答えろよwwwwwwww
- 144 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 02:37:17 ]
- っていうか、正確に言うとAの行数とBのファイル数は一致してるのか?
一致してるなら可変か固定か? 固定なら何個だ?
- 145 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 02:38:15 ]
- すいませんけど
>>124 >>126
- 146 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 02:40:17 ]
- これって釣りだよね?
と、思いたい。割と本気で。
- 147 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 02:40:56 ]
- もういいわ
- 148 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 02:43:13 ]
- >>139
Bが10個あると書いてあるのになんで一つだけなんだ? 10個ともまとめて貼れよ Aはわかったらか
- 149 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 02:49:14 ]
- エスパーするとAの行数4つでBのファイル数が4つ。
Bは全て1行(改行一つ)だが、>>115主観で言うと通常の1行の10倍あるよ。 まぁ、エスパーするだけして違ってたらイヤだから手はつけんが。
- 150 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 02:52:37 ]
- >>145
これを試してみてくれ。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9226.txt ファイル名は"A","B01"〜"B04","C"としているが、適切な名前にするか、 実行時に対象ファイルをその名前にしてくれ。 で、要求とどう違うか書いてくれ。
- 151 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 02:57:17 ]
- すいません。Bを最後読み込み表示してAの単語をいれてを4回まわしたらいいだけでしたね
- 152 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 02:59:48 ]
- >>151
落ち着いて、相手に分かる言葉で頼む。
|

|