1 名前:デフォルトの名無しさん [2008/10/01(水) 07:28:51 BE:151474728-PLT(18888)] あなたが解けない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++の宿題を片付けます 115代目 pc11.2ch.net/test/read.cgi/tech/1217741118/
128 名前:112 mailto:sage [2008/10/07(火) 10:41:20 ] >>113 デバックしましたけど何も表示されませんでした。
129 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 11:03:35 ] >>128 デバック??? 「修正してやったぜ」って意味か? 失礼な奴だな 知らない言葉は調べたほうがいいぜ
130 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 12:27:22 ] デバッグ実行のことじゃね
131 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 12:39:16 ] VSが「デバッグ開始」て書いてあるから間違って覚えたんだろ
132 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 12:41:45 ] >>128 コマンドライン引数が無いときの処理が無いからな
133 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 13:10:31 ] >>121 2番目の問題だけ kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7759.txt
134 名前:21 mailto:sage [2008/10/07(火) 16:58:43 ] 誰か61のプログラムでソートされない原因を 教えてください。 お願いします
135 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 17:07:23 ] >>134 やってみたらソートされたが、どんなデータを与えたの?
136 名前:21 mailto:sage [2008/10/07(火) 17:12:27 ] >>135 ./kadai3-2 s sa と入力しました。./kadai3-2が実行プログラムで Sが読み込ませるプログラムでsa
137 名前:21 mailto:sage [2008/10/07(火) 17:14:56 ] すいません途切れました。 saが出力させるファイルで sの中身は1,2,3,4,5,6,7,という 数字が記録されています。 実行するとsaの中身は 1,2,3,4,5,6,7となっていて ソートされてないのです。
138 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 17:20:01 ] >>137 落ち着けよ 意味がわからんよ
139 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 17:24:26 ] >>137 見事にソートされているように見えるんだが。。 たとえばsを 3,6,1,5,2,7,4 という内容にしてみたら。 ソートの意味がわかっていないのか、それとも>>21 の思っているソートがこちらに伝わっていないのか。
140 名前:21 mailto:sage [2008/10/07(火) 17:35:18 ] あっ、あぁ、ほんとだ。 ごめんなさい。 いつのまにか俺のなかで ソートの種類が勝手に順番を逆にするソート にすり変わってたorz 思い込みってやだな。 お手数かけました。 心よりお詫び申し上げます。
141 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 17:54:06 ] [1] 初級プログラミング [2] #include <stdio.h> int main(void){ int a,b,c,d,e,f,g,h,i,j,k,l,m;//a〜m(13個,数は固定)には整数0か1が毎回ランダムに入るとしてください a=1;b=0;c=0;d=1;e=0:f=1;g=1;h=1;i=1;j=0;k=1;l=1;m=0;//例 printf("%d",a); printf("%d",b); printf("%d",c); printf("%d",d); printf("%d",e); printf("%d",f); printf("%d",g); printf("%d",h); printf("%d",i); printf("%d",j); printf("%d",k); printf("%d",l); printf("%d",m); printf("\n"); //表示 1001011110110 /*以下に13ビットの値を16進数に変換するプログラムを記述せよ*/ printf("%d",?); printf("%d",?); printf("%d",?); printf("%d",?); printf("\n"); return 0; } abcdefghijklmが 1001011110110 の時は 12f6 と表示 aが4桁めb〜eが3桁めf〜iが2桁めj〜mが1桁めとなるようにする [3] 環境 [3.1] OS:linux [3.2] gcc3.4 [3.3] c [4] 期限: 10/8 [5] その他の制限:なし
142 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 18:01:51 ] >>141 ?を埋める形じゃないとだめ?
143 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 18:05:07 ] というわけでもないと思うので、こうしてみたよ。 printf("%d",a); printf("%x", b*8+c*4+d*2+e); printf("%x", f*8+g*4+h*2+i); printf("%x", j*8+k*4+l*2+m); もしくは printf("%d",a); printf("%x", b<<3|c<<2|d<<1|e); printf("%x", f<<3|g<<2|h<<1|i); printf("%x", j<<3|k<<2|l<<1|m);
144 名前:141 mailto:sage [2008/10/07(火) 18:06:39 ] >>142 ?は自分がこんな感じかなと勝手に考えて書いたものですので 無視してもらっても大丈夫です。
145 名前:141 mailto:sage [2008/10/07(火) 18:20:49 ] >>142 ,143 ありがとうございます。出来ました。
146 名前:デフォルトの名無しさん [2008/10/07(火) 20:51:46 ] ソース kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7760.txt データ kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7761.txt テキスト形式のデータを読み込んで,マージソートをして ナップサック問題をとくソートなんだが item数 n = 100 重量制限 B = 2000 データは item p[i] w[i]の順に並んでるよ ここにいてるできる奴ならもっと短くできるよね B5に収まるくらいの美しいソートおしえてたもれ <stdio.h><stdlib.h><math.h>くらいだけで シンプルにできる人、たのんます あっしのノー味噌ではうつくしくできないので.
147 名前:146 [2008/10/07(火) 20:58:31 ] ×美しいソート ○美しいソース です; 頭んなか、ソートだらけか….
148 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 21:15:30 ] >>1 くらい読め
149 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 21:15:47 ] >>146 qsort を使うとか
150 名前:146 [2008/10/07(火) 21:28:19 ] >>148 宿題を解いて,もっと短くできるから やってみろって言われたんです; テンプレどおりに書かなかったのはすみません。 >>149 マージソートで、数十行くらいで作れるらしいです。 それをやれといわれました; 教科書通りにやるのはできるんですが 短くするとなると、なかなか凡人クラスの頭のキレでは難しくて.
151 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 21:37:13 ] つstdlib.h
152 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 22:46:55 ] まず、このソースが何をしていて、どの辺で苦労して、どのあたりが改善できそうであるかを言ってみて。
153 名前:デフォルトの名無しさん [2008/10/07(火) 23:05:45 ] 1] 授業単元: 基礎プログラミング [2] ニュートンラプソン法を用いてnのルート、及び逆数の関数を作成せよ [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc 3.4 [3.3] 言語: C [4] 期限: 10/8 24:00
154 名前:デフォルトの名無しさん [2008/10/08(水) 02:34:55 ] >>153 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7762.txt
155 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 02:40:07 ] ありゃageになってたすまぬ
156 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 04:21:05 ] ttp://ja.wikipedia.org/wiki/%E7%B4%A0%E6%95%B0 > 2008年8月、史上最大の素数探求のための分散コンピューティング・プロジェクトである > GIMPSによって、その時点で史上最大とされる素数が発見された。これは知られている中で > 46番目のメルセンヌ素数、243112609 - 1 であり、十進記数法で表記したときの桁数は > 1297万8189桁に及ぶ。 上記の史上最大とされる素数を求めるプログラムきぼんぬ
157 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 09:32:16 ] >>156 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7764.c
158 名前:157 [2008/10/08(水) 09:51:30 ] 2^nの1桁目は0にならないから最後1引くのにループはいらなかった
159 名前:157 [2008/10/08(水) 09:54:31 ] #define END_POINT 243112609 は #define END_POINT 43112609 の間違いだな(>>156 のをそのままコピペしてしまった)
160 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 11:22:20 ] >>156 #include <stdio.h> #define MER_P 43112609 int main(void) { int i; printf("(2^%d) - 1 =\n", END_POINT); for (i = 0; i < MER_P; i++) { printf("1"); } printf("\n(2進数)\n"); return 0; }
161 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 11:23:22 ] 間違えた #include <stdio.h> #define MER_P 43112609 int main(void) { int i; printf("(2^%d) - 1 =\n", MER_P); for (i = 0; i < MER_P; i++) { printf("1"); } printf("\n(2進数)\n"); return 0; }
162 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 13:13:55 ] [1] 授業単元:C++ [2] 問題文(含コード&リンク): すごろくプログラムを作成しなさい。ただし,下記の条件を満たすものとする。 ・すごろくのコマとしてユーザクラスを作成しなさい。 ・すごろくのコマを移動させる場所としてマスクラスを作成しなさい。 ・main関数でユーザクラスの実体(2つ以上)とマスクラスの実体(5つ以上)を生成しなさい。 ・ここで,マスには,「スタート」「ゴール」「1つ進む」「1つ戻る」「2つ進む」「2つ戻る」「スタートへ戻る」「何もしない」の条件があるとする。 ・さらに,ユーザは初期状態で「スタート」とし「ゴール」になったら終了とする。 ・乱数でサイコロ(1つ)の数字を出しすごろくを行い,片方がゴールしたら終了とする(ちょうどゴールにとまらなくてもよい)。なお,すごろくをプレイしている状況は表示すること。 ・あとはすごろくとして成り立っていればどのようにプログラミングしてもよい(他のクラスが必要な場合は追加してもよい)。 [3] 環境 [3.1] OS:WindowsXP [3.2] コンパイラ名とバージョン:VisualStudio [3.3] 言語:C++ [4] 期限: ([2008年10月16日
163 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 22:33:18 ] [1] 授業単元:C言語入門 [2] #include <stdio.h> int add(int x, int y) { return x+y; } int main() { int a, b, c; } printf("calc a + b\n"); printf("input a b\n"); scanf("%d%d", &a, &b); c = add(a,b); printf("result: %d + %d = %d\n", a, b, c); return 0; } void accum(int *x, int y) { *x = *x + y; } このポインタを使って上の関数addを用いずに同じ動作をするプログラムを作れ。 お願いします(__)
164 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 22:38:31 ] >163 問題は正確に
165 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 22:40:21 ] #include <stdio.h> void accum(int *x, int y) { *x = *x + y; } int main() { int a, b; printf("calc a + b\n"); printf("input a b\n"); scanf("%d %d", &a, &b); printf("result: %d + %d", a, b); >>163 accum(&a, b); printf(" = %d\n", a); return 0; }
166 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 23:12:03 ] すみません。 VC++をいじってるんですが、double型の値を画面に表示させると 「0.000000」といった感じで小数部が6桁表示されてしまいます。 この小数部の表示桁数を制限したいのですが、何か良い関数など があれば教えて下さい。 よろしくお願い致します。
167 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 23:16:43 ] printf("%5.2lf",12.34); ってやったらどうだろう
168 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 23:27:28 ] それは間違いだ いやc99ならいける というレスが続きそうな気がするので先に言っておこう
169 名前:デフォルトの名無しさん mailto:sage [2008/10/08(水) 23:29:23 ] >>168 C99なら…それでもC99ならきっとなんとかしてくれる…
170 名前:お願いします [2008/10/08(水) 23:58:33 ] 【質問テンプレ】 [1] 授業単元: アルゴリズムデータ構造2 [2] 問題文(含コード&リンク): 52枚のトランプを5人に配るシミュレーション [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: コマンドプロンプト バージョンはすいません分からないです。 [3.3] 言語: C言語 [4] 期限: 10月13日(月)まで [5] その他の制限: 配列でswap関数を使って作ってもらいたいです。
171 名前:お願いします [2008/10/09(木) 00:16:55 ] >>170 アップローダの使い方がいまいち分からなかったので ソースを貼ります このプログラムを書き換えてください。 #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { int i; char *card[]={"Club","Diamond","Heaart","Spade"}; char *numb[]={"A","2","3","4","5","6","7","8","9","10","J","Q","K"}; srand(time(NULL)); i=rand()%52; printf("%s%s\n",card[i/13],numb[i%13]); return 0; }
172 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 00:37:56 ] >>171 こんなんでおk? #include <stdio.h> #include <stdlib.h> #include <time.h> void swap(int*a,int*b){int c = *a;*a=*b;*b = c;} int main(void) { int i,n; char *card[]={"Club","Diamond","Heaart","Spade"}; char *numb[]={"A","2","3","4","5","6","7","8","9","10","J","Q","K"}; int cards[52]; for(i=0;i<52;++i) cards[i] = i; srand(time(NULL)); //カードをシャッフルする for(i=0;i<52;++i) swap(cards+i,cards+rand()%(52-i)+i); for(i=0;i<52;++i) printf("%cさん %s%s\n","ABCDE"[i%5],card[cards[i]/13],numb[cards[i]%13]); return 0; }
173 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 00:39:59 ] ぎゃあ表示がバグってる。 たぶん空白だけだと思うけど念のためにもう一度。 #include <stdio.h> #include <stdlib.h> #include <time.h> void swap(int*a,int*b){int c = *a;*a=*b;*b = c;} int main(void) { int i,n; char *card[]={"Club","Diamond","Heaart","Spade"}; char *numb[]={"A","2","3","4","5","6","7","8","9","10","J","Q","K"}; int cards[52]; for(i=0;i<52;++i) cards[i] = i; srand(time(NULL)); //カードをシャッフルする for(i=0;i<52;++i) swap(cards+i,cards+rand()%(52-i)+i); for(i=0;i<52;++i) printf("%cさん %s%s\n","ABCDE"[i%5],card[cards[i]/13],numb[cards[i]%13]); return 0; }
174 名前:デフォルトの名無しさん [2008/10/09(木) 04:00:50 ] 1から指定した数までを足し算で計算するプログラム教えてくれ。
175 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 04:06:52 ] #include <stdio.h> int main() { int a; scanf("%d", &a); printf("%d", a * (1 + a) / 2); return 0; }
176 名前:デフォルトの名無しさん [2008/10/09(木) 15:08:33 ] [1] 授業単元:ランダムウォークと配列 [2] 問題文(含コード&リンク): 左右に動く点がありそれが連続で右に動いた回数をカウントし出力 一連続は**回 二連続は++回 [3] 環境 [3.1] OS:WinXP [3.2] コンパイラ名とバージョン:Visual Basic 2005 [3.3] 言語: C++ [4] 期限: 無期限 よろしくお願いします
177 名前:176 [2008/10/09(木) 15:14:43 ] 失敬 開発環境はMicrosoft Visual Studio 2005です
178 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 17:20:26 ] >>176 #include <iostream> #include <cstdlib> int main() { int i, j, n, r1 = 0, r2 = 0, state = 0; std::cout << "繰り返し回数 = "; std::cin >> n; for (i = 0; i < n; i++) { j = std::rand() % 2; // 0で左、1で右 if (j == 1) // 右へ動いた switch (state) { case 0: // 左へ動いた直後か右へ二回動いた直後 r1++; state = 1; break; case 1:// 右へ一回動いた直後 r1--; r2++; state = 0; break; default: break; } else state = 0; } std::cout << "一連続は" << r1 << "回 " << "二連続は" << r2 << "回" << std::endl; }
179 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 17:21:39 ] >>176 情報が足りなさすぎるということに気づけないレベルなんだなあ。 単位落としちゃえよ。
180 名前:デフォルトの名無しさん [2008/10/09(木) 19:56:21 ] >>179
181 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 22:31:09 ] [1] 授業単元: C言語 [2] 問題文: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7765.txt TCPサーバー kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7766.txt TCPクライアント kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7766.txt [3] 環境 [3.1] OS:XP [3.2] コンパイラ名とバージョン:Visual stdio2005 [3.3] 言語:C [4] 期限:10月10日(金)まで [5] その他の制限:問題文に記述 よろしくお願いいたします
182 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 22:33:32 ] すみません TCPクライアント kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7767.txt でした
183 名前:デフォルトの名無しさん mailto:sage [2008/10/09(木) 23:33:58 ] あと30分で終わらせとか(><
184 名前:デフォルトの名無しさん [2008/10/10(金) 00:10:16 ] [1] 授業単元: C++ [2] 問題文: ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7768.txt [3] 環境 [3.1] OS:XP [3.2] コンパイラ名とバージョン:Visual stdio2005 [3.3] 言語:C [4] 期限:10月11日(土)まで [5] 問題文が英語ですいません。期限が短いのですがお願い致します。
185 名前:デフォルトの名無しさん [2008/10/10(金) 00:26:53 ] [1] 授業単元:C言語 [2] 問題文:a(n+1)=3a(n)+4b(n) b(n+1)=2a(n)+3b(n) の漸化式で1.4142135を算出するプログラム [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 10月10日 朝7時まで [5] その他の制限:特になし 手計算だと5回目に算出できましたが、プログラムに仕方がわかりません;
186 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 00:32:14 ] >>185 つ数学板 Cの課題とは言えない
187 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 00:33:31 ] >>185 せめてnはいくつから始めるのかだけでも言え それがないと漸化式が解けん
188 名前:デフォルトの名無しさん [2008/10/10(金) 00:36:49 ] >>186 数学板行ったらCにいけゆわれました; >>187 すみません、nは0からです;
189 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 00:44:22 ] >>184 #include <iostream> using namespace std; int main() { for (;;) { string name; int credit_standing, amount_owed, minimum_payment; cin >> name >> credit_standing >> amount_owed; if (cin.eof()) break; if (credit_standing > 6) minimum_payment = (amount_owed <= 20) ? amount_owed : (amount_owed <= 100) ? 10 : 0.1 * amount_owed; else minimum_payment = amount_owed; cout << name << " with credit standing " << credit_standing << " must pay " << minimum_payment << endl; } return 0; }
190 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 00:58:56 ] >>185 a(0)とb(0)の初期値は?
191 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 00:59:43 ] >>184 なんだCだったか #include <stdio.h> int main() { char name[32]; int credit_standing, amount_owed, minimum_payment; while (scanf("%31s %d %d", name, &credit_standing, &amount_owed) == 3) { if (credit_standing > 6) minimum_payment = (amount_owed <= 20) ? amount_owed : (amount_owed <= 100) ? 10 : 0.1 * amount_owed; else minimum_payment = amount_owed; printf("%s with credit standing %d must pay %d\n", name, credit_standing, minimum_payment); } return 0; }
192 名前:デフォルトの名無しさん [2008/10/10(金) 01:06:07 ] >>190 a(0)=7 b(0)=5 です。
193 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 01:11:24 ] >>192 #include <stdio.h> double fa(double a_n, double b_n) { return 3 * a_n + 4 * b_n; } double fb(double a_n, double b_n) { return 2 * a_n + 3 * b_n; } int main() { double an = 7, bn = 5; double tmp; int i; for (i = 0; i < 10; ++i) { tmp = fa(an, bn); bn = fb(an, bn); an = tmp; } printf("%.10f\n", an / bn); return 0; }
194 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 01:21:24 ] >>193 ありがとうございます!!助かりました!!
195 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 01:21:40 ] >>185 素直に再帰したいけどこれじゃダメなのかな #include <stdio.h> int a(int); int b(int); int a(int n) { if (n == 0) return 7; else return 3 * a(n-1) + 4 * b(n-1); } int b(int n) { if (n == 0) return 5; else return 2 * a(n-1) + 3 * b(n-1); } int main() { printf("%.10lf\n", (double)a(10) / b(10)); return 0; }
196 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 01:36:07 ] >>195 いえいえ全然ダメじゃないです!本当にありがとうございます!
197 名前:デフォルトの名無しさん [2008/10/10(金) 01:39:40 ] >>189 ありがとうございました。 ちなみに各customerのコードはどのように入力すればいいのですか? 初心者ですいません。 >>191 すみません、言語はC++でした。 書き間違えてしまいました。 お手数おかけしました。
198 名前:181 mailto:sage [2008/10/10(金) 01:52:36 ] >>183 すいません言葉足らずでした 改めて貼り直します [1] 授業単元: C言語 [2] 問題文: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7765.txt TCPサーバー kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7766.txt TCPクライアント kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7767.txt [3] 環境 [3.1] OS:XP [3.2] コンパイラ名とバージョン:Visual stdio2005 [3.3] 言語:C [4] 期限:10月10日(金)13:00まで [5] その他の制限:問題文に記述 引き続きよろしくお願いいたします
199 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 06:56:37 ] >>198 TCPサーバー:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7769.txt TCPクライアント:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7770.txt
200 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 12:03:51 ] >>199 ありがとうございました
201 名前:デフォルトの名無しさん [2008/10/10(金) 12:16:32 ] なぜうp先は関西2ちゃんねらーなんですか
202 名前:デフォルトの名無しさん [2008/10/10(金) 15:52:19 ] [1] 授業単元: c言語 [2] 問題文(含コード&リンク): ペイントソフトを作る [3] 環境 [3.1] OS: windowsXP [3.2] コンパイラ名とバージョン: Visual studio .NET 2003 [3.3] 言語: c,c++ [4] 期限: 2週間後の火曜まで [5] その他の制限: MFCを使用しない 線の描画などはできましたが、ペンの太さや色の変更、 操作のやり直しなどが分かりません どなたかよろしくお願いします
203 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 16:39:02 ] >>202 単線だけでいいんじゃないの 機能つけるときりがないよ アンドゥとか特に無理
204 名前:デフォルトの名無しさん [2008/10/10(金) 17:14:13 ] >>203 返事ありがとうございます やはり、アンドゥ機能などは難しいのですかね? 今までc言語はやった事があったのですが それに比べるとVC++は色々ややこし過ぎて困っています。 画面を左右に分けて、描画とパレットのように分けて作ろうと思っているのですが 雛形みたいなのはあるのでしょうか?
205 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 19:34:20 ] 1] 授業単元:C++ [2] 問題文:ファイルから波形を読み込み、FFTした結果をテキスト出力する プログラムを作成せよ。 波形のデータは以下のようなものです。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7771.txt [3] 環境 [3.1] OS:WindowsXP [3.2] コンパイラ名とバージョン:Visual Studio 2005 [3.3] 言語:C++ [4] 期限: [無制限] [5] その他の制限:まだCの勉強が浅く、色々と検索してみましたがどうもバタフライ演算の やり方が難しく分かりません。。何か説明不足があれば聞いてください。 FFTで詰まってしまい困っています。どうか、よろしくお願いしますm(_ _)m
206 名前:デフォルトの名無しさん mailto:sage [2008/10/10(金) 19:35:12 ] >>204 宿題できてんじゃん。 色・ふとさ固定、undoできないなどの機能制限がたくさんあるが、それは立派なペイントソフトだよ。 さらに機能追加をしたいのであれば必要に応じてデバイスコンテキストに関する質問その他を やってけば?宿題スレじゃなく。
207 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 01:02:05 ] どなたか>>100 お願いできませんか
208 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 02:44:59 ] >>207 鬱になったので、途中から手を抜いてしまった。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7772.zip PerlでもRubyでも好きなの使った方がラクダと思うけどキリンか。
209 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 02:57:37 ] >>204 汚いけど、これじゃだめ?? kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7773.zip
210 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 02:59:33 ] >>204 じゃなくて>>207 でした(´・ω・`)
211 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 08:13:31 ] >>202 線じゃなくて、点を打つようにすると太さ変えるのも楽になる お絵かきチャットでは、線と線を結んでる場合が多いけど ローカルで使えるペイントソフトはたいてい点を打って点を繋いでると思われる 点をつなげるのは、結構めんどい アンドゥは、やり方がいくつかある 画像として管理するか 数値データとして管理するか、かな。 突貫でいいなら画像として管理するのを作ったほうが楽かもしれない どちらが得意かによる
212 名前: ◆ZnBI2EKkq. mailto:sage [2008/10/11(土) 12:00:32 ] [1] 授業単元:情報処理A [2] 問題文(含コード&リンク): ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7774.txt [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:Cygwin gcc 3.4.4 [3.3] 言語:C [4] 期限:2008年10月17日 16:00まで [5] その他の制限:scanf関数は禁止、再帰呼び出しを用いること、エラー処理を入れること 今もやっているのですが、とても期限までに終わる気がしません。。。 誰か助けてください。
213 名前:デフォルトの名無しさん [2008/10/11(土) 15:35:33 ] [1] 授業単元:c++ builder [2] 加算平均を求めよ [3] 環境 [3.1] OS:windows xp [3.2] コンパイラ名とバージョン: c++ builder5 [3.3] 言語: どちらでも可 [4] 期限:2008年10月13日まで テキスト1には テキスト2には テキスト3には 8 3 4 5 4 7 7 9 9 8 8 5 9 3 4 9 8 9 という形で与えられており、これをOpendialogで読み込んで加算平均しMemo1に 5 5.33333 8.33333 7 5.33333 8.66666 のように計算したものを出したいのですがどのようにすればよいでしょうか? 全然わからなくて何度か自分なりにつくっているのですが、うまくいきません。 どなたか助けてもらえませんか 読み込みはなんとかできそうですが加算平均の配列の計算のプログラムの作り方が どうしてもわかりません。 よろしくお願いします。
214 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 16:00:03 ] >>213 Opendialog っていうのが分からなかった #include<stdio.h> #include<stdlib.h> #include<math.h> #define NUMBER_OF_FILES 3 int main(void){ FILE *fp_in[NUMBER_OF_FILES], *fp_out; char *filename_in[NUMBER_OF_FILES]={"テキスト1", "テキスト2", "テキスト3"}, *filename_out="Memo1"; double value[NUMBER_OF_FILES], sum; int i; for(i=0;i<NUMBER_OF_FILES;i++){ if((fp_in[i]=fopen(filename_in[i], "r"))==NULL){ fprintf(stderr, "\nError: %s cannot open.\n", filename_in[i]); exit(1); } } if((fp_out=fopen(filename_out, "w"))==NULL){ fprintf(stderr, "\nError: %s cannot open.\n", filename_out); exit(2); } while(1){ for(i=0,sum=0.0;i<NUMBER_OF_FILES;i++){ if(fscanf(fp_in[i], "%lf", &value[i])!=1) break; sum+=value[i]; } if(i<NUMBER_OF_FILES) break; fprintf(fp_out, "%g\n", floor(sum/NUMBER_OF_FILES*100000)/100000); } for(i=0;i<NUMBER_OF_FILES;i++) fclose(fp_in[i]); fclose(fp_out); return 0; }
215 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 16:01:28 ] >>212 マージャン知らないと不利な課題だな。
216 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 16:07:36 ] >>212 www5f.biglobe.ne.jp/~kenmo/program/majang/yaku/yaku.html 参考になるかも?
217 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 16:49:40 ] >>207 >>100 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7776.zip 一応動くようにしてみた。コマンドライン引数は、すべて実装しているわけではない。 後は好きなようにしてくれ。
218 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 17:14:43 ] >>207 >>100 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7777.zip >>217 の細かい修正とエラー処理追加しておいた。荒れそうなので、これくらいにしておく(鬱)。
219 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 20:58:59 ] >>218 ありがとうございます。 >>209 ファイル入力、標準出力はうまくいきました。 標準入出力、ファイル入出力を成功させるにはどうしたらいいでしょうか。
220 名前:デフォルトの名無しさん [2008/10/11(土) 21:08:15 ] [1] 授業単元: 測量学 [2] 問題文:"度"形式から"度分秒"形式への変換 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: コマンドプロンプト バージョンはすいません分からないです。 [3.3] 言語: C言語 [4] 期限: 10月13日(月)まで [5] その他の制限: 簡単な関数のみでお願いします。 (例) 35.2361 → 35°14′9.96″ 変換式は、まず 35.2361の小数点部分の0.2361×60=14.166 この結果の整数部分の14が分になります。 そして、14.166の小数点部分の0.166×60=9.96 この結果の9.96が秒になります。 初期値35.2361も出力値35°14′9.96″も文字列です。 初期値が35.2361ではなく、何が初期値でも通用するようにしてください。 また、初期値の小数点以下が2361と4桁と決まっているわけでもありません。
221 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 21:46:26 ] >>220 pc11.2ch.net/test/read.cgi/tech/1221144557/312-315
222 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 22:01:49 ] >>220 #include<stdio.h> #include<math.h> void convert(char *dms, const char *deg) { double x, d, m; sscanf(deg, "%lf", &x); x = fabs(modf(x, &d) * 60); x = modf(x, &m) * 60; sprintf(dms, "%g°%g′%g″", d, m, x); } int main() { static const char deg[] = "-35.2361"; char dms[100]; convert(dms, deg); printf("%s\n", dms); return 0; }
223 名前:213 [2008/10/11(土) 22:03:42 ] >>214 即レスありがとうございます。大変感謝しています;; Opendialogはc++builder5のダイアログでファイルを開くというコマンドを示しています わざわざプログラムを書いていただいたのですが、これをc++builderに 置き換えていくことができませんでした。すいません;; 自分でも今まで書いていたのですが、Memo1には-2と一行書き出されるだけでした; 多分読み込んだ配列の計算としての基本的な計算とプログラムが間違っていると思うのですが、 自分ではどこが間違っているのかわかりませんでした。。 どなたかよければ教えていただけないでしょうか。よろしくお願いします><
224 名前:213 [2008/10/11(土) 22:08:40 ] void __fastcall TForm1::Button1Click(TObject *Sender) ファイルを開いてテキスト1を読み込む { OpenDialog1->Execute(); Fname1 = OpenDialog1->FileName; Edit1->Text = Fname1; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) テキスト2を読み込む { OpenDialog1->Execute(); Fname2 = OpenDialog1->FileName; Edit2->Text = Fname2; }
225 名前:213 [2008/10/11(土) 22:09:10 ] void __fastcall TForm1::Button3Click(TObject *Sender) テキスト3を読み込む { OpenDialog1->Execute(); Fname3 = OpenDialog1->FileName; Edit3->Text = Fname3; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button4Click(TObject *Sender) 3つのテキストを加算平均してMemo1に書き出す { AnsiString kasan; char Fname1[5],Fname2[5],Fname3[5]; for(m=0;m<=5;m++); { kasan = (Fname1[m] + Fname2[m] + Fname3[m])/3; } Memo1->Lines->Add(kasan);
226 名前:213 mailto:sage [2008/10/11(土) 22:10:31 ] 長文失礼しました。。 こんな感じです。
227 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 03:30:31 ] #ifndef Unit1H #define Unit1H //--------------------------------------------------------------------------- #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <Dialogs.hpp> #include <fstream> //--------------------------------------------------------------------------- class TForm1 : public TForm { __published: // IDE 管理のコンポーネント TEdit *Edit1; TEdit *Edit2; TEdit *Edit3; TButton *Button1; TButton *Button2; TButton *Button3; TButton *Button4; TOpenDialog *OpenDialog1; TMemo *Memo1; void __fastcall Button1Click(TObject *Sender); void __fastcall Button2Click(TObject *Sender); void __fastcall Button3Click(TObject *Sender); void __fastcall Button4Click(TObject *Sender); private: // ユーザー宣言 AnsiString Fname1; AnsiString Fname2; AnsiString Fname3;
228 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 03:31:35 ] public: // ユーザー宣言 __fastcall TForm1(TComponent* Owner); }; //--------------------------------------------------------------------------- extern PACKAGE TForm1 *Form1; //--------------------------------------------------------------------------- #endif これがUnit1.hね それからUnit1.cpp #include <vcl.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { OpenDialog1->Execute(); Fname1 = OpenDialog1->FileName; Edit1->Text = Fname1; }