
Anonymous
0
0
Lý thuyết Tin học 11 Bài 17 (Kết nối tri thức): Dữ liệu mảng một chiều và hai chiều
- asked 4 months agoVotes
0Answers
0Views
Lý thuyết Tin học 11Bài 17: Dữ liệu mảng một chiều và hai chiều
A. Lý thuyết Dữ liệu mảng một chiều và hai chiều
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.
- Các mảng một chiều có thể được thiết lập dễ dàng bằng 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]
- 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 ATrue
- 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
- 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.
2. Cấu trúc dữ liệu mảng hai chiều
- 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ố.
- 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.
- Để truy cập giá trị điểm của một học sinh cụ thể, ví dụ "Quang", ta sử dụng lệnh: DS_diem[0][1].
- 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.
- Một ma trận là một cấu trúc dữ liệu hai chiều bao gồm hàng và cột. Trong Python, ma trận có thể được biểu diễn bằng cấu trúc list trong list với mỗi hàng là một list con.
- Phần tử nằm tại hàng i và cột j sẽ kí hiệu là aij. Như vậy aij là phần tử của ma trận tại vị trí hàng i, cột j.
- Duyệt các phần tử của ma trận sẽ được thực hiện bằng cách sử dụng hai lệnh for lồng nhau.
Sơ đồ tư duy Dữ liệu mảng một chiều và hai chiều
B. Bài tập Dữ liệu mảng một chiều và hai chiều
Câu 1: Phát biểu nào dưới đây về kiểu mảng một chiều là phù hợp?
A. Là một tập hợp các số nguyên
B. Độ dài tối đa của mảng là 255
C. Là một dãy hữu hạn các phần tử cùng kiểu
D. Mảng không thể chứa kí tự
Câu 2: Để khai báo số phần tử của mảng trong PASCAL, người lập trình cần:
A. khai báo một hằng số là số phần tử của mảng
B. khai báo chỉ số bắt đầu và kết thúc của mảng
C. khai báo chỉ số kết thúc của mảng
D. không cần khai báo gì, hệ thống sẽ tự xác định
Câu 3: Phát biểu nào dưới đây về chỉ số của mảng là phù hợp nhất?
A. Dùng để truy cập đến một phần tử bất kì trong mảng
B. Dùng để quản lí kích thước của mảng
C. Dùng trong vòng lặp với mảng
D. Dùng trong vòng lặp với mảng để quản lí kích thước của mảng
Câu 4: Phát biểu nào sau đây về mảng là không chính xác?
A. Chỉ số của mảng không nhất thiết bắt đầu từ 1
B. Có thể xây dựng mảng nhiều chiều
C. Xâu kí tự cũng có thể xem như là một loại mảng
D. Độ dài tối đa của mảng là 255
Câu 5: Thế nào là khai báo biến mảng gián tiếp?
A. Khai báo mảng của các bản ghi
B. Khai báo mảng xâu kí tự
C. Khai báo mảng hai chiều
D. Khai báo thông qua kiểu mảng đã có
Câu 6: Phương án nào dưới đây là khai báo mảng hợp lệ?
A. Var mang : ARRAY[0..10] OF INTEGER;
B. Var mang : ARRAY[0..10] : INTEGER;
C. Var mang : INTEGER OF ARRAY[0..10];
D. Var mang : ARRAY(0..10) : INTEGER;
Câu 7: Cho khai báo mảng và đoạn chương trình như sau:
Var a : array[0..50] of real ;
k := 0 ;
for i := 1 to 50 do
if a[i] > a[k] then k := i ;
Đoạn chương trình trên thực hiện công việc gì dưới đây?
A. Tìm phần tử nhỏ nhất trong mảng;
B. Tìm phần tử lớn nhất trong mảng;
C. Tìm chỉ số của phần tử lớn nhất trong mảng
D. Tìm chỉ số của phần tử nhỏ nhất trong mảng
Câu 8: Cho khai báo mảng như sau: Var a : array[0..10] of integer ;
Phương án nào dưới đây chỉ phần tử thứ 10 của mảng?
A. a[10];
B. a(10);
C. a[9];
D. a(9);
Câu 9: Khai báo mảng hai chiều nào sau đây là sai?
A. var m : array[1..10] of array[0..9] of integer;
B. var m : array[1..20,1..40] of real;
C. var m : array[1..9;1..9] of integer;
D. var m : array[0..10,0..10] of char;
Câu 10: Mảng là kiểu dữ liệu biểu diễn một dãy các phần tử thuận tiện cho:
A. chèn thêm phần tử
B. truy cập đến phần tử bất kì
C. xóa một phần tử
D. chèn thêm phần tử và xóa phần tử
Xem thêm các bài lý thuyết Tin học 11sách Kết nối tri thức hay, chi tiết tại:
Lý thuyết Bài 19: Bài toán tìm kiếm
Lý thuyết Bài 21: Các thuật toán sắp xếp đơn giản
Lý thuyết Bài 23: Kiểm thử và đánh giá chương trình
Lý thuyết Bài 24: Đánh giá độ phức tạp thời gian thuật toán
Lý thuyết Bài 26: Phương pháp làm mịn dần trong thiết kế chương trình