Sáng kiến kinh nghiệm THPT: Xây dựng một số bài tập về kiểu dữ liệu danh sách và xâu kí tự nhằm hỗ trợ phát triển phẩm chất và năng lực học sinh lớp 10 học lập trình bằng ngôn ngữ Python
lượt xem 21
download
Mục đích nghiên cứu sáng kiến nhằm nâng cao hiệu quả việc học lập trình phần kiểu dữ liệu danh sách và xâu kí tự bằng ngôn ngữ Python. Từ đó tạo động lực, hứng thú, thúc đẩy đam mê để các em tiếp tục học lập trình ở các phần tiếp theo được tốt hơn.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Sáng kiến kinh nghiệm THPT: Xây dựng một số bài tập về kiểu dữ liệu danh sách và xâu kí tự nhằm hỗ trợ phát triển phẩm chất và năng lực học sinh lớp 10 học lập trình bằng ngôn ngữ Python
- SỞ GIÁO DỤC VÀ ĐÀO TẠO NGHỆ AN TRƯỜNG THPT TÂN KỲ 3 SÁNG KIẾN KINH NGHIỆM ĐỀ TÀI: XÂY DỰNG MỘT SỐ BÀI TẬP VỀ KIỂU DỮ LIỆU DANH SÁCH VÀ XÂU KÍ TỰ NHẰM HỖ TRỢ PHÁT TRIỂN PHẨM CHẤT VÀ NĂNG LỰC HỌC SINH LỚP 10 HỌC LẬP TRÌNH BẰNG NGÔN NGỮ PYTHON Lĩnh vực: Tin học Tác giả: Phan Xuân Thường Tổ chuyên môn: Toán- Tin Số điện thoại: 0916929867 Năm học: 2022 - 2023
- MỤC LỤC PHẦN I. ĐẶT VẤN ĐỀ ........................................................................................... 2 1. Lý do chọn đề tài ................................................................................................ 2 2. Mục đích nghiên cứu.......................................................................................... 2 3. Đối tượng nghiên cứu ........................................................................................ 2 4. Phương pháp nghiên cứu.................................................................................... 3 5. Tính mới của đề tài ............................................................................................ 3 PHẦN II. NỘI DUNG NGHIÊN CỨU .................................................................... 4 1. Cơ sở lý thuyết ................................................................................................... 4 2. Cơ sở thực tiễn ................................................................................................... 4 3. Giải pháp ............................................................................................................ 4 3.1. Bài tập về kiểu dữ liệu danh sách ................................................................ 4 3.1.1 Một số bài tập cơ bản .............................................................................. 4 3.1.2. Một số bài tập nâng cao ....................................................................... 14 3.2. Bài tập về kiểu dữ liệu xâu kí tự ................................................................ 25 3.2.1. Một số bài tập cơ bản........................................................................... 25 3.2.2. Một số bài tập nâng cao ....................................................................... 31 4. Khảo sát sự cấp thiết và tính khả thi của các giải pháp đề xuất....................... 39 5. Nhận xét kết quả sau khi thực hiện đề tài ........................................................ 43 PHẦN III. KẾT LUẬN ........................................................................................... 46 1. Về mặt lý thuyết và thực tiễn ........................................................................... 46 2. Phạm vi áp dụng, hạn chế, hướng phát triển và kiến nghị ............................... 46 TÀI LIỆU THAM KHẢO.................................................................................... 47 1
- PHẦN I. ĐẶT VẤN ĐỀ 1. Lý do chọn đề tài Trong thời đại cách mạng công nghiệp 4.0, công nghệ thông tin đóng một vai trò rất quan trọng trong hầu hết tất cả các lĩnh vực đời sống xã hội. Vì vậy, nhu cầu về nguồn nhân lực công nghệ thông tin là rất lớn, do đó trong chương trình giáo dục phổ thông mới đã có những thay đổi mạnh mẽ để đáp ứng với yêu cầu mới của xã hội và hội nhập quốc tế. Việc tạo ra nguồn nhân lực công nghệ thông tin vững mạnh là một nhiệm vụ quan trọng góp phần thúc đẩy sự phát triển kinh tế xã hội. Từ năm học 2022-2023 các em học sinh lớp 10 bắt đầu được học chương trình giáo dục phổ thông mới, nội dung môn tin học cũng có nhiều thay đổi, trong đó có nội dung học lập trình bằng ngôn ngữ Python. Là một giáo viên tin học, ngoài việc dạy cho các em những kiến thức cơ bản về tin học thì việc khích lệ, động viên, tạo hứng thú cho các em học lập trình thông qua hệ thống các bài tập từ cơ bản đến nâng cao, tạo động lực cho những em có năng lực, đam mê theo đuổi lĩnh vực công nghệ thông tin, đóng góp vào đội ngũ nhân lực công nghệ thông tin chất lượng sau này cho nước nhà là một việc rất cần thiết. Học lập trình đối với nhiều học sinh là một nội dung tương đối khó, vì thế trong dạy học lập trình tôi luôn cố gắng nghiên cứu sách giáo khoa, các tài liệu tham khảo, đúc rút những kinh nghiệm dạy các khóa trước để tìm ra những cách dạy phù hợp, giúp học sinh tiếp cận và giải quyết vấn đề một cách hiệu quả. Qua đó góp phần gia tăng chất lượng và số lượng học sinh yêu thích môn tin học nói chung và lập trình nói riêng. Qua quá trình dạy học lập trình ở bậc trung học phổ thông, tôi nhận thấy phần kiến thức về kiểu dữ liệu danh sách và xâu kí tự là nội dung khá quan trọng, chính vì vậy giáo viên cần có biện pháp hỗ trợ học sinh học tốt nội dung này. Từ những trăn trở đó, tôi chọn đề tài “Xây dựng một số bài tập về kiểu dữ liệu danh sách và xâu kí tự nhằm hỗ trợ phát triển phẩm chất và năng lực học sinh lớp 10 học lập trình bằng ngôn ngữ Python”, giúp giáo viên và học sinh có thêm tài liệu tham khảo hỗ trợ quá trình dạy và học được tốt hơn. 2. Mục đích nghiên cứu Nhằm nâng cao hiệu quả việc học lập trình phần kiểu dữ liệu danh sách và xâu kí tự bằng ngôn ngữ Python. Từ đó tạo động lực, hứng thú, thúc đẩy đam mê để các em tiếp tục học lập trình ở các phần tiếp theo được tốt hơn. 3. Đối tượng nghiên cứu - Học sinh lớp 10 học theo chương trình giáo dục phổ thông mới. - Nghiên cứu lập trình bằng ngôn ngữ Python, nội dung kiến thức liên quan đến kiểu dữ liệu danh sách và xâu kí tự. 2
- - Xây dựng một số bài tập và thực hiện viết code để xử lý. 4. Phương pháp nghiên cứu Kết hợp một số phương pháp : - Nghiên cứu lý thuyết, nghiên cứu từ thực tiễn dạy học. - Phương pháp thực nghiệm sư phạm: + Tổ chức hoạt động dạy và học, lưu lại bài làm của học sinh, khảo sát kết quả học tập, phân tích diễn biến quá trình thực nghiệm, rút kinh nghiệm giờ dạy, từ đó có những điều chỉnh, bổ sung để hoàn thiện đề tài. 5. Tính mới của đề tài Đề tài đã triển khai tại trường trung học phổ thông Tân Kỳ 3 khá hiệu quả, góp phần nâng cao chất lượng dạy học lập trình cho học sinh lớp 10 khi học chương trình giáo dục phổ thông mới 2018. Giúp học sinh có được nguồn tài liệu học tập bổ ích, đem lại niềm vui, hứng thú và tạo động lực cho học sinh học lập trình. Sáng kiến có thể được sử dụng làm tài liệu tham khảo cho giáo viên môn tin dạy học lập trình bằng ngôn ngữ Python, nhằm nâng cao hiệu quả dạy học môn Tin ở trường trung học phổ thông. 3
- PHẦN II. NỘI DUNG NGHIÊN CỨU 1. Cơ sở lý thuyết Tìm hiểu nội dung các bài học liên quan đến kiểu dữ liệu danh sách và xâu kí tự trong chương trình tin học lớp 10 theo chương trình giáo dục phổ thông mới 2018. Tìm hiểu thực trạng, độ hứng thú của học sinh và những khó khăn vướng mắc của học sinh khi học nội dung “kiểu dữ liệu danh sách và xâu kí tự”. Nghiên cứu, rút kinh nghiệm qua các năm đã dạy học sinh học lập trình bằng ngôn ngữ pascal, C++, để cải tiến áp dụng cho dạy học lập trình bằng ngôn ngữ python. Tìm hiểu cơ sở lý luận về phương pháp dạy học lập trình bằng ngôn ngữ python ở trường trung học phổ thông. Tìm hiểu cách xây dựng một số bài tập về kiểu dữ liệu danh sách và xâu kí tự. Thực hiện các phương án giải các bài toán nhằm phát triển phẩm chất năng lực học sinh, tạo hứng thú cho học sinh khi học lập trình, khơi dậy niềm đam mê tin học. 2. Cơ sở thực tiễn Hiện nay nhu cầu về nguồn lao động của xã hội đang cần rất nhiều những người có trình độ tốt về tin học, đặc biệt là nguồn nhân lực có chất lượng cao về công nghệ thông tin. Tuy nhiên việc đào và bồi dưỡng học sinh yêu thích môn tin ở các trường trung học phổ thông nói chung và trường Tân Kỳ 3 nói riêng còn gặp nhiều khó khăn. Do tâm lí chung của nhiều phụ huynh và học sinh vẫn xem môn tin là môn phụ nên các em chưa có sự đầu tư quan tâm đúng mức cho môn tin học. Bên cạnh đó, trong quá trình học lập trình nhiều em học sinh mới chỉ trang bị cho mình được sách giáo khoa để học còn tài liệu tham khảo thì chưa có điều kiện để mua hoặc chưa tìm được tài liệu phù hợp. Do đó, việc giáo viên tìm kiếm, xây dựng, trang bị, chia sẽ những tài liệu hay phù hợp với chương trinh học và đối tượng học sinh nhằm góp phần nâng cao chất lượng học lập trình và thực hiện tốt nhiệm vụ môn học theo chương trình giáo dục phổ thông mới 2018 là việc rất cần thiết. 3. Giải pháp Nội dung chính của sáng kiến tập trung vào xây dựng hệ thống bài tập về kiểu dữ liệu danh sách và xâu kí tự từ mức độ cơ bản đến mức độ nâng cao. Mỗi bài tập đưa ra được phân tích cách giải, có code tham khảo đi kèm cũng như kết quả chạy chương trình minh họa. Hệ thống bài tập như sau: 3.1. Bài tập về kiểu dữ liệu danh sách 3.1.1 Một số bài tập cơ bản 3.1.1.1 Tìm hiểu về danh sách 4
- Bài 1: Hãy lấy ví dụ về: danh sách 5 màu sắc quen thuộc, danh sách 10 chữ cái in hoa đầu tiên trong bảng chữ cái tiếng Anh, danh sách các tổ của lớp. Hướng dẫn: - Danh sách 5 màu sắc quen thuộc: xanh, đỏ, tím, vàng, cam. - Danh sách 10 chữ cái đầu tiên trong bảng chữ cái tiếng anh: A,B,C,D,E,F,G,H,I,J - Danh sách các tổ của lớp: Tổ 1, Tổ 2, Tổ 3, Tổ 4 3.1.1.2. Khởi tạo danh sách bằng lệnh gán Bài 2: Hãy khởi tạo các danh sách sau bằng lệnh gán: danh sách A chứa các số sau (3,5,2,4,8,9), danh sách B chứa tên các màu (xanh, đỏ, tím, vàng, cam), danh sách C không chứa phần tử nào, danh sách D chứa các giá trị (10, 15.5, “tin học”) Hướng dẫn: A=[3,5,2,4,8,9]; B=[ “xanh”, “đỏ”, “tím”, “vàng”, “cam”]; C=[]; D=[10, 15.5, “tin học”] 3.1.1.3. Bổ sung phần tử vào danh sách a. Bổ sung một phần tử vào cuối danh sách bằng lệnh append() Bài 3: Cho danh sách B=[ "xanh","đỏ","tím"] hãy bổ sung màu “vàng “ vào cuối danh sách B Hướng dẫn: ta viết lệnh B.append("vàng") Hình ảnh minh họa chụp từ phần mềm Python: b. Bổ sung n phần tử vào cuối danh sách bằng lệnh append() kết hợp với vòng lặp Bài 4: Cho danh sách A=[3,5,2,4,8,9], hãy bổ sung n số nguyên bất kì vào cuối danh sách A (n nhập từ bàn phím). Hướng dẫn: Ta cần nhập số nguyên dương n để biết số lượng phần tử cần bổ sung, sau đó dùng lệnh append() để bổ sung các phần tử vào danh sách A. Chú ý trong trường hợp này lệnh append được sử dụng n lần nên ta có thể sử dụng câu lệnh for để điều khiển việc bổ sung phần tử. Chương trình có thể viết như sau: 5
- Kết quả khi chạy chương trình minh họa với n=5: c. Bổ sung một phần tử x vào vị trí k bằng lệnh insert(k,x) Bài 5: Cho danh sách A=[6,8,10,7,5,3] hãy chèn số nguyên x (x nhập từ bàn phím) vào vị trí có chỉ số bằng 3 của danh sách A. ( chú ý: chỉ số các phần tử của danh sách được đánh từ 0). Ta có thể viết chương trình tham khảo như sau: A=[6,8,10,7,5,3] x=int(input("hay nhap so nguyen x= ")) A.insert(3,x) print(A) Kết quả chạy chương trình minh họa : d. Tạo mới một danh sách gồm n số nguyên. Bài 6: Viết chương trình nhập vào một danh sách A có n số nguyên. In ra màn hình danh sách vừa tạo. Chương trình tham khảo: Gợi ý: Chương trình minh họa 6
- Kết quả chạy chương trình minh họa như sau: 3.1.1.4. Nối ghép danh sách bằng phép + hoặc lệnh extend() Bài 7. Cho danh sách A=[1,2,3], danh sách B=[4,5,6]. Hãy ghép danh sách B vào danh sách A. Chương trình tham khảo bằng cách sử dụng phép ghép danh sách (+) Chương trình minh họa bằng cách sử dụng lệnh extend() 3.1.1.5. Xóa phần tử của danh sách a. Xóa toàn bộ dữ liệu của danh sách bằng lệnh clear() Bài 8: Cho danh sách A=[6,8,10,7,5,3]. Viết lệnh xóa toàn bộ danh sách A. Chương trình tham khảo và cho kết quả như sau: Chú ý: sau khi xóa danh sách A bằng lệnh clear(), danh sách A trở thành rỗng. b. Xóa một phần tử x có trong danh sách bằng lệnh remove(x) Bài 9: Cho danh sách A=[6,8,10,7,5,3]. Hãy xóa phần tử có giá trị bằng 10. Chương trình tham khảo: 7
- Kết như chạy chương trình sau: Chú ý: nếu phần tử x được chỉ ra để xóa không có trong danh sách thì máy sẽ báo lỗi. 3.1.1.6. Kiểm tra độ dài hiện thời của danh sách bằng lệnh len() Bài 10: Viết chương trình nhập vào một danh sách A có n số nguyên (n nhập từ bàn phím). Thông báo lên màn hình độ dài của danh sách A. Chương trình tham khảo và kết quả: 3.1.1.7. Duyệt tìm kiếm trên danh sách bằng lệnh for kết hợp với lệnh range(). Bài 11: Viết chương trình nhập vào một danh sách A có n số nguyên (n nhập từ bàn phím). Thông báo lên màn hình các số chẵn có trong danh sách A theo thứ tự từ trái qua phải. Chương trình tham khảo và cho kết quả như sau: Bài 12: Viết chương trình nhập vào một danh sách A có n số nguyên ( n nhập từ bàn phím) và một số nguyên k. Tính tổng các số chia hết cho k có trong danh sách A. Thông báo kết quả tính được ra màn hình. 8
- Chương trình tham khảo như sau: A=[]; t=0; n=int(input("hay nhap so luong phan tu = ")) for i in range(1,n+1): x=int(input("phan tu thu "+str(i)+"=")) A.append(x) k=int(input("hay nhap k= ")) for i in range(0,n): if A[i]% k==0: t=t+A[i] print("tong cac so chia het cho k co trong day A = ",t) Kết quả khi chạy chương trình minh họa với n=6; k=3 Chú ý: ta cũng có thể duyệt tìm kiếm tuần tự trên danh sách bằng vòng lặp while để giải cho bài toán trên như sau: A=[]; t=0; i=0 n=int(input("hay nhap so luong phan tu = ")); k=int(input("hay nhap k= ")) print("hay nhap cac phan tu vao danh sach A:") while i
- Bài 13: Viết chương trình tạo một danh sách A gồm n số nguyên, in ra màn hình các số chẵn có trong danh sách A. Lưu ý: ngoài cách duyệt danh sách bằng vòng lặp for kết hợp với range() hoặc vòng lặp while ta còn có thể sử dụng toán tử in để duyệt mà không cần đến range(). Chương trình tham khảo như sau: Kết quả chạy chương trình minh họa như sau: Bài 14: Viết chương trình nhập vào một số nguyên m và một danh sách A gồm n số nguyên, đếm xem có bao nhiêu số trong danh sách A chia hết cho m. Hướng dẫn: ta có thể sử dụng toán tử in để duyệt tìm kiếm các phần tử trong danh sách A là bội của m. Chương trình tham khảo: Kết quả chạy chương trình minh họa như sau: 10
- 3.1.1.9. Sắp xếp các phần tử trong danh sách bằng lệnh sort() Ta có thể sử dụng lệnh sort() để sắp xếp các phần tử trong danh sách tăng dần hoặc giảm dần. Lệnh sort() có cú pháp như sau: *Sắp xếp tăng dần: .sort() *Sắp xếp giảm dần: .sort(reverse = True) Bài toán áp dụng: Bài 15: Viết chương trình tạo một danh sách A gồm n số nguyên, sau đó sắp xếp các phần tử trong danh sách A theo thứ tự tăng dần. Thông báo kết quả của danh sách A sau khi sắp xếp tăng dần. Chương trình tham khảo: A=[]; n=int(input("hay nhap so luong phan tu = ")) print("nhap cac phan tu cho danh sach A") for i in range(1,n+1): x=int(input()); A.append(x) A.sort() print(" danh sach A sau khi sap xep:"); print(A) Kết quả minh họa khi chạy chương trình sắp xếp tăng dần: 11
- Bài 16: Viết chương trình tạo một danh sách A gồm n số nguyên, sau đó sắp xếp các phần tử trong danh sách A theo thứ tự giảm dần. Thông báo kết quả của danh sách A sau khi sắp xếp giảm dần. Ta có thể viết chương trình như sau: A=[] n=int(input("hay nhap so luong phan tu = ")) print("nhap cac phan tu cho danh sach A") for i in range(1,n+1): x=int(input()) A.append(x) A.sort(reverse = True) print(" danh sach A sau khi sap xep:"); print(A) Kết quả minh họa khi chạy chương trình sắp xếp giảm dần: 3.1.1.10. Đếm số lần xuất hiện một phần tử trong danh sách bằng lệnh count() Khi cần đếm số lần xuất hiện của một phần tử nào đó trong danh sách ta có thể sử dụng vòng lặp để duyệt tuần tự. Ngoài cách đó ra, ta có thể sử dụng lệnh count() có sẵn trong Python để thực hiện một cách nhanh chóng yêu cầu trên. Cú pháp lệnh count() như sau: .count(x) Trong đó x là giá trị ta cần đếm xem nó xuất hiện trong danh sách bao nhiêu lần. Bài tập áp dụng: Bài 17: Viết chương trình tạo một danh sách A gồm n số nguyên, và một số nguyên x. Hãy đếm xem số x xuất hiện trong A bao nhiêu lần. 12
- Chương trình tham khảo như sau: A=[]; n=int(input("hay nhap so luong phan tu = ")) print("nhap cac phan tu cho danh sach A") for i in range(1,n+1): k=int(input()) A.append(k) x=int(input("nhap x= ")) print(" so lan xuat hien cua x trong danh sach la: ") print(A.count(x)) Kết quả khi chạy chương trình minh họa như sau: 3.1.1.11. Hàm min(), max() và sum() trong python Để tìm giá trị lớn nhất, nhỏ nhất, tính tổng: ngoài cách duyệt tìm kiếm, so sánh để tìm ra kết quả như cách viết trong một số ngôn ngữ lập trình khác. Trong python ta có thể sử dụng các hàm min(), max() và sum() đã có sẵn. Cú pháp như sau: + Hàm min(< biến danh sách>) trả về giá trị của phần tử nhỏ nhất trong danh sách. + Hàm max(< biến danh sách>) trả về giá trị của phần tử lớn nhất trong danh sách. + Hàm sum() trả về giá trị là tổng các phần tử của danh sách. Bài tập áp dụng: Bài 18: Cho trước dãy số A, hãy tìm giá trị lớn nhất, nhỏ nhất, và tổng các phần tử trong danh sách A. Cách 1: Duyệt tuần tự để tính và tìm ra kết quả 13
- Chương trình tham khảo : Kết quả chạy chương trình minh họa như sau: Cách 2: sử dụng hàm min(), max() và sum(): Chương trình tham khảo: Kết quả chạy chương trình minh họa như sau: Qua hai cách trên ta thấy cách 2 sử dụng hàm min(), max(), sum(): số câu lệnh được giảm đi, chương trình gọn hơn. 3.1.2. Một số bài tập nâng cao 3.1.2.1. Bài toán tìm kiếm Bài 1. Nhập vào một dãy gồm n số nguyên a1, a2, a3, ..., an Yêu cầu: Hãy tìm trong dãy số trên một số nguyên bằng tổng tất cả các số nguyên còn lại. Nếu có nhiều số nguyên thỏa mãn yêu cầu thì in ra số có chỉ số nhỏ nhất. Trường hợp không có số nào trong dãy thỏa mãn yêu cầu đề bài thì ghi chữ “No”. 14
- Ví dụ: Dữ liệu vào Dữ liệu ra -2,5,3,6 So thoa man la: 6 3,4,5,6 No Ý tưởng thuật toán: -Ta có thể dùng hàm sum() để tính tổng (s) các phần tử của dãy. -Duyệt qua các phần tử a[i] của dãy để kiểm tra và so sánh a[i] đó với s-a[i]: + Nếu a[i]==s-a[i] thì in ra a[i] và dừng lại +Ngược lại, quá trình tiếp tục so sánh a[i+1] với s-a[i+1]. Chú ý: trong quá trình duyệt ta dùng thêm một biến ghi nhớ trạng thái đã tìm thấy số thỏa mãn hay chưa để đánh dấu kết quả tìm được. Chương trình tham khảo và kết quả khi chạy chương trình: Bài 2: Viết chương trình nhập vào một dãy gồm n số nguyên: a1,a2,…,an. Hãy thực hiện các yêu cầu sau: - In ra số dương cuối cùng của dãy số. - In ra số dương đầu tiên của dãy số. Nếu không tìm thấy phần tử nào thỏa mãn thì ghi ra chữ “No” Ý tưởng thuật toán: -Ta dùng 1 biến đánh dấu d để đánh dấu trạng thái tìm thấy phần tử theo yêu cầu. 15
- - Để tìm ra số dương cuối cùng của dãy số: ta duyệt danh sách từ cuối về đầu. +Nếu gặp a[i]>0 ta thực hiện: ghi nhận trạng thái tìm thấy cho biến d, in ra số a[i], rồi thoát khỏi vòng lặp. + Kết thúc vòng lặp duyệt danh sách ta kiểm tra trạng thái biến d để kết luận có tìm thấy phần tử thỏa mãn hay không - Để tìm ra số dương đầu tiên của dãy số: ta duyệt danh sách từ đầu về cuối. Quá trình thực hiện việc kiểm tra tương tự như trên. Chương trình tham khảo: # In ra số dương cuối cùng của dãy số. a=[]; n=int(input("hay nhap so luong phan tu = ")) print("nhap cac phan tu cho day a") for i in range(1,n+1): k=int(input()) a.append(k) print("day a da nhap gom :") print(a); i=len(a)-1; d=False while i>-1: if a[i]>0: d=True; print(" so duong cuoi cung cua day so la: ",a[i]); break i=i-1 if d==False: print("No") Kết quả chạy chương trình minh họa như sau: 16
- # Đoạn chương trình in ra số dương đầu tiên của dãy số. i=0; d=False while i0: d=True; print(" so duong cuoi cung cua day so la: ",a[i]); break i=i+1 if d==False: print("No") Bài 3. Viết chương trình tìm phần tử có giá trị lớn nhất (max) trong danh sách và đưa ra màn hình giá trị cùng vị trí của phần tử tìm được. Nếu có nhiều vị trí max hãy đưa ra giá trị max sau cùng. Ý tưởng thuật toán: Với bài toán này ta có thể sử dụng phép duyệt tuần tự để tìm kiếm, so sánh để tìm max cùng với chỉ số của nó. Chương trình tham khảo: n=int(input(" hay cho biet so phan tu cua day")) a=[]; x=int(input()); a.append(x); max=x; vt=1 for i in range(1,n): x=int(input()); a.append(x) if max
- Bài 4: Viết chương trình nhập vào một dãy gồm n số nguyên, và một số nguyên k Yêu cầu: Tìm kiếm và đếm số lượng các phần tử bằng k. Nếu tìm thấy hãy đưa ra số lượng các phần tử bằng k, nếu không tìm thấy đưa ra chữ “ No”. Ý tưởng thuật toán: Cách 1: Dùng phương pháp duyệt tuần tự để tìm phần tử bằng k. k=int(input(" hay nhap so k= ")) n=int(input(" hay cho biet so phan tu cua day")) a=[]; dem=0; print("hay tao day a= ") for i in range(n): x=int(input()) a.append(x) if x==k:dem=dem+1 if dem>0: print("so luong cac phan tu bang k la :",dem) else: print("No") Cách 2: Sử dụng lệnh count() để đếm số lượng phần tử bằng k. Đoạn chương trình chính: dem=a.count(k) if dem>0: print("so luong cac phan tu bang k la :",dem) else: print("No") 3.1.2.2. Bài toán bổ sung, loại bỏ phần tử khỏi danh sách Bài 5. Cho trước dãy số A gồm các số nguyên. Hãy xóa đi các phần tử âm có trong dãy A. Ý tưởng thuật toán: -Ta dùng vòng lặp while duyệt các phần tử của dãy A (từ cuối dãy về đầu dãy). *Chương trình tham khảo: kết quả khi chạy chương trình: A=[12,-6,8,-9,10,-11,-20,92] i=len(A)-1 while i>-1: if A[i]
- A.remove(A[i]) i=i-1 print(A) Chú ý: Khi gặp bài toán xóa các phần tử trong danh sách, ta nên thực hiện việc duyệt danh sách từ cuối về đầu danh sách để xóa. Tránh trường hợp duyệt từ đầu về cuối như chương trình dưới đây khi xóa sẽ bỏ sót vị trí khi có các trường hợp các phần tử âm kề nhau. Chẳng hạn, nếu ta viết chương trình như sau: A=[12,-6,8,-9,10,-11,-20,92]; i=0 while i
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Sáng kiến kinh nghiệm THPT: Xây dựng hệ thống câu hỏi bài tập chương Liên kết hóa học - Hóa học 10 - Nâng cao nhằm phát triển năng lực học sinh
24 p | 70 | 10
-
Sáng kiến kinh nghiệm THPT: Xây dựng một số bài toán thực tế, liên môn tạo hứng thú học Toán cho học sinh lớp 10
60 p | 46 | 9
-
Sáng kiến kinh nghiệm THPT: Xây dựng hệ thống câu hỏi trong ôn thi học sinh giỏi phần Vi sinh vật
41 p | 41 | 9
-
Sáng kiến kinh nghiệm THPT: Xây dựng bộ sưu tập video, clip hỗ trợ dạy, học nguyên lí làm việc của động cơ đốt trong
13 p | 18 | 7
-
Sáng kiến kinh nghiệm THPT: Xây dựng kho tư liệu video hỗ trợ dạy học chương trình Tin học 10
11 p | 23 | 7
-
Sáng kiến kinh nghiệm THPT: Xây dựng bài tập về cân bằng Hóa Học nhằm phát triển năng lực giải quyết vấn đề và sáng tạo cho học sinh trung học phổ thông
46 p | 42 | 7
-
Sáng kiến kinh nghiệm THPT: Xây dựng ngân hàng câu hỏi trắc nghiệm khách quan theo chuẩn định tính và định lượng các môn giáo dục nghề phổ thông sử dụng trong kiểm tra, đánh giá và thi nghề phổ thông
75 p | 36 | 5
-
Sáng kiến kinh nghiệm THPT: Thư viện online về kiến thức thực tế và gợi ý nhiệm vụ STEM môn Toán và Khoa học tự nhiên theo chương trình giáo dục 2018
26 p | 8 | 4
-
Sáng kiến kinh nghiệm THPT: Xây dựng và sử dụng hệ thống câu hỏi, bài tập rèn luyện năng lực sáng tạo cho học sinh trong dạy học phần Sinh thái học - chương trình chuyên Trung học phổ thông
81 p | 39 | 4
-
Sáng kiến kinh nghiệm THPT: Xây dựng chuyên đề Phương pháp học tập để nâng cao kết quả học tập học sinh
35 p | 42 | 4
-
Sáng kiến kinh nghiệm THPT: Xây dựng một số giải pháp tích hợp kiến thức địa lý địa phương vào dạy học địa lý lớp 10 THPT - Ban cơ bản
32 p | 36 | 4
-
Sáng kiến kinh nghiệm THPT: Xây dựng trường học hạnh phúc qua công tác chủ nhiệm lớp tại trường THPT Con Cuông
53 p | 15 | 3
-
Sáng kiến kinh nghiệm THPT: Xây dựng và sử dụng câu hỏi trắc nghiệm khách quan trong dạy học Ứng dụng của tích phân nhằm phát huy tính tích cực, chủ động, sáng tạo của học sinh
24 p | 50 | 3
-
Sáng kiến kinh nghiệm THPT: Xây dựng hiệu quả kế hoạch phong trào Nghiên cứu khoa học kỹ thuật trong học sinh tại Trường THPT Chuyên Thoại Ngọc Hầu
10 p | 28 | 3
-
Sáng kiến kinh nghiệm THPT: Xây dựng hệ thống thi trực tuyến cấp chứng chỉ Công nghệ thông tin tại Trung tâm Tin học - Ngoại ngữ và Hướng nghiệp tỉnh Ninh Bình
8 p | 23 | 3
-
Sáng kiến kinh nghiệm THPT: Ứng dụng công nghệ thông tin xây dựng hệ thống trực tuyến quản lý và giải quyết nghỉ phép cho học sinh trường PT DTNT THPT tỉnh Hòa Bình
35 p | 12 | 3
-
Sáng kiến kinh nghiệm THPT: Xây dựng câu hỏi trắc nghiệm cho nhiều đối tượng học sinh
14 p | 35 | 2
-
Sáng kiến kinh nghiệm THPT: Xây dựng và sử dụng hệ thống bài tập phần Định luật bảo toàn vật lí lớp 10 THPT nhằm giúp học sinh phát huy tính tích cực nhận thức, rèn luyện tư duy sáng tạo
63 p | 36 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn