Chào mừng quý vị đến với website của ...
Quý vị chưa đăng nhập hoặc chưa đăng ký làm thành viên, vì vậy chưa thể tải được các tài liệu của Thư viện về máy tính của mình.
Nếu chưa đăng ký, hãy nhấn vào chữ ĐK thành viên ở phía bên trái, hoặc xem phim hướng dẫn tại đây
Nếu đã đăng ký rồi, quý vị có thể đăng nhập ở ngay phía bên trái.
Nếu chưa đăng ký, hãy nhấn vào chữ ĐK thành viên ở phía bên trái, hoặc xem phim hướng dẫn tại đây
Nếu đã đăng ký rồi, quý vị có thể đăng nhập ở ngay phía bên trái.
Dữ liệu mảng một chiều và hai chiều
(Tài liệu chưa được thẩm định)
Nguồn: Bạch Kim
Người gửi: Ngô Văn Chinh (trang riêng)
Ngày gửi: 16h:17' 29-08-2024
Dung lượng: 1.2 MB
Số lượt tải: 0
Nguồn: Bạch Kim
Người gửi: Ngô Văn Chinh (trang riêng)
Ngày gửi: 16h:17' 29-08-2024
Dung lượng: 1.2 MB
Số lượt tải: 0
Số lượt thích:
0 người
BÀI 17. DỮ LIỆU MẢNG MỘT CHIỀU VÀ HAI CHIỀU
Trang bìa
Trang bìa
Ảnh
TIN HỌC 11
BÀI 17. DỮ LIỆU MẢNG MỘT CHIỀU VÀ HAI CHIỀU
Ảnh
Mục tiêu bài học
Mục tiêu
Ảnh
Mục tiêu:
Biết cách thiết lập và làm việc với cấu trúc dữ liệu mảnh một chiều và hai chiều.
Khởi động
Đề bài (- Khởi động)
Đề bài:
Ảnh
Hình vẽ
Em đã biết thiết lập cấu trúc dữ liệu đóng vai trò quan trọng khi giải quyết trong các bài toán thực tế trên máy tính. Trong các bài toán thực tế sau em sẽ thiết lập cấu trúc dữ liệu như thế nào?
Bài toán 1 (Khởi động)
Ảnh
Bài toán 1: Lập danh sách họ tên các bạn học sinh lớp em để có thể tìm kiếm, sắp xếp và thực hiện các bài toán quản lí khác.
Bài toán 2 (Khởi động)
Ảnh
Bài toán 2: Giả sử lớp em cần khảo sát ý kiến theo một yêu cầu của ban giám hiệu. Mỗi học sinh cần có đánh giá theo 4 mức, kí hiệu lần lượt là Đồng ý (2); không phản đối (1); không ý kiến (0); phản đối (-1). Em sẽ tổ chức dữ liệu khảo sát như thế nào để có thể dễ dàng cập nhật và tính toán theo dữ liệu khảo sát.
Bài toán 3 (Khởi động)
Ảnh
Bài tập 3: Em được giao nhiệm vụ thiết lập và lưu trữ một danh sách các địa điểm là nơi các bạn trong lớp sẽ thường xuyên đến để tham quan và trải nghiệm thực tế. Mỗi địa điểm như vậy cần nhiều thông tin, nhưng thông tin quan trọng nhất là toạ độ (x. y) của thông tin đó trên bản đồ. Em sẽ dụng cấu trúc dữ liệu gì để mô tả danh sách các địa điểm này?
Hình thành kiến thức
1. Cấu trúc dữ liệu mảng một chiều
Ảnh
1. Cấu trúc dữ liệu mảng một chiều
Dữ liệu mảng một chiều trong Tin học được gọi là cấu trúc dữ liệu tuyến tính, bao gồm các phần tử dữ liệu truy cập theo chỉ số. Trong Python, mảng một chiều được biểu diễn bằng danh sách (list) với các phần tử có cùng kiểu dữ liệu.
- Hoạt động 1
Ảnh
HĐ1: Tìm hiểu cấu trúc dữ liệu mảng một chiều trong Python
Ảnh
Thực hiện các thao tác sau, quan sát, trao đổi và thảo luận, từ đó nhận biết về cấu trúc dữ liệu mảng một chiều trong Python.
- Tìm hiểu
Ảnh
- Tìm hiểu:
Thiết lập các mảng một chiều, thông qua kiểu dữ liệu list trong Python.
>>> A = [1,3, 5, 7, 9, 11] >>> B = [ "Hà","Bình","Ngọc","Anh" ] >>> C = [9.5, 8.0, 10, 7.2]
+ tiếp
- Tìm hiểu:
Ảnh
Có thể truy cập phần tử của mảng một chiều bằng chỉ số và kiểm tra phần tử có nằm trong mảng hay không bằng toán tử in trong Python.
>>> 7 in A True
+ tiếp
- Tìm hiểu:
Ảnh
Sử dụng lệnh for để dễ dàng duyệt từng phần tử của mảng một chiều trong Python. >>> for hs in B: print(hs, end = "") Hà Bình Ngọc Anh
+ tiếp
- Tìm hiểu:
Ảnh
Các lệnh thao tác với danh sách trong Python như append, remove, insert, clear có thể được sử dụng để thao tác với mảng một chiều được biểu diễn bằng kiểu dữ liệu list. Chú ý: Mảng trong khoa học máy tính không tương đương với kiểu dữ liệu List trong Python.
- Câu hỏi củng cố
Ảnh
- Câu hỏi củng cố:
1. Sử dụng hàm sum() tính tổng các số của một dãy. Hãy viết câu lệnh tính giá trị trung bình của dãy số A cho trước. 2. Có thể duyệt các phần tử của mảng theo chiều ngược lại, từ cuối về đầu, được không?
- Ghi nhớ
- Ghi nhớ:
Ảnh
Cấu trúc dữ liệu mảng một chiều trpng Python có thể biểu diễn bằng kiểu dữ liệu danh sách (list) với chức năng truy cập dễ dàng từng phần tử theo chỉ số, truy cập theo vùng chỉ số. Toán tử in và lệnh for...in sẽ hỗ trợ duyệt từng phần của mảng.
2. Cấu trúc dữ liệu mảng hai chiều
2. Cấu trúc dữ liệu mảng hai chiều
Ảnh
HĐ2: Mô hình danh sách trong danh sách của Python
Ảnh
Thực hiện các lệnh sau, sau sát, trao đổi và thảo luận, từ đó nhận biết về mô hình danh sách trong Python.
- Tìm hiểu
Ảnh
Tạo bộ dữ liệu điểm học sinh trong lớp bằng cách lưu trữ mỗi phần tử là một danh sách gồm hai thông tin: tên học sinh và điểm số.
- Tìm hiểu:
Ví dụ:
>>> DS_diem = [["Quang", 7.5], ["Hà", 8.0], ["Bình", 9.5]]
+ tiếp
Ảnh
Truy cập một phần tử sẽ trả về một danh sách gồm tên và điểm của học sinh tương ứng.
- Tìm hiểu:
Ví dụ:
>>> DS_diem[1] ['Hà', 8.0)
+ tiếp
Ảnh
Để truy cập giá trị điểm của một học sinh cụ thể.
- Tìm hiểu:
Ví dụ:
Điểm học sinh "Quang" cần thực hiện lệnh: >>> DS_diem [0] [1] 7.5
+ tiếp
Ảnh
Duyệt các phần tử của danh sách bằng vòng lặp for, mỗi phần tử là một danh sách có hai giá trị, tên và điểm số của học sinh.
- Tìm hiểu:
Ví dụ:
>>> for hs,diem in DS_diem: print(hs, diem) Quang 7.5 Hà 8.0 Bình 9.5
- Câu hỏi củng cố
Ảnh
- Câu hỏi củng cố:
1. Thiết lập mảng bao gồm dữ liệu là toạ độ các điểm trên mặt phẳng, mỗi điểm P được cho bởi hai toạ độ (px, py). 2. Thiết lập màng bao gồm dãy các thông tin là danh sách học sinh và thông tin 3 điểm thi của học sinh tương ứng các bải thi số 1, 2, 3. Viết đoạn lệnh nhập bộ đữ liệu trên và chương trình in ra danh sách học sinh cùng với điểm trung bình của các bài thi.
- Ghi nhớ
- Ghi nhớ:
Ảnh
Python hỗ trợ mô hình dữ liêu danh sách trong danh sách, tức là mỗi phần tử của danh sách là một đối tượng dạng danh sách khác.
HĐ3. Mô hình mảng hai chiều của Python
Ảnh
HĐ3. Mô hình mảng hai chiều của Python
Ảnh
Đọc, trao đổi, thảo luận về cấu trúc dữ liệu mảng hai chiều trong Python.
- Tìm hiểu
Ảnh
- Tìm hiểu:
Một cấu trúc dữ liệu hai chiều được hiểu là một bảng hay còn gọi là ma trận, bao gồm các hàng và cột. Bảng có thể có kích thước vuông n x n hoặc kích thước bất kì m x n.
Ví dụ: Ma trận vuông bậc ba có dạng như sau:
Ảnh
- Tổng quát mô hình bảng bậc m x n
- Tổng quát mô hình bảng bậc m x n:
Phần tử nằm tại hàng i và cột j sẽ kí hiệu là latex(a_(ij)). Như vậy latex(a_(ij)) là phần tử của ma trận tại vị trí hàng i, cột j.
Ảnh
Ảnh
- tiếp
Ảnh
Trong Python, mô hình ma trận m x n sẽ dễ dàng được biểu diễn bởi cấu trúc danh sách trong danh sách với một mảng có m phần tử, mỗi phần tử đều có dạng danh sách có n phần tử.
Ví dụ: Ma trận vuông A bậc 3 có thể khai báo trong Python: >>> A = [[12, 10, 91], [11, 45, 20], [15, 34, 55]] Vì mảng trong Python được đánh chỉ số từ 0 nên muốn truy cập phần tử tại hàng 3 cột 2, gõ lệnh >>> A[2][1] 34
- Cấu trúc dữ liệu hai chiều
Ảnh
- Cấu trúc dữ liệu hai chiều
Ví dụ: Ma trận A bậc 3, thao tác duyệt theo từng phần tử sẽ được thực hiện bằng hai lệnh duyệt for lồng nhau.
Ảnh
- Câu hỏi củng cố
- Câu hỏi củng cố:
Ảnh
Câu 1: Câu lệnh sau sẽ tạo dữ liệu thuộc thể loại gì? temp = [1, 2, 3, 4] A = [temp, temp]
+ Câu 2 (- Câu hỏi củng cố)
Ảnh
Câu 2: Nếu A là bảng (ma trận) kích thước m x n thì đoạn chương trình sau sẽ in ra thông tin gì trên màn hình? >>> for i in range(m): for j in range(n): print(A[ i][ j ], end=" ")
print()
- Ghi nhớ
- Ghi nhớ:
Ảnh
Trong Python cấu trúc dữ liệu hai chiều có thể được biểu diễn bằng mô hình danh sách trong danh sách. Có thể truy cập từng phần tử và duyệt cấu trúc dữ liệu hai chiều bằng hai lệnh for lồng nhau.
Luyện tập & Vận dụng
- Câu 1
Ảnh
- Luyện tập
1. Giả sử số đo chiều cao các bạn trong lớp được cho trong dãy số A. Viết đoạn chương trình tính: - Số đo chiều cao trung bình của cả lớp. - Số bạn có chiều cao lớn hơn chiều cao trung bình của cả lớp.
- Câu 2 (- Luyện tập)
Ảnh
Câu 2: Viết chương trình nhập từ bàn phím số tự nhiên m, sau đó lần lượt nhập m dòng, mỗi dòng bao gồm n số cách nhau bởi dấu cách, đưa dữ liệu đã nhập vào ma trận A, sau đó in ma trận A ra màn hình.
Vận dụng
- Vận dụng
Ảnh
- Vận dụng:
Viết hàm số UnitMatrix(n) với n là số tự nhiên cho trước, hàm trả lại giá trị là ma trận bậc n như Hình 17.1.
Ảnh
Dặn dò
Dặn dò
Ảnh
Dặn dò:
Ôn lại kiến thức vừa học. Làm bài tập trong SBT. Chuẩn bị bài sau: "Bài 19. Bài toán tìm kiếm".
Cảm ơn
Ảnh
Trang bìa
Trang bìa
Ảnh
TIN HỌC 11
BÀI 17. DỮ LIỆU MẢNG MỘT CHIỀU VÀ HAI CHIỀU
Ảnh
Mục tiêu bài học
Mục tiêu
Ảnh
Mục tiêu:
Biết cách thiết lập và làm việc với cấu trúc dữ liệu mảnh một chiều và hai chiều.
Khởi động
Đề bài (- Khởi động)
Đề bài:
Ảnh
Hình vẽ
Em đã biết thiết lập cấu trúc dữ liệu đóng vai trò quan trọng khi giải quyết trong các bài toán thực tế trên máy tính. Trong các bài toán thực tế sau em sẽ thiết lập cấu trúc dữ liệu như thế nào?
Bài toán 1 (Khởi động)
Ảnh
Bài toán 1: Lập danh sách họ tên các bạn học sinh lớp em để có thể tìm kiếm, sắp xếp và thực hiện các bài toán quản lí khác.
Bài toán 2 (Khởi động)
Ảnh
Bài toán 2: Giả sử lớp em cần khảo sát ý kiến theo một yêu cầu của ban giám hiệu. Mỗi học sinh cần có đánh giá theo 4 mức, kí hiệu lần lượt là Đồng ý (2); không phản đối (1); không ý kiến (0); phản đối (-1). Em sẽ tổ chức dữ liệu khảo sát như thế nào để có thể dễ dàng cập nhật và tính toán theo dữ liệu khảo sát.
Bài toán 3 (Khởi động)
Ảnh
Bài tập 3: Em được giao nhiệm vụ thiết lập và lưu trữ một danh sách các địa điểm là nơi các bạn trong lớp sẽ thường xuyên đến để tham quan và trải nghiệm thực tế. Mỗi địa điểm như vậy cần nhiều thông tin, nhưng thông tin quan trọng nhất là toạ độ (x. y) của thông tin đó trên bản đồ. Em sẽ dụng cấu trúc dữ liệu gì để mô tả danh sách các địa điểm này?
Hình thành kiến thức
1. Cấu trúc dữ liệu mảng một chiều
Ảnh
1. Cấu trúc dữ liệu mảng một chiều
Dữ liệu mảng một chiều trong Tin học được gọi là cấu trúc dữ liệu tuyến tính, bao gồm các phần tử dữ liệu truy cập theo chỉ số. Trong Python, mảng một chiều được biểu diễn bằng danh sách (list) với các phần tử có cùng kiểu dữ liệu.
- Hoạt động 1
Ảnh
HĐ1: Tìm hiểu cấu trúc dữ liệu mảng một chiều trong Python
Ảnh
Thực hiện các thao tác sau, quan sát, trao đổi và thảo luận, từ đó nhận biết về cấu trúc dữ liệu mảng một chiều trong Python.
- Tìm hiểu
Ảnh
- Tìm hiểu:
Thiết lập các mảng một chiều, thông qua kiểu dữ liệu list trong Python.
>>> A = [1,3, 5, 7, 9, 11] >>> B = [ "Hà","Bình","Ngọc","Anh" ] >>> C = [9.5, 8.0, 10, 7.2]
+ tiếp
- Tìm hiểu:
Ảnh
Có thể truy cập phần tử của mảng một chiều bằng chỉ số và kiểm tra phần tử có nằm trong mảng hay không bằng toán tử in trong Python.
>>> 7 in A True
+ tiếp
- Tìm hiểu:
Ảnh
Sử dụng lệnh for để dễ dàng duyệt từng phần tử của mảng một chiều trong Python. >>> for hs in B: print(hs, end = "") Hà Bình Ngọc Anh
+ tiếp
- Tìm hiểu:
Ảnh
Các lệnh thao tác với danh sách trong Python như append, remove, insert, clear có thể được sử dụng để thao tác với mảng một chiều được biểu diễn bằng kiểu dữ liệu list. Chú ý: Mảng trong khoa học máy tính không tương đương với kiểu dữ liệu List trong Python.
- Câu hỏi củng cố
Ảnh
- Câu hỏi củng cố:
1. Sử dụng hàm sum() tính tổng các số của một dãy. Hãy viết câu lệnh tính giá trị trung bình của dãy số A cho trước. 2. Có thể duyệt các phần tử của mảng theo chiều ngược lại, từ cuối về đầu, được không?
- Ghi nhớ
- Ghi nhớ:
Ảnh
Cấu trúc dữ liệu mảng một chiều trpng Python có thể biểu diễn bằng kiểu dữ liệu danh sách (list) với chức năng truy cập dễ dàng từng phần tử theo chỉ số, truy cập theo vùng chỉ số. Toán tử in và lệnh for...in sẽ hỗ trợ duyệt từng phần của mảng.
2. Cấu trúc dữ liệu mảng hai chiều
2. Cấu trúc dữ liệu mảng hai chiều
Ảnh
HĐ2: Mô hình danh sách trong danh sách của Python
Ảnh
Thực hiện các lệnh sau, sau sát, trao đổi và thảo luận, từ đó nhận biết về mô hình danh sách trong Python.
- Tìm hiểu
Ảnh
Tạo bộ dữ liệu điểm học sinh trong lớp bằng cách lưu trữ mỗi phần tử là một danh sách gồm hai thông tin: tên học sinh và điểm số.
- Tìm hiểu:
Ví dụ:
>>> DS_diem = [["Quang", 7.5], ["Hà", 8.0], ["Bình", 9.5]]
+ tiếp
Ảnh
Truy cập một phần tử sẽ trả về một danh sách gồm tên và điểm của học sinh tương ứng.
- Tìm hiểu:
Ví dụ:
>>> DS_diem[1] ['Hà', 8.0)
+ tiếp
Ảnh
Để truy cập giá trị điểm của một học sinh cụ thể.
- Tìm hiểu:
Ví dụ:
Điểm học sinh "Quang" cần thực hiện lệnh: >>> DS_diem [0] [1] 7.5
+ tiếp
Ảnh
Duyệt các phần tử của danh sách bằng vòng lặp for, mỗi phần tử là một danh sách có hai giá trị, tên và điểm số của học sinh.
- Tìm hiểu:
Ví dụ:
>>> for hs,diem in DS_diem: print(hs, diem) Quang 7.5 Hà 8.0 Bình 9.5
- Câu hỏi củng cố
Ảnh
- Câu hỏi củng cố:
1. Thiết lập mảng bao gồm dữ liệu là toạ độ các điểm trên mặt phẳng, mỗi điểm P được cho bởi hai toạ độ (px, py). 2. Thiết lập màng bao gồm dãy các thông tin là danh sách học sinh và thông tin 3 điểm thi của học sinh tương ứng các bải thi số 1, 2, 3. Viết đoạn lệnh nhập bộ đữ liệu trên và chương trình in ra danh sách học sinh cùng với điểm trung bình của các bài thi.
- Ghi nhớ
- Ghi nhớ:
Ảnh
Python hỗ trợ mô hình dữ liêu danh sách trong danh sách, tức là mỗi phần tử của danh sách là một đối tượng dạng danh sách khác.
HĐ3. Mô hình mảng hai chiều của Python
Ảnh
HĐ3. Mô hình mảng hai chiều của Python
Ảnh
Đọc, trao đổi, thảo luận về cấu trúc dữ liệu mảng hai chiều trong Python.
- Tìm hiểu
Ảnh
- Tìm hiểu:
Một cấu trúc dữ liệu hai chiều được hiểu là một bảng hay còn gọi là ma trận, bao gồm các hàng và cột. Bảng có thể có kích thước vuông n x n hoặc kích thước bất kì m x n.
Ví dụ: Ma trận vuông bậc ba có dạng như sau:
Ảnh
- Tổng quát mô hình bảng bậc m x n
- Tổng quát mô hình bảng bậc m x n:
Phần tử nằm tại hàng i và cột j sẽ kí hiệu là latex(a_(ij)). Như vậy latex(a_(ij)) là phần tử của ma trận tại vị trí hàng i, cột j.
Ảnh
Ảnh
- tiếp
Ảnh
Trong Python, mô hình ma trận m x n sẽ dễ dàng được biểu diễn bởi cấu trúc danh sách trong danh sách với một mảng có m phần tử, mỗi phần tử đều có dạng danh sách có n phần tử.
Ví dụ: Ma trận vuông A bậc 3 có thể khai báo trong Python: >>> A = [[12, 10, 91], [11, 45, 20], [15, 34, 55]] Vì mảng trong Python được đánh chỉ số từ 0 nên muốn truy cập phần tử tại hàng 3 cột 2, gõ lệnh >>> A[2][1] 34
- Cấu trúc dữ liệu hai chiều
Ảnh
- Cấu trúc dữ liệu hai chiều
Ví dụ: Ma trận A bậc 3, thao tác duyệt theo từng phần tử sẽ được thực hiện bằng hai lệnh duyệt for lồng nhau.
Ảnh
- Câu hỏi củng cố
- Câu hỏi củng cố:
Ảnh
Câu 1: Câu lệnh sau sẽ tạo dữ liệu thuộc thể loại gì? temp = [1, 2, 3, 4] A = [temp, temp]
+ Câu 2 (- Câu hỏi củng cố)
Ảnh
Câu 2: Nếu A là bảng (ma trận) kích thước m x n thì đoạn chương trình sau sẽ in ra thông tin gì trên màn hình? >>> for i in range(m): for j in range(n): print(A[ i][ j ], end=" ")
print()
- Ghi nhớ
- Ghi nhớ:
Ảnh
Trong Python cấu trúc dữ liệu hai chiều có thể được biểu diễn bằng mô hình danh sách trong danh sách. Có thể truy cập từng phần tử và duyệt cấu trúc dữ liệu hai chiều bằng hai lệnh for lồng nhau.
Luyện tập & Vận dụng
- Câu 1
Ảnh
- Luyện tập
1. Giả sử số đo chiều cao các bạn trong lớp được cho trong dãy số A. Viết đoạn chương trình tính: - Số đo chiều cao trung bình của cả lớp. - Số bạn có chiều cao lớn hơn chiều cao trung bình của cả lớp.
- Câu 2 (- Luyện tập)
Ảnh
Câu 2: Viết chương trình nhập từ bàn phím số tự nhiên m, sau đó lần lượt nhập m dòng, mỗi dòng bao gồm n số cách nhau bởi dấu cách, đưa dữ liệu đã nhập vào ma trận A, sau đó in ma trận A ra màn hình.
Vận dụng
- Vận dụng
Ảnh
- Vận dụng:
Viết hàm số UnitMatrix(n) với n là số tự nhiên cho trước, hàm trả lại giá trị là ma trận bậc n như Hình 17.1.
Ảnh
Dặn dò
Dặn dò
Ảnh
Dặn dò:
Ôn lại kiến thức vừa học. Làm bài tập trong SBT. Chuẩn bị bài sau: "Bài 19. Bài toán tìm kiếm".
Cảm ơn
Ảnh
 
↓ CHÚ Ý: Bài giảng này được nén lại dưới dạng ZIP và có thể chứa nhiều file. Hệ thống chỉ hiển thị 1 file trong số đó, đề nghị các thầy cô KIỂM TRA KỸ TRƯỚC KHI NHẬN XÉT ↓
Các ý kiến mới nhất