Menu
CoddyTech

Phương thức của mảng

Thuộc phần Kiến thức nền tảng trong hành trình Ruby của Coddy. Bài học 61 trên 88.

Ruby cung cấp một số phương thức tích hợp sẵn giúp bạn làm việc với mảng dễ dàng hơn. Những phương thức này giúp bạn sắp xếp, đảo ngược và tìm phần tử mà không cần tự viết code phức tạp.

Phương thức sort sắp xếp các phần tử theo thứ tự tăng dần:

numbers = [3, 1, 4, 1, 5]
puts numbers.sort  # Đầu ra: 1, 1, 3, 4, 5

Để đảo ngược thứ tự các phần tử, hãy dùng phương thức reverse:

letters = ["a", "b", "c"]
puts letters.reverse  # Đầu ra: c, b, a

Bạn có thể kết hợp các phương thức này để sắp xếp theo thứ tự giảm dần:

scores = [85, 92, 78, 95]
puts scores.sort.reverse  # Đầu ra: 95, 92, 85, 78

Các phương thức min và max giúp nhanh chóng tìm giá trị nhỏ nhất và lớn nhất:

prices = [29, 15, 42, 8]
puts prices.min  # Đầu ra: 8
puts prices.max  # Đầu ra: 42

Để tính tổng các phần tử dạng số, hãy dùng sum:

quantities = [2, 5, 3]
puts quantities.sum  # Đầu ra: 10

Lưu ý rằng sort và reverse trả về mảng mới mà không thay đổi mảng ban đầu. Để sửa đổi trực tiếp mảng ban đầu, hãy thêm ! vào tên phương thức, như sort! hoặc reverse!.

challenge icon

Thử thách

Dễ

Đọc một dòng đầu vào chứa các số nguyên được phân tách bằng dấu phẩy (ví dụ: 5,2,8,1,9,3).

Tách đầu vào thành một mảng số nguyên, rồi in các nội dung sau trên các dòng riêng:

  1. Mảng được sắp xếp theo thứ tự tăng dần (mỗi phần tử trên một dòng riêng)
  2. Mảng được sắp xếp theo thứ tự giảm dần (mỗi phần tử trên một dòng riêng)
  3. Giá trị nhỏ nhất
  4. Giá trị lớn nhất
  5. Tổng của tất cả phần tử

In một dòng trống giữa mỗi phần để dễ đọc.

Ví dụ, nếu đầu vào là 5,2,8,1,9,3, đầu ra sẽ là:

1
2
3
5
8
9

9
8
5
3
2
1

1
9
28

Nếu đầu vào là 10,30,20, đầu ra sẽ là:

10
20
30

30
20
10

10
30
60

Nếu đầu vào là 7,3,5,1, đầu ra sẽ là:

1
3
5
7

7
5
3
1

1
7
16

Tự làm thử

# Đọc các số nguyên được phân tách bằng dấu phẩy
input = gets.chomp

# Tách đầu vào tại mỗi dấu phẩy và chuyển từng phần thành số nguyên
numbers = input.split(",").map(&:to_i)

# TODO: Viết code của bạn bên dưới
# 1. Sắp xếp mảng theo thứ tự tăng dần và in ra từng phần tử
# 2. In ra một dòng trống
# 3. Sắp xếp mảng theo thứ tự giảm dần và in ra từng phần tử
# 4. In ra một dòng trống
# 5. In ra giá trị nhỏ nhất
# 6. In ra giá trị lớn nhất
# 7. In ra tổng của tất cả phần tử
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Kiến thức nền tảng

Tự luyện tập: Trình biên dịch Ruby online