DUNNO-CLEARブログ3.0スマートフォン用の表示で見るDUNNO-CLEARブログ3.0この広告は、90日以上更新していないブログに表示しています。見る今回もサンプルコード(python)から、Rubyへの書き換えに挑戦しました。目標は一応サンプルコードに忠実にです。5章の5.1から5.3までの、コスト関数の所までを書いてみました。出版社から配布されているサンプルコードに間違いがいくつかあり苦労しました。ret=flights[(destination,origin)][int(r[d*2+1])]この後も、同じような箇所がいくつかあり、すべて書き換えます。その他には69行目の演算子が逆でした。間違っている所はあると思います。ちなみに、本には正しいコードで書かれています。サンプルコードをそのまま実行せず、本の通りに修正すれば問題ないです。今回作成したプログラム今回もいつもの通り、"optimization.rb"と名付けました。フライトデータファイルはここのものを利用します。6補足getminutes関数ある時刻が一日の中で何分目かを出す関数です。時間計算をしたいので、引数で入ってきた文字列を日付オブジェクトに変換します。strptimeがうまく使えず、今回はTime.parseを使いました。いい方法がないかなと思っています。メンバー毎のフライトの割り出しIntegerクラスのtimesメソッドを用いました。これはブロック内を指定回数だけ実行します。カウンタも使うことができます。「初めてのRuby」では6.3.6イテレータで紹介されています。見るこの処理は同じような所が何回も出てくるので、関数でまとめてもよかったかもしれません。結果の出力(printメソッド)サンプルコードでは、文字列整形して出力していたのですが自分ではうまくいかず不格好な感じになってしまいました。フライト便の取り出しメンバーの乗るフライト便は、テキストファイルから配列に格納し検索します。サンプルコードでは、出発地・目的地をキーにその他の項目を格納していました。Rubyで同じような方法が見つからず、とりあえず全部を配列に格納しました。この配列の0番目には出発地が、1番目には目的地があるのでそれをキーに検索しさらに配列にいれ、そこから解の表現のリストと照らしあわせました。その配列要素の検索には、Array.selectを用いました。動くものができたという感じです。pythonの配列やハッシュについて勉強する必要がありそうです。PhoneWM向けソフトウェアライブラリT-01AのYoutubeの再生についてT-01A月別アーカイブ参加グループプログラミングはてなブログをはじめよう!ky2009さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。