ruby_learner 1.1.14 → 1.1.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/lib/ruby_learner/sequential_main.rb +19 -5
  4. data/lib/ruby_learner/version.rb +1 -1
  5. data/questions/sequential_check/section_1/part_1/lib/sentence.org +17 -6
  6. data/questions/sequential_check/section_1/part_1/spec/workplace_spec.rb +1 -1
  7. data/questions/sequential_check/section_1/part_2/lib/sentence.org +16 -6
  8. data/questions/sequential_check/section_1/part_3/lib/sentence.org +17 -7
  9. data/questions/sequential_check/section_2/part_1/lib/sentence.org +17 -6
  10. data/questions/sequential_check/section_2/part_2/lib/sentence.org +43 -0
  11. data/questions/sequential_check/section_2/part_3/lib/sentence.org +22 -5
  12. data/questions/sequential_check/section_2/part_3/spec/workplace_spec.rb +2 -2
  13. data/questions/sequential_check/section_3/part_1/lib/sentence.org +56 -0
  14. data/questions/sequential_check/section_3/part_3/lib/answer.rb +5 -0
  15. data/questions/sequential_check/section_3/part_3/lib/sentence.org +6 -0
  16. data/questions/sequential_check/section_3/part_3/lib/workplace.rb +2 -0
  17. data/questions/sequential_check/section_3/part_3/spec/spec_helper.rb +100 -0
  18. data/questions/sequential_check/section_3/part_3/spec/workplace_spec.rb +9 -0
  19. data/questions/sequential_check/section_4/part_1/lib/answer.rb +19 -8
  20. data/questions/sequential_check/section_4/part_1/lib/sentence.org +94 -11
  21. data/questions/sequential_check/section_4/part_1/lib/workplace.rb +17 -0
  22. data/questions/sequential_check/section_4/part_1/spec/workplace_spec.rb +5 -10
  23. data/questions/sequential_check/section_4/part_2/lib/answer.rb +9 -0
  24. data/questions/sequential_check/section_4/part_2/lib/sentence.org +85 -0
  25. data/questions/sequential_check/section_4/part_2/lib/workplace.rb +2 -0
  26. data/questions/sequential_check/section_4/part_2/spec/spec_helper.rb +100 -0
  27. data/questions/sequential_check/section_4/part_2/spec/workplace_spec.rb +14 -0
  28. data/questions/sequential_check/section_4/part_3/lib/answer.rb +13 -0
  29. data/questions/sequential_check/section_4/part_3/lib/sentence.org +88 -0
  30. data/questions/sequential_check/section_4/part_3/lib/workplace.rb +4 -0
  31. data/questions/sequential_check/section_4/part_3/spec/spec_helper.rb +100 -0
  32. data/questions/sequential_check/section_4/part_3/spec/workplace_spec.rb +29 -0
  33. data/questions/sequential_check/section_5/part_1/lib/answer.rb +3 -3
  34. data/questions/sequential_check/section_5/part_1/lib/sentence.org +60 -7
  35. data/questions/sequential_check/section_5/part_1/lib/workplace.rb +1 -0
  36. data/questions/sequential_check/section_5/part_1/spec/workplace_spec.rb +30 -9
  37. data/questions/sequential_check/section_5/part_2/lib/answer.rb +11 -2
  38. data/questions/sequential_check/section_5/part_2/lib/sentence.org +70 -6
  39. data/questions/sequential_check/section_5/part_2/lib/workplace.rb +9 -0
  40. data/questions/sequential_check/section_5/part_2/spec/workplace_spec.rb +18 -5
  41. data/questions/sequential_check/section_5/part_3/lib/answer.rb +17 -0
  42. data/questions/sequential_check/section_5/part_3/lib/sentence.org +74 -0
  43. data/questions/sequential_check/section_5/part_3/lib/workplace.rb +10 -0
  44. data/questions/sequential_check/section_5/part_3/spec/spec_helper.rb +100 -0
  45. data/questions/sequential_check/section_5/part_3/spec/workplace_spec.rb +22 -0
  46. data/questions/sequential_check/section_6/part_1/lib/answer.rb +7 -2
  47. data/questions/sequential_check/section_6/part_1/lib/sentence.org +13 -14
  48. data/questions/sequential_check/section_6/part_1/lib/workplace.rb +2 -0
  49. data/questions/sequential_check/section_6/part_1/spec/workplace_spec.rb +21 -9
  50. data/questions/sequential_check/section_6/part_2/lib/sentence.org +1 -0
  51. data/workshop/rubocop.yml +2 -0
  52. metadata +22 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: be370545d9aade6b255d0909db6c631ca93e47ca
4
- data.tar.gz: dfbaa28697b0cae3fe493b5dae675efc1a226905
3
+ metadata.gz: dae6005f521f3c7700e2472db90c9866d10f0cec
4
+ data.tar.gz: a8fdde0c55fc01074e63608df1c4b257bc795a3e
5
5
  SHA512:
6
- metadata.gz: e320fd45db78c78f621eb119baa8813ab085a9e96d31c3d8b9b31d4c9fefd7d99400eb5df24f5a00579b60d0d9516396d42089f9f4a543a4c50b5e580b5397e2
7
- data.tar.gz: 2807680e2ca67e62c24bdc7fbbfb90e41e6254ce526400dc6291ec84486bd0b798a1505c6d703975af45accd727dffc4969d0d58dc4f2a854252dc1e8e90749e
6
+ metadata.gz: e8e9993fc41a460f385d88d5a62d2800e377148d6c56d414d23a52825b5dc28d89caccebcb2791d10c2c48fd4eb0410c3e61e1c1cab2c32ca0e2af4e37efb70f
7
+ data.tar.gz: 1aaa3febc01cc3118052814add228f98d5d0fb1ddc54df14dd9d88ee6fc61549951aca871c7700d853475c84e8cb7bc4efb7995615b770d25cc442285859afad
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ruby_learner (1.1.12)
4
+ ruby_learner (1.1.14)
5
5
  rspec (~> 3.8)
6
6
  rubocop (~> 0.55.0)
7
7
  thor (~> 0.20.0)
@@ -32,9 +32,9 @@ class SequentialMain
32
32
  def drill_contents
33
33
  puts "section_1 1~3"
34
34
  puts "section_2 1~3"
35
- puts "section_3 1~2"
36
- puts "section_4 1"
37
- puts "section_5 1~2"
35
+ puts "section_3 1~3"
36
+ puts "section_4 1~3"
37
+ puts "section_5 1~3"
38
38
  puts "section_6 1~4"
39
39
  puts "section_7 1~2"
40
40
  puts "section_8 1"
@@ -85,17 +85,31 @@ class SequentialMain
85
85
  if final_par == 1
86
86
  next_sec = 3
87
87
  next_par = 2
88
+ elsif final_par == 2
89
+ next_sec = 3
90
+ next_par = 3
88
91
  else
89
92
  next_sec = 4
90
93
  next_par = 1
91
94
  end
92
95
  elsif final_sec == 4
93
- next_sec = 5
94
- next_par = 1
96
+ if final_par == 1
97
+ next_sec = 4
98
+ next_par = 2
99
+ elsif final_par == 2
100
+ next_sec = 4
101
+ next_par = 3
102
+ else
103
+ next_sec = 5
104
+ next_par = 1
105
+ end
95
106
  elsif final_sec == 5
96
107
  if final_par == 1
97
108
  next_sec = 5
98
109
  next_par = 2
110
+ elsif final_par == 2
111
+ next_sec = 5
112
+ next_par = 3
99
113
  else
100
114
  next_sec = 6
101
115
  next_par = 1
@@ -1,3 +1,3 @@
1
1
  module RubyLearner
2
- VERSION = "1.1.14"
2
+ VERSION = "1.1.15"
3
3
  end
@@ -1,21 +1,28 @@
1
1
  -課題-
2
2
  「Hello, Ruby.」という文字列を標準出力に表示するプログラムを作成せよ。
3
+ 出力の末尾は改行しないこと.
3
4
 
4
5
  * オブジェクトについて
5
6
  - ここでは詳しいことは説明しませんが以下のことは覚えておいてください.
6
7
  - Rubyでは文字列や配列,数値等の全てがオブジェクトです.
7
8
 
8
- * 文字列について
9
+ * メソッドと引数について
10
+ - メソッド...オブジェクト(文字列や数値等)を扱うための手続き
11
+ - 引数...メソッドに渡す情報
12
+ ex) 「 print("Hello, Ruby.\n") 」では「print」(メソッド)・「"Hello, Ruby.\n"」(引数)となります.
13
+
14
+ * 文字列
15
+ ** 文字列について
9
16
  - 文字列を作る最も一般的な方法は,シングルクオート('),ダブルクオート(")で文字を囲む方法です.
10
17
 
11
- * 特殊文字
18
+ ** 特殊文字
12
19
  - 一部の文字には特別な機能を持つものがあるので,以下にその例をいくつか示します.
13
- - 改行文字(/n)...文字列を改行させる.
14
- - タブ文字(/t)...文字列をインデントする.PCのTABキーと同じような役割.
20
+ - 改行文字(\n)...文字列を改行させる.
21
+ - タブ文字(\t)...文字列をインデントする.PCのTABキーと同じような役割.
15
22
  - 垂直タブ文字(\v)...文字列内で,垂直に一段ずらすように空白を入れる.
16
23
  - 式展開(#{})...変数の持つ値を展開する.
17
24
 
18
- * シングルクオート(')とダブルクオート(")の違い
25
+ ** シングルクオート(')とダブルクオート(")の違い
19
26
  - シングルクオートで囲まれた文字列では,特殊文字は使用できず,全て普通の文字として認識されます.
20
27
  - ダブルクオートで囲まれた文字列では,特殊文字を使用できます.
21
28
 
@@ -30,4 +37,8 @@
30
37
  ** p
31
38
  - 使用方法...p 引数
32
39
  - 機能...引数のオブジェクトを分かりやすい文字列にして標準出力に出力する.
33
- ex) 文字列であれば””で囲まれていて、数値はそのま出力する末尾にはそれぞれ改行が付け足される..
40
+ ex) 引数のオブジェクトが文字列であれば””で囲まれていて、数値はそのま出力す.る末尾にはそれぞれ改行が付け足される
41
+ ** printf
42
+ - 使用方法...printf(引数)
43
+ - 機能...C言語のprintfと同様に,書式付き文字列を使用して引数のオブジェクトを文字列に変換して標準出力に出力します.
44
+ ex) printf('%sは%d歳から!', 'お酒', 20)の場合,出力結果は「お酒は20歳から!」
@@ -4,6 +4,6 @@ RSpec.describe "section-1, part-1" do
4
4
  it "return 'Hello, Ruby.'" do
5
5
  workshop = "#{ENV['HOME']}/.ruby_learner/workshop"
6
6
  stdout, stderr, status = Open3.capture3("ruby #{workshop}/lib/workplace.rb")
7
- expect { print "#{stdout}"}.to output('Hello, Ruby.').to_stdout
7
+ expect { print "#{stdout}" }.to output('Hello, Ruby.').to_stdout
8
8
  end
9
9
  end
@@ -5,17 +5,23 @@
5
5
  - ここでは詳しいことは説明しませんが以下のことは覚えておいてください.
6
6
  - Rubyでは文字列や配列,数値等の全てがオブジェクトです.
7
7
 
8
- * 文字列について
8
+ * メソッドと引数について
9
+ - メソッド...オブジェクト(文字列や数値等)を扱うための手続き
10
+ - 引数...メソッドに渡す情報
11
+ ex) 「 print("Hello, Ruby.\n") 」では「print」(メソッド)・「"Hello, Ruby.\n"」(引数)となります.
12
+
13
+ * 文字列
14
+ ** 文字列について
9
15
  - 文字列を作る最も一般的な方法は,シングルクオート('),ダブルクオート(")で文字を囲む方法です.
10
16
 
11
- * 特殊文字
17
+ ** 特殊文字
12
18
  - 一部の文字には特別な機能を持つものがあるので,以下にその例をいくつか示します.
13
- - 改行文字(/n)...文字列を改行させる.
14
- - タブ文字(/t)...文字列をインデントする.PCのTABキーと同じような役割.
19
+ - 改行文字(\n)...文字列を改行させる.
20
+ - タブ文字(\t)...文字列をインデントする.PCのTABキーと同じような役割.
15
21
  - 垂直タブ文字(\v)...文字列内で,垂直に一段ずらすように空白を入れる.
16
22
  - 式展開(#{})...変数の持つ値を展開する.
17
23
 
18
- * シングルクオート(')とダブルクオート(")の違い
24
+ ** シングルクオート(')とダブルクオート(")の違い
19
25
  - シングルクオートで囲まれた文字列では,特殊文字は使用できず,全て普通の文字として認識されます.
20
26
  - ダブルクオートで囲まれた文字列では,特殊文字を使用できます.
21
27
 
@@ -30,4 +36,8 @@
30
36
  ** p
31
37
  - 使用方法...p 引数
32
38
  - 機能...引数のオブジェクトを分かりやすい文字列にして標準出力に出力する.
33
- ex) 文字列であれば””で囲まれていて、数値はそのま出力す.末尾にはそれぞれ改行が付け足される.
39
+ ex) 引数のオブジェクトが文字列であれば””で囲まれていて、数値はそのま出力す.る末尾にはそれぞれ改行が付け足される
40
+ ** printf
41
+ - 使用方法...printf(引数)
42
+ - 機能...C言語のprintfと同様に,書式付き文字列を使用して引数のオブジェクトを文字列に変換して標準出力に出力します.
43
+ ex) printf('%sは%d歳から!', 'お酒', 20)の場合,出力結果は「お酒は20歳から!」
@@ -6,17 +6,23 @@
6
6
  - ここでは詳しいことは説明しませんが以下のことは覚えておいてください.
7
7
  - Rubyでは文字列や配列,数値等の全てがオブジェクトです.
8
8
 
9
- * 文字列について
9
+ * メソッドと引数について
10
+ - メソッド...オブジェクト(文字列や数値等)を扱うための手続き
11
+ - 引数...メソッドに渡す情報
12
+ ex) 「 print("Hello, Ruby.\n") 」では「print」(メソッド)・「"Hello, Ruby.\n"」(引数)となります.
13
+
14
+ * 文字列
15
+ ** 文字列について
10
16
  - 文字列を作る最も一般的な方法は,シングルクオート('),ダブルクオート(")で文字を囲む方法です.
11
17
 
12
- * 特殊文字
18
+ ** 特殊文字
13
19
  - 一部の文字には特別な機能を持つものがあるので,以下にその例をいくつか示します.
14
- - 改行文字(/n)...文字列を改行させる.
15
- - タブ文字(/t)...文字列をインデントする.PCのTABキーと同じような役割.
20
+ - 改行文字(\n)...文字列を改行させる.
21
+ - タブ文字(\t)...文字列をインデントする.PCのTABキーと同じような役割.
16
22
  - 垂直タブ文字(\v)...文字列内で,垂直に一段ずらすように空白を入れる.
17
23
  - 式展開(#{})...変数の持つ値を展開する.
18
24
 
19
- * シングルクオート(')とダブルクオート(")の違い
25
+ ** シングルクオート(')とダブルクオート(")の違い
20
26
  - シングルクオートで囲まれた文字列では,特殊文字は使用できず,全て普通の文字として認識されます.
21
27
  - ダブルクオートで囲まれた文字列では,特殊文字を使用できます.
22
28
 
@@ -28,7 +34,11 @@
28
34
  ** puts
29
35
  - 使用方法...puts 引数
30
36
  - 機能...引数のオブジェクトを文字列に変換し、改行を加えて標準出力に出力する.
31
- ** p
37
+ ** p
32
38
  - 使用方法...p 引数
33
39
  - 機能...引数のオブジェクトを分かりやすい文字列にして標準出力に出力する.
34
- ex) 文字列であれば””で囲まれていて、数値はそのま出力する末尾にはそれぞれ改行が付け足される.
40
+ ex) 引数のオブジェクトが文字列であれば””で囲まれていて、数値はそのま出力す.る末尾にはそれぞれ改行が付け足される
41
+ ** printf
42
+ - 使用方法...printf(引数)
43
+ - 機能...C言語のprintfと同様に,書式付き文字列を使用して引数のオブジェクトを文字列に変換して標準出力に出力します.
44
+ ex) printf('%sは%d歳から!', 'お酒', 20)の場合,出力結果は「お酒は20歳から!」
@@ -1,12 +1,20 @@
1
1
  -課題-
2
2
  コマンドラインから5つの引数を受け取り,受け取った順に改行させて,標準出力に表示するプログラムを作成せよ.
3
3
 
4
+ * 配列
5
+ - 配列とは,いくつかのオブジェクトを順序つきで格納したオブジェクトです.格納されたオブジェクトは要素と呼びます.
6
+ - 使用方法
7
+ - 配列作成...配列名 = [オブジェクト,オブジェクト,オブジェクト].オブジェクトは複数格納できるが何も格納しなくても良い.
8
+ - 要素呼び出し...配列名[index] このindexとは配列の要素番号である.
9
+ - 要素変更...配列名[index] = オブジェクト
10
+ - 配列の大きさ(要素数)...配列名.size
11
+
4
12
  * 標準入力
5
13
  - 標準入力とはキーボード入力のことです.
6
14
  - 標準入力を行えるメソッドの紹介.
7
15
  ** STDIN
8
16
  - 標準入力のレシーバー
9
- ** レシーバ
17
+ ** レシーバー
10
18
  - ドット(.)の左側
11
19
  ** gets
12
20
  - get string の略
@@ -14,12 +22,15 @@
14
22
  - 機能...標準入力にキーボード入力された1行の文字列を取得する.
15
23
  ** readlines
16
24
  - 使用方法...変数 = STDIN.readlines
17
- - 機能...複数行の文字列を,1行ごとの配列として取得する.入力を終了する場合はCtrl+Dを行う.
25
+ - 機能...キーボードから複数行の文字列を,1行ごとの配列として取得する.入力を終了する場合はCtrl+Dを行う.
18
26
  ** ARGV
19
- - 使用方法...ARGVを書いたファイルを実行する場合に,スペースを区切りに入力文字を記入していく.
20
- ex) ruby argv.rb a b c d
27
+ - 使用方法...変数 = ARGV[index],このindexとは配列の要素番号である.
28
+ ex) ruby argv.rb a b c d 」でファイルを実行すると,ARGVという配列は「[a, b, c, d]」となる.
21
29
  - 機能...コマンドラインから引数として与えられた文字列を格納する配列オブジェクト.
22
30
 
23
31
  * chomp
24
- - 使用方法...文字列.chomp
25
- - 機能...文字列の末尾の改行文字を取り除いた新しい文字列を返す
32
+ - 使用方法...「 文字列.chomp! 」 もしくは 「 変数 = 文字列.chomp 」
33
+ - 機能...文字列の末尾の改行文字を取り除いた新しい文字列を返す.
34
+ - この場合,感嘆符(!)の有無はレシーバーの文字列を破壊的に操作するかを決めている.
35
+ ex) 「test = "Ruby!\n"」とした場合に「sample = test.chomp」とすると「sampleは"Ruby!"」「testは"Ruby!\n"」となる.
36
+  一方で,「sample = test.chomp!」とすると「sampleとtestの両方とも"Ruby!"」となる.
@@ -2,6 +2,24 @@
2
2
  コマンドラインから2つの引数を受け取って整数に変換し,その和,差,積,商をputsで表示するプログラムを作成せよ.
3
3
  ARGVは引数を文字列として受け取るため,そのままでは計算には使えないことに注意.
4
4
 
5
+ * 配列
6
+ - 配列とは,いくつかのオブジェクトを順序つきで格納したオブジェクトです.格納されたオブジェクトは要素と呼びます.
7
+ - 使用方法
8
+ - 配列作成...配列名 = [オブジェクト,オブジェクト,オブジェクト].オブジェクトは複数格納できるが何も格納しなくても良い.
9
+ - 要素呼び出し...配列名[index] このindexとは配列の要素番号である.
10
+ - 要素変更...配列名[index] = オブジェクト
11
+ - 配列の大きさ(要素数)...配列名.size
12
+
13
+ * 演算子
14
+ - 正数(+a)
15
+ - 負数(-a)
16
+ - 加算(a + b)
17
+ - 減算(a - b)
18
+ - 乗算(a * b)
19
+ - 除算(a / b)
20
+ - 割り算の余り(a % b)
21
+ - aのb乗(a ** b)
22
+
5
23
  * 識別子
6
24
  - 変数やメソッド,クラスなどに付ける名前のこと.
7
25
 
@@ -19,6 +37,25 @@ ARGVは引数を文字列として受け取るため,そのままでは計算
19
37
  - アルファベット大文字で始まる識別子.
20
38
  - オブジェクト(数値, 文字列, 配列 etc...)を保存する箱.中身を書き換えることは可能であるが警告文が表示される.
21
39
 
40
+ * 標準入力
41
+ - 標準入力とはキーボード入力のことです.
42
+ - 標準入力を行えるメソッドの紹介.
43
+ ** STDIN
44
+ - 標準入力のレシーバー
45
+ ** レシーバー
46
+ - ドット(.)の左側
47
+ ** gets
48
+ - get string の略
49
+ - 使用方法...変数 = STDIN.gets
50
+ - 機能...標準入力にキーボード入力された1行の文字列を取得する.
51
+ ** readlines
52
+ - 使用方法...変数 = STDIN.readlines
53
+ - 機能...キーボードから複数行の文字列を,1行ごとの配列として取得する.入力を終了する場合はCtrl+Dを行う.
54
+ ** ARGV
55
+ - 使用方法...変数 = ARGV[index],このindexとは配列の要素番号である.
56
+ ex) 「ruby argv.rb a b c d 」でファイルを実行すると,ARGVという配列は「[a, b, c, d]」となる.
57
+ - 機能...コマンドラインから引数として与えられた文字列を格納する配列オブジェクト.
58
+
22
59
  * オブジェクトの変換メソッド(to_*)
23
60
  - 使用方法...オブジェクト.to_* (to_*の*の部分に入る文字は以下に記す.)
24
61
  - 機能...オブジェクトを他の型に変換する.
@@ -37,3 +74,9 @@ ARGVは引数を文字列として受け取るため,そのままでは計算
37
74
  ** to_h
38
75
  - to hash
39
76
  - ハッシュに変換
77
+ * chomp
78
+ - 使用方法...「 文字列.chomp! 」 もしくは 「 変数 = 文字列.chomp 」
79
+ - 機能...文字列の末尾の改行文字を取り除いた新しい文字列を返す.
80
+ - この場合,感嘆符(!)の有無はレシーバーの文字列を破壊的に操作するかを決めている.
81
+ ex) 「test = "Ruby!\n"」とした場合に「sample = test.chomp」とすると「sampleは"Ruby!"」「testは"Ruby!\n"」となる.
82
+  一方で,「sample = test.chomp!」とすると「sampleとtestの両方とも"Ruby!"」となる.
@@ -1,7 +1,17 @@
1
1
  -課題-
2
- コマンドライン以外から値を受け取って浮動小数点数に変換せよ.
2
+ 一つずつの値をキーボードから2回受け取って浮動小数点数に変換せよ.
3
3
  さらに,受け取った値とその値の2乗をputsで表示するプログラムを作成せよ.
4
4
 
5
+ * 演算子
6
+ - 正数(+a)
7
+ - 負数(-a)
8
+ - 加算(a + b)
9
+ - 減算(a - b)
10
+ - 乗算(a * b)
11
+ - 除算(a / b)
12
+ - 割り算の余り(a % b)
13
+ - aのb乗(a ** b)
14
+
5
15
  * 識別子
6
16
  - 変数やメソッド,クラスなどに付ける名前のこと.
7
17
 
@@ -42,7 +52,7 @@
42
52
  - 標準入力を行えるメソッドの紹介.
43
53
  ** STDIN
44
54
  - 標準入力のレシーバー
45
- ** レシーバ
55
+ ** レシーバー
46
56
  - ドット(.)の左側
47
57
  ** gets
48
58
  - get string の略
@@ -50,8 +60,15 @@
50
60
  - 機能...標準入力にキーボード入力された1行の文字列を取得する.
51
61
  ** readlines
52
62
  - 使用方法...変数 = STDIN.readlines
53
- - 機能...複数行の文字列を,1行ごとの配列として取得する.入力を終了する場合はCtrl+Dを行う.
63
+ - 機能...キーボードから複数行の文字列を,1行ごとの配列として取得する.入力を終了する場合はCtrl+Dを行う.
54
64
  ** ARGV
55
- - 使用方法...ARGVを書いたファイルを実行する場合に,スペースを区切りに入力文字を記入していく.
56
- ex) ruby argv.rb a b c d
65
+ - 使用方法...変数 = ARGV[index],このindexとは配列の要素番号である.
66
+ ex) ruby argv.rb a b c d 」でファイルを実行すると,ARGVという配列は「[a, b, c, d]」となる.
57
67
  - 機能...コマンドラインから引数として与えられた文字列を格納する配列オブジェクト.
68
+
69
+ * chomp
70
+ - 使用方法...「 文字列.chomp! 」 もしくは 「 変数 = 文字列.chomp 」
71
+ - 機能...文字列の末尾の改行文字を取り除いた新しい文字列を返す.
72
+ - この場合,感嘆符(!)の有無はレシーバーの文字列を破壊的に操作するかを決めている.
73
+ ex) 「test = "Ruby!\n"」とした場合に「sample = test.chomp」とすると「sampleは"Ruby!"」「testは"Ruby!\n"」となる.
74
+  一方で,「sample = test.chomp!」とすると「sampleとtestの両方とも"Ruby!"」となる.
@@ -3,11 +3,11 @@ require "#{ENV['HOME']}/.ruby_learner/workshop/lib/workplace.rb"
3
3
 
4
4
  RSpec.describe "STDIN-check" do
5
5
  it 'given 3, return "3.0\n9.0\n"' do
6
- allow(STDIN).to receive(:gets) { 3 }
6
+ allow(STDIN).to receive(:gets) { "3" }
7
7
  expect { standard_input() }.to output("3.0\n9.0\n").to_stdout
8
8
  end
9
9
  it 'given 8, return "8.0\n64.0\n"' do
10
- allow(STDIN).to receive(:gets) { 8 }
10
+ allow(STDIN).to receive(:gets) { "8" }
11
11
  expect { standard_input() }.to output("8.0\n64.0\n").to_stdout
12
12
  end
13
13
  end
@@ -2,3 +2,59 @@
2
2
  コマンドラインから3つの数値を変数x,y,zとして受け取り整数に変換せよ.
3
3
  その後,縦x,横y,高さzの直方体の表面積と体積を求めよ.
4
4
  その求めた値をputsで'表面積=(表面積の求めた値)'と'体積=(体積の求めた値)'の形で表示するプログラムを作成せよ.
5
+
6
+ * 演算子
7
+ - 正数(+a)
8
+ - 負数(-a)
9
+ - 加算(a + b)
10
+ - 減算(a - b)
11
+ - 乗算(a * b)
12
+ - 除算(a / b)
13
+ - 割り算の余り(a % b)
14
+ - aのb乗(a ** b)
15
+
16
+ * 変数
17
+ - オブジェクト(数値, 文字列, 配列 etc...)を保存する箱.中身を書き換えることが可能.
18
+ - 以下の変数の種類は,現時点では読まなくても良い.
19
+ ** ローカル変数
20
+ - 小文字またはアンダーバー(_)で始まる識別子.ブロック内、メソッド内などローカルなスコープで有効.
21
+ ** インスタンス変数
22
+ - アットマーク(@) で始まる識別子.インスタンスされたクラス等で,そのオブジェクトが存在する間有効.
23
+ ** クラス変数
24
+ - 2つのアットマーク(@@) で始まる識別子.同じクラスのすべてのインスタンスで共有される.
25
+
26
+ * 標準入力
27
+ - 標準入力とはキーボード入力のことです.
28
+ - 標準入力を行えるメソッドの紹介.
29
+ ** STDIN
30
+ - 標準入力のレシーバー
31
+ ** レシーバー
32
+ - ドット(.)の左側
33
+ ** gets
34
+ - get string の略
35
+ - 使用方法...変数 = STDIN.gets
36
+ - 機能...標準入力にキーボード入力された1行の文字列を取得する.
37
+ ** readlines
38
+ - 使用方法...変数 = STDIN.readlines
39
+ - 機能...キーボードから複数行の文字列を,1行ごとの配列として取得する.入力を終了する場合はCtrl+Dを行う.
40
+ ** ARGV
41
+ - 使用方法...変数 = ARGV[index],このindexとは配列の要素番号である.
42
+ ex) 「ruby argv.rb a b c d 」でファイルを実行すると,ARGVという配列は「[a, b, c, d]」となる.
43
+ - 機能...コマンドラインから引数として与えられた文字列を格納する配列オブジェクト.
44
+
45
+ * 標準出力
46
+ - 引数として与えられた文字列を標準出力に出力するメソッドの紹介.
47
+ ** print
48
+ - 使用方法...print 引数
49
+ - 機能...引数のオブジェクトを文字列に変換して標準出力に出力する.
50
+ ** puts
51
+ - 使用方法...puts 引数
52
+ - 機能...引数のオブジェクトを文字列に変換し、改行を加えて標準出力に出力する.
53
+ ** p
54
+ - 使用方法...p 引数
55
+ - 機能...引数のオブジェクトを分かりやすい文字列にして標準出力に出力する.
56
+ ex) 引数のオブジェクトが文字列であれば””で囲まれていて、数値はそのま出力す.る末尾にはそれぞれ改行が付け足される
57
+ ** printf
58
+ - 使用方法...printf(引数)
59
+ - 機能...C言語のprintfと同様に,書式付き文字列を使用して引数のオブジェクトを文字列に変換して標準出力に出力します.
60
+ ex) printf('%sは%d歳から!', 'お酒', 20)の場合,出力結果は「お酒は20歳から!」
@@ -0,0 +1,5 @@
1
+ # section_3/part_3/answer.rb
2
+ # 3-3-array.rb
3
+ array = [7, 2, 4, 9, 10, 1, 5, 8, 6, 3]
4
+
5
+ p array.sort
@@ -0,0 +1,6 @@
1
+ -課題-
2
+ 数値の格納された配列(array)が与えられるので,各要素を小さい順に並べ替えて,標準出力用メソッドのpを用いて標準出力に配列を出力せよ.
3
+
4
+ ただし,この問題に必要な知識はこれまでのテキストに記載していない.回答者はインターネットで解決法を調べて回答せよ.
5
+
6
+ 検索ワードヒント: ruby. 配列. 並べ替え.