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.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/ruby_learner/sequential_main.rb +19 -5
- data/lib/ruby_learner/version.rb +1 -1
- data/questions/sequential_check/section_1/part_1/lib/sentence.org +17 -6
- data/questions/sequential_check/section_1/part_1/spec/workplace_spec.rb +1 -1
- data/questions/sequential_check/section_1/part_2/lib/sentence.org +16 -6
- data/questions/sequential_check/section_1/part_3/lib/sentence.org +17 -7
- data/questions/sequential_check/section_2/part_1/lib/sentence.org +17 -6
- data/questions/sequential_check/section_2/part_2/lib/sentence.org +43 -0
- data/questions/sequential_check/section_2/part_3/lib/sentence.org +22 -5
- data/questions/sequential_check/section_2/part_3/spec/workplace_spec.rb +2 -2
- data/questions/sequential_check/section_3/part_1/lib/sentence.org +56 -0
- data/questions/sequential_check/section_3/part_3/lib/answer.rb +5 -0
- data/questions/sequential_check/section_3/part_3/lib/sentence.org +6 -0
- data/questions/sequential_check/section_3/part_3/lib/workplace.rb +2 -0
- data/questions/sequential_check/section_3/part_3/spec/spec_helper.rb +100 -0
- data/questions/sequential_check/section_3/part_3/spec/workplace_spec.rb +9 -0
- data/questions/sequential_check/section_4/part_1/lib/answer.rb +19 -8
- data/questions/sequential_check/section_4/part_1/lib/sentence.org +94 -11
- data/questions/sequential_check/section_4/part_1/lib/workplace.rb +17 -0
- data/questions/sequential_check/section_4/part_1/spec/workplace_spec.rb +5 -10
- data/questions/sequential_check/section_4/part_2/lib/answer.rb +9 -0
- data/questions/sequential_check/section_4/part_2/lib/sentence.org +85 -0
- data/questions/sequential_check/section_4/part_2/lib/workplace.rb +2 -0
- data/questions/sequential_check/section_4/part_2/spec/spec_helper.rb +100 -0
- data/questions/sequential_check/section_4/part_2/spec/workplace_spec.rb +14 -0
- data/questions/sequential_check/section_4/part_3/lib/answer.rb +13 -0
- data/questions/sequential_check/section_4/part_3/lib/sentence.org +88 -0
- data/questions/sequential_check/section_4/part_3/lib/workplace.rb +4 -0
- data/questions/sequential_check/section_4/part_3/spec/spec_helper.rb +100 -0
- data/questions/sequential_check/section_4/part_3/spec/workplace_spec.rb +29 -0
- data/questions/sequential_check/section_5/part_1/lib/answer.rb +3 -3
- data/questions/sequential_check/section_5/part_1/lib/sentence.org +60 -7
- data/questions/sequential_check/section_5/part_1/lib/workplace.rb +1 -0
- data/questions/sequential_check/section_5/part_1/spec/workplace_spec.rb +30 -9
- data/questions/sequential_check/section_5/part_2/lib/answer.rb +11 -2
- data/questions/sequential_check/section_5/part_2/lib/sentence.org +70 -6
- data/questions/sequential_check/section_5/part_2/lib/workplace.rb +9 -0
- data/questions/sequential_check/section_5/part_2/spec/workplace_spec.rb +18 -5
- data/questions/sequential_check/section_5/part_3/lib/answer.rb +17 -0
- data/questions/sequential_check/section_5/part_3/lib/sentence.org +74 -0
- data/questions/sequential_check/section_5/part_3/lib/workplace.rb +10 -0
- data/questions/sequential_check/section_5/part_3/spec/spec_helper.rb +100 -0
- data/questions/sequential_check/section_5/part_3/spec/workplace_spec.rb +22 -0
- data/questions/sequential_check/section_6/part_1/lib/answer.rb +7 -2
- data/questions/sequential_check/section_6/part_1/lib/sentence.org +13 -14
- data/questions/sequential_check/section_6/part_1/lib/workplace.rb +2 -0
- data/questions/sequential_check/section_6/part_1/spec/workplace_spec.rb +21 -9
- data/questions/sequential_check/section_6/part_2/lib/sentence.org +1 -0
- data/workshop/rubocop.yml +2 -0
- metadata +22 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: dae6005f521f3c7700e2472db90c9866d10f0cec
|
|
4
|
+
data.tar.gz: a8fdde0c55fc01074e63608df1c4b257bc795a3e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e8e9993fc41a460f385d88d5a62d2800e377148d6c56d414d23a52825b5dc28d89caccebcb2791d10c2c48fd4eb0410c3e61e1c1cab2c32ca0e2af4e37efb70f
|
|
7
|
+
data.tar.gz: 1aaa3febc01cc3118052814add228f98d5d0fb1ddc54df14dd9d88ee6fc61549951aca871c7700d853475c84e8cb7bc4efb7995615b770d25cc442285859afad
|
data/Gemfile.lock
CHANGED
|
@@ -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~
|
|
36
|
-
puts "section_4 1"
|
|
37
|
-
puts "section_5 1~
|
|
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
|
-
|
|
94
|
-
|
|
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
|
data/lib/ruby_learner/version.rb
CHANGED
|
@@ -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
|
-
- 改行文字(
|
|
14
|
-
- タブ文字(
|
|
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
|
-
- 改行文字(
|
|
14
|
-
- タブ文字(
|
|
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
|
-
- 改行文字(
|
|
15
|
-
- タブ文字(
|
|
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
|
-
-
|
|
25
|
+
- 機能...キーボードから複数行の文字列を,1行ごとの配列として取得する.入力を終了する場合はCtrl+Dを行う.
|
|
18
26
|
** ARGV
|
|
19
|
-
-
|
|
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
|
-
-
|
|
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
|
-
-
|
|
63
|
+
- 機能...キーボードから複数行の文字列を,1行ごとの配列として取得する.入力を終了する場合はCtrl+Dを行う.
|
|
54
64
|
** ARGV
|
|
55
|
-
-
|
|
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歳から!」
|