Xử lý danh sách (List)
Thay vì chỉ lưu một giá trị trong một biến, ta dùng danh sách (list) để lưu nhiều giá trị cùng lúc, rồi áp dụng lại các kỹ thuật đã học (vòng lặp, điều kiện) để xử lý toàn bộ dữ liệu đó. Gồm 2 phần: ôn lý thuyết danh sách, sau đó thực hành 25 bài - tính tổng/trung bình, tìm lớn nhất/nhỏ nhất, đếm, tìm kiếm, loại bỏ trùng lặp…
Phần 1 - Lý thuyết: Danh sách
Phần tiêu đề “Phần 1 - Lý thuyết: Danh sách”Tạo danh sách
Phần tiêu đề “Tạo danh sách”Vào nhóm Các biến số (màu đỏ cam) → bấm Tạo một danh sách → đặt
tên (ví dụ (danh sách :: list)) → chọn phạm vi, tương tự tạo biến. Xem thêm ở
bài Danh sách.
Thêm, xoá, thay thế phần tử
Phần tiêu đề “Thêm, xoá, thay thế phần tử”thêm phần tử [10] vào trong [danh sách v] xóa phần tử thứ (1) của [danh sách v] Xóa hết tất cả trong liệt kê [danh sách v] thêm phần tử [5] tại vị trí (1) của [danh sách v] thay thế phần tử thứ (1) của danh sách [danh sách v] bằng [99]
Đọc phần tử và kiểm tra
Phần tiêu đề “Đọc phần tử và kiểm tra”(phần tử thứ (1) của [danh sách v]) (kích thước của [danh sách v]) <[danh sách v] chứa phần tử [10]?> (số thứ tự của [10] trong [danh sách v])
(kích thước của [danh sách v]) trả về số phần tử hiện có trong danh sách - luôn
dùng làm điều kiện dừng khi duyệt qua toàn bộ danh sách. (số thứ tự của () trong [danh sách v]) trả về 0 nếu giá trị đó không có trong danh sách.
Duyệt qua toàn bộ danh sách
Phần tiêu đề “Duyệt qua toàn bộ danh sách”khi bấm vào @greenFlag đặt [i v] thành (1) lặp lại cho đến khi <(i) > (kích thước của [danh sách v])> nói (phần tử thứ (i) của [danh sách v]) trong (0.3) giây thay đổi [i v] một lượng (1)
Kết hợp biến đếm (i) với lặp lại cho đến khi <(i) > (kích thước của [danh sách v])> để đi qua từng phần tử - cách làm này lặp lại ở hầu hết các
bài dưới đây.
Nhập nhiều phần tử vào danh sách (mẫu dùng lại nhiều lần)
Phần tiêu đề “Nhập nhiều phần tử vào danh sách (mẫu dùng lại nhiều lần)”khi bấm vào @greenFlag Xóa hết tất cả trong liệt kê [danh sách v] hỏi [Nhập số lượng phần tử:] và đợi đặt [n v] thành (trả lời) đặt [i v] thành (1) lặp lại cho đến khi <(i) > (n)> hỏi [Nhập phần tử tiếp theo:] và đợi thêm phần tử (trả lời) vào trong [danh sách v] thay đổi [i v] một lượng (1)
Hỏi trước số lượng phần tử N, rồi lặp lại N lần việc hỏi và thêm vào danh sách - đây là bước nhập liệu đầu tiên của gần như mọi bài thực hành bên dưới, nên chỉ giải thích một lần ở đây.
Phần 2 - Thực hành: 25 bài xử lý danh sách
Phần tiêu đề “Phần 2 - Thực hành: 25 bài xử lý danh sách”Nhóm 1: Thao tác cơ bản với danh sách
Phần tiêu đề “Nhóm 1: Thao tác cơ bản với danh sách”Bài 1: Nhập và hiển thị danh sách
Phần tiêu đề “Bài 1: Nhập và hiển thị danh sách”Nhập N số bất kỳ vào danh sách, sau đó hiện danh sách lên sân khấu.
Xem lời giải
Vui lòng liên hệ tác giả (thông tin ở cuối trang) để mua bộ bài giải và code. Xin cảm ơn.
Bài 2: Xoá phần tử theo vị trí
Phần tiêu đề “Bài 2: Xoá phần tử theo vị trí”Nhập danh sách, sau đó xoá phần tử tại vị trí do người dùng nhập.
Xem lời giải
Vui lòng liên hệ tác giả (thông tin ở cuối trang) để mua bộ bài giải và code. Xin cảm ơn.
Bài 3: Chèn phần tử vào vị trí cho trước
Phần tiêu đề “Bài 3: Chèn phần tử vào vị trí cho trước”Nhập danh sách, sau đó chèn thêm một giá trị vào vị trí do người dùng chọn (không ghi đè phần tử cũ).
Xem lời giải
Vui lòng liên hệ tác giả (thông tin ở cuối trang) để mua bộ bài giải và code. Xin cảm ơn.
Bài 4: Thay thế phần tử theo vị trí
Phần tiêu đề “Bài 4: Thay thế phần tử theo vị trí”Nhập danh sách, sau đó thay giá trị tại một vị trí do người dùng chọn bằng giá trị mới.
Xem lời giải
Vui lòng liên hệ tác giả (thông tin ở cuối trang) để mua bộ bài giải và code. Xin cảm ơn.
Bài 5: Xoá toàn bộ danh sách (làm mới)
Phần tiêu đề “Bài 5: Xoá toàn bộ danh sách (làm mới)”Nhập danh sách, hiện số phần tử hiện có, rồi xoá sạch toàn bộ và hiện lại số phần tử (bằng 0).
Xem lời giải
Vui lòng liên hệ tác giả (thông tin ở cuối trang) để mua bộ bài giải và code. Xin cảm ơn.
Nhóm 2: Duyệt và tính toán trên danh sách
Phần tiêu đề “Nhóm 2: Duyệt và tính toán trên danh sách”Bài 6: Tính tổng các phần tử
Phần tiêu đề “Bài 6: Tính tổng các phần tử”Nhập danh sách các số, tính tổng tất cả phần tử.
Xem lời giải
Vui lòng liên hệ tác giả (thông tin ở cuối trang) để mua bộ bài giải và code. Xin cảm ơn.
Bài 7: Tính trung bình cộng các phần tử
Phần tiêu đề “Bài 7: Tính trung bình cộng các phần tử”Nhập danh sách các số, tính trung bình cộng.
Xem lời giải
Vui lòng liên hệ tác giả (thông tin ở cuối trang) để mua bộ bài giải và code. Xin cảm ơn.
Bài 8: Đếm số phần tử chẵn
Phần tiêu đề “Bài 8: Đếm số phần tử chẵn”Nhập danh sách các số, đếm xem có bao nhiêu phần tử là số chẵn.
Xem lời giải
Vui lòng liên hệ tác giả (thông tin ở cuối trang) để mua bộ bài giải và code. Xin cảm ơn.
Bài 9: Đếm số phần tử lớn hơn một giá trị cho trước
Phần tiêu đề “Bài 9: Đếm số phần tử lớn hơn một giá trị cho trước”Nhập danh sách và một ngưỡng, đếm xem có bao nhiêu phần tử lớn hơn ngưỡng đó.
Xem lời giải
Vui lòng liên hệ tác giả (thông tin ở cuối trang) để mua bộ bài giải và code. Xin cảm ơn.
Bài 10: Tính tổng các số chẵn trong danh sách
Phần tiêu đề “Bài 10: Tính tổng các số chẵn trong danh sách”Nhập danh sách các số, chỉ cộng dồn những phần tử là số chẵn.
Xem lời giải
Vui lòng liên hệ tác giả (thông tin ở cuối trang) để mua bộ bài giải và code. Xin cảm ơn.
Bài 11: Đếm số lượng số nguyên tố trong danh sách
Phần tiêu đề “Bài 11: Đếm số lượng số nguyên tố trong danh sách”Nhập danh sách các số nguyên (lớn hơn 1), đếm xem có bao nhiêu số là số nguyên tố.
Xem lời giải
Vui lòng liên hệ tác giả (thông tin ở cuối trang) để mua bộ bài giải và code. Xin cảm ơn.
Nhóm 3: Tìm lớn nhất/nhỏ nhất & tìm kiếm
Phần tiêu đề “Nhóm 3: Tìm lớn nhất/nhỏ nhất & tìm kiếm”Bài 12: Tìm giá trị lớn nhất
Phần tiêu đề “Bài 12: Tìm giá trị lớn nhất”Nhập danh sách các số, tìm giá trị lớn nhất.
Xem lời giải
Vui lòng liên hệ tác giả (thông tin ở cuối trang) để mua bộ bài giải và code. Xin cảm ơn.
Bài 13: Tìm giá trị nhỏ nhất
Phần tiêu đề “Bài 13: Tìm giá trị nhỏ nhất”Nhập danh sách các số, tìm giá trị nhỏ nhất.
Xem lời giải
Vui lòng liên hệ tác giả (thông tin ở cuối trang) để mua bộ bài giải và code. Xin cảm ơn.
Bài 14: Tìm vị trí của giá trị lớn nhất
Phần tiêu đề “Bài 14: Tìm vị trí của giá trị lớn nhất”Nhập danh sách các số, tìm vị trí (không phải giá trị) của phần tử lớn nhất.
Xem lời giải
Vui lòng liên hệ tác giả (thông tin ở cuối trang) để mua bộ bài giải và code. Xin cảm ơn.
Bài 15: Kiểm tra một giá trị có trong danh sách không
Phần tiêu đề “Bài 15: Kiểm tra một giá trị có trong danh sách không”Nhập danh sách, sau đó kiểm tra một giá trị do người dùng nhập có xuất hiện trong danh sách hay không.
Xem lời giải
Vui lòng liên hệ tác giả (thông tin ở cuối trang) để mua bộ bài giải và code. Xin cảm ơn.
Bài 16: Tìm vị trí xuất hiện đầu tiên của một giá trị
Phần tiêu đề “Bài 16: Tìm vị trí xuất hiện đầu tiên của một giá trị”Nhập danh sách, sau đó tìm vị trí xuất hiện đầu tiên của một giá trị do người dùng nhập.
Xem lời giải
Vui lòng liên hệ tác giả (thông tin ở cuối trang) để mua bộ bài giải và code. Xin cảm ơn.
Bài 17: Đếm số lần xuất hiện của một giá trị
Phần tiêu đề “Bài 17: Đếm số lần xuất hiện của một giá trị”Nhập danh sách, sau đó đếm xem một giá trị do người dùng nhập xuất hiện bao nhiêu lần.
Xem lời giải
Vui lòng liên hệ tác giả (thông tin ở cuối trang) để mua bộ bài giải và code. Xin cảm ơn.
Nhóm 4: Biến đổi & kiểm tra danh sách
Phần tiêu đề “Nhóm 4: Biến đổi & kiểm tra danh sách”Bài 18: Cộng thêm một lượng vào tất cả các phần tử
Phần tiêu đề “Bài 18: Cộng thêm một lượng vào tất cả các phần tử”Nhập danh sách điểm số, cộng thêm một lượng điểm thưởng do người dùng nhập vào tất cả các phần tử, rồi hiện lại danh sách.
Xem lời giải
Vui lòng liên hệ tác giả (thông tin ở cuối trang) để mua bộ bài giải và code. Xin cảm ơn.
Bài 19: Nhân đôi giá trị tất cả các phần tử
Phần tiêu đề “Bài 19: Nhân đôi giá trị tất cả các phần tử”Nhập danh sách các số, nhân đôi giá trị của mỗi phần tử.
Xem lời giải
Vui lòng liên hệ tác giả (thông tin ở cuối trang) để mua bộ bài giải và code. Xin cảm ơn.
Bài 20: Kiểm tra danh sách đã sắp xếp tăng dần chưa
Phần tiêu đề “Bài 20: Kiểm tra danh sách đã sắp xếp tăng dần chưa”Nhập danh sách, kiểm tra xem các phần tử đã theo thứ tự tăng dần chưa (không cần sắp xếp lại).
Xem lời giải
Vui lòng liên hệ tác giả (thông tin ở cuối trang) để mua bộ bài giải và code. Xin cảm ơn.
Bài 21: Loại bỏ các phần tử trùng lặp
Phần tiêu đề “Bài 21: Loại bỏ các phần tử trùng lặp”Nhập danh sách, tạo ra một danh sách mới chỉ giữ lại mỗi giá trị một lần (loại bỏ trùng lặp).
Xem lời giải
Vui lòng liên hệ tác giả (thông tin ở cuối trang) để mua bộ bài giải và code. Xin cảm ơn.
Nhóm 5: Ứng dụng với danh sách song song
Phần tiêu đề “Nhóm 5: Ứng dụng với danh sách song song”Bài 22: Đảo ngược danh sách
Phần tiêu đề “Bài 22: Đảo ngược danh sách”Nhập danh sách, tạo ra một danh sách mới có thứ tự các phần tử đảo ngược lại.
Xem lời giải
Vui lòng liên hệ tác giả (thông tin ở cuối trang) để mua bộ bài giải và code. Xin cảm ơn.
Bài 23: Trộn hai danh sách thành một
Phần tiêu đề “Bài 23: Trộn hai danh sách thành một”Nhập 2 danh sách riêng biệt, gộp lại thành 1 danh sách chung (nối tiếp nhau).
Xem lời giải
Vui lòng liên hệ tác giả (thông tin ở cuối trang) để mua bộ bài giải và code. Xin cảm ơn.
Bài 24: Quản lý tên và điểm số song song
Phần tiêu đề “Bài 24: Quản lý tên và điểm số song song”Nhập tên và điểm số của N học sinh vào 2 danh sách riêng ((tên :: list) và
(điểm :: list)) - phần tử thứ (i) của 2 danh sách luôn tương ứng cùng một học
sinh.
Xem lời giải
Vui lòng liên hệ tác giả (thông tin ở cuối trang) để mua bộ bài giải và code. Xin cảm ơn.
Bài 25: Tìm học sinh có điểm cao nhất (danh sách song song)
Phần tiêu đề “Bài 25: Tìm học sinh có điểm cao nhất (danh sách song song)”Nhập tên và điểm số của N học sinh, tìm và cho nhân vật nói ra tên + điểm của học sinh có điểm cao nhất.
Xem lời giải
Vui lòng liên hệ tác giả (thông tin ở cuối trang) để mua bộ bài giải và code. Xin cảm ơn.
Mở rộng thêm
Phần tiêu đề “Mở rộng thêm”- Thử áp dụng bài “Tìm học sinh điểm cao nhất” (Bài 25) để tìm luôn top 3 học sinh điểm cao nhất, bằng cách lặp lại 3 lần: tìm vị trí lớn nhất, nói ra, rồi tạm thời gán điểm đó thành một số rất nhỏ để lần tìm tiếp theo bỏ qua nó.
- Viết bài kiểm tra danh sách có phải một dãy đối xứng (palindrome) hay không (phần tử đầu = phần tử cuối, phần tử thứ 2 = phần tử áp cuối…).
- Gói các đoạn lặp lại nhiều lần (tìm max, tính tổng, đếm điều kiện) thành khối tự tạo nhận tham số là tên danh sách, để gọi lại nhiều lần không cần chép code.
- Khi đã vững vòng lặp lồng nhau, có thể tìm hiểu thêm cách sắp xếp cả danh sách (ví dụ thuật toán sắp xếp nổi bọt/bubble sort) - đây là kiến thức nâng cao hơn, phù hợp học sau khi đã thành thạo mọi bài ở chuyên đề này.
Liên hệ tác giả
Phần tiêu đề “Liên hệ tác giả”Thầy cô và các em muốn mua bộ bài giải và code của các bài tập trong chuyên đề này vui lòng liên hệ tác giả qua Zalo 0972465159 hoặc Facebook. Xin cảm ơn.