40歳の未経験からプログラミングスクールを受講して四十四日目
9月1日
おはようございます。ついに9月になりましたね。テックキャンプ(今受講しているプログラミングスクールも後残り、27日になり、最終課題に突入しました。
今日は、6時半前に起きてバッチリやりましたよ・・・
今日の学習
20時から翌朝7時までにオウムに喋られると問題があるのでその場合は「NG」、
それ以外は「OK」と出力するメソッドを作成します。
オウムが喋る時をtrue、喋らない時をfalseと入力することにし、時刻も同時に入力します。
呼び出し方:
parrot_trouble(talking, hour)
出力例:
parrot_trouble(true, 6) → NG
parrot_trouble(true, 7) → OK
parrot_trouble(false, 6) → OK
parrot_trouble(false, 7) → OK
1 2 3 4 5 6 7 8 9 10 11 12 |
def parrot_trouble(talking, hour)
if 20 < time < 7
if talking == true
puts "OK"
elsif talking == false
puts "NG"
end
end
parrot_trouble(a,b)
puts"オウムがしゃべったのなら#{}
|
1 2 3 4 5 6 7 |
def parrot_trouble(talking, hour)
if talking && (hour < 7 || hour > 20)
puts "NG"
else
puts "OK"
end
end
|
この条件分岐のパターンよく出てくると思いました。
40歳の未経験からプログラミングスクールを受講して四十三日目
8月31日
おはようございます。ついに昨日、朝5時半まで寝れず仮眠をとるつもりがなななんな〜と9時すぎ、やっちゃった!!朝のルーティンの唯一の運動を飛ばして、残りのルーティンをこなし、ギリギリテックキャンプの朝礼に滑り込み、昨日、一昨日で目処がタチ気が抜けてたのかもしれないので、気を入れなおします。
今日の学習した事
任意の文字列に"code"が、左から何文字目に出てくるかを返し、その数を出力するメソッドを作りましょう。
出力例:
count_code("codexxcode") → 1
count_code("aaacodebbb") → 4
count_code("cozexxcode") → 7
ヒント: indexメソッドを使用しましょう
index
indexメソッドは、文字列や配列の中に指定した文字列が含まれていた場合、その文字列の開始位置を整数の値で返します。
1 |
str.index(検索したい文字列, [検索を開始する位置])
|
1 2 3 4 5 |
def count_code(str)
puts str.index(code) + 1
end
```ruby
# コードブロックは上のように```の直後に言語名を指定してください。
|
惜しいのは、惜しいがカッコでくくるのとタブルコーテーションがない
1 2 3 |
def count_code(str)
puts (str.index("code")+1)
end
|
40歳の未経験からプログラミングスクールを受講して四十日目
8月28日金曜日
今日も朝からバタバタです。けど、ランニングしてます。
朝、高校生くらいの朝練の集団とすれ違ったのですが、同じ入っているのもステップが軽くて鮮やか、あれが走ると言うことかと改めて思いました。自分のは、競歩やな、音がずしずし聞こえる。そんな事を自覚して、今日も精一杯勉強します。勉強の仕方も若い方と違うのだろうと思いながら40には40のやり方があると納得するアラフォーです。
今日習った事
任意の文字列で
"hi"がいくつあるか数えてその数を出力するメソッドを作りましょう。
出力例:
count_hi('abc hi ho') → 1
count_hi('ABChi hi') → 2
count_hi('hihi') → 2
ヒント
scanを使用しましょう。
scan
scanは、対象の要素から引数で指定した文字列を検索して配列として返すメソッドです。
1
2
|
"foobarbazfoobarbaz".scan("ba")
=> ["ba", "ba", "ba", "ba"]で
|
でなんとなく回答すると
1 2 3 4 |
def count_hi('hi')
puts scan.("hi").size
end
|
正解は、
1 2 3 |
def count_hi(str)
puts str.scan("hi").length
end
|
まだまだ、駆け出してないいや園児ニア
40歳の未経験からプログラミングスクールを受講して三十八日目
8月26日 おはようございます。今日もルーティンワークをこなし、朝10時から家の近くのスタバでオンライン授業中です。20年前コーヒー1杯でクーラーの聞いた、ネット環境の整った場所が当たり前の世の中になるんて誰が想像できたでしょうか??
僕が、初めて触ったパソコンは、ブラウン管で場所を大きく取り、パソコン立ち上げて使い始めるまでに長いと10分くらいかかります。そしてよく、途中でフリーズして、電源を入れ直します。15分くらいかかります。こんな石器時代のパソコンを誰が知っていますか?今でこそ9割以上の方が老若男女、毎日パソコンに触れていると思いますが、当時はまだ5割くらいの方しか使ってなく、大学生でもパソコン人口は少なかったです。20年でここまで変わったんです。
今日は、前置きが長くなりましたが、今日の学習に入ります
今日習ったこと
今日のドリル
あなたは警官です。aとb二人の容疑者の取り調べをしています。
どちらも証言がTrue、またはFalseであればその証言はTrueです。
しかしどちらかがFalseでTrueであればその証言はFalse、と出力するメソッドを論理演算子を用いて作りましょう。
呼び出し方:
police_trouble(a, b)
出力例:
police_trouble(true, false) → False
police_trouble(false, false) → True
police_trouble(true, true) → True
ヒント
論理演算子
2つ以上の条件式を組み合わせた複雑な条件式を記述するために論理演算子&&
、||
、!
を使います。
以下のように使用します。
1 2 3 4 5 6 7 8 |
# aもbもtrueの場合にtrue a && b # aかbのどちらかがtrueの場合にtrue a || b # aがtrueの場合にfalse、aがfalseの場合にtrue !a |
今日習ったことでの気付き、、、論理演算子は、判定の後にtrueかfalseを必ず返してくれるそして、文字列の"true"や"false"とは別の意味であり、真偽値を表していることも知らなかった。まだまだ、かけ出せていない。園児ニア
40歳の未経験からプログラミングスクールを受講して三十七日目
8月25日火曜日
おはようございます。今日も朝のルーティンをこなしましたよ。時間ごとに細かいルーティンに分けると何ができていて何に時間を取られているのかがわかるようになったので全部終わらせることができるようになりました。
今日習ったこと
今日のドリル
任意の文字に対してn番目の文字を消し、
その消した文字を出力するメソッドを作りましょう。
呼び出し方
missing_char(string, num)
出力例:
missing_char('kitten', 1) → 'itten'
missing_char('kitten', 2) → 'ktten'
missing_char('kitten', 4) → 'kiten'
slice
sliceメソッドを用いることで、配列や文字列から指定した要素を取り出すことができます。
1 2 3 4 5 6 7 8 9 10 11 12 |
# 配列を作成します。
array = [0,1,2,3,4,5,6]
# 配列から引数で指定した要素を slice します。
ele = array.slice(1)
# 引数で指定した要素が slice されました。
puts ele
#=> 1
# 配列はもとのままです。
puts array #=> [0,1,2,3,4,5,6]
|
slice!
末尾にエクスクラメーションマーク(!)のつくメソッドを破壊的メソッドといいます。これはもとの配列や文字列を変化させるメソッドです。slice!メソッドを使用することで、指定した要素を削除することができます。
1 2 3 4 5 6 7 |
array = [0,1,2,3,4,5,6]
ele = array.slice!(1)
puts ele
# => 1
# 1が取り除かれている
puts array #=> [0,2,3,4,5,6]
|
さいきん、問題の意味が分からず解く前から苦戦してる状況で答えを見てこういう問題だったのかと理解している悪循環
今日もsliceメソッドが指定した要素を配列から取り出すしてくれるので、!で消して、更に消した文字を表示すればいいだけなのに難しく考えすぎて手が動かない
40歳の未経験からプログラミングスクールを受講して三十六日目
8月24日月曜日
おはようございます。22土曜日、23日日曜日と2日連続で投稿を敢えてやめました。理由は、少し自分の今やっている進捗状況を見直す時間をゆったりと取りたく、ブログを書かないといけない思考になると時間が取れなくなるからです。が、リフレッシュしてすっきりしましたので、今日からまた開始しましす。
今日のドリルの問題クラスFruitsを以下の使用で定義して。。。
クラス変数sum
インスタンス変数name price
クラスメソッド get_sum
合計額が表示されるように
initializeメソッド、、、引数で名前、価格をわたし、インスタンス変数nameとpriceに代入する。sumにpriceをたしあわせる
定義したら、インスタンスの生成
インスタンス名 名前 価格
apple りんご 120
orange オレンジ 200
strawberry イチゴ 60
で自分は、インスタンスをdefで定義していた。インスタンス変数なのに、、、
def apple
name = "りんご"
price = 120
みたいな定義をしていた。
インスタンス変数なのと、Fruitsクラスをnewメソッドで呼べばいいので
apple = Fruits.new("りんご",120)いいみたい。
あとは、まあまあ合ってたかな・・・
けど意外とコードかけない物で練習が足りないわ
10000時間の法則を信じてやるしかない
今日習ったこと
今日は、最終課題の前の準備と作戦を立ててました。残り3週間でフリマアプリの実装を提出で、更に1週間でオリジナルアプリかフリマアプリの発展バージョンのどちらかの要件定義を提出と最終課題提出発表文を作成でここからようやく転職活動・・・・
中々のハードなのかな!!毎日のランニングの効果がそろそろ出てもいいかなと思いながら、体力は衰えていることに痛感、
今日は、早めに切り上げて朝からがんばりまーす
40歳の未経験からプログラミングスクールを受講して三十三日目
8月21日 おはようございます。
今日もギリギリモーニングルーティンを終え、テックの朝の問題を解いてます。
また今回も問題の意味がわからないので解けない現象です。理解力無さすぎ
数値numが1以上10以下の範囲であればTrueを出力します。
outside_modeがTrueであった場合は
数値が0以下、または11以上であってもTrueを出力します。
それ以外はFalseを出力するメソッドを論理演算子&&
と||
を用いて作りましょう。
in1to10(5,false) →True
in1to10(11,false) →False
in1to10(11,true) →True
in1to10()のメソッドを作る
定義が1以上10以下ならtrue
outside_modeがtrueなら数値がなんであってもtrue,それ以外はFalse