C/C++の宿題のまとめ@Wiki
http://w.atwiki.jp/c-cpp_homework/
C/C++の宿題のまとめ@Wiki
ja
2005-11-07T07:16:04+09:00
1131315364
-
答えてもらうためには...
https://w.atwiki.jp/c-cpp_homework/pages/5.html
<ol>
<li><font color="#3333FF"><u>質問用テンプレを使う</u></font><br>
使っていない時点でスルーされます。中にはやさしい人が答えてあげる場合もありますが。</li>
<li><u><font color=
"#3333FF">長いコードをそのまま書き込むと嫌われる。アップローダーを利用する。</font><br>
</u> テンプレのアップローダーに貼り付けましょう。</li>
<li><u><font color=
"#3333FF">問題文をそのまま貼り付ける</font><br></u> あなたの誤解や勘違いがある場合もあります。問題文はそのまま書き込んでください。 <br>
また、条件を後からつけるとキレられる場合もあります。<br>
(例:while文を使わなければいけないそうです。配列は不可だそうです)</li>
<li><font color="#3333FF"><u>マルチポストしない</u></font><br>
バレると即座にスルーです。</li>
<li><font color="#3333FF"><u>お願いをする</u></font><br>
「俺は客だ!!」的な態度をすると華麗にスルーされます。</li>
<li><u><font color=
"#3333FF">無視されても泣かない<br></font></u>別にお金を貰っていませんので、常に常駐している事は期待しないでください。<br>
誰からも反応がないときは、もう一度<strong>だけ</strong>お願いしてみましょう。しつこいと嫌われます。<br>
「>>123ですが、すみません、華麗にスルーされました...」</li>
<li><u><font style="BACKGROUND-COLOR: #ffffff" color=
"#3333FF">エラーが発生していたらそれをコピーする。</font></u><br>
「動きません、助けてください」じゃ誰も助けてあげません。</li>
<li><u><font color="#3333FF">お礼を言う</font></u><br>
回答者のモチベーションがあがります、多分。</li>
</ol>
<p>
このページは適当な嘘で書いてますので、まあこうしたほうがいいよぐらいで。強制力はありません。</p>
2005-11-07T07:16:04+09:00
1131315364
-
メニュー
https://w.atwiki.jp/c-cpp_homework/pages/2.html
メニュー
-[[テンプレ]]
-[[質問受付]]
-[[答えてもらうためには...]]
-[[C/C++の宿題を片付けます 52代目]]
-[[更新履歴]]
2005-11-07T07:03:19+09:00
1131314599
-
質問受付
https://w.atwiki.jp/c-cpp_homework/pages/25.html
<p>
あー、過去ログ全部Wikiにするの無理あるから、このページに既出問題書いて。過去ログ調べて追加しておく。無かったら無いって書く。</p>
<p>例:3次元以上の固有値・固有ベクトルの求め方</p>
2005-11-07T07:02:47+09:00
1131314567
-
テンプレ
https://w.atwiki.jp/c-cpp_homework/pages/4.html
<p>1 :<font color="green"><b>デフォルトの名無しさん</b></font>
:2005/10/28(金) 01:42:15</p>
<p>あなたが解けないC/C++の宿題を片付けます。<br>
気に入らない質問やその他や発言はスルーの方向で。<br>
<br>
【質問者へ】<br>
回答者の便宜のため、質問の際は以下を行うことを推奨します。<br>
<br>
・質問は【質問テンプレ】を利用してください。<br>
・問題文は、出題されたまま全文を書いてください。<br>
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。<br>
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。<br>
・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。<br>
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して<br>
投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。<br>
<br>
【質問テンプレ】<br>
[1] 授業単元:<br>
[2] 問題文(含コード&リンク):<br>
[3] 環境<br>
[3.1] OS: (Windows/Linux/等々)<br>
[3.2] コンパイラ名とバージョン: (gcc 2.9 VC 6.0等)<br>
[3.3] 言語: (C/C++/どちらでも可 のいずれか)<br>
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または
[無期限]のいずれか)<br>
[5]
その他の制限:(どこまで習っているか、標準ライブラリは使ってはいけない等々)<br>
<br>
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)<br>
<a href="http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm"
target=
"_blank">http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm</a><br>
【C 関数検索 man on WWW】<br>
<a href="http://www.linux.or.jp/JM/index.html" target=
"_blank">http://www.linux.or.jp/JM/index.html</a><br></p>
<p>【前スレ】<br>
51代目: <a href="http://pc8.2ch.net/test/read.cgi/tech/1128493272/" target=
"_blank">http://pc8.2ch.net/test/read.cgi/tech/1128493272/</a><br>
<br></p>
<dl>
<dt>2 :<a href="mailto:sage"><b>デフォルトの名無しさん</b></a>
:2005/10/28(金) 01:43:23</dt>
<dd>【過去スレ一覧】<br>
50代目: <a href="http://pc8.2ch.net/test/read.cgi/tech/1126357741/" target=
"_blank">http://pc8.2ch.net/test/read.cgi/tech/1126357741/</a><br>
49代目: <a href="http://pc8.2ch.net/test/read.cgi/tech/1123661447/" target=
"_blank">http://pc8.2ch.net/test/read.cgi/tech/1123661447/</a><br>
48代目: <a href="http://pc8.2ch.net/test/read.cgi/tech/1121471445/" target=
"_blank">http://pc8.2ch.net/test/read.cgi/tech/1121471445/</a><br>
47代目: <a href="http://pc8.2ch.net/test/read.cgi/tech/1120522752/" target=
"_blank">http://pc8.2ch.net/test/read.cgi/tech/1120522752/</a><br>
46代目: <a href="http://pc8.2ch.net/test/read.cgi/tech/1119514274/" target=
"_blank">http://pc8.2ch.net/test/read.cgi/tech/1119514274/</a><br>
45代目: <a href="http://pc8.2ch.net/test/read.cgi/tech/1118165596/" target=
"_blank">http://pc8.2ch.net/test/read.cgi/tech/1118165596/</a><br>
<br>
<br></dd>
<dt>3 :<a href="mailto:sage"><b>デフォルトの名無しさん</b></a>
:2005/10/28(金) 01:44:16</dt>
<dd>44代目: <a href="http://pc8.2ch.net/test/read.cgi/tech/1116914132/"
target="_blank">http://pc8.2ch.net/test/read.cgi/tech/1116914132/</a><br>
43代目: <a href="http://pc8.2ch.net/test/read.cgi/tech/1115794784/" target=
"_blank">http://pc8.2ch.net/test/read.cgi/tech/1115794784/</a><br>
42代目: <a href="http://pc8.2ch.net/test/read.cgi/tech/1113811213/" target=
"_blank">http://pc8.2ch.net/test/read.cgi/tech/1113811213/</a><br>
41代目: <a href="http://pc8.2ch.net/test/read.cgi/tech/1109542053/" target=
"_blank">http://pc8.2ch.net/test/read.cgi/tech/1109542053/</a><br>
40代目: <a href="http://pc5.2ch.net/test/read.cgi/tech/1107625122/" target=
"_blank">http://pc5.2ch.net/test/read.cgi/tech/1107625122/</a><br>
39代目: <a href="http://pc5.2ch.net/test/read.cgi/tech/1106650397/" target=
"_blank">http://pc5.2ch.net/test/read.cgi/tech/1106650397/</a><br>
38代目: <a href="http://pc5.2ch.net/test/read.cgi/tech/1105541524/" target=
"_blank">http://pc5.2ch.net/test/read.cgi/tech/1105541524/</a><br>
37代目: <a href="http://pc5.2ch.net/test/read.cgi/tech/1103913840/" target=
"_blank">http://pc5.2ch.net/test/read.cgi/tech/1103913840/</a><br>
36代目: <a href="http://pc5.2ch.net/test/read.cgi/tech/1102753497/" target=
"_blank">http://pc5.2ch.net/test/read.cgi/tech/1102753497/</a><br>
35代目: <a href="http://pc5.2ch.net/test/read.cgi/tech/1101568895/" target=
"_blank">http://pc5.2ch.net/test/read.cgi/tech/1101568895/</a><br>
34代目: <a href="http://pc5.2ch.net/test/read.cgi/tech/1100530682/" target=
"_blank">http://pc5.2ch.net/test/read.cgi/tech/1100530682/</a><br>
33代目: <a href="http://pc5.2ch.net/test/read.cgi/tech/1097932699/" target=
"_blank">http://pc5.2ch.net/test/read.cgi/tech/1097932699/</a><br>
32代目: <a href="http://pc5.2ch.net/test/read.cgi/tech/1097592876/" target=
"_blank">http://pc5.2ch.net/test/read.cgi/tech/1097592876/</a><br>
31代目: <a href="http://pc5.2ch.net/test/read.cgi/tech/1095075678/" target=
"_blank">http://pc5.2ch.net/test/read.cgi/tech/1095075678/</a><br>
30代目: <a href="http://pc5.2ch.net/test/read.cgi/tech/1091954342/" target=
"_blank">http://pc5.2ch.net/test/read.cgi/tech/1091954342/</a><br>
<br></dd>
<dt>4 :<a href="mailto:sage"><b>デフォルトの名無しさん</b></a>
:2005/10/28(金) 01:45:40</dt>
<dd>29代目: <a href="http://pc5.2ch.net/test/read.cgi/tech/1090765027/"
target="_blank">http://pc5.2ch.net/test/read.cgi/tech/1090765027/</a><br>
28代目: <a href="http://pc5.2ch.net/test/read.cgi/tech/1089974839/" target=
"_blank">http://pc5.2ch.net/test/read.cgi/tech/1089974839/</a><br>
27代目: <a href="http://pc5.2ch.net/test/read.cgi/tech/1089448445/" target=
"_blank">http://pc5.2ch.net/test/read.cgi/tech/1089448445/</a><br>
26代目: <a href="http://pc5.2ch.net/test/read.cgi/tech/1088860889/" target=
"_blank">http://pc5.2ch.net/test/read.cgi/tech/1088860889/</a><br>
25代目: <a href="http://pc5.2ch.net/test/read.cgi/tech/1087929711/" target=
"_blank">http://pc5.2ch.net/test/read.cgi/tech/1087929711/</a><br>
24代目: <a href="http://pc5.2ch.net/test/read.cgi/tech/1086612317/" target=
"_blank">http://pc5.2ch.net/test/read.cgi/tech/1086612317/</a><br>
23代目: <a href="http://pc5.2ch.net/test/read.cgi/tech/1085149383/" target=
"_blank">http://pc5.2ch.net/test/read.cgi/tech/1085149383/</a><br>
22代目: <a href="http://pc5.2ch.net/test/read.cgi/tech/1083050221/" target=
"_blank">http://pc5.2ch.net/test/read.cgi/tech/1083050221/</a><br>
21代目: <a href="http://pc5.2ch.net/test/read.cgi/tech/1078157730/" target=
"_blank">http://pc5.2ch.net/test/read.cgi/tech/1078157730/</a><br>
20代目: <a href="http://pc5.2ch.net/test/read.cgi/tech/1075217631/" target=
"_blank">http://pc5.2ch.net/test/read.cgi/tech/1075217631/</a><br>
19代目: <a href="http://pc5.2ch.net/test/read.cgi/tech/1073566342/" target=
"_blank">http://pc5.2ch.net/test/read.cgi/tech/1073566342/</a><br>
18代目: <a href="http://pc5.2ch.net/test/read.cgi/tech/1071407728/" target=
"_blank">http://pc5.2ch.net/test/read.cgi/tech/1071407728/</a><br>
17代目: <a href="http://pc5.2ch.net/tech/kako/1070/10704/1070469896.html"
target="_blank">http://pc5.2ch.net/tech/kako/1070/10704/1070469896.html</a><br>
16代目: <a href="http://pc5.2ch.net/tech/kako/1069/10698/1069837000.html"
target="_blank">http://pc5.2ch.net/tech/kako/1069/10698/1069837000.html</a><br>
15代目: <a href="http://pc5.2ch.net/tech/kako/1068/10689/1068950713.html"
target="_blank">http://pc5.2ch.net/tech/kako/1068/10689/1068950713.html</a><br>
<br></dd>
<dt>5 :<a href="mailto:sage"><b>デフォルトの名無しさん</b></a>
:2005/10/28(金) 01:46:36</dt>
<dd>14代目: <a href="http://pc5.2ch.net/tech/kako/1067/10671/1067175933.html"
target="_blank">http://pc5.2ch.net/tech/kako/1067/10671/1067175933.html</a><br>
13代目: <a href="http://pc5.2ch.net/tech/kako/1064/10645/1064541405.html"
target="_blank">http://pc5.2ch.net/tech/kako/1064/10645/1064541405.html</a><br>
12代目: <a href="http://pc5.2ch.net/tech/kako/1060/10607/1060706382.html"
target="_blank">http://pc5.2ch.net/tech/kako/1060/10607/1060706382.html</a><br>
11代目: <a href="http://pc5.2ch.net/tech/kako/1058/10582/1058283913.html"
target="_blank">http://pc5.2ch.net/tech/kako/1058/10582/1058283913.html</a><br>
10代目: <a href="http://pc5.2ch.net/tech/kako/1057/10570/1057070174.html"
target="_blank">http://pc5.2ch.net/tech/kako/1057/10570/1057070174.html</a><br>
09代目: <a href="http://pc5.2ch.net/tech/kako/1055/10559/1055944101.html"
target="_blank">http://pc5.2ch.net/tech/kako/1055/10559/1055944101.html</a><br>
08代目: <a href="http://pc5.2ch.net/tech/kako/1055/10550/1055056940.html"
target="_blank">http://pc5.2ch.net/tech/kako/1055/10550/1055056940.html</a><br>
07代目: <a href="http://pc5.2ch.net/tech/kako/1053/10539/1053963794.html"
target="_blank">http://pc5.2ch.net/tech/kako/1053/10539/1053963794.html</a><br>
06代目: <a href="http://pc5.2ch.net/tech/kako/1053/10530/1053045530.html"
target="_blank">http://pc5.2ch.net/tech/kako/1053/10530/1053045530.html</a><br>
05代目: <a href="http://pc5.2ch.net/tech/kako/1051/10515/1051594046.html"
target="_blank">http://pc5.2ch.net/tech/kako/1051/10515/1051594046.html</a><br>
04代目: <a href="http://pc5.2ch.net/tech/kako/1045/10450/1045074808.html"
target="_blank">http://pc5.2ch.net/tech/kako/1045/10450/1045074808.html</a><br>
03代目: <a href="http://pc5.2ch.net/tech/kako/1041/10419/1041992392.html"
target="_blank">http://pc5.2ch.net/tech/kako/1041/10419/1041992392.html</a><br>
02代目: <a href="http://pc3.2ch.net/tech/kako/1039/10397/1039772622.html"
target="_blank">http://pc3.2ch.net/tech/kako/1039/10397/1039772622.html</a><br>
01代目: <a href="http://pc3.2ch.net/tech/kako/1038/10380/1038024989.html"
target=
"_blank">http://pc3.2ch.net/tech/kako/1038/10380/1038024989.html</a></dd>
</dl>
2005-11-07T06:58:39+09:00
1131314319
-
C/C++の宿題を片付けます 52代目
https://w.atwiki.jp/c-cpp_homework/pages/24.html
http://pc8.2ch.net/test/read.cgi/tech/1130431335/
381まで消化...
行列
-[[ガウスの消去法]]
-[[隣接行列から連結判定]]
関数・ソートとか数学的な事
-[[ニュートン法]]
-[[進数変換]]
-[[分割統治法による総和]]
-[[文字列のソート]]
-[[配列のソート]]
-[[ナップザック問題]]
-[[四則演算]]
-[[整数を素数の和で表す]]
-[[最大値・最小値問題]]
-[[時刻差を求める]]
応用
-[[電卓]]
-[[万年カレンダー]]
-[[万年カレンダー2 -3段表示]]
-[[○×]]
-[[8×8オセロ]]
2005-11-07T06:51:15+09:00
1131313875
-
ガウスの消去法
https://w.atwiki.jp/c-cpp_homework/pages/23.html
<dl>
<dt>358 :<font color="green"><b>デフォルトの名無しさん</b></font>
:2005/11/06(日) 22:47:07</dt>
<dd>2w+3x+4y-5z=0<br>
5w+2x-2y+z=7<br>
3w+x-y+z=6<br>
7w+2x+y-3z=2<br>
(注)ピボット選択必須<br>
この連立一次方程式をガウスの消去法で解くプログラムを完成させよ<br>
お願いします</dd>
<dt>362 :<font color="green"><b>デフォルトの名無しさん</b></font>
:2005/11/06(日) 23:05:11</dt>
<dd>
「ガウスの消去法」でyahooで検索したら、上から4番目に詳しい説明が出た。<br>
<br>
n = 4;<br>
double a[4][4],b[4];<br>
a[0][0]=... みたいにして書けば動くはず。<br>
<br>
というか既出の問題に関してはまとめサイト欲しいな...<br>
<br></dd>
<dt>363 :<font color="green"><b>362</b></font>:2005/11/06(日)
23:17:41</dt>
<dd>ピボットなしだよ。。。ごめんなさい。</dd>
<dt>364 :<a href="mailto:sage"><b>デフォルトの名無しさん</b></a>
:2005/11/06(日) 23:21:00</dt>
<dd><a href=
"http://www.fuka.info.waseda.ac.jp/~kozo/suuchi/simple_equation/simple_equation_2.html"
target=
"_blank">http://www.fuka.info.waseda.ac.jp/~kozo/suuchi/simple_equation/simple_equation_2.html</a></dd>
<dt>370 :<a href="mailto:sage"><b>(1/3)</b></a>:2005/11/07(月)
00:07:41</dt>
<dd><a href="http://pc8.2ch.net/test/read.cgi/tech/1130431335/358" target=
"_blank">>>358</a><br>
#include <stdio.h><br>
#include <stdlib.h><br>
#include <math.h><br>
<br>
swap( double *x, double *y ){<br>
double temp;<br>
temp = *x;<br>
*x = *y;<br>
*y = temp;<br>
}<br>
main(){<br>
int i, j, k, n=4, pibot;<br>
double max;<br>
double a[4][4]={{2,3,4,-5},{5,2,-2,1},{3,1,-1,1},{7,2,1,-3}};<br>
double b[4]={0,7,6,2};<br>
int z;<br>
for(z=0;z<4;z++)<br>
printf("(%5.2f)A+(%5.2f)B+(%5.2f)C+(%5.2f)D=%5.2f\n"<br>
,a[z][0],a[z][1],a[z][2],a[z][3],b[z]);<br></dd>
<dt>371 :<a href="mailto:sage"><b>(2/3)</b></a>:2005/11/07(月)
00:08:24</dt>
<dd>for( i = 0; i < n; i++ ){<br>
/* ピボット選択 */<br>
max = 0; pibot = i;<br>
for( j=i; j<n; j++ ){<br>
if( fabs( a[j][i] ) > max ){<br>
max = fabs( a[j][i] );<br>
pibot = j;<br>
}<br>
}<br>
if( pibot != i ) {<br>
for( j = 0; j < n; j++ ){<br>
swap( &a[i][j], &a[pibot][j] );<br>
}<br>
swap( &b[i], &b[pibot] );<br>
}<br>
<br>
/* 前進消去 */<br>
for( j = i+1; j < n; j++ ){<br>
a[i][j] /= a[i][i];<br>
}<br>
b[i] /= a[i][i];<br>
for( k = i+1; k < n; k++ ){<br>
for( j = i+1; j < n; j++ ){<br>
a[k][j] -= a[i][j] * a[k][i];<br>
}<br>
b[k] -= b[i] * a[k][i];<br>
}</dd>
<dt>372 :<a href="mailto:sage"><b>(3/3)</b></a>:2005/11/07(月)
00:09:02</dt>
<dd>/* 後退代入 */<br>
for( i = n-1; i >= 0; i-- ){<br>
for( j = i+1; j < n; j++ ){<br>
b[i] -= a[i][j] * b[j];<br>
}<br>
}<br>
<br>
/* 出力 */<br>
printf( "解A=%5.2f\n", b[0] );<br>
printf( "解B=%5.2f\n", b[1] );<br>
printf( "解C=%5.2f\n", b[2] );<br>
printf( "解D=%5.2f\n", b[3] );<br>
<br>
}<br>
<br>
あと、氏ねカス<br>
<br></dd>
<dt>373 :<font color="green"><b>カス</b></font>:2005/11/07(月)
00:29:17</dt>
<dd><a href="http://pc8.2ch.net/test/read.cgi/tech/1130431335/372" target=
"_blank">>>372</a><br>
ありがとっす</dd>
</dl>
2005-11-07T06:37:30+09:00
1131313050
-
ニュートン法
https://w.atwiki.jp/c-cpp_homework/pages/22.html
<dl>
<dt>332 :<font color="green"><b>デフォルトの名無しさん</b>
◆.bx/RmFBek</font>:2005/11/06(日) 20:22:35</dt>
<dd>おねがいします。<br>
[1]数値解析<br>
[2]3sin(x)+ln(x)=0<br>
を ニュートン・ラフトン法によって、xを導け<br>
[3]WindowsXP , lcc ,C言語<br>
[4]11/8までの宿題</dd>
<dt>334 :<a href="mailto:sage"><b>デフォルトの名無しさん</b></a>
:2005/11/06(日) 21:26:01</dt>
<dd>#include <stdio.h><br>
#include <math.h><br>
<br>
double func(double x);<br>
double funcd(double x);<br>
double neuton(double x);<br>
int main(void)<br>
{<br>
double x = 4.0;<br>
int i;<br>
for(i=0;i<100;i++){<br>
printf("%e\n",x);<br>
x = neuton(x);<br>
if(x == neuton(x))break;<br>
}<br>
printf("[x] = %lf",func(x));<br>
return 0;<br>
}<br>
<br>
double func(double x)<br>
{return (3*sin(x)+log(x));}<br>
double funcd(double x)<br>
{return (3*cos(x)+1/x);}<br>
double neuton(double x)<br>
{return (x-func(x)/funcd(x));}<br>
<br>
ニュートン法ならこれで、xに近い点にある解が求まる<br>
ラフトンてのはシラネ</dd>
<dt>338 :<a href="mailto:sage"><b>デフォルトの名無しさん</b></a>
:2005/11/06(日) 21:36:35</dt>
<dd>#include <stdio.h><br>
#include <math.h><br>
#include <string.h><br>
<br>
double func(double x);<br>
double funcd(double x);<br>
double neuton(double x);<br>
int main(int argc,char** argv)<br>
{<br>
double _t = 3.0;<br>
int i;<br>
for(i=0;i<100;i++){<br>
_t = neuton(_t);<br>
if(func(_t)==0.0)break;<br>
}<br>
printf("func(%lf) = 0.0",_t);<br>
return 0;<br>
}<br>
<br>
double func(double x)<br>
{return (3*sin(x)+log(x));}<br>
double funcd(double x)<br>
{return (3*cos(x)+1/x);}<br>
double neuton(double x)<br>
{return (x-func(x)/funcd(x));}<br>
<br>
ちょっと変更</dd>
<dt>341 :<font color="green"><b>332</b>
◆.bx/RmFBek</font>:2005/11/06(日) 21:58:32</dt>
<dd><a href="http://pc8.2ch.net/test/read.cgi/tech/1130431335/334" target=
"_blank">>>334</a><br>
本当にありがとうございます。ただ、よければwhile文で<br>
精度まで分かるように プログラムできませんか?<br>
0.1 ,0.01 ,0.001 ,0.0001 ,0.00001 ,0.000001 の精度で<br>
繰り返し回数 まで出るようにしたいのです。</dd>
<dt>344 :<a href="mailto:sage"><b>デフォルトの名無しさん</b></a>
:2005/11/06(日) 22:07:51</dt>
<dd><a href="http://pc8.2ch.net/test/read.cgi/tech/1130431335/341" target=
"_blank">>>341</a><br>
いや、精度の意味がわかんね<br>
ニュートン法自体理解してないんじゃないか?<br>
<br>
繰り返し回数はi自体が繰り返し回数だよ</dd>
<dt>348 :<font color="green"><b>341</b>
◆.bx/RmFBek</font>:2005/11/06(日) 22:21:23</dt>
<dd><a href="http://pc8.2ch.net/test/read.cgi/tech/1130431335/344" target=
"_blank">>>344</a><br>
344の場合は繰り返し回数によってxの精度が変わっていますが<br>
(繰り返し回数を多くすることで答えの精度が上がる)、<br>
今回はあらかじめ精度を決めて 何回繰り返したらその精度に<br>
達するか というプログラムを作成したいのです。<br>
下に書くプログラムは 今回の問題とはちがいますけど<br>
「x=5sin(x)」をみたすxの値を 求めたものです。<br>
#include <stdio.h><br>
#include <math.h><br>
float f(float x);<br>
float g(float g);<br>
float main()<br>
{<br>
float a,b,c=4.0,h=0.01;<br>
int k=0;<br>
while(fabs(f(c))>10e-6){<br>
k++;<br>
b=c+h;<br>
a=(f(b)-f(c))/h;<br>
c=c-f(c)/a;<br>
}<br>
printf("%f\n",c);<br>
printf("\n%d",k);<br>
}<br>
float f(float x){<br>
return(x+5*sin(x));<br>
<br>
}</dd>
<dt>349 :<font color="green"><b>デフォルトの名無しさん</b></font>
:2005/11/06(日) 22:26:38</dt>
<dd>double epsilon = 0.1;<br>
ってやっといて<br>
>if(x == neuton(x))break;<br>
これを<br>
if( fabs(x - neuton(x)) >= episilon ) break;<br>
にして<br>
>printf("[x] = %lf",func(x));<br>
これを<br>
printf("[x] = %lf [loops] = %d",func(x) , i);<br>
<br>
動くかどうかはしらね。</dd>
<dt>354 :<font color="green"><b>デフォルトの名無しさん</b></font>
:2005/11/06(日) 22:38:43</dt>
<dd>349<br>
if( fabs(x - neuton(x)) <= episilon ) break;<br>
<br>
「誤差量がep以下になったら」breakする。<br>
<br></dd>
<dt>355 :<font color="green"><b>348</b>
◆.bx/RmFBek</font>:2005/11/06(日) 22:45:03</dt>
<dd><a href="http://pc8.2ch.net/test/read.cgi/tech/1130431335/354" target=
"_blank">>>354</a><br>
なぜか[loops]の値が0になるのですけど・・・</dd>
<dt>357 :<font color="green"><b>デフォルトの名無しさん</b></font>
:2005/11/06(日) 22:46:55</dt>
<dd><a href="http://pc8.2ch.net/test/read.cgi/tech/1130431335/355" target=
"_blank">>>355</a>
条件文間違ってる。これだと最初の一回しか処理しない。<br>
<a href="http://pc8.2ch.net/test/read.cgi/tech/1130431335/354" target=
"_blank">>>354</a><br></dd>
<dt>359 :<a href="mailto:sage"><b>デフォルトの名無しさん</b></a>
:2005/11/06(日) 22:47:16</dt>
<dd>#include <stdio.h><br>
#include <math.h><br>
<br>
#define ACC 1e-3<br>
<br>
double func(double x);<br>
double funcd(double x);<br>
double neuton(double x);<br>
int main(int argc,char** argv)<br>
{<br>
printf("%d回", get_acc(12.0,ACC));<br>
}<br>
int get_acc(double _x, double acc){<br>
int i=0;double x=_x;<br>
printf("%lf\n",x);<br>
while(fabs(neuton(x)-x)>acc){<br>
x=neuton(x);i++;<br>
printf("%lf\n",x);<br>
}<br>
printf("func(%lf)=%lf\n",x,func(x));<br>
return i;<br>
}<br>
<br>
double func(double x)<br>
{return (3*sin(x)+log(x));}<br>
double funcd(double x)<br>
{return (3*cos(x)+1/x);}<br>
double neuton(double x)<br>
{return (x-func(x)/funcd(x));}<br>
<br>
こういうこと?</dd>
<dd><br></dd>
</dl>
2005-11-07T06:34:44+09:00
1131312884
-
○×
https://w.atwiki.jp/c-cpp_homework/pages/21.html
<dl>
<dt>312 :<font color="green"><b>○×</b></font>:2005/11/06(日)
00:03:33</dt>
<dd>[1] 授業単元: 基礎情報科学実験<br>
[2] 問題文(含コード&リンク):<br>
○×ゲームを行うゲームを作成する。まずはサンプルプログラムを<br>
入力し、実行してみる。<br>
[3] 環境<br>
[3.1] OS: Linux<br>
[3.2] gcc 2.9 vc 6.0<br>
[3.3] 言語:C<br>
[4] 期限: 2005年11月10日15:00まで<br>
[5]
その他の制限:関数を使ったプログラミングという章です。基礎なので<br>
array,if,while, for, else
ifとか本当に基礎的なものしか学んでません。<br>
<br>
ろだの方に詳細を乗させて頂きました。どなたかご教授お願いいたします。<br>
<a href=
"http://ime.st/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm?"
target=
"_blank">http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm?</a><br>
○×ゲーム プログラミング です。</dd>
<dd>
<p>318 :<font color="green"><b>○×</b></font>:2005/11/06(日)
01:35:39</p>
</dd>
<dd>自己解決しました。</dd>
<dt>321 :<font color="green"><b>○×</b></font>:2005/11/06(日)
07:55:31</dt>
<dd>312ですけど、318俺じゃないです。<br>
解決はまだしていません。</dd>
<dt>324 :<font color="green"><b>デフォルトの名無しさん</b></font>
:2005/11/06(日) 13:49:39</dt>
<dd>自己解決しました、ありがとうございました。<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
とかやってみる。<br>
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1045.txt</dd>
</dl>
2005-11-07T06:27:37+09:00
1131312457
-
進数変換
https://w.atwiki.jp/c-cpp_homework/pages/20.html
<dl>
<dt>268 :<a href="mailto:sage"><b>デフォルトの名無しさん</b></a>
:2005/11/04(金) 21:13:46</dt>
<dd>[1] 授業単元:応用プログラミング<br>
[2] 問題文<br>
10進数からn進数へ、n進数から10進数へ変換するプログラムを作成せよ。但し、<br>
nは16以下でn進数の桁数は10桁以下。変換は以下のようなvoid型関数を定義して行え。<br>
これらの関数の引数では10進数はint型変数に入れ、n進数はchar型の配列(string型はダメ)に入れる。<br>
decTon 10進数をn進数に変換する関数。<br>
引数 10進数を渡すint型の値引数。<br>
n進数を入れる(結果)char型の配列。<br>
nの値。<br>
nTondec n進数を10進数に変換する関数。<br>
引数 n進数を渡す、char型の配列。<br>
nの値<br>
10進数(結果)を入れるint型の参照引数。<br>
データは実行例のように、繰り返し読めるようにする。<br>
<br>
注1)char型の配列の文字列を入れる場合、文字列の終わりにはヌル文字を入れる。<br>
注2)n進数でn>10の場合は、11はA、12はBと表示されるがその変換にはASCIIコードの性質を利用すること。<br>
ASCIIコード表<br>
ttp://www.psl.ne.jp/perl/pdojo00b.html<br>
[3] 環境<br>
[3.1] OS: windows<br>
[3.2] コンパイラ名とバージョン: 不明<br>
[3.3] 言語: C++<br>
[4] 期限:05年11月7日13:00まで<br>
[5] その他の制限: #include<iostream>から書き始める<br>
<br>
n進数を10進数にするだけならなんとか出来そうなのですがその逆が出来ませんorz<br>
どなたかご教示を賜りたいです。<br>
<br></dd>
<dt>269 :<a href="mailto:sage"><b>デフォルトの名無しさん</b></a>
:2005/11/04(金) 21:14:41</dt>
<dd>続き 実行例<br>
実行例)<br>
何進数から何進数へ変換しますか?:10 16<br>
10進数値を入力してください:123456<br>
123456は16進数に変換すると1E240<br>
何進数から何進数へ変換しますか?:16 10<br>
16進数値を入力してください:1E240<br>
16進数で1E240は123456<br>
何進数から何進数へ変換しますか?:5 8<br>
どちらかは、10進数にしてください</dd>
<dt>271 :<a href="mailto:sage"><b>デフォルトの名無しさん</b></a>
:2005/11/04(金) 22:35:49</dt>
<dd><a href="http://pc8.2ch.net/test/read.cgi/tech/1130431335/268" target=
"_blank">>>268</a>適当に書いてみた<br>
#include<iostream><br>
#include<cctype><br>
using namespace std;<br>
void decTon(int value,char string[],int radix){<br>
if(value<0)*string++ = '-',value = -value;<br>
char*p=string,c;<br>
do *string++ = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"[value%radix];while(value
/= radix);<br>
*string-- = '\0';<br>
while(p < string)c = *p,*p++ = *string,*string-- = c;<br>
}<br>
void nTondec(char string[],int radix,int&value){<br>
value=0;<br>
bool sign = *string=='-';<br>
string += sign;<br>
while(char c=tolower(*string++))value =
value*radix+(isdigit(c)?c-'0':c-'a'+10);<br>
if(sign)value=-value;<br>
}<br>
int main(){<br>
char buf[80];<br>
for(int from,to,value;;){<br>
cout << "何進数から何進数へ変換しますか?:";cin
>> from >> to;<br>
if(from==10 || to==10){<br>
cout << from << "進数値を入力してください:"; cin
>> buf;<br>
cout << buf << "は"<< to
<<"進数に変換すると";<br>
nTondec(buf,from,value);decTon(value,buf,to);<br>
cout << buf << endl;<br>
}else cout << "どちらかは、10進数にしてください"
<< endl;<br>
}<br>
}</dd>
<dt>272 :<a href="mailto:sage"><b>デフォルトの名無しさん</b></a>
:2005/11/04(金) 22:39:05</dt>
<dd><a href="http://pc8.2ch.net/test/read.cgi/tech/1130431335/268" target=
"_blank">>>268</a><br>
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1041.txt<br>
作ったが、最初のcstringのincludeは要らない・・・手動で削除よろ<br>
それと今読んでるAccelerated
C++に影響されて不変の表明なんて付けてたら<br>
何かやり残した気がしないでもないんだが忘れてしまった<br>
簡単にはテストしたが十分にテストよろ<br>
<br>
それと無限ループで遊んでるが、不味かったら消してくれw</dd>
</dl>
2005-11-07T06:24:41+09:00
1131312281
-
分割統治法による総和
https://w.atwiki.jp/c-cpp_homework/pages/19.html
<dl>
<dt>238 :<font color="green"><b>デフォルトの名無しさん</b></font>
:2005/11/03(木) 22:50:55</dt>
<dd>言語:C<br>
[3] 環境<br>
[3.1] OS: XP Home<br>
[3.2] コンパイラ名とバージョン: VC6.0<br>
[3.3] 言語: Cでお願いします<br>
[4] 期限: 2005年11月04日06:00まで<br>
[5] その他の制限: 特になし<br>
<br>
<br>
次の1~8を埋めよ。<br>
実数値配列の要素の総和を計算する。次の関数sumは、分割統治法を適用して作った。引数l
と r
とで、a[l]、a[l+1]、・・・、a[r-1]の和を計算することで指定している。<br>
double sum(double a[], int l, int r){<br>
int n= r-l, m= (l+r)/2;<br>
if( n==0 ) return 0.0;<br>
if( n==1 ) return 【 1 】;<br>
return sum(a, l, m)+sum(a,【 2 】,【 3 】); /* (1) */<br>
}<br>
この関数を使うと、 double
x[100];と宣言された配列に記録された100個の全要素の値の総和は、<br>
sum(x,【 4 】, 【 5 】)
という関数で求めることが出来る。<br>
sum(x, 0,
2)の呼び出しによって(1)と記した行での加算は全部で【 6 】回行われる。<br>
sum(x, 5,
10)の呼び出しによって(1)と記した行での加算は全部で【 7 】回行われる。<br>
一般にsum (x, u, v)の呼出し(0 <= u <= v <=
100)によって(1)と記した行での加算は全部で【 8 】回行われる。<br>
<br>
穴埋め問題です。本を見て調べたのですが、よく分からなかったので、宜しくお願いします。<br>
<br></dd>
<dt>239 :<a href="mailto:sage"><b>デフォルトの名無しさん</b></a>
:2005/11/03(木) 22:55:47</dt>
<dd>
こりゃ難しい。オレだったら総和は単純ループで計算するよ。<br>
<br></dd>
<dt>240 :<a href="mailto:sage"><b>デフォルトの名無しさん</b></a>
:2005/11/03(木) 22:56:53</dt>
<dd>なんで再帰呼び出ししてんだか</dd>
<dt>241 :<a href="mailto:sage"><b>デフォルトの名無しさん</b></a>
:2005/11/03(木) 22:57:26</dt>
<dd>そうわイカンザキ</dd>
<dt>243 :<a href="mailto:sage"><b>デフォルトの名無しさん</b></a>
:2005/11/03(木) 23:03:40</dt>
<dd><a href="http://pc8.2ch.net/test/read.cgi/tech/1130431335/238" target=
"_blank">>>238</a><br>
1:a[l] 2:m+1 3:r 4:0 5:101 6:1 7:4 8:v-u-1<br>
暇だったから解いたがツマラン+間違っててもシラネ<br>
つーか、なんだこの問題。こんなの分割統治にしても<br>
ある程度以上の個数なら関数呼び出しのオーバーヘッドの方がでかいだろうに<br>
クイックソートとか二分探索の方が問題としてもいいと思うがな<br>
<br></dd>
<dt>244 :<font color="green"><b>デフォルトの名無しさん</b></font>
:2005/11/03(木) 23:08:11</dt>
<dd><a href="http://pc8.2ch.net/test/read.cgi/tech/1130431335/243" target=
"_blank">>>243</a><br>
どうも、有難うございます。4、5は、同感です。1~3を代入してプログラムを動かしてみて、6~8の確認をします。<br>
有難うございます。<br>
<br></dd>
<dt>245 :<a href="mailto:sage"><b>デフォルトの名無しさん</b></a>
:2005/11/03(木) 23:10:07</dt>
<dd><a href="http://pc8.2ch.net/test/read.cgi/tech/1130431335/243" target=
"_blank">>>243</a>は微妙に間違っている罠。<br>
<br></dd>
<dt>246 :<a href="mailto:sage"><b>デフォルトの名無しさん</b></a>
:2005/11/03(木) 23:15:26</dt>
<dd><a href="http://pc8.2ch.net/test/read.cgi/tech/1130431335/245" target=
"_blank">>>245</a><br>
やっぱり間違ってたか<br>
とりあえず半閉区間[l,r)だという事まで考えたところでやる気が尽きたから適当にやったからな<br>
6以降はあんま考えてないし<br>
<br></dd>
<dt>247 :<font color="green"><b>デフォルトの名無しさん</b></font>
:2005/11/03(木) 23:16:40</dt>
<dd><a href="http://pc8.2ch.net/test/read.cgi/tech/1130431335/238" target=
"_blank">>>238</a><br>
243が答えてしまったがせっかく作ったので<br>
#include <stdio.h><br>
<br>
double sum( double a[], int l, int r )<br>
{<br>
printf( "sum( %x, %d, %d )\n", a, l , r ) ;<br>
int n = r - l ;<br>
int m = ( l + r ) / 2 ;<br>
<br>
if( n == 0 ){<br>
printf( "Nullpo\n" ) ;<br>
return 0.0 ;<br>
}<br>
if( n == 1 ){<br>
printf( "Gatt%lf\n", a[ l ] ) ;<br>
return a[ l ] ;<br>
}<br>
return sum( a, l, m ) + sum( a, m, r ) ;<br>
}<br>
<br>
int main()<br>
{<br>
double x[] = { 0, 1, 2, 3, 4, 5 } ;<br>
<br>
printf( "sum=%lf\n", sum( x, 0, sizeof( x ) / sizeof( x[0] ) ) ) ;<br>
return 0 ;<br>
}<br></dd>
</dl>
2005-11-07T06:20:55+09:00
1131312055