トップページ⇒tech
1001コメント349KB

C/C++の宿題片付けます 157代目

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2012/04/27(金) 18:10:16.77
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他の発言はスルーの方向で。

【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。 >>2以降にあります。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
0002デフォルトの名無しさん2012/04/27(金) 18:11:03.43
【質問テンプレ】
[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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://s2.etowns.slyip.net/~c_cpp_homework/cgi-bin/joyful/joyful.cgi
http://codepad.org/ ←遅い時間は重い事があります
http://ideone.com/
http://pastebin.com/ ←たまにテンポるので上の2つが混んでいる時以外はなるべく使わないで下さい
【C 関数検索 man on WWW】 http://www.linux.or.jp/JM/index.html
【過去ログ検索】        http://chomework.sakura.ne.jp/
【wiki】               http://www23.atwiki.jp/homework/
前スレ
C/C++の宿題片付けます 156代目
http://toro.2ch.net/test/read.cgi/tech/1328276597/
0003デフォルトの名無しさん2012/04/27(金) 18:21:42.61
>>1
おつ
0004デフォルトの名無しさん2012/04/27(金) 18:24:30.60
なんか小町を解いたくらいで偉そうにしている粘着がキモイんですけど・・・
0005デフォルトの名無しさん2012/04/27(金) 18:36:38.16
解かずに偉そうにしてるやつよりはマシ
0006デフォルトの名無しさん2012/04/27(金) 18:37:06.20
小町も解けないアホが必死w
0007デフォルトの名無しさん2012/04/27(金) 19:15:33.09
 発 者 同         . 。_   ____           争
 生 同 .じ     .    /´ |  (ゝ___)          い
 .し 士 .レ      .__/'r-┴<ゝi,,ノ   ro、      は、
 .な で .ベ      ∠ゝ (ゝ.//`   ./`|  }⌒j     
 .い し .ル        } ⌒ /`ヽ、_∠l,ノ ・ヽ´
 .! ! か の       /  ´..:.} >、、___,  .r、 ソ、`\
             /   ..:.:.}   /   |∨ ` ̄
            /   ..:.:./    |   丶
           / _、 ..:.:.:.{    .{.:.:.   \
          {   ..:Y  .ゝ、   {.:.:.:.:.    ヽ
          |、  ..:/ 丿 .:〉   >.- ⌒  .  ヽ
          / {. ..:./ ソ ..:./  .(    ..:.:.:`  ..:}
         ./..:.:}.:.:./ ヘ、 ..:./   .\ ..:.:r_,ノ、.:.:}
        ./..:.:/|.:/   {.:./     X.:.:}.}   X X
        /..:.:/ .}.:|    }:/       .Y丶ヽ  Y.:Y
  . __/.:/ { }  《.〈、     _,,__>.:》丶   Y.:\
  /.:.:.:.:.::/   !.:.:ゝ  ゝ.:. ̄ヾ ´:.:.:.:.:.:.:.:.:ヾゝ   \.: ̄>
0008デフォルトの名無しさん2012/04/27(金) 19:23:21.90
こうやって、同レベルとかどっちもどっちとか言い出すのは決まって負けてる方なんだよなw
0009デフォルトの名無しさん2012/04/27(金) 19:30:19.65
>>6
>小町も解けないアホ
いや、だから解いたんだが・・・キモッ 小町を解いたくらいで偉そうにしているガキwww
0010デフォルトの名無しさん2012/04/27(金) 19:30:43.53
レベルの高い>>8が前スレの>>976を解くそうです
0011デフォルトの名無しさん2012/04/27(金) 19:31:37.22
>>5
>解かずに偉そうにしてるやつ
いや、だから解いたんだが・・・何か俺が解いてないのに偉そうにしたとか言われて気分悪いわ。
別に偉そうにした覚えないし。誰と勘違いしてんだ?っつか、ここもID制にすべきだわ。
0012デフォルトの名無しさん2012/04/27(金) 19:34:52.53
>>10 みたいなことを言う奴も、C言語であれこれ解けるのがハイレベルだと思っているんだろうね。
それぞれ専門知識が必要になる場合は、もはや言語を扱うスキル、効率の良いアルゴリズムを
ある程度知っているとは話は別。何でも出来れば良いってもんじゃないし、使わない知識を無駄に
溜め込んでも意味ないんだわ。
0013デフォルトの名無しさん2012/04/27(金) 19:35:02.87
前スレ>>881を解いたのは3人
君はどれだい?
0014デフォルトの名無しさん2012/04/27(金) 19:43:31.32
このスレで一番キモいのは、スレの最初で>>4みたいなことを言い出す奴
0015デフォルトの名無しさん2012/04/27(金) 19:46:51.97
いや、どっちもキモイので消えてください
0016デフォルトの名無しさん2012/04/27(金) 20:00:32.64
外科医が歯科医の専門知識をいくら持っても、外科医として上手くやっていけるのかね?
確かに共通する点はあれど、やはりそれぞれには専門知識、経験が必要だ。
基本、医者である以上、扱う部門が違えど人間を扱うし、小さな例を挙げると
滅菌、麻酔、注射、その他治療をするに当たって注意しなければならない器具の取り扱いや
人体の基本は共通しているから知っているだろう。物理だって法則などは
目で見たほうが手っ取り早いが、それらを数値化するにはやはり数学が必要だ。
しかし、アインシュタインは質問された時、光速度を知らなかった。

まぁ、プログラム言語を扱う基本知識は重要だし、効率の良いコードを書くには
柔軟な考え方も必要。少し外に出て頭を冷やしたらどうかね?
喫煙ばかりしてて血流が悪くなり、吸い終わった後の間違ったスッキリ感では駄目なのだよ。
ワトソン君。
0017デフォルトの名無しさん2012/04/27(金) 20:25:22.07
またこのアホが湧く季節になったのか
0018デフォルトの名無しさん2012/04/27(金) 20:36:12.59
前スレ >>976 画像ファイルフォーマット指定してほしい
0019デフォルトの名無しさん2012/04/27(金) 21:02:58.04
春だなー(棒)
0020デフォルトの名無しさん2012/04/27(金) 21:23:54.97
24ビットのBMPでいいらしい
0021デフォルトの名無しさん2012/04/27(金) 21:41:15.39
>>15
そこまで言うなら、あなたが消えた方が手っ取り早いんでは?
このスレに何か未練でもありますか?
0022デフォルトの名無しさん2012/04/28(土) 01:58:43.34
うわ、こいつほんとキモいな。
迷惑かかってんのわかんないの?
0023デフォルトの名無しさん2012/04/28(土) 02:32:59.65
[2] あのね











おしっこシィーーーーーッ!
0024デフォルトの名無しさん2012/04/28(土) 04:36:06.83
>>21
Qっぽい特徴がプンプン臭ってるな
0025デフォルトの名無しさん2012/04/28(土) 10:05:06.21
どうでもいいけど前スレ976の画像フォーマットまだー?
0026デフォルトの名無しさん2012/04/28(土) 10:43:19.86
>>17 アホが自分だと自覚しろ
0027デフォルトの名無しさん2012/04/28(土) 11:44:36.18
出題はまだかなぁ。
0028デフォルトの名無しさん2012/04/28(土) 14:18:17.51
[1] 授業単元:QRコード変換
[2] 問題文:
打ち込んだテキストデータをQRコードの画像に変換するプログラムを作成せよ.
(QRコードの規格は公開されているので,それを組み合わせて作ればよい.
エラー訂正レベルを下げ,文字数を固定するなどして簡単なものから順に実装していけば良い.)

[3] 環境
 [3.1] OS: Windows vista
 [3.2] コンパイラ名とバージョン:bcc
 [3.3] 言語: C言語
[4] 期限: 5/7
宜しくお願いします。
0029デフォルトの名無しさん2012/04/28(土) 15:02:06.83
規格調べんの面倒くさい
0030デフォルトの名無しさん2012/04/28(土) 18:39:14.13
画像のフォーマットは?
0031デフォルトの名無しさん2012/04/28(土) 18:57:04.19
>>30
24カラーbmpで
0032デフォルトの名無しさん2012/04/28(土) 20:21:22.10
>>28
作るのはまだいいとしても、次の段階として読みとるのを作るだろうから相当しんどいな
傾いた画像とか、汚れで一部読めないとかwww
0033 ◆qr00w3BQO6 2012/04/29(日) 12:38:40.32
[1] 授業単元: udpプログラム
[2] 問題文(含コード&リンク): 計測機器が計測結果をUDP通信で連続的に送ってくる.このパケットを受信しprintfで表示しないさい.このとき送られてくるパケットのipアドレス,port,バッファサイズは変化がなくあらかじめ分かっているものとする.
[3] 環境
 [3.1] OS: Windows7 x64
 [3.2] コンパイラ名とバージョン: VC++ 2010express
 [3.3] 言語: C
[4] 期限: 今月中
[5] その他の制限: 最終的にMATLABのMEXに載ります


http://www.katto.comm.waseda.ac.jp/~katto/Class/GazoTokuron/code/socket.html
ここ見ながらやってるんですが,bindで

1> part2.cpp
1>d:\udp\part2\part2\part2.cpp(41): error C2664: 'bind' : 2 番目の引数を 'sockaddr_in *' から 'const sockaddr *' に変換できません。(新しい機能 ; ヘルプを参照)
1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。

とエラーが出てしまい困ってます.
WINDOWS SDKをインストールし,part2(ファイル名)のプロパティで
<リンカー><入力><追加の依存ファイル>に<wsock32.lib;%(AdditionalDependencies)>
と書き換えています.
デバッグ手伝ってください><

0034デフォルトの名無しさん2012/04/29(日) 13:00:29.18
>>33
エラーメッセージの通りに直してみろ
0035 ◆qr00w3BQO6 2012/04/29(日) 14:01:20.38
>>34
返信ありがとうございます.
卒研で機械系の学生がCとwinsockの本にかじりつきながらやってるのでエラーメッセージの意味を理解出来てないです.
ここで問題になっている'sockaddr_in *' から 'const sockaddr *'はconst修飾子で変数の変更を制限しようとしているんですよね?(今調べました)
構造体を初期化しているmemsetやrecvsockaddr.sin_〜〜〜の値の代入に問題があるのでしょうか?

または,winsockのリファレンスによるとbindの2番目の引数は「ソケットアドレス構造体を指すポインタ」とあるので
sockaddr_in recvSock Addrへのポインタ構文がおかしいのでしょうか?
0036デフォルトの名無しさん2012/04/29(日) 14:30:11.63
>>35
bindの第二引数、キャストしてる?
0037デフォルトの名無しさん2012/04/29(日) 14:33:42.97
>>35
本見れなくても2chに書き込めるってことはインターネットでいくらでも調べられるじゃん
とりあえずbindの二番目の引数(struct sockaddr_in *)を(struct sockaddr *)に変えれば通る
0038 ◆qr00w3BQO6 2012/04/29(日) 14:45:51.22
>>36 ありがとうございます
(struct sockaddr_in *) &recvSockAddr
この構文を
(struct sockaddr *) &recvSockAddr
と記述すればいいという解釈でいいでしょうか?

この構文ですとvc++はエラーを吐かないんですが,コンパイルして実行しても
bindの返り値statusがSOCKET_ERRORになっています.
後のnumrcv=recvfrom(〜〜〜〜)文も-1の返り値を返しているのでソケットの作成かbindに
問題があると思うのですがわかりません...
0039デフォルトの名無しさん2012/04/29(日) 15:17:35.81
適当にやってもロクな結果出んぞ
0040 ◆qr00w3BQO6 2012/04/29(日) 15:56:25.61
>>39
>>37さんが仰られている通りbindの二番目の引数(struct sockaddr_in *)を(struct sockaddr *)に変えることで
プログラムは回りました,しかし,bindでのエラー原因がわからず手をつけられずにいます.
どこか見落としているところがあるのでしょうか?
0041デフォルトの名無しさん2012/04/29(日) 19:49:17.16
>>40
bindでのエラーってやつがコンパイルエラーのこと言ってるなら
エラーメッセージに型が違うから使いたいならキャストしろって書いてあるじゃん
0042 ◆qr00w3BQO6 2012/04/29(日) 20:01:41.83
bindに
status = bind(recvSocket, (struct sockaddr *)&recvSockAddr, sizeof(recvSockAddr));
if (status != 0) {
wprintf(L"bind failed with error %d\n", WSAGetLastError());
}
このようなエラーメッセージをつけて調べたところ10048と出力されました

WSAEADDRINUSE (10048)
意味 : アドレスは既に使用中です。
説明 : 通常、ソケット アドレス (プロトコル/IP アドレス/ポート) は、
それぞれ 1 つずつしか使用できません。プログラムが、既に存在する
ソケット (正しく閉じられなかったソケットまたは閉じている最中の
ソケット) で使用されている IP アドレスやポートにソケットをバインド
(Wsapiref_6vzm.asp) すると、このエラーが発生します。
同一のポート番号に複数のソケットをバインドする必要のある
サーバー プログラムの場合は、setsockopt (Wsapiref_94aa.asp)
(SO_REUSEADDR) の使用を検討してください。
クライアント プログラムは通常 bind を呼び出す必要はなく、
connect (Wsapiref_8m7m.asp) は未使用のポートを自動的に選択します。
bind がワイルドカード アドレス (ADDR_ANY など) を使用して呼び出された
場合、WSAEADDRINUSE エラーは、特定のアドレスがコミットされるまで発生
しない可能性があります。このエラーは、後に別の関数
(connect、listen、WSAConnect、および WSAJoinLeaf など) が呼び出された
ときに発生することがあります。

だそうです.なのでPCを再起動してデバッグなしで実行してみたのですがやはり同じような
エラーメッセージが表示されました.なぜでしょうか?
0043デフォルトの名無しさん2012/04/29(日) 20:15:48.47
それ自体は説明にあるとおり。
0044デフォルトの名無しさん2012/05/01(火) 07:40:41.89
n変数多項式の代数処理プログラム作ってください.
必要機能は
・n変数多項式の足し算,引き算,掛け算,微分,積分,ただし,有理数係数でOK
・n変数多項式の既約分解
・多項式環の基本演算(上と同じ)と局所環がもとめられること
・代数的多様体上を定義可能,グラフィクスはオプション

とりあえずここまでお願いします.後すこしありますが,それはじぶんでつくります.
0045デフォルトの名無しさん2012/05/01(火) 11:56:49.14
なんかベンツタダでくださいみたいな話に読めた
0046デフォルトの名無しさん2012/05/01(火) 13:14:18.17
代わりに修士論文書いて、くらいか?
0047 ◆qr00w3BQO6 2012/05/01(火) 18:29:46.49
>>42
skypeにポートが使われていたのが問題でした.
その他にも問題が多数出てきましたが自己解決の末,無事作成できました.
アドバイスの数々ありがとうございました.
0048デフォルトの名無しさん2012/05/01(火) 19:42:16.11
アドバイスなんてなかった
0049デフォルトの名無しさん2012/05/01(火) 23:44:44.73
[1] 授業単元 情報工学
[2] 問題文
n枚のカードからr枚のカードを選ぶ組み合わせを計算するプログラムを作成せよ。
但し、n≧1  r≧1  n≧rを前提してよい。(入力エラーの処理は不要)
[3] 環境
 [3.1] OS: Linux
 [3.3] 言語: C
[4] 期限: (2012年5月2日13:00まで)
よろしくお願いします。
0050デフォルトの名無しさん2012/05/01(火) 23:58:39.61
nの最大値は?
0051デフォルトの名無しさん2012/05/02(水) 00:01:52.05
nの最大値は52です。(トランプの枚数)
0052デフォルトの名無しさん2012/05/02(水) 00:05:16.20
局所環以外は多項式を表すデータ構造さえ決めてしまえば簡単だろ.
0053デフォルトの名無しさん2012/05/02(水) 01:41:50.97
>>52
微分、積分できる?
0054みならい ◆yPB1OBVvQhZo 2012/05/02(水) 03:43:39.21
>>49
http://codepad.org/Dgc4ckXj
0055デフォルトの名無しさん2012/05/02(水) 06:53:28.02
[1] 授業単元 情報工学
[2] 問題文
通信サービスの1ヶ月の利用料金は、基本料金500円と1分辺りの利用料金10円との合計である。
この通信サービスの1ヵ月の利用料金x分受け取ると、利用料金y円を計算するryoukin関数を作成せよ。
そしてこの通信サービスの1ヶ月の分単位の利用時間を入力すると、利用料金を計算するプログラムを、main関数からryoukin関数を呼び出す形で作成せよ。
但し、利用時間は分単位を前提とする。
[3] 環境
 [3.1] OS: Linux
 [3.3] 言語: C
[4] 期限: (2012年5月3日13:00)
よろしくお願いします。
0056デフォルトの名無しさん2012/05/02(水) 07:47:46.83
>>55
int ryoukin(int x){
return x*10+500
}
0057デフォルトの名無しさん2012/05/02(水) 08:19:35.78
>>56
つ unsigned
0058デフォルトの名無しさん2012/05/02(水) 12:28:45.95
1分10円、1時間600円・・・たけぇ。
0059デフォルトの名無しさん2012/05/02(水) 13:50:19.15
>>50
上限は整数型の上限に決まってんじゃん
計算結果が例えばunsignedの上限を超えないようなn,rの場合まで考えてあげればプロ
他に聞く前に考えろ
0060デフォルトの名無しさん2012/05/02(水) 14:56:21.64
勝手に言っておいて自分で限定するとか、やるなら無限にしろよw
0061デフォルトの名無しさん2012/05/02(水) 19:06:54.60
別に無限でもやれるならいいんだけどな
その扱い方さ 教えてくれよ
0062NAS6 ◆n3AmnVhjwc 2012/05/02(水) 20:10:34.24
>>49
int kaijo(int n){
 int i,ret=1;
 for(i=1;i<n;i++)ret*=i;
 return ret;
}
int kumiawase(int n,int m){
 return kaijo(n)/(kaijo(m)*kaijo(n-m));
}
0063NAS6 ◆n3AmnVhjwc 2012/05/02(水) 20:13:18.00
訂正

for(i=1;i<=n;i++)ret*=i;
0064デフォルトの名無しさん2012/05/02(水) 20:40:46.99
スゲーな
factorial permutation combinationとか書かないのはwww

10ブっこんだだけで3628800、
階乗計算で手抜きしなきゃ
ギリ合格の80点はくれてやるよw
0065デフォルトの名無しさん2012/05/02(水) 21:53:13.92
100万桁くらいで我慢しとけw
0066デフォルトの名無しさん2012/05/02(水) 21:54:16.46
コテハン名乗る割には大したことない。
クズ同然。
0067デフォルトの名無しさん2012/05/02(水) 22:09:31.10
あと掛け算ならi=1からやる必要ねーだろw
アホちゃうかwww
あ、アホかw
0068デフォルトの名無しさん2012/05/02(水) 22:12:20.09
>>62みたいなやり方のことを考えてnの最大値を聞いてるのにな
0069NAS6 ◆n3AmnVhjwc 2012/05/02(水) 22:17:14.77
桁が足りないならlong long intを使うか
演算の面倒な構造体なりポインタ使うなり

それこそdouble使えば?

0070デフォルトの名無しさん2012/05/02(水) 22:18:52.16
プリミティブ型を使う義務なんてないのに。
クズコテハンはこの程度かw
0071NAS6 ◆n3AmnVhjwc 2012/05/02(水) 22:20:37.48
素数判定プログラムをc/c++室に貼りました
0072NAS6 ◆n3AmnVhjwc 2012/05/02(水) 22:21:54.80
c++じゃなくてcでしょ
0073デフォルトの名無しさん2012/05/02(水) 22:32:57.99
すぐオーバーフローするもの貼っといて、使えば?じゃねーよw
0074デフォルトの名無しさん2012/05/02(水) 23:07:42.68
結論:ゴミ製造機www
0075デフォルトの名無しさん2012/05/02(水) 23:38:42.25
階乗は確かに順列、組み合わせで使われているけどさ
せめてパスカルの三角形とか工夫しろよ・・・
0076デフォルトの名無しさん2012/05/02(水) 23:55:31.27
>>49
やってみた
int gcd(int a, int b){
int c;
while((c=a%b)) a=b,b=c;
return b;
}

int nCr(int n, int r){
int i, j, d, t, *data;

if(n<0 || r<0 || n<r) return 0;
if(r*2>n) r=n-r;

data=malloc(sizeof(*data)*r);
for(i=0;i<r;i++) data[i]=n-i;

for(i=0;i<r;i++){
t=r-i;
for(j=0;j<r && t>1;j++){
d=gcd(data[j], t);
data[j]/=d;
t/=d;
}
}
t=1;
for(i=0;i<r;i++) t*=data[i];
free(data);

return t;
}
0077デフォルトの名無しさん2012/05/03(木) 00:08:16.57
途中過程が重要じゃないなら、パスカルの三角形でええやろ・・・
0078デフォルトの名無しさん2012/05/03(木) 00:49:33.02
>>49
パスカルの三角形
int nCr(int n, int r)
{
int *p, *s, *d, *t, ret, i, j;

p=calloc(sizeof(int), (n+1)*2);
s=p;
d=p+n+1;
for(i=0;i<=n;i++)
{
d[0]=1;
for(j=1;j<=i;j++)
{
d[j]=s[j-1]+s[j];
}
t=s;
s=d;
d=t;
}
ret=s[r];

free(p);
return ret;
}
0079デフォルトの名無しさん2012/05/03(木) 01:56:00.12
あ、これはおもしろいな
0080デフォルトの名無しさん2012/05/03(木) 02:18:46.70
>>49,78
これでもOKのはず。
int nCr(int n, int r){
int *p, ret, i;

r = r > n - r ? n - r : r;
p = calloc(sizeof(int), r + 1);
*p = 1;
while (n--)
for (i = r; i; i--)
*(p + i) += *(p + i - 1);
ret = *(p + r);
free(p);
return ret;
}
0081デフォルトの名無しさん2012/05/03(木) 23:10:27.54
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):

xが十分小さいとき、次の式を使ってsinxを近似的に求める事ができる。
sinx=x-x^3/3!+x^5/5!-x^7/7!
0.05π刻みで、0.0からπまでのxについて、math.hに含まれている関数
sin()と値を比較しなさい。
ただし、円周率πはmath.hに含まれているマクロ M_PIを使用するか、
三角関数を用いて正確に計算した値を使うこと。

[3] 環境
 [3.1] OS: Linux
 [3.1] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限:5月8日
[5]
配列の使用はしてはいけないそうです。
お手数ですがよろしくお願いします。
0082デフォルトの名無しさん2012/05/04(金) 00:19:38.64
冗長につくってみた。
http://ideone.com/FPNS1
0083デフォルトの名無しさん2012/05/04(金) 00:21:11.66
少しだけ訂正
http://ideone.com/OkAgQ
0084デフォルトの名無しさん2012/05/04(金) 00:22:17.27
>>81
> sinx=x-x^3/3!+x^5/5!-x^7/7!
もちろんこの式が何展開と呼ぶかは習うんだよな?
0085デフォルトの名無しさん2012/05/04(金) 00:54:34.19
はい!ゆうこりんのマン○リン展開です!
0086デフォルトの名無しさん2012/05/04(金) 09:52:55.78
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
刻み幅0.001秒で微分方程式dx/dt+x=1(x(0)=0)
をオイラー法によって解くプログラムの作成。
[3] 環境
 [3.1] Linux
 [3.3] 言語:C
[4]期限:(5月5日土曜日22:00)

どうかよろしくお願いします。
0087デフォルトの名無しさん2012/05/04(金) 10:16:48.75
後学のために聞くけどその微分方程式は一体どういう何の物理現象なんだ?
0088デフォルトの名無しさん2012/05/04(金) 13:22:38.73
オイラの為に
0089デフォルトの名無しさん2012/05/04(金) 13:28:38.19
自信ないけど作ってみた。
http://codepad.org/oxBATNjL
0090デフォルトの名無しさん2012/05/04(金) 20:03:33.31
>>89
違うよ。全然違うよ。
0091デフォルトの名無しさん2012/05/04(金) 20:36:51.66
>>90
>>86の回答頼む
俺、数学分からんからどうしようもない
0092デフォルトの名無しさん2012/05/04(金) 21:03:43.82
>>86
#include<stdio.h>

int main(void)
{
double x, t, delta=0.001;
int i;

x=0.0;
for(i=0;i<=10000;i++)
{
t=delta*i;
printf("x(%f)=%f\n", t, x);
x+=delta*(1-x);
}

return 0;
}
0093デフォルトの名無しさん2012/05/04(金) 21:10:09.88
deltaを即値では無く、変数とした理由は?
0094デフォルトの名無しさん2012/05/04(金) 21:13:26.89
A. アホだから
A. 数値積分とオイラー法についてなんら分かっていないから
A. ノリ
A. 何となくかっこいいじゃん!
0095デフォルトの名無しさん2012/05/04(金) 21:18:16.66
>>87 とか >>93 みたいなのは何なの?
0096デフォルトの名無しさん2012/05/04(金) 21:22:27.02
>>95
何なのって
お前は気にならないの?

dx/dyじゃない、dx/dtになってて
しかもわざわざ刻み幅を「秒」で指定してるんだぜ
アホの一つ覚えでそのまんまにプログラミングしてりゃあいいってモンでも無いだろ
0097デフォルトの名無しさん2012/05/04(金) 21:29:40.67
>>96
アホはお前じゃないの?
0098デフォルトの名無しさん2012/05/04(金) 22:47:55.53
>>95
コードを見る限り、deltaは普遍値だよな。

そんな疑問すら想像出来ないのか?
0099デフォルトの名無しさん2012/05/05(土) 22:49:35.99
[1] 授業単元:Cプログラミング
[2] 問題文(含コード&リンク):
次の関数の最小値と、その時のa,b,c,dそれぞれの値を出力するプログラムを作成してください。
ただし、0<a<b<c<d<200とする。
4a+exp(-0.5b)-3c+exp(0.5d)
[3] 環境
 [3.1] OS: (Windows/Linux/等々) linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) gcc
 [3.3] 言語: (C/C++/どちらでも可 のいずれか) C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 5/9
[5] その他の制限なし

よろしくお願いします。
0100992012/05/05(土) 22:52:59.31
補足です、a,b,c,dは整数で構いません。
よろしくお願いします。
0101デフォルトの名無しさん2012/05/05(土) 23:07:00.72
>>99
#include<stdio.h>
#include<math.h>

int main(void){
int a, b, c, d, min_a=0, min_b=0, min_c=0, min_d=0, is_first=1;
double val, min=0.0;

a=1;
for(b=a+1;b<200-2;b++){
for(c=b+1;c<200-1;c++){
d=c+1;

val=4*a+exp(-0.5*b)-3*c+exp(0.5*d);
if(is_first || min>val){
is_first=0;
min=val;
min_a=a;
min_b=b;
min_c=c;
min_d=d;
}
}
}
printf("min=%f a=%d b=%d c=%d d=%d\n", min, min_a, min_b, min_c, min_d);

return 0;
}
■ このスレッドは過去ログ倉庫に格納されています