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/
2 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 23:19:03 ] >>1 (・・)乙
3 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 23:37:58 ] 刀、 , ヘ /´ ̄`ヽ /: : : \_____/: : : : ヽ、 ,. -‐┴─‐- <^ヽ、: : : : : : : : : : : : : : : : : : : : : : } /: : : : : : : : : : : : : :`.ヽl____: : : : : : : : : : : : : : : : : : / ,. -──「`: : : : : : : : : :ヽ: : : : : : : : :\ `ヽ ̄ ̄ ̄ フ: : : : :/ /: :.,.-ァ: : : |: : : : : : : : : :\: : : : :: : : :ヽ \ /: : : :/  ̄ ̄/: : : : ヽ: : : . . . . . . . . . . .、 \=--: : : :.i / /: : : : :/ /: : ∧: \: : : : : : : : : : ヽ: :\: : : 〃}/ /: : : : :/ 、 . /: : / . : : :! ヽ: : l\_\/: : : : :\: ヽ彡: : | /: : : : :/ |\ /: : ィ: : : : :.i: : | \!___/ ヽ:: : : : : : :\|:.:.:.:/:! ,': : : : / |: : \ / / !: : : : :.ト‐|- ヽ \: : : : : l::::__:' :/ i: : : : :{ |: : : :.ヽ l/ |: : :!: : .l: :| \: : : l´r. Y {: : : : :丶_______.ノ: : : : : :} l: : :l: : :ト、| 、___,ィ ヽ: :| ゝ ノ '.: : : : : : : : : : : : : : : : : : : : : : / |: : :ト、: |: :ヽ ___,彡 ´ ̄´ ヽl-‐' \: : : : : : : : : : : : : : : : : : イ !: :从ヽ!ヽ.ハ=≠' , ///// ///u /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ V ヽ| }/// r‐'⌒ヽ イ〉、 ヽ、______ー‐‐' ィ´ /:/:7rt‐---、 こ、これは>>1 乙じゃなくて ィ幵ノ ./:/:./:.! !: : : : :!`ヽ ポニーテールなんだから r‐'T¨「 |: | !:.∨:/:./: :| |: : : : .l: : : :\ 変な勘違いしないでよね! /: : .|: :| !:.!ィ¨¨ヾ、:.:/ !: : : : l: : : : : :.\
4 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 12:45:44 ] [1] 授業単元: 中級C++ [2] 問題文(含コード&リンク): ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9209.zip [3] 環境 [3.1] OS: ウィンドウズ [3.2] コンパイラ名とバージョン: ビジュアルC++ [3.3] 言語: C++ [4] 期限: 2009年5月21日朝まで [5] その他の制限: 「もともと」ディレクトリは提供されたオリジナルのファイルです。 (1)は自力で出来ましたので一応添付しています。わからないのは(2)以降です。 具体的にどのようなアウトプットを求めているのか、問題の意味もあまりよくわかりません。 (3)、(4)になるとますます何を求めているのかわからないのですが、とりあえずいつも 問題が曖昧な先生なのでそれっぽいことをコードで示せば許してもらえます。 という訳で適当な感じでも構わないので(2だけでも結構ですので)よろしくおねがいします
5 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 16:00:30 ] [1] 授業単元: 上級者ためのC++(アルゴリズムとデータ構造) [2] 問題文(含コード&リンク): ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9211.zip [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン: VisualC++2008 Express Edition [3.3] 言語: C++ [4] 期限: 2009年5月21日朝8:00まで [5] その他の制限: 難易度高いと思いますがどなたかお願いします
6 名前:6 ◆tr.t4dJfuU [2009/05/20(水) 18:06:23 ] 【質問テンプレ】 [1] 授業単元: プログラミング言語 [2] 問題文(含コード&リンク): d.pic.to/vrk8t ・2つの数xとyはint型で定義し、キーボードから入力すること。 ・掛けられる数(*の左側)はx,…,x+3まで変化させること。 ・掛ける数(*の右側)はy,…,y+14まで変化させること。 ・出力形式は写真実行例をそっくり真似ること。 ・xとyの値の範囲は−9以上9以下とする。 ・どんな値を入力しても桁がそろうようにすること。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: VC++2008 [3.3] 言語: C++ [4] 期限: ([2009年5月20日23:59まで] [5] その他の制限: scanf,printf,forを使ってやるようにとのことです お願いします
7 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 18:14:48 ] >>5 行頭の判定のやり方が微妙だが他に思いつかなかったので kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9213.txt
8 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 18:25:07 ] 問題がzipだと見る気がしないでござる
9 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 18:31:48 ] >>6 #include <stdio.h> int main(){ int x, y; printf("x="); scanf("%d", &x); printf("y="); scanf("%d", &y); for(int i = y; i <= y+14; ++i){ for(int j = x; j <= x+3; ++j) printf("[%2d]*[%2d]=[%4d],", j, i, i*j); printf("\n"); } return 0; }
10 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 19:44:36 ] よろしくお願いします。 授業単元ソフトウェア製作実習 osソラリス コンパイラgcc 言語c 高さhが2で上底aと下底bが次のような値の台形4つの面積の合計を求めるプログラムをfor文を使って作成せよ。 表示形式 台形(1)a=0、b=4、h=2 面積= 台形(2)a=4,b=16h=2面積= 台形(3)a=16、b=36、h=2面積= 台形(4)a=36、b=64 h=2 面積= 4つの台形の面積の合計=
11 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 20:27:22 ] >>994 課題1 #include <stdio.h> #include <unistd.h> int rm(char *file) { int ret; ret = unlink(file); if (ret < 0){ perror(file); } return ret; } int main(int argc, char *argv[]) { while (--argc > 0) rm(*++argv); return 0; }
12 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 20:27:45 ] #include <stdio.h> int main(void) { int a, b, i, area, total_area = 0; for(i=1; i<=4; i++) { a = (i-1) * (i-1) * 4; b = i * i * 4; area = a + b; printf("台形(%d)a=%2d、b=%2d、h=2 面積=%d\n", i, a, b, area); total_area += area; } printf("4つの台形の面積の合計=%d\n", total_area); return 0; }
13 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 20:43:48 ] >>010 0/4=0, 4/4=1, 16/4=4, 36/4=9, 64/4=16, .... なるほど感心するわ。 // gcc --input-charset=cp932 --exec-charset=cp932 #include <stdio.h> int main() { int i; float daikei[][3] = { 0,4,2, 4,16,2, 16,36,2, 36,64,2, }, menseki, goukei = 0.0; for(i=0; i<sizeof(daikei)/sizeof(daikei[0]); i++) { menseki = (daikei[i][0] + daikei[i][1]) * daikei[i][2] / 2.0f; goukei += menseki; printf("a=%.0f b=%.0f h=%.0f 面積=%.0f\n", daikei[i][0], daikei[i][1], daikei[i][2], menseki); } printf("合計面積=%.0f", goukei); return 0; }
14 名前:5 mailto:sage [2009/05/21(木) 01:56:09 ] >>7 すごいっす。有り難うございました。
15 名前:デフォルトの名無しさん [2009/05/21(木) 01:59:13 ] >>12 >>13 ありがとうございます。
16 名前:デフォルトの名無しさん [2009/05/21(木) 08:31:11 ] [1] 授業単元:Cプログラミング [2] 問題文(含コード&リンク):CRUD操作及びファイル入出力の出来るデータベースを作成せよ。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2009年05月23日12:00まで ソートする直前までは作ったのですが、正しく動きませんでした。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9214.c
17 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 08:55:16 ] そのソース、どこかのコピペやなw
18 名前:4 mailto:sage [2009/05/21(木) 09:56:52 ] 期限過ぎてしまいましたが、どなたかお願いできないでしょうか?(o*。_。)oペコッ
19 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 10:53:31 ] [1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク): 整数を入力していき、「0」が入力されたらその1 つ前までに入力された数値の 平均値を求めるプログラムを、while 文を用いて作成せよ。 ここでは最低1 つの0 以外の数値が入力されるとしてよい。 平均値は小数点以下2 桁まで表示すること。 [3.1] OS: Windows XP [3.2] コンパイラ名とバージョン: Visual Studio 2005 [3.3] 言語: C++ [4] 期限:2009/5/21 [5] その他の制限:
20 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 11:10:10 ] 1] 授業単元:情報処理 [2] 問題文(含コード&リンク): 正の整数nを入力し、1 から100 までの間にあるnの倍数をすべて表示す ると共に、それらnの倍数の和を表示するプログラムを作成せよ。 例えば25を入力したら,その倍数である25, 50, 75, 100とそれらの和で ある250が表示されることになる。 [3] 環境 [3.1] OS:WindowsXP [3.2] コンパイラ名とバージョン gcc [3.3] 言語:C [4] 期限: 2009年5月22日0:00まで [5] その他の制限:以前にも書き込んだのですが、私の書き込みにミスがありましたのでもう一度書きます。よろしくお願いします。
21 名前:デフォルトの名無しさん [2009/05/21(木) 11:23:13 ] >>19 #include <iostream> #include <iomanip> int main(void) { int i, n, sum; n = sum = 0; while(1) { std::cin >> i; if (i == 0) break; sum += i; n++; } std::cout << std::fixed << std::setprecision(2) << (double)sum / n << std::endl; return 0; }
22 名前:デフォルトの名無しさん [2009/05/21(木) 11:26:13 ] >>20 #include <stdio.h> int main(void) { int n, i, sum; printf("正の整数nを入力せよ: "); scanf("%d", &n); sum = 0; for(i = 1; i <= 100; i++) { if (i % n == 0) { printf("%d\n", i); sum += i; } } printf("%d\n", sum); return 0; }
23 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 12:02:10 ] [1] 授業単元: 社会情報入門 [2] 問題文(含コード&リンク): 次の無限等比級数の和を、各項を順に加算していくことにより求めるプログラムを書け。 1+(1/3)+(1/9)+(1/27)+..... ただし、0.00001以下となる項を加えた時点で加算を終了することとする。 [3] 環境 [3.1] OS:WindowsXP [3.2] gcc [3.3] 言語: C [4] 期限: 2009年5月22日12:50まで [5] その他の制限:なし よろしくお願いします。
24 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 12:06:59 ] >>16 相当直さないと動かないぞ。 createData()見ただけでも、メモリ確保とかポインタの使い方が変。
25 名前:19 mailto:sage [2009/05/21(木) 12:08:08 ] >>21 #include <iostream> #include <iomanip> std::cout << std::fixed << std::setprecision(2) << など習ってないことが多いのでもう少し簡単にできないでしょうか? #include <stdio.h>で書いてもらえるとありがたいです 追記で 実行例 整数を入力: 9 整数を入力: 3 整数を入力: 8 整数を入力: 10 整数を入力: 7 整数を入力: 3 整数を入力: 0 平均値は 6.67
26 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 12:34:54 ] >>25 後出し氏ね
27 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 12:54:48 ] >>25 それはC言語というものなのだよ
28 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 13:06:59 ] >>25 #include <stdio.h> int main() { int d, count = 0, sum = 0; while (1) { printf("整数を入力:"); scanf("%d",&d); if (d == 0) break; sum += d; count++; } printf("平均値は%.2lf\n",(double)sum/count); return 0; } >[3.3] 言語: C++ って書いたら、当然C++で回答が書かれます 回答者に無駄な作業をさせないように依頼して下さい。
29 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 13:08:35 ] >>24 メモリ確保の仕方だけで構いませんので、教えていただけないでしょうか?
30 名前:デフォルトの名無しさん [2009/05/21(木) 13:12:50 ] [1]C++言語初心者コース [2]問題文: C++コードではiostream、iomanipを必ず使わなければならないことを 示す例を作れ。無い場合はその旨50字以内に日本語仮名交じり文で 記述せよ [3]OS:Windows/コンパイラ:GCC on CygWin/言語C++ [4]本日中 困ってます。よろしくです。
31 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 13:25:23 ] >>29 確保の仕方だけ教えたところで ポインタ理解してなきゃ結局全部聞く羽目になるぞ つか今ソース見たが、確保というより格納の仕方と言ったほうが正しいのかもしれん >>30 アバウトすぎ 前後に問題あればそれも出した方が 問題の意図がわかるかもしれんが
32 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 13:58:20 ] >>29 Create *Data; Data = (Create *)malloc(sizeof(Create)); for(i=0;;i++){ Data[i].id = ID; ID++; glob_DB[i] = Data[i]; free(Data); } これが変だという事が理解できないと、どこから説明したらいいのかなと思う。 動的に確保するのではなく、固定で大きな配列を用意し、 動くプログラムを書く位の力はあるかい?
33 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 14:12:36 ] >>32 mallocをループの中に入れた後、stdlib.hをインクルードしたところ警告は消えたのですが、 やはりそんなレベルの問題ではないのでしょうか?
34 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 14:19:31 ] >>28 ありがとうございます。 以後気をつけます
35 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 14:29:48 ] >>33 実行してみ? PCが壊れる、ってことはないとは思うが自己責任でw
36 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 15:38:36 ] 押し売りせずに信頼を得て、油外収益は地域トップクラスです。 油外おいしいです^^
37 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 16:08:41 ] >>33 >mallocをループの中に入れた後、stdlib.hをインクルードしたところ警告は消えたのですが、 警告が出ているうちは、間違いを指摘してくれているので良いが、 警告が消えたからって、正しく動く訳じゃない。正しいロジックで書いてないと動きません。 createData()を例にとれば、 Data[i].id = ID;←これはまずい。確保した領域は一つしかない。ワープします。 glob_DB[i] = Data[i];←これもまずい(左右とも) free(Data); ←せっかく格納したデータは何処へ行くだろうか? 「添え字を使ってアクセス」が何を意味し、何処を指すのかを理解する必要があるよ。 入力したデータは何処に格納するのか。関数内の一時的格納か、それとも処理終了まで保持するのか。 格納領域はどのタイミングで確保するのか。確保した格納データはどうやって管理するのか。 確保した領域は、どのタイミングで解放するのか。この辺をちゃんと考えてみる必要がある。 動的に領域確保するのが難しいなら、glob_DBで1000件程度配列で確保し、 正常に動くプログラムをまず作ってみると良い。
38 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 16:13:07 ] CRUD操作の意味がわからん^^
39 名前:デフォルトの名無しさん [2009/05/21(木) 16:18:31 ] 【質問テンプレ】 [1] 授業単元:Cの基礎 [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9215.txt [3] 環境 [3.1] OS:XP [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限: 一週間 [5] その他の制限: while文かdo-while文を使い、なるべく簡単にお願いします。
40 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 16:35:59 ] >>39 #include<stdio.h> #include<math.h> int main(void) { double si_1, si, x; printf("実数 x : "); scanf("%lf", &x); si_1=1; do { si=si_1; si_1=(si+x/si)/2; } while(fabs(si_1-si)>=0.00001); printf("sqrt(%f)=%f\n", x, si); return 0; }
41 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 16:38:20 ] >23 #include <stdio.h> int main() { double sum = 0.0; double e = 0.00001; int x = 1; double a; while (1) { a = 1.0 / x; sum += a; if (a < e) break; x *= 3; } printf("%.15lf\n", sum); return 0; }
42 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 17:35:01 ] >>38 Create Read Update Delete
43 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 19:41:13 ] よろしくお願いします。 授業単元アルゴリズム実習 osソラリス 言語 c コンパイラ gcc 高さhが2で上底aと下底bが次のような値の台形4つの合計を求めるプログラムをfor文を使って作成せよ。 表示形式 台形(1)a=0、b=2^2、h=2、面積= 台形(2)a=2^2、b=4^2、h=2 面積= 台形(3)a=4^2、b=6^2、h=2 ,面積= 台形(4)a=6^2、b=8^2 h=2 面積= 4つの台形の面積の合計=
44 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 19:47:27 ] [1] 授業単元: プログラミング [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9217.txt [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:cc [3.3] 言語:C [4] 期限:[2009年5月22日19:00まで] [5] その他の制限:問題文と共に記述してあります.
45 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 19:53:23 ] >>43 >>10 >>12 >>13
46 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 20:06:44 ] >>43 #include <stdio.h> int main(void) { int i, temp, s = 0; for(i=0; i<4; i++) { temp = 4 * i * i + 4 * (i+1) * (i+1); printf("台形(%d)a=%d%s,b=%d^2,h=2,面積=%d\n", i+1, i*2, i?"^2":"", 2*(i+1), temp); s += temp; } printf("4つの台形の面積の合計=%d", s); return 0; }
47 名前:デフォルトの名無しさん [2009/05/21(木) 20:29:37 ] >>45 わかってます。今度のは二乗の計算をしなくてはいけないので。。。
48 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 20:44:01 ] 表示が違うだけで計算内容は同じだけどな。
49 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 20:49:13 ] マルチになってしまいますが、後になってこちらのスレの存在に気付いたので 再び質問させていただきます。 以下のコードの流れについて知りたのですがよく分かりません。 行ごとに簡単に解説してくれると助かります。よろしくお願いします。 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { Animations:nil context:nil]; [UIView setAnimationDuration:0.7]; [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:selfcache:YES]; if ( enabled ) [[UIApplication sharedApplication] sendAction:@selector(buttonPushed:) to:target from:self forEvent:event]; [UIView commitAnimations];
50 名前:デフォルトの名無しさん [2009/05/21(木) 20:53:59 ] >>46 さんありがとうございます。
51 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 20:58:39 ] >>49 Objective-Cはスレ違い
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