Menu
CoddyTech

Tạo dãy (seq, :)

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

Bạn đã dùng 1:5 để tạo các dãy trong vòng lặp. Toán tử dấu hai chấm này nhanh và đơn giản, nhưng R còn cung cấp hàm seq() để bạn kiểm soát các dãy tốt hơn.

Toán tử dấu hai chấm tạo ra một dãy số nguyên liên tiếp:

print(1:5)
print(10:6)

Đầu ra:

[1] 1 2 3 4 5
[1] 10 9 8 7 6

Lưu ý rằng dãy số có thể chạy theo cả hai hướng. Khi số đầu tiên lớn hơn, dãy sẽ đếm ngược.

Hàm seq() cho bạn thêm nhiều lựa chọn linh hoạt. Bạn có thể chỉ định kích thước bước bằng đối số by:

print(seq(2, 10, by = 2))

Đầu ra:

[1] 2 4 6 8 10

Lệnh này tạo ra các số chẵn từ 2 đến 10.

Bạn cũng có thể chỉ định số lượng số muốn tạo bằng length.out:

print(seq(1, 10, length.out = 4))

Đầu ra:

[1] 1 4 7 10

R tự động tính khoảng cách để tạo ra đúng 4 số cách đều nhau. Cả hai cách đều hoạt động trơn tru trong vòng lặp, giúp bạn dễ dàng lặp qua các dãy số tùy chỉnh.

challenge icon

Thử thách

Dễ

Đọc ba số từ đầu vào: start, end và step.

Dùng hàm seq() để tạo một dãy từ start đến end với kích thước bước cho trước là step. Sau đó, dùng vòng lặp for để duyệt qua dãy này và in bình phương của mỗi số.

In mỗi giá trị bình phương trên một dòng riêng bằng print().

Ví dụ, nếu đầu vào là 2, 10 và 2, đầu ra sẽ là:

[1] 4
[1] 16
[1] 36
[1] 64
[1] 100

Đó là vì chương trình tạo ra dãy 2, 4, 6, 8, 10 rồi tính bình phương của từng số.

Tự làm thử

# Đọc đầu vào
con <- file("stdin", "r")
start <- as.numeric(suppressWarnings(readLines(con, n = 1)))
end <- as.numeric(suppressWarnings(readLines(con, n = 1)))
step <- as.numeric(suppressWarnings(readLines(con, n = 1)))

# TODO: Viết code bên dưới
# 1. Dùng seq() để tạo dãy số từ start đến end với bước nhảy đã cho
# 2. Dùng vòng lặp for để duyệt qua dãy số
# 3. Dùng print() để in ra bình phương của từng số
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 R online