Rõ nét về file powerpoint trình chiếu. => Xem thêm
Ngày soạn:…/…/…
Ngày dạy:…/…/…
CHỦ ĐỀ FCS. GIẢI QUYẾT VẤN ĐỀ VỚI SỰ TRỢ GIÚP CỦA MÁY TÍNH
KĨ THUẬT LẬP TRÌNH
BÀI 1. KIỂU MẢNG VÀ CẤU TRÚC MẢNG
Sau bài học này, HS sẽ:
Năng lực chung:
Năng lực tin học:
III. TIẾN TRÌNH DẠY HỌC
Bước 1: GV chuyển giao nhiệm vụ học tập
- GV đặt câu hỏi: Khi lập trình Python, nếu cần xử lí một dãy số thì em sẽ dùng kiểu dữ liệu gì?
Bước 2: HS thực hiện nhiệm vụ học tập
- HS lắng nghe, suy nghĩ và đưa ra câu trả lời dựa trên những hiểu biết của bản thân
Bước 3: Báo cáo kết quả hoạt động và thảo luận
- GV mời HS trả lời câu hỏi.
Gợi ý trả lời: Kiểu số nguyên, số thực, số phức, chuỗi…
- Các HS khác nhận xét, nêu ý kiến khác (nếu có).
Bước 4: Đánh giá kết quả, thực hiện nhiệm vụ học tập
- GV nhận xét, đánh giá, tuyên dương câu trả lời của HS.
- GV dẫn dắt vào nội dung bài mới: Các phần tử có cùng kiểu dữ liệu được gọi là gì? Chúng ta cùng vào bài học hôm nay - Bài 1. Kiểu mảng và cấu trúc mảng.
Hoạt động 1: Biến mảng và cấu trúc mảng
HOẠT ĐỘNG CỦA GV - HS | DỰ KIẾN SẢN PHẨM |
Bước 1: GV chuyển giao nhiệm vụ học tập - GV giới thiệu: Trong tin học, thuật ngữ “mảng”, tiếng Anh là “array” được dùng nhất quán khi nói về cấu trúc dữ liệu và kiểu dữ liệu phù hợp để chứa một dãy số nguyên hay dãy số thực có độ dài định trước. - GV xét ví dụ bài toán phân tích kết quả học tập cuối năm: Lớp 11A có 45 học sinh. Dữ liệu đầu vào là bảng điểm tổng kết của tất cả HS trong lớp có các cột Họ và tên, Điểm Toán, Điểm Ngữ Văn, Điểm Tin Học… Viết chương trình máy tính cho biết các kết quả như: điểm trung bình mỗi môn học, điểm cao nhất từng môn học, họ và tên học sinh đạt được điểm cao nhất đó… - GV yêu cầu HS thảo luận cặp đôi trình bày cấu trúc dữ liệu mảng một chiều và cách thức tìm ra địa chỉ một phần tử mảng. Bước 2: HS thực hiện nhiệm vụ học tập - HS đọc và tìm hiểu thông tin mục 1 SGK trang 89 - 90, thực hiện các nhiệm vụ được giao. - GV hướng dẫn, theo dõi, hỗ trợ HS khi cần. Bước 3: Báo cáo kết quả hoạt động và thảo luận - GV mời đại diện một số nhóm trình bày kết quả thảo luận. - GV mời HS nhóm khác nhận xét, bổ sung. Bước 4: Đánh giá kết quả, thực hiện nhiệm vụ học tập - GV nhận xét kết quả thảo luận của HS, thái độ làm việc của HS trong nhóm. - GV tổng quát kiến thức và yêu cầu HS ghi chép đầy đủ vào vở. | 1. Biến mảng và cấu trúc mảng - Mảng là một cấu trúc dữ liệu gồm các phần tử có cùng kiểu dữ liệu, được lưu trữ thành một khối nhiều liền kề trong bộ nhớ. a) Khai báo mảng một chiều - Khai báo tức là cung cấp đủ các thông tin: tên biến mảng, kiểu dữ liệu, kích thước. → Câu lệnh khai báo kiểu mảng có mục đích để máy tính có đủ thông tin tổ chức lưu trữ dữ liệu của mảng trong bộ nhớ. - Nêu tường minh kiểu dữ liệu của các phần tử mảng. Câu lệnh khai báo kiểu array dùng một kí tự đại diện. - Cho máy tính biết độ dài mảng. Python yêu cầu liệt kê danh sách cụ thể các phần tử khi khai báo. Ví dụ: khai báo mảng trong C, có thể chỉ cho trước độ dài mảng (số phần tử) float diemTin[45]; /* diemTin là mảng 45 số thực */ b) Tổ chức mảng một chiều - Trong bộ nhớ, mảng một chiều được lưu trữ thành một khối các ô nhớ liền kề liên tục, có dung lượng bằng tích kích thước × độ dài kiểu dữ liệu. - Mảng có kích thước n thì các phần tử mảng được đánh chỉ số tuần tự từ 0 đến n – 1. - Bộ nhớ RAM là một dãy bit rất dài, chia thành nhiều ô nhớ liên nhau, mỗi ô nhớ được đánh số gọi là địa chỉ truy cập (có thể dài 1 byte, 2 byte hay 4 byte). - Một số nguyên (integer) có thể chiếm 1 byte hoặc 2 byte. - Một số thực (float hay double) có thể chiếm 4 byte hoặc 8 byte. Ví dụ: Nếu để lưu trữ một số thực (float) cần dùng 32 bit (4 byte) thì mảng A gồm 10 phần tử trong bộ nhớ sẽ chiếm 40 byte. c) Truy cập ngẫu nhiên - Các thông tin có trong khai báo mảng dược dùng để + Xác định độ lớn phần bộ nhớ dành cho một biến mảng. + Cho phép tìm vị trí chính xác của từng phần tử trong mảng khi biết chỉ số tương ứng. - Mảng được sử dụng nhiều vì thời gian thực hiện là hằng số. |
Hoạt động 2: Mảng một chiều trong Python
HOẠT ĐỘNG CỦA GV - HS | DỰ KIẾN SẢN PHẨM |
Bước 1: GV chuyển giao nhiệm vụ học tập - GV yêu cầu HS đọc mục 2 tr.91 SGK, thảo luận cặp đôi, trả lời Câu hỏi Hoạt động 1, thực hành khám phá: Em hãy khám phá các phép toán cơ sở với mảng trong Python, sao chép lại và chạy thử các câu lệnh ở Hình 3 và Hình 4; thêm dần từng dòng lệnh, sau đó thực hiện các công việc sau: 1) Đoán trước kết quả và chạy chương trình để kiểm tra. 2) Xem kết quả và cho biết có sự tương tự giữa mảng với danh sách hay không. Bước 2: HS thực hiện nhiệm vụ học tập - HS đọc hiểu thông tin mục 2 SGK trang 91 - 92 và thực hiện nhiệm vụ GV giao. - GV theo dõi, hỗ trợ HS trong quá trình học tập. Bước 3: Báo cáo kết quả hoạt động và thảo luận - Đại diện nhóm trả lời câu hỏi. Hướng dẫn trả lời câu hỏi Hoạt động 1 (ĐÍNH KÈM DƯỚI HOẠT ĐỘNG). - Các HS còn lại nhận xét, bổ sung (nếu có). Bước 4: Đánh giá kết quả, thực hiện nhiệm vụ học tập - GV nhận xét kết quả trả lời của HS. - GV tổng quát kiến thức và yêu cầu HS ghi chép đầy đủ vào vở. | 2. Mảng một chiều trong Python - Cú pháp khai báo mảng một chiều: + Khai báo sử dụng mô đun array ở đầu chương trình. + Khai báo biến kiểu mảng theo mẫu dưới đây: mảng_1 = array('i',[...]) mảng_2 = array('f',[...]) Trong đó: + Kí tự 'i' là viết tắt của integer; kí tự 'f' là viết tắt của float. + Thay cho dấu "..." ở dòng thứ nhất là một danh sách các số nguyên trong mảng_1. + Thay cho dấu "..." ở dòng thứ hai là một danh sách các số thực trong mảng_2. - Có thể dùng kiểu mảng hay kiểu danh sách của Python để biểu diễn mảng một chiều. |
Hình 3: 5 4 7.0 4.5 Traceback (most recent call last: File "main.py", line 12, in <module> mangNguyen[3] = 3,5 #Báo lỗi sai kiểu phần tử TypeError: integer argument expected, got float Hình 4: [4.5, 5.0, 5.0, 7.5, 8.5] array('f', [7.5, 5.0, 8.5, 4.5, 5.0] Traceback (most recent call last: File "main.py", line 11, in <module> mangThuc.sort() AttributeError: 'array.array' object has no attribute 'sort' → Có sự tương tự giữa mảng với danh sách → Một vài điểm khác biệt do hạn chế "các phần tử mảng phải có cùng kiểu dữ liệu đã khai báo". |
Nâng cấp lên tài khoản VIP để tải tài liệu và dùng thêm được nhiều tiện ích khác