sugulogの日記

Rubyの練習問題No.2。コードを読み解きプログラミング思考力を高めよう。

スポンサードリンク

f:id:sugulog:20200928154624p:plain
こんにちは、すぐるです!

sugulogをお読みいただきありがとうございます!!

このブログは、「 過去の無知な自分に向けてわかりやすく説明するなら?? 」を基準に書いています。

少しでもお役に立てれば幸いです。

 

今回は、コードを読み解きプログラミング思考力を高めようということで

  • Rubyの練習問題No.2

について簡単に解説します!!

その為このブログを読むことで、プログラミング思考力を高められるのはもちろん、Rubyの練習問題として理解を深めることもできます。

是非最後までご愛読ください。

 

今回は、

Rubyの練習問題No.2

について順番に解説します。

では早速、みていきましょう!!

※解説は一例です。

・Rubyの練習問題No.2

1.税込価格(1.08%)を返すメソッドを定義しなさい。

解説

f:id:sugulog:20201024175341p:plain

メソッドを定義する際はdef メソッド名()〜end間に処理を記述します。

まずは5行目で入力された値をnumに代入しています。

8行目でメソッドtaxを呼び出し、その際に引数として変数numを渡しています。

1行目で引数numを受け取り、2行目でそのnumをもとに税込価格の計算を行っています。

後は3行目でその結果を表示させることで関数を定義し、結果を表示させるまでのコードが記述できました。

2.入力された数値分処理を繰り返し、処理では1から順に出力するメソッドを定義し、その関数の中で3の倍数なら「sugu」 5の倍数なら「log」 両方の倍数なら「sugulog」と出力されるようにしなさい。

例)15と入力された場合は以下のように表示される

f:id:sugulog:20201024181620p:plain

解説

f:id:sugulog:20201024181746p:plain

まずは16行目で数値を入力させ、18行目でメソッドを呼び出し変数nを関数に渡しています。

入力された数値分繰り返し処理を行うためtimesメソッドを使用しました。

入力された数値、つまり引数で受け取ったn回数分繰り返し実行されるように定義します。

3行目ではtimesメソッドのブロック変数は繰り返す回数に対し1ずつ値が増えていくので、それを利用し変数numに自己代入しています。

ただしブロック変数は0から始まるため+1しています。

次に倍数を定義する際はある数をある数で割った時に余りのない状態、つまりnum % 3 == 0の状態であると定義できます。

後はif文を使い5の時、15の時も定義し、条件が厳しいnum % 15 == 0から順にそれぞれの処理を記述していくことで関数が定義できます。

3.配列内に1、2、3が全て入っていればTrue、それ以外はFalseと出力されるメソッドを定義しなさい。

解説

f:id:sugulog:20201024202715p:plain

check関数の引数arrayは配列を表していることにします。

今回の条件としては配列の中に1、2、3を全て含んでいるかどうか、つまりinclude?と&&を使いif文を定義してあげることによって条件を記述することができます。

4.2桁の整数を入力すると十の位と一の位の数字の足し算、十の位と一の位の数字の掛け算をそれぞれ行い、最後に2つの結果を足し合わせて出力するメソッドを定義しなさい。

解説

f:id:sugulog:20201025135230p:plain

まず13行目で値を入力してもらいnumに代入しています。

14行目ではメソッドを呼び出すと同時に引数numを渡し、1行目で受け取っています。

次に2行目ですが十の位を取り出し方法としてはある数を10で割り、その値をさらに10で割った時に出る余りの値で取得することができます。

また一の位の場合はある数を1で割り、その値をさらに10で割った時に出る余りの値で取得することができます。

解説画像のコメントアウトしている例を参照してください。

後は処理させたい条件に従い5行目で十の位と一の位を足し、6行目では十の位と一の位をかけています。

最後に足して出た値と掛けて出た値を足して出力することでメソッドが定義できます。

5.任意の2つの文字列があり、どちらかの文字列がもう一方の文字列の最後にある場合はTrueを、ない場合はFalseを出力するメソッドを定義しなさい。

例)"log"と"sugulog"ならTure、"sugu"と"sugulog"ならFalse

解説

f:id:sugulog:20201025153444p:plain

今回引数a、bは任意の2つの文字列を表しています。

まず2行目、3行目でそれぞれの文字数を数えています。

そして4 行目ですが、sliceメソッドを使い互いの文字列の中に互いの文字列が含まれているかを確認しています。

解説画像のコメントアウトしている例を参照してください。

またsliceメソッドで(-3..-1)のように指定することで、文字列の後ろから1〜3文字目までを取得することができます。

この結果、どちらかの文字列がもう一方の文字列の最後にある場合はTureを、ない場合はFalseを出力しています。

 

以上、今回のブログでした。

プログラミング思考力を高められ、Rubyの練習問題として理解を深めることもできましたか??

プログラミングは処理を組み立てていく力が非常に大切です。

少しずつプログラミングの考え方に慣れていきましょう。

今回のToDo

分からなかった問題を復習しもう一度解いてみましょう。(≧∀≦)/

sugulog.hatenadiary.jp

 

最後に!!

今後も、「 過去の無知な自分に向けてわかりやすく説明するなら?? 」を基準にブログを書いていきます。

少しでも気になった方はお試しでもいいので1度読者登録お願いします!

最後までご愛読いただきありがとうございました!!