forked from yoshitokamizato/joint_dev_task
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtask.rb
More file actions
273 lines (213 loc) · 5.84 KB
/
task.rb
File metadata and controls
273 lines (213 loc) · 5.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
# 課題の回答は このファイル をご利用下さい。
# 回答の出力を確認される際は,「ruby main.rb」をターミナルから実行して下さい。
def q1
names = ["田中", "佐藤", "佐々木", "高橋"]
# 以下に回答を記載
# ヒント ruby 配列 要素を追加
names << "斎藤"
puts names
end
def q2
array1 = ["dog", "cat", "fish"]
array2 = ["bird", "bat", "tiger"]
# 以下に回答を記載
# Ruby 配列 結合
array1 = array1 + array2
p array1
end
def q3
numbers = [1, 5, 8, 10, 2, 3, 2, 3, 3, 1, 4, 5, 9]
# 以下に回答を記載
#'3'のみの数字の数を出力
puts numbers.count(3)
end
def q4
sports = ["サッカー", "フットサル", nil, "野球", "バスケ", nil, "バレー"]
# 以下に回答を記載
sports.compact!
# 以下は変更しないで下さい
p sports
end
def q5
array1 = []
array2 = [1, 5, 8, 10]
# 以下に回答を記載
end
def q6
numbers1 = [1, 2, 3, 4, 5]
# 以下に回答を記載
new_numbers = numbers1.map { |n| n * 10 }
p new_numbers
end
def q7
array = ["1", "2", "3", "4", "5"]
# 以下に回答を記載
p array.map!(&:to_i)
# 以下は変更しないで下さい
p array
end
def q8
programming_languages = %w(ruby php python javascript)
# 以下に回答を記載
upper_case_programming_languages = programming_languages.map!(&:capitalize)
# 以下は変更しないで下さい
p programming_languages
p upper_case_programming_languages
end
def q9
names = ["田中", "佐藤", "佐々木", "高橋"]
# 以下に回答を記載
names.each.with_index(1) do |name, i|
puts "会員No.#{i} #{name}さん"
end
end
def q10
foods = %w(いか たこ うに しゃけ うにぎり うに軍艦 うに丼)
# 以下に回答を記載
foods.each do |food|
puts food.include?("うに") ? "好物です" : "まぁまぁ好きです"
end
end
def q11
sports = ["サッカー", "バスケ", "野球", ["フットサル", "野球"], "水泳", "ハンドボール", ["卓球", "サッカー", "ボルダリング"]]
# 以下に回答を記載
puts "ユーザーの趣味一覧"
sports.flatten!.uniq!.each.with_index(1) do |sport, i|
puts "No#{i} #{sport}"
end
end
def q12
data = { user: { name: "satou", age: 33 } }
# 以下に回答を記載
puts data[:user][:name]
end
def q13
user_data = { name: "神里", age: 31, address: "埼玉" }
update_data = { age: 32, address: "沖縄" }
# 以下に回答を記載
puts user_data.update(update_data)
end
def q14
data = { name: "satou", age: 33, address: "saitama", hobby: "soccer", email: "hoge@fuga.com" }
# 以下に回答を記載
p data.keys
end
def q15
data1 = { name: "saitou", hobby: "soccer", age: 33, role: "admin" }
data2 = { name: "yamada", hobby: "baseball", role: "normal" }
# 以下に回答を記載
p data1.key?(:age) ? "OK" : "NG"
p data2.key?(:age) ? "OK" : "NG"
end
def q16
users = [
{ name: "satou", age: 22 },
{ name: "yamada", age: 12 },
{ name: "takahashi", age: 32 },
{ name: "nakamura", age: 41 }
]
# 以下に回答を記載
users.each do |user|
puts "私の名前は#{user[:name]}です。年齢は#{user[:age]}歳です。"
end
end
class UserQ17
# 以下に回答を記載
attr_accessor :name, :age, :gender
def initialize(**params)
@name = params[:name]
@age = params[:age]
@gender = params[:gender]
end
def info
puts <<~TEXT
名前: #{@name}
年齢: #{@age}
性別: #{@gender}
TEXT
end
end
def q17
# ここは変更しないで下さい(ユーザー情報は変更していただいてOKです)
user1 = UserQ17.new(name: "神里", age: 32, gender: "男")
user2 = UserQ17.new(name: "あじー", age: 32, gender: "男")
user1.info
puts "-------------"
user2.info
end
class UserQ18
# 以下に回答を記載
def initialize(**user)
@name = user[:name]
@age = user[:age]
end
def introduce
if @age >= 20
"こんにちは,#{@name}と申します。宜しくお願いいたします。"
else
"はいさいまいど〜,#{@name}です!!!"
end
end
end
def q18
# ここは変更しないで下さい
user1 = UserQ18.new(name: "あじー", age: 32)
user2 = UserQ18.new(name: "ゆたぼん", age: 10)
puts user1.introduce
puts user2.introduce
end
class Item
# 以下を修正して下さい
attr_reader :name
def initialize(name:)
@name = name
end
end
def q19
# ここは変更しないで下さい
book = Item.new(name: "ゼロ秒思考")
puts book.name
end
class UserQ20
# 以下に回答を記載
attr_reader :name, :age
def initialize(**user)
@name = user[:name]
@age = user[:age]
end
end
class Zoo
# 以下に回答を記載
def initialize(**params)
@infant = params[:entry_fee][:infant]
@children = params[:entry_fee][:children]
@adult = params[:entry_fee][:adult]
@senior = params[:entry_fee][:senior]
end
def info_entry_fee(user)
entry_fee = case user.age
when 0..5
@infant
when 6..12
@children
when 13..64
@adult
when 65..120
@senior
end
puts "#{user.name}さんの入場料金は#{entry_fee}円です。"
end
end
def q20
# ここは変更しないで下さい(動物園・ユーザー情報は変更していただいてOKです)
zoo = Zoo.new(name: "旭山動物園", entry_fee: { infant: 0, children: 400, adult: 800, senior: 500 })
users = [
UserQ20.new(name: "たま", age: 3),
UserQ20.new(name: "ゆたぼん", age: 10),
UserQ20.new(name: "あじー", age: 32),
UserQ20.new(name: "ぎん", age: 108)
]
users.each do |user|
zoo.info_entry_fee(user)
end
end