アルファベットソート関数ダウングレード

当ブログのカテゴリーにも誂える 初めてのプログラミング にアーティクルを順次、Ruby及びプログラミングの両者共に入門書として有用なるとは屡ご紹介の 初めてのプログラミング に従いエントリを進捗すべき図った積りが、 投稿間隔の開くに因ってか、 遂に入りたる第10章とて著者の本格的プログラマー承認の激励を受けての功を逸ってか、 気の急いて、 本カテゴリーに於いては前回に当たる2009年4月3日 完全なシャッフル の其の又ひとつ前は2009年3月21日のアーティクル 再帰プログラム入門 にて先走りたる既に大文字小文字を考慮せしソート関数を、 当アーティクルで題意に背いてのダウングレードでバランスを取る次第なれば、 各章末に設えられたるは正解の掲載されぬも適切な練習問題に、 当ブログにて心許無さを本誌と共に抱く同志に捧ぐ、 参照、比較検討用が個人的な解釈、解答の掲載も、 次回の為のコードは其の時は冗長にて妥当性を欠き、 面目次第もあらぬとて恐れ入野の雄踏街道と、 此の身を逸らせしは三度目の掲示なるが
10章 再帰とこれまでの復習
10.1 再帰
10.2 通過儀礼:並べ替え(ソート)
10.3 練習問題
10.4 例をもう1つ
10.5 追加練習問題
と表わさる章の、10.3に項目立てらる練習問題の内、 前回の些か疑問を呈した完全なシャッフルに引き続き求められるを引用すれば
あなたの作ったソートのアルゴリズムは確かにすばらしいものでしょう。 でも、うやむやにすませたいと思うような厄介な点が残っていませんか? そう、大文字の件です。 あなたのソートアルゴリズムは一般的なソートには申し分ないのですが、 文字列をソートする場合には、本当の辞書順ではなしに、 キャラクタのフォント(ASCIIコード)の順序を使っています。 辞書では普通、その順序に大文字と小文字の区別はありません。 ということで、単語をソートする新しい(dictionary_sortのような)メソッドを作りましょう。 ただし、もし大文字で始まる単語が与えられたら、 辞書にあるのと同じ順に並べ替えた上で、 そのまま大文字を含んだ単語を返すことを忘れないように気を付けてください。
とあり、此れに対する贄たるは2009年3月21日に既に掲載済となれば、 今回は此の大文字小文字を考慮せぬ前回分を解答例として供すべく積りにてあります。
"アルファベットソート関数ダウングレード" の続きを読む

完全なシャッフル

当カテゴリー 初めてのプログラミング に投稿す度、常々其の有用性を賛美するに吝かならぬが、 Ruby及びプログラミングの両者が目的に共に入門書としてお誂え向きとて愛読の 初めてのプログラミング も今度は少し許り様相の異なるが訳はアーティクル後半に譲るとして、 各章末に設えられたる練習問題に正解の掲載されぬが心許無さを、 本誌と共に共有、ご愛読の同志に捧ぐ、 当ブログに於いては参照、比較検討用に贄とて供す個人的な解釈、解答を掲載すべきが、 本カテゴリーに於いて前回に当たる2009年3月21日のアーティクル 再帰プログラム入門 にて本格的プログラマーの皆様ようこそ、との著者の激励を受け乍、 愈々入りたるは第10章
10章 再帰とこれまでの復習
10.1 再帰
10.2 通過儀礼:並べ替え(ソート)
10.3 練習問題
10.4 例をもう1つ
10.5 追加練習問題
にて、無事イニシエーションを潜り抜けて立ち向かうが今回の 10.3に項目立てらる練習問題を引用すれば、
配列を取ってそれを完全にシャッフルして返す、 shuffleというメソッドを書いて下さい。
とあり、此れを章意に沿って、 再帰を用いて作成するを今回は当方解答例として供すべく積りにてあります。
"完全なシャッフル" の続きを読む

再帰プログラム入門

懇切丁寧、微に入り細を穿ちて著されればRuby及びプログラミングの両者が目的に共に入門書としてお誂え向きとて愛読の 初めてのプログラミング の各章の最後に設けられた練習問題では正解の掲載されぬを、 幾許か不安を感じるも在り哉無し哉、共に本誌をご愛読の同志に捧ぐ、 当ブログに於いては参照、比較検討用に生贄的に供す個人的な解釈、解答を掲載す為の本カテゴリー 初めてのプログラミング に於いて前回に当たる2009年01月26日のアーティクル メソッドの作り方(「新しい」ローマ数字)於Ruby にて第9章迄を終え、当回より入りたる第10章
10章 再帰とこれまでの復習
10.1 再帰
10.2 通過儀礼:並べ替え(ソート)
10.3 練習問題
10.4 例をもう1つ
10.5 追加練習問題
が冒頭には
おめでとう! あなたはプログラマです! この時点でプログラミングの基礎をほとんどカバーしました。
とあるは、何たる時宜を得た励まし、 此の激励を背に秘かな矜持を胸に進めば提示さる
自分自身を呼び出すメソッドを書いたとしたら、どうなるでしょう?? それが再帰(recursion)です。
が軽やかに合点されます。 再帰の例を挙げる際には階乗を用いると云う不文律を諧謔を交えて説明され、 其の後に例として上げられる大陸の大きさの測り方抔も実に楽しくあります。 扠、そうこうする内進む10.2では何やら通過儀礼と題目も恐ろしきは提出される課題の 練習問題にはあらねど今回は此方への当方の解答例を贄に供すべく思います。
"再帰プログラム入門" の続きを読む

メソッドの作り方(「新しい」ローマ数字)於Ruby

実に有効なると思われるRuby及びプログラミングの入門書 初めてのプログラミング の各章の最後に位置付けられる練習問題にて正解の掲載されぬに 幾許か不安を感じるも在りや無しや、本誌愛読ご同志に捧ぐ、 当ブログに於いては参照、比較検討用に生贄的に供す個人的な解釈、解答を掲載す為の本カテゴリー 初めてのプログラミング は前回に相当2009年1月17日のアーティクル メソッドの作り方 於Ruby にて入るは第9章の
9章 メソッドの作り方
9.1 メソッド引数
9.2 局所変数
9.3 返り値
9.4 練習問題
に提示される練習問題に応じた アラビア数字を引数として、ローマ数字を返り値とせよ は前編、課題として残したが後篇なる
やがてある人が、小さい数を大きい数の前に入れて、 小さい数を引き算するようにすれば、すさまじく便利なことに気が付きました。 この発展の結果、今ここで、あなたはてこずることになります。 先のメソッドを新しいタイプのローマ数字の文字列を返すように書き換えてみましょう。
と云うものにて、前編と同様にヒントとして与えられるのが次の引用なれば
整数の割り算と余り演算子を使います。また参考のため、ローマ数字で使われる文字を挙げておきます。
I=1 V=5 X=10 L=50 C=100 D=500 M=1000
即ち roman_numeral 4 に対し、前回は IIII と返したを、今回は IV と返されるを想定するのが 新しいローマ数字 の課題に、今回は此方への当方の解答例を贄に供すべく思います。
"メソッドの作り方(「新しい」ローマ数字)於Ruby" の続きを読む

メソッドの作り方 於Ruby

当ブログに於いてRuby及びプログラミングの入門書 初めてのプログラミング の各章の最後に位置付けられる練習問題にて正解の掲載されぬに 少しく不安を感じたかも知れぬ本誌購読のご同志の為の、 参照、比較検討用に生贄的に供す個人的な解釈、解答を掲載す為の本カテゴリー 初めてのプログラミング も第9章
9章 メソッドの作り方
9.1 メソッド引数
9.2 局所変数
9.3 返り値
9.4 練習問題
に入らば愈々其のタイトル通り、 自由自在にメソッドを作成するに至るは、 扠ではメソッドなるは何者と問えば、 当ブログでは素通りの本書第6章冒頭35頁にあるを引用するに
メソッドの技術的な定義は「 何かを行うもの 」です。オブジェクトをRubyの名詞とするなら、メソッドは動詞のようなものです。
と実に的確な比喩を以てメソッドなるものに付き説明されています。
然らば、当章ににてはメソッドの作成とは即ち、 当世流布し切った感のある検索エンジンの雄Googleから派生の「 ぐぐる 」抔が如くの造語に当たるのかも知れません。

引数、ローカル変数、及び返り値と順序立てる説明の後、 提示される練習問題は アラビア数字を引数として、ローマ数字を返り値とせよ と云うものにて、此処にヒントとして与えられるのが次の引用なれば
整数の割り算と余り演算子を使います。また参考のため、ローマ数字で使われる文字を挙げておきます。
I=1 V=5 X=10 L=50 C=100 D=500 M=1000
即ち roman_numeral 4 に対し、 IIII が返されるを想定するのが先ずは問題の前半なる 古いローマ数字 が課題に、今回は此方への当方の解答例を贄に供したいと思います。
"メソッドの作り方 於Ruby" の続きを読む

初めてのプログラミング5(イテレータ)

当ブログに於いてRuby及びプログラミングの入門書 初めてのプログラミング の各章の最後に位置付けられる練習問題にて正解の掲載されぬに 少しく不安を感じたかも知れぬ本誌購読のご同志の為の、 参照、比較検討用に生贄的に供す個人的な解釈、解答を掲載す為の本カテゴリー 初めてのプログラミング も第8章
8章 配列とイテレータ
8.1 メソッドeach
8.2 さらなる配列メソッド
8.3 練習問題
に入らば愈々本格的な香りが漂い始める感も在りや無しや、 当章に於いては配列なるプログラミングらしさを味わえる最初のオブジェクトの、 プログラミングらしさを味わう手法としての繰り返しが教示されています。
而して繰り返し手法について述べられる部分を引用すれば
あなたはこれを見て、 「これはなんとなく前に習ったループによく似てるなぁ」と思ったかもしれません。 はい、確かに似ています。 重要な違いは、eachがメソッドであるということです。
(ry
でも、eachは違います。 eachは配列のメソッドの1つなのです。 eachのようにループと「同じように振る舞う」メソッドは、 しばしば イテレータ という名前で呼ばれます。
と実に明快にイテレータなるものにつき記述されています。

次に項目立てられる中で幾つかの配列についての他メソッドの紹介の後、 用意される当章の練習問題は73頁の
好きな数だけ単語の入力をしてもらい (1行に1単語と入力が続き、 最後は空行で「Enter」のみとします)、 それをアルファベット順に並べ替えて出力するようなプログラムです。
にて「ヒント」として次ページに
配列を順番に並べ替える(ソートする) には素敵なメソッドsortがあります。 これを使いましょう。
とあれば、今回は此方への当方の解答例を贄に供したいと思います。
"初めてのプログラミング5(イテレータ)" の続きを読む

初めてのプログラミング4(閏年)

当ブログに於いてRuby及びプログラミングの入門書 初めてのプログラミング の各章の最後に位置付けられる練習問題にて正解の掲載されぬに 少しく不安を感じたかも知れぬ本誌購読のご同志の為の、 参照、比較検討用に生贄的に供す個人的な解釈、解答を掲載したのは
7章 流れ制御
7.1 比較メソッド
7.2 分岐
7.3 ループ
7.4 論理を少し
7.5 練習問題
に対するアーティクルとして、 での64頁の練習問題
7.5.1. 99本のビールが壁に
遠足などでよく歌われる古典的な童謡の歌詞、「 99 Bottles of Beer on the Wall 」を出力するプログラムを書いてみましょう。
に対するものでした。

当章には他にも練習問題が65頁に
7.5.2. 耳の遠いおばあちゃん
及び
7.5.3. 耳の遠いおばあちゃんのプログラムの拡張
と用意され、入力の大文字、小文字に対する判定の上、 表示を分岐させる要請なのですが、他にも最後に66頁に一問
7.5.4. うるう年
開始の年と終わりの年を聞いて、 その間にあるすべてのうるう年を (もし開始や終了の年がうるう年だったらそれも含めて) 表示するプログラムを書いてみましょう。 うるう年は(1984年や2004年のように)4で割り切れる数の年です。 ただし、100で割り切れる年(例えば、1800年や1900年)はうるう年では なくて 、さらに、それは 400で割り切れない限り です(つまり、1600年や2000年はうるう年です)。 けっこう複雑ですね。
とあれば、今回は此方への当方の解答例を贄に供したいと思います。
"初めてのプログラミング4(閏年)" の続きを読む

初めてのプログラミング3

当ブログ2008年8月13日のアーティクル 初めてのプログラミング2 にて提示したのはRuby及びプログラミングの入門書 初めてのプログラミング での
7章 流れ制御
7.1 比較メソッド
7.2 分岐
7.3 ループ
7.4 論理を少し
7.5 練習問題
なる章立てに於ける練習問題にて正解の掲載されぬ本誌を購読の上、 少しく不安を感じたかも知れぬとなればご同志の為の、 参照、比較検討用に供す個人的な解釈、解答でした。

2006年9~10月当時、 上記アーティクルでご紹介以外にも、 ひとつ類似コードファイルの残り居れば、 今回は其れを贄に供したいと思います。
"初めてのプログラミング3" の続きを読む

初めてのプログラミング2

当ブログ2008年6月20日のアーティクル 初めてのプログラミング でご紹介のRuby及びプログラミングの入門書 初めてのプログラミング の良書なるを感じ乍、学習を進めた2006年9月、
1章 プログラミングを始める準備
2章 数と計算
3章 文字列
4章 変数と代入
5章 数と文字列の変換
6章 メソッド
と項目を重ねたのは如何やら黙読のみにて、 用意された練習問題を実践した形跡もない処、次章に至って、 関連フォルダ内に其れらしき名を示したファイルの残り居り、目次を参照すれば
7章 流れ制御
7.1 比較メソッド
7.2 分岐
7.3 ループ
7.4 論理を少し
7.5 練習問題
と、此処でループの登場に依ってか依らずか、 練習問題を実際に書き、走らせて見た様です。

其の際、此の書にては練習問題に答えの必要無しとの著者の判断も首肯出来る処乍、 多少の困惑も感じた記憶がありますから、 もしや同様の軽い乍も感じた不安を軽減出来る方の存在するならとの思いから、 ひっそりと投稿させていただきます。
"初めてのプログラミング2" の続きを読む

初めてのプログラミング

手元のスクリプトのタイムスタンプを見ると2006年9月上旬から、 10月一杯、様々習っていたのが見て取れるのが 初めてのプログラミング なる書籍にて、2006年7月25日初版1刷りを数ヶ月後手に入れ、 二月程掛けて自分なりに学んでいたようではあります。
当書籍は邦題「初めてのプログラミング」、 原題は"Learn To Program"と何処にも Ruby の文字は見当たりませんが、 歴とした Ruby 初学者の為上梓されており、それは序文を拝読すれば、 著者のプログラミング言語たる Ruby への愛情、熱情といった感情、然う為さしめた要因も含めた上で、 プログラミングを学ぶ際、其の言語に慣れ親しみ、使い続けることを考えた上でも、 Ruby が最適であると判断、然るべくして入門者用に選択したプログラム言語であるとの旨、 大いに伝わり、実際教科書として使用してみた感じからも首肯出来る処ですが、 如何せん書肆にて陳列時、何処にも Ruby の字面の見当たらねば、 膨大なる知識の倉庫の総てに於いて専門家たることを期待できる訳も無い書肆店員の棚作りでは、 C抔のプログラミングコーナーの片隅にひっそりと隠れるように置かれ、 終ぞ Ruby コーナーに見かけることも無く、 Rails 以来多くの棚を割かれる目立つコーナーに積まれぬのは全くの損失に常々思っています。

著者はノルウェー在住の Chris Pine 氏にて本書上梓以前の原型をオンライン上で運営しておられ、 当書は当時の読者との遣り取りを踏まえた、昔で云えば版を重ねたものにあたり、 配慮を重ねられ痒い箇所に手の届く作りになっており、略迷うことなく最後迄読み切ることが出来ました。
また当通読完了の為し得られる邦版には、邦訳者で自らも Ruby を愛用される 西山伸氏の力も以て大きなものと思われます。