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 6Lư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 10Lệ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 10R 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.
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ố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
4Toán tử phần 2
Toán tử logic (AND, OR)Toán tử logic phần 2 (NOT)Ôn tập: logic đơn giảnLogic vector hóa phần 1Logic vector hóa phần 22Biến và kiểu dữ liệu
Kiểu dữ liệu sốKiểu dữ liệu số nguyênKiểu dữ liệu ký tựKiểu dữ liệu logicKiểm tra kiểu dữ liệuQuy tắc đặt tênGiá trị thiếu: NATóm tắt: tạo biến8Vòng lặp
Vòng lặp forVòng lặp whileBreakNext (continue)Ôn tập: giai thừaTạo dãy (seq, :)Vòng lặp lồng nhauÔn tập: đầu vào động3Toán tử phần 1
Toán tử số họcPhép chia lấy phần nguyên và phép moduloToán tử gánÔn tập: phép tính đơn giảnToán tử so sánh6Nhập xuất cơ bản
In đầu raDùng cat để in đầu raĐầu ra với biếnĐọc đầu vào bằng readline()Cơ bản về chuyển đổi kiểuÔn tập: máy tính tuổiÔn tập: đúng hay sai9Hàm
Khai báo hàmĐối số hàmGiá trị trả vềÔn tập: hàm SigmaÔn tập: hàm xác thựcGiá trị tham số mặc địnhTự luyện tập: Trình biên dịch R online