TEHC CAMP 91期夜間休日 卒業後活動記録

6/24 学習内容&まとめ

Rubyドリル

if else

平日ではないまたは、休暇の場合はtrue

休暇ではない場合はfalseと条件分岐させるメソッドを作ります。

出力例:呼び出し元の引数に、trueまたは falseを2つ渡します。

第一引数の値は「平日かどうか」第二引数には「休暇かどうか」を、

trueまたはfalseで表します。

sleep_in(false, false) → true
sleep_in(true, false) → false
sleep_in(false, true) → true

def sleep_in(weekday, vacation)
 if (weekday != true) || (vacation == true)
  puts true
 else
  puts false
 end
end

解説:

第一引数、第二引数にtrueもしくはfalseを渡すメソッドになります。

第一引数には「平日である = 土日祝日ではない」場合にtrue

第二引数には、「休暇をとっている」場合はtrue

この2つの引数から、平日ではないもしくは休暇の場合はtrue、

平日である場合はfalseを返すためにif文で条件分岐しています。

「平日ではない」のように「〜ではない」と否定の条件の場合は

「!=」を使用します。

weekday != true で平日ではないとなります。

論理演算子||を使い、平日ではないまたは休暇の場合と定義しています。

簡単な計算を行うRubyプログラム

2桁以上の整数を入力すると、十の位と一の位の数字を足し算、

十の位と一の位の数字を掛け算を行い、最後に2つの結果を足し合わせて

出力するプログラムを作ります。

出力例:

> 二桁の整数を入力してください
> 15

# 1 + 5と 1 * 5をそれぞれ計算

> 足し算結果と掛け算結果の合計値は11です
def addition(a, b)
  a + b
end

def multiplication(a,b)
  a * b
end

def slice_num(num)
  # 10の位
  tens_place = (num / 10) % 10
  # 1の位
  ones_place = num % 10
  return tens_place, ones_place
end

puts "二桁の整数を入力してください"
input = gets.to_i
X, Y = slice_num(input)
add_result = addition(X, Y)
multiple_result = multiplication(X, Y)
puts "足し算結果と掛け算結果の合計値は#{add_result + multiple_result}です"

解説:

ある整数を取り出すには

①取り出したい数字の桁数で割る
② ①の結果をさらに10で割った、そのあまりが任意の桁の数字

です。

Rubyの整数同士の計算だと返り値は小数点以下は切り捨てになります。

そのルールを利用して、変数X、Yに代入しています。

変数にカンマでくきると、同時に複数の変数を定義できます。

X、Yに10の位、1の位を同時に代入しています。

最後に結果を足して合計値を出力します。

末尾の文字列を3回出力する

対象の文字列の末尾に位置する文字を取得し、それらを任意の回数

繰り返して出力するプログラムを作ります。

要件:

  • 対象の文字列から末尾にある2文字を取得すること
  • 取得した2文字を3回繰り返して出力すること

出力例:

extra_end('Hello') → 'lololo'
extra_end('ab') → 'ababab'
extra_end('Hi') → 'HiHiHi'

使うメソッド:

sliceメソッド

配列や文字列から指定した要素を取り出す事ができるメソッド

# 配列を作成します
array = [0,1,2,3,4,5,6]

# 配列から引数で指定した要素を取得します
ele1 = array.slice(1)
puts ele1
#=> 1

# 配列番号-4から4つ分の要素をsliceします
ele2 = array.slice(-4,4)
puts ele2
#=> 3, 4, 5, 6

# 配列はもとのままです
puts array 
#=> [0,1,2,3,4,5,6]
def extra_end(str)
 right2 = str.slice(-2, 2)
 puts right2 * 3
end

extra_end('Hello') #"Hello"で呼び出した場合

解説:

extra_endの仮引数strに値を渡し、strに対してsliceメソッドを使用します。

sliceメソッドの1つ目の引数で文字列の後ろから2番目の要素を基準点として

います。2つ目の引数で基準点から2つ分の要素を取り出す指定になります。

そして、取り出した要素を3回繰り返すようにします。

if else

仕様:

・メソッド外で定義された3つの正の整数を、それぞれ仮引数a,b,cとして

numメソッド内で使用する。
・第一引数と第二引数は足し算をし、変数abに代入。
・第三引数が3以下の場合は変数abを第三引数の値で割り、結果を出力する。
・第三引数が4以上の場合は変数abを第三引数の値で掛け、結果を出力する。

出力例:

num(1,5,3) → 2
num(1,5,5) → 30
num(1,9,-2) → -5

def num(a,b,c)
 ab = a + b
 if c <= 3
  puts ab / c
 else
  puts ab * c
 end
end

解説:

1つ目の仕様をab = a + b で第一引数aと第二引数bを足すようにしています。

つづいて、第三引数cが3以下なのかをc <= 3の条件分岐します。

trueの場合は変数abをcで割る処理、falseの場合は変数abにcをかける

処理をするようにしています。

progate

学習コースⅥ

進捗:完了

復習

#複数行の入力フォーム
<textarea>
#Ⅰ行の入力フォーム
<input> *終了タグは必要ない
#フォームに入力された値を送信するためにname属性を指定する
<p>ユーザー名</p>
<input name="name">
<p>メールアドレス</p>
<input name="email">
#フォームの初期値をvalue属性で指定する
<p>ユーザー名</p>
<input value="たろう">
<p>メールアドレス</p> #Rubyコードを使う場合
<input value="<%= @user.email %>">
#保存が成功したときサクセスメッセージを表示させる
def create
 @user = User.new()
  if @user.save
   redirect_to()
   flash[:notice] = "登録が完了しました"
  else
   render()
  end
end

一言日記

昨日はかなり寝坊してしまいました。

テックキャンプが終わってから、モチベーションが低下気味。

というよりこれからどうしようか悩んでいるのが原因かな。

1つ目の道は就職すること

2つ目はフリーランスとして仕事をすること

ただ、どちらも経験がない私にできるのだろうかという不安…

そして、就職することへの不安。

これまで、人間関係のトラブルが多かった。もうこりごり。

だから、就職して人間関係が大丈夫かなって事と、

新しいことに挑戦する恐怖感がつきまとう。

思い切ってこのままフリーランスって道もあるけど、

生活できるだけの収入を得られるか不安。

テックキャンプのスクールを決めた時は

プログラミングを学んで、クラウドワークスとかで

受注できるくらいにはなっているかと思ったけど

結局、勉強しようが関係ないってことを実感。

勉強じゃなくて、行動できるかどうかの方が大切。

とりあえず、やってみて

うまく行かなかったときに勉強するのがいい。

勉強しても収入につながらなければモチベーションが下がる。

頭にもはいらない。

この仕事のここがわからないから

わからないところを勉強する

って順序がいい気がする。

誰かもそんなこと言ってたし…

石橋を叩いて叩いて…ビビる人。

小さいことから行動しよう。

できそうな案件に応募してみよう。

就活も8月くらいまで頑張って

決まりそうになかったら、そのとき考えよう。

という思考がぐるぐるしてたので

昨日はおもいきって、1日海外ドラマ見てました(笑)

ゲーム・オブ・スローンズ ファイナル・シーズン」

アマゾンで購入しました(笑)

ジョン・スノウがかっこいい

デナーリス・ターガリエンはきれい。最後はこわかった…

1話見てやめるとか無理なんで1日で全話見ました(笑)

いや〜おもしろかった。

何度も見直したい海外ドラマの一つですね。

さて、今日は勉強を頑張ろう!