2回目のなでしこ
即行に挫折すると思いきやちゃんと1週間以内に2回目が来ました(^^;さていつまで続くやら・・・
今回の本題に移る前に前回の失敗を一つ。なでしこでもちゃんと無限ループがありました。
オンの間 //ループ内容
C++で言うところのwhile(true)といったところでしょうか。うむ、ちょっとだけ賢くなった(ぉ
さて、今日の課題に移ります。今日のネタは"horner.c"です。多項式の計算でおなじみですね。詳しいことは「ホーナー法」で検索をかければいくらでも出てくるので詳細は割愛します。
さて、特に解説することもないので(いや検索に投げただろ)早速実装に移ります。
●ホーナー法(係数で、xを) 係数サイズは、係数の配列要素数 結果は係数¥(係数サイズ−1) 媒介変数を係数サイズ−2から0まで繰り返し 結果は、結果*x+係数¥媒介変数 結果で戻る 係数は「1 2 3 4 5」 Xは2 係数でXをホーナー法 それを表示
さて今回いろいろと苦労しちゃいました(^^; まず一番苦労したのが配列の宣言。一度に初期化する方法の資料を探すのに手間取りました。検索能力低すぎorz そして盲点だったのが、最初数値をすべて全角で書いていたのですが、どうやら全角で書くと文字列と認識されているみたいで、参照して数値として計算しようとしても全部0が返って来ました。そういうわけで小文字にしたら解決。これ、原因わかるまでえらい苦労しましたorz
今回、関数で引数を2つとっていますが、なでしこで面白いのが引数を助詞で判別するという。助詞と引数名と関数名をうまく定義できれば関数呼び出し側で綺麗な日本語の文になるという。この発想はすごいなと思いました。まあ私が作った関数はあまり綺麗ではありませんが(’’;
とりあえず、2回目をこなしたので経験値が倍に膨れ上がりました。