Bài giảng Tin học 11 - Bài: Mảng 1 chiều và mảng 2 chiều
Bạn đang xem tài liệu "Bài giảng Tin học 11 - Bài: Mảng 1 chiều và mảng 2 chiều", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.
File đính kèm:
bai_giang_tin_hoc_11_bai_mang_1_chieu_va_mang_2_chieu.pptx
Nội dung text: Bài giảng Tin học 11 - Bài: Mảng 1 chiều và mảng 2 chiều
- Ôn tập + BS KIẾN THỨC PHẦN MẢNG 1 CHIỀU VÀ MẢNG 2 CHIỀU
- Để duyệt các phần tử của mảng theo chiều ngược lại từ cuối về đầu, ta có thể sử dụng vòng lặp for như sau: for i in range(len(arr)-1, -1, -1):
- Câu hỏi 1 trang 82 Tin học 11: 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. tb = sum(A) / len(A) print(tb)
- Câu hỏi 1 trang 83 Tin học 11: 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). Ví dụ : Tạo một mảng bao gồm 3 điểm A(1,2), B(3,4), và C(5,6), bạn có thể sử dụng mã như sau: p = [[1, 2], [3, 4], [5, 6]]
- a=[[],[],[]] n,m=3,2 for i in range(n): for j in range(m): k=int(input(f"nhập số ở dòng {i+1}, cột {j+1} :")) a[i].append(k) print("------IN RA------") for x in range(n): for y in range(m): print(a[x][y],end=" ") print() for i in range(n): p.append([]) ĐOẠN 2 : for j in range(n): a=[] x,y=map(int,input(f"nhap tọa độ điểm {j}: ").split()) n,m=3,2 for i in range(n): p[j]=p[j]+[x]+[y] a.append([]) for j in range(m): a[i].append([]) for i in range(n): for j in range(m): a[i][j]=int(input(f"nhập số ở dòng {i+1}, cột {j+1} :")) print("------IN RA------") for x in range(n): for y in range(m): print(a[x][y],end=" ") print() ĐOẠN 3 : a=[] n,m=3,2 for i in range(n): k=list(map(int,input(f" Nhập dòng thứ {i+1} của mảng 2 chiều (gồm {m} phần tử) :").split())) a.append(k) print("------IN RA------") for x in range(n): for y in range(m): print(a[x][y],end=" ") print()
- Câu hỏi 2 trang 83 Tin học 11: 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
- n=int(input("Nhập số học sinh trong lớp : ")) a=[] for i in range(n): a.append([]) for i in range(n): ten=input(f"Nhập tên bạn thứ {i+1}: ") a[i].append(ten) d1,d2=map(float,input(f"Nhập điểm 2 môn của bạn thứ {i +1} (trên cùng 1 dòng ): ").split()) a[i]=a[i]+[d1]+[d2] for i in range(n): print(f" Họ tên và điểm Văn, Toán, Điểm trung bình của bạn thứ {i+1}: ",a[i][0]," , ", a[i][1], " , ",a[i][2]," ĐTB= ", (a[i][1]+a[i][2])/2) students = [] n = int(input("Nhập số lượng học sinh: ")) for i in range(n): name = input(f"Nhập tên học sinh thứ {i+1}: ") mark1 = float(input(f"Nhập điểm bài thi 1 của {name}: ")) mark2 = float(input(f"Nhập điểm bài thi 2 của {name}: ")) mark3 = float(input(f"Nhập điểm bài thi 3 của {name}: ")) students.append([name, mark1, mark2, mark3]) # Tính điểm trung bình và in ra danh sách học sinh và điểm trung bình của họ for student in students: name = student[0] mark1 = student[1] mark2 = student[2] mark3 = student[3] avg_mark = (mark1 + mark2 + mark3) / 3 print(f"Học sinh {name} có điểm trung bình là {avg_mark}")
- Câu hỏi 1 trang 84 Tin học 11: 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]
- Gợi ý đáp án Câu lệnh trên sẽ tạo ra một dữ liệu thuộc thể loại List (danh sách) trong Python, với tên biến A là một danh sách chứa hai phần tử. Mỗi phần tử của danh sách A là một tham chiếu đến đối tượng danh sách temp, được tạo ra trước đó. Vì vậy, A sẽ chứa hai tham chiếu đến cùng một danh sách temp, với giá trị của temp là [1, 2, 3, 4]. Nếu giá trị của danh sách temp thay đổi, thì giá trị của các phần tử trong danh sách A cũng sẽ thay đổi theo.
- Câu hỏi 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()
- 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.
- def UnitMaxtrix(n): a=[] for i in range(n): a.append([]) for j in range(n): if i==j : a[i].append(1) else : a[i].append(0) return a print("Tạo ma trận nXn bằng cách gọi hàm với giá trị n= 5") m=UnitMaxtrix(5) print("IN RA MẢNG m") for x in range(len(m)): for y in range(len(m)): print(m[x][y],end=" ") print()
- Viết chương trình cho phép người dùng nhập từ bàn phím một dãy số tự nhiên, hãy đếm với mỗi giá trị của dãy có bao nhiêu số lặp lại. Ví dụ nếu dãy ban đầu là: 0 1 5 7 0 2 5 1 1 2 thì chương trình cần thông báo như Hình 17.2. Số 0 lặp lại 2 lần a=list(map(int,input(f"nhap 1 dãy gồm nhiều số: ").split())) Số 1 lặp lại 3 lần for i in range(len(a)): Số 6 lặp lại 2 lần print(f"số lượng phần tử {a[i]} là : ", a.count(a[i])) Số 7 lặp lại 1 lần Số 2 lặp lại 2 lần.
- Đoạn nào dùng để nhập dữ liệu cho từng vị trí (mỗi vị trí được xác định bởi tọa độ dòng, cột) trong mảng 2 chiều, hãy bổ sung cho đoạn lệnh trên có thể thực thi và nhập dũ liệu ( chụp lại ảnh) for i in range(n): for j in range(m): k=int(input(f"nhập số ở dòng {i}, cột {j} :")) _________________ n=int(input("nhập số lượng hàng và số lượng cột của bảng: ")) a=[] for i in range(n): a.append([]) ________________ for x in range(n): for y in range(m): print(a[x][y],end=" ") print()
- Cho biết kết quả của đoạn chương trình sau : a=list(map(float,input(" nhập điểm các bộ môn của học sinh trên cùng 1 dòng :").split())) ĐOẠN 2: s=0 marks = [] min=a[0] line = input("Hãy nhập các điểm kiểm tra cách nhau bởi dấu cách: ") max=a[len(a)-1] marks = [float(x) for x in line.split()] total = 0 for x in a : min_mark = marks[0] s=s+x max_mark = marks[0] if x<min: for m in marks: min=x total += m else: if min_mark>m : min_mark = m max=x if max_mark<m : print("Tổng các môn của học sinh: ",s) max_mark = m print("Điểm thấp nhất trong các môn của học sinh: ", #a) Thông báo điểm đầu tiên và điểm cuối cùng trong danh sách. min) print("Điểm trung bình: ", total / len(marks)) print("Điểm cao nhất trong các môn của học sinh: ", print("Điểm cao nhất: ", max_mark) max) print("Điểm thấp nhất: ", min_mark) print("Điểm đầu tiên: ", a[0]) print("Điểm đầu tiên: ", marks[0]) print("Điểm cuối cùng: ", marks[-1]) print("Điểm cuối cùng: ", a[len(a)-1])
- Em ghi số tiền điện gia đình em theo từng tháng vào một danh sách gồm 12 số. Mỗi năm lại ghi lại số tiền điện vào một danh sách và ghép với danh sách các năm trước. Như vậy em thu được một bảng kích thước n x 12, trong đó hàng thứ k là số tiễn điện của nãm thứ k, cột tương ứng số tiền điện theo tháng. a) Thiết lập mảng mới tính số tiền điện trung bình của các năm, mối năm ghi một số. b) Tính số tiền điện trung bình của tất cả các năm đã được ghi dữ liệu trong bảng.
- HƯỚNG DẪN b=[] c=[] n=int(input("nhập số năm: ")) for i in range(n): a=[] s=0 for j in range(12): k=float(input(f"nhập số tiền điện tháng thứ {j+1} trong năm {i+1}: ")) a.append(k) s=s+k tb=s/12 print(f"số tiền điện trung bình của năm thứ {i+1} là: ",tb) b.append(a) c.append(tb) print(" In danh sách điện theo từng năm ", b) print(" Nội dung mảng c ", c)

