CHƯƠNG IMỘT SỐ KHÁI NIỆM VỀ LẬP TRÌNH VÀ NGÔN NGỮ LẬP TRÌNH§1. Khái niệm về lập trình và ngôn ngữ lập trìnhI. Mục tiêu1. Kiến thức: Hiểu khả năng của ngôn ngữ lập trình bậc cao, phân biệt được với ngôn ngữ máy và hợp ngữ. Biết được vai trò của chương trình dịch. Phân biệt được biên dịch và thông dịch.2. Định hướng hình thành và phát triển năng lực: Phát triển năng lực sử dụng ngôn ngữ (bằng cách thông qua hoạt động phát biểu khái niệm đã học). Phát triển năng lực giao tiếp và năng lực hợp tác (thông qua hoạt động theo nhóm). Phát triển năng lực giải quyết vấn đề. Phát triển năng lực năng lực tự học.II. Phương tiện dạy học 1. Chuẩn bị của giáo viên: Giáo án, sách giáo khoa chuyên tin quyển 1… 2. Chuẩn bị của học sinh: sách giáo khoa, tập, đọc trước bài ở nhà…
Giáo Án Tin 11 Tiết PPCT: CHƯƠNG I MỘT SỐ KHÁI NIỆM VỀ LẬP TRÌNH VÀ NGƠN NGỮ LẬP TRÌNH §1 Khái niệm lập trình ngơn ngữ lập trình I Mục tiêu Kiến thức: - Hiểu khả ngơn ngữ lập trình bậc cao, phân biệt với ngôn ngữ máy hợp ngữ - Biết vai trị chương trình dịch - Phân biệt biên dịch thông dịch Định hướng hình thành phát triển lực: - Phát triển lực sử dụng ngôn ngữ (bằng cách thông qua hoạt động phát biểu khái niệm học) - Phát triển lực giao tiếp lực hợp tác (thơng qua hoạt động theo nhóm) - Phát triển lực giải vấn đề - Phát triển lực lực tự học II Phương tiện dạy học Chuẩn bị giáo viên: Giáo án, sách giáo khoa chuyên tin 1… Chuẩn bị học sinh: sách giáo khoa, tập, đọc trước nhà… III Hoạt động dạy – học: Tình xuất phát: Chúng ta làm quen số khái niệm lập trình ngơn ngữ lập trình chương trình Tin học trung học sở Với chương trình Tin học 11 năm có hội tìm hiểu sâu ngơn ngữ lập trình Và chương số khái niệm lập trình ngơn ngữ lập trình Hình thành kiến thức: Hoạt động học Nội dung sinh Hoạt động Làm rõ khái niệm lập trình ngơn ngữ lập trình (Hình thành lực phát vấn đề giải vấn đề, lực sử dụng ngôn ngữ, lực hợp tác, lực tự học) - Ở lớp 10 - Suy nghĩ trả lời Khái niệm lập trình, biết bước để giải ngơn ngữ lập trình: tốn máy tính Em a Khái niệm lập trình: nêu bước để giải tốn máy tính? - Nhận xét câu trả lời học sinh nhắc lại bước giải toán máy tính - Giải thích: + XĐ tốn: xác định input output Hoạt động giáo viên Trang Giáo Án Tin 11 Hoạt động giáo viên Hoạt động học sinh + Lựa chọn thiết kế thuật toán: Một thuật toán giải - Nghe giảng tốn đó, có nhiều thuật tốn khác giải tốn Do cần thiết kế chọn thuật toán phù hợp để giải toán cho trước - Hãy nhắc lại khái niệm - Ngơn ngữ để viết ngơn ngữ lập trình? chương trình gọi ngơn ngữ lập trình - Với tốn, sau - Phải dùng ngơn ngữ máy hiểu để biểu xác định thuật toán, ta cần phải làm diễn thuật tốn thành chương trình để máy tính hiểu gọi lập trình thực thuật tốn lựa chọn để giải toán Theo em ta phải làm nào? - Thế gọi lập - Lập trình sử dụng trình? cấu trúc liệu câu lệnh ngơn ngữ lập trình cụ thể để mô tả liệu diễn đạt thao tác thuật tốn - Thảo luận nhóm: (Hình thành lực giao tiếp lực hợp tác) Em cho biết - Thảo luận nhóm có loại ngơn ngữ lập đọc kết trước lớp trình? Chia lớp thành - Nhận xét kết nhóm, phát phiếu học tập nhóm khác cho nhóm yêu cầu nhóm ghi lại loại ngơn ngữ lập trình biết vào phiếu học tập Yêu cầu đại diện nhóm đọc kết - Nhận xét chung kết luận Trang Nội dung - Lập trình sử dụng cấu trúc liệu câu lệnh ngôn ngữ lập trình cụ thể để mơ tả liệu diễn đạt thao tác thuật tốn b Ngơn ngữ lập trình: Có loại ngơn ngữ lập trình + Ngôn ngữ máy + Hợp ngữ + Ngôn ngữ bậc cao Giáo Án Tin 11 Hoạt động giáo viên - Mỗi loại máy có ngơn ngữ riêng thường chương trình viết ngơn ngữ loại máy chạy loại máy - Ví dụ: người Việt Nam nói chuyện với người Mĩ biết tiếng Anh tiếng Việt, người Mĩ có hiểu khơng? - Vậy phải làm để người Mĩ hiểu được? - Chương trình viết ngơn ngữ bậc cao máy có hiểu không? Hoạt động học sinh - Nghe giảng Nội dung - Chương trình viết ngơn ngữ máy nạp trực tiếp vào nhớ thực - Không - Dịch tiếng Anh - Chương trình viết - Chương trình viết bằng ngơn ngữ bậc cao ngơn ngữ bậc cao nói nói chung khơng phụ chung không phụ thuộc thuộc vào loại máy vào loại máy Chương Chương trình muốn trình muốn thực thực phải phải chuyển sang ngôn chuyển sang ngôn ngữ ngữ máy máy Hoạt động 2: Làm rõ khái niệm chương trình dịch (Hình thành lực phát vấn đề giải vấn đề, lực sử dụng ngôn ngữ, lực tự học) - Khi viết ngơn ngữ Chương trình dịch: lập trình bậc cao muốn 2.1 Khái niệm: thực loại máy cần chuyển chương trình sang ngơn ngữ máy - Như câu hỏi đặt ra: Làm để chuyển chương trình - Suy nghĩ trả lời viết ngơn ngữ lập trình bậc cao sang ngơn ngữ máy? - Muốn chuyển chương trình ngơn ngữ bậc cao sang ngơn ngữ máy phải dịch, chương trình làm nhiệm vụ dịch gọi chương trình dich - Chương trình dịch - Chương trình dịch - Chương trình dịch Trang Giáo Án Tin 11 Hoạt động học sinh gì? chương trình đặc biết có chức chuyển đổi chương trình viết ngơn ngữ lập trìnhbậc cao sang ngơn ngữ máy để máy thực - Bạn người khơng biết - Cách 1: bạn nói tiếng Anh tiếng việt, sau nhờ bạn giới thiệu người phiên dịch sang trường với người tiếng anh Người phiên khách đến từ Mĩ biết dịch dịch câu tiếng anh? hai người nói chuyện Cách dich trực tiếp gọi thông dịch - Cách 2: bạn soạn nội dung giấy, người phiên dịch dịch toàn nội dung sang tiếng anh đưa cho người khách xem Cách dịch gọi biên dịch - Tương tự, chương trình - Nghe giảng dịch có loại: thơng dịch biên dịch - Hãy phân tích đặc điểm - Tham khảo SGK thông dịch? suy nghĩ trả lời Hoạt động giáo viên - Các chương trình thơng - Nghe giảng dịch dịch thực câu lệnh, thích Trang Nội dung chương trình đặc biết có chức chuyển đổi chương trình viết ngơn ngữ lập trìnhbậc cao sang ngơn ngữ máy để máy thực 2.2 Phân loại ct dịch: - Chương trình dịch có loại + Thơng dịch + Biên dịch a Thông dịch (Interpreter) + Dịch câu lệnh thực câu lệnh Thông dịch việc lặp lại dãy bước: - Kiểm tra tính đắn câu lệnh chương trình nguồn - Chuyển đổi câu lệnh thành hay nhiều câu lệnh tương ứng ngôn ngữ máy - Thực câu lệnh vừa chuyển đổi Giáo Án Tin 11 Hoạt động giáo viên hợp cho môi trường người hệ thống - Hãy phân tích đặc điểm biên dịch? Hoạt động học sinh - Tham khảo SGK suy nghĩ trả lời Nội dung b Biên dịch (Compiler) Thực qua hai bước sau: - Duyệt, phát lỗi, kiểm tra tính đắn câu lệnh Chương trình nguồn - Dịch tồn chương trình nguồn thành chương trình đích thực máy lưu trữ để sử dụng cần thiết - Thông dịch khơng có - Nghe giảng chương trình đích để lưu trữ, biên dịch chương trình nguồn chương trình đích lưu trữ lại để sử dụng sau Luyện tập thực hành: + Khái niệm lập trình ngơn ngữ lập trình? + Có loại ngơn ngữ lập trình: ngơn ngữ máy, hợp ngữ, ngôn ngữ bậc cao + Tại người ta hay sử dụng ngơn ngữ lập trình bậc cao? + Khái niệm chương trình dịch? + Phân biệt loại chương trình dịch: Thơng dịch biên dịch? Vận dụng, mở rộng bổ sung: - Xem lại học - Đọc đọc thêm - Chuẩn bị “ Các thành phần ngơn ngữ lập trình” IV Rút kinh nghiệm: - Ưu điểm: - Hạn chế: Trang Giáo Án Tin 11 Tiết PPCT: CHƯƠNG I MỘT SỐ KHÁI NIỆM VỀ LẬP TRÌNH VÀ NGƠN NGỮ LẬP TRÌNH §2 Các thành phần ngơn ngữ lập trình I Mục tiêu Về kiến thức: - Biết ngôn ngữ lập trình có thành phần bản: bảng chữ cái, cú pháp ngữ nghĩa - Biết số khái niệm: tên, tên chuẩn, tên dành riêng, tên người lập trình đặt, hằng, biến Về kỹ năng: - Phân biệt tên, tên chuẩn, tên dành riêng, tên người lập trình đặt - Nhớ quy định tên, biến ngôn ngữ lập trình - Biết đặt tên nhận biết tên sai quy định Về tư thái độ: - Nhận biết trình phát triển ngơn ngữ lập trình gắn liền với q trình phát triển tin học nhằm giải toán thực tiễn ngày phức tạp - Ham muốn học ngơn ngữ lập trình cụ thể để có khả giải tốn máy tính điện tử - Có tính kỉ luật cao tinh thần làm việc theo nhóm Định hướng hình thành phát triển lực: - Phát triển lực sử dụng ngôn ngữ (bằng cách thông qua hoạt động phát biểu định nghĩa, định lí, phương pháp, quy tắc, học) - Phát triển lực giao tiếp lực hợp tác (thông qua hoạt động theo nhóm) - Phát triển lực giải vấn đề - Phát triển lực tự quản lý lực tự học II Phương tiện dạy học Chuẩn bị giáo viên: Giáo án, sách giáo khoa chuyên tin 1… Chuẩn bị học sinh: sách giáo khoa, tập, đọc trước nhà… III Hoạt động dạy – học: Tình xuất phát: Kiểm tra cũ: Hãy cho biết khái niệm lập trình? Chương trình dịch gì? Phân biệt loại chương trình dịch: Thơng dịch biên dịch? Giới thiệu mới: Ở tiết trước, biết số khái niệm lập trình ngơn ngữ lập trình Vậy, ngơn ngữ lập trình gồm thành phần nào? Chúng ta tìm hiểu tiếp 2: Các thành phần ngơn ngữ lập trình Hình thành kiến thức: Trang Giáo Án Tin 11 Hoạt động học Nội dung sinh Hoạt động 1: Tìm hiểu thành phần ngơn ngữ lập trình (Hình thành lực phát vấn đề giải vấn đề, lực sử dụng ngôn ngữ, lực hợp tác, lực tự học) - Tiếng Việt hình - Suy nghĩ trả lời Các thành phần thành từ yếu tố nào? Tiếng Việt nói riêng ngơn ngữ tự nhiên nói chung hình thành từ: - Bảng chữ - Ngữ pháp - Ngữ nghĩa từ câu - Theo em, ngơn ngữ lập - Suy nghĩ trả lời trình có tương tự ngơn ngữ tự nhiên khơng? - Chiếu lên hình - Suy nghĩ trả lời chương trình viết Free Pascal Em quan sát chương trình cho biết người ta sử dụng kí hiệu để viết chương trình? Hoạt động giáo viên - Nhận xét tiếp tục - Suy nghĩ trả lời dẫn dắt: ngơn ngữ lập trình tương tự ngôn ngữ tự nhiên Hãy cho biết ngơn ngữ lập trình gồm thành phần nào? - Thảo luận nhóm: (Hình thành lực Trang - Mỗi ngơn ngữ lập trình thường có thành phần bản: Bảng chữ cái, cú pháp, ngữ nghĩa a Bảng chữ cái: Bảng chữ cái: tập Giáo Án Tin 11 Hoạt động giáo viên giao tiếp lực hợp tác): Hãy cho biết khái niệm bảng chữ ngơn ngữ lập trình? - Nhận xét chung kết luận Hoạt động học sinh - Thảo luận nhóm đọc kết trước lớp - Nhận xét kết nhóm khác - Tiếp tục dẫn dắt học sinh: Chú ý bảng chữ ngơn ngữ lập trìnhkhơng khác nhiều Ví dụ: Bảng chữ ngôn ngữ C++ so với Pascal thêm vài kí tự ( “ ), ( \ ), ( ! ) - Trong tiếng việt muốn viết câu phải dựa vào đâu? - Nhận xét - Tượng tự, lập trình để viết chương trình người ta dựa vào gì? - Cú pháp gì? Nội dung kí tự dùng để viết chương trình Khơng dùng kí tự ngồi kí tự quy định bảng chữ Các chữ thường dùng: ABC DEF GHI JK L MNOPQRSTUVW Y Z abcdefghijklmno p q r s t u v w y z 10 chữ số thập phân Ả Rập: Các ký tự : + - * / = < > [ ] , ; # ^ $ @& ( ) { } : ‘ Dấu cách(mã ASCII 32) b Cú pháp: - Suy nghĩ trả lời - Suy nghĩ trả lời - Đọc sách giáo khoa Suy nghĩ trả lời - Là quy tắc dùng để viết chương trình, dựa vào mà người lập trình chương trình dịch phát chỗ sai sót chương trình - Dẫn dắt: “Cú pháp - Nghe giảng có khác ngơn ngữ lập trình” nêu ví dụ minh họa Ví dụ: Pascal dùng cặp từ Begin…End; để gộp nhiều câu lệnh thành Cịn C++ sử dụng cặp kí tự { } c Ngữ nghĩa: Trang Giáo Án Tin 11 Hoạt động giáo viên Hoạt động học sinh - Nghe giảng Nội dung - Trong tiếng việt ta - Xác định ý nghĩa thao nói câu người tác cần thực hiện, ứng với nghe phải hiểu ý tổ hợp kí tự dựa vào ngữ nghĩa câu nói cảnh Vậy, lập trình phải xác định ý nghĩa tổ hợp kí tự chương trình, ngữ nghĩa - Ví dụ: Xét biểu thức: - Nghe giảng - Lỗi cú pháp A+B (1) A,B số chương trình dịch phát thực thông báo cho A+B (2) A,B số người lập trình Chương ngun trình khơng cịn lỗi cú Dấu + (1) cộng pháp dịch sang số thực, (2) cộng ngôn ngữ máy số nguyên - Lỗi ngữ nghĩa phát =>Tóm lại cú pháp cho chạy chương biết cách viết trình chương trình hợp lệ, ngữ nghĩa xác định ý nghĩa tổ hợp kí tự chương trình =>Chương trình dịch phát lỗi cú pháp không phát lỗi ngữ nghĩa Hoạt động : Tìm hiểu khái niệm tên (Hình thành lực phát vấn đề giải vấn đề, lực sử dụng ngôn ngữ, lực hợp tác, lực tự học) Một số khái niệm: a Tên: - Mọi đối tượng - Suy nghĩ trả lời - Mọi đối tượng chương trình phải chương trình phải đặt tên Em cho đặt tên Em cho biết quy tắc đặt tên biết quy tắc đặt tên ngơn ngữ lập trình Turbo Pascal Pascal? - Quy tắc đặt tên Turbo Pascal: + Gồm chữ số, chữ cái, - Suy nghĩ trả lời dấu gạch - Cho ví dụ sau, + Bắt đầu chữ cho biết tên dấu gạch quy tắc: + Độ dài không vượt Trang Giáo Án Tin 11 Hoạt động giáo viên ABC Q89_O A 12 _12BN 87_AC @DFG12 BGV#21 - Nhận xét - Trong Free Pascal, tên có độ dài tới 255 kí tự - Pascal khơng phân biệt chữ hoa, thường tên C++ phân biệt chữ hoa, thường tên - Đọc sách giáo khoa cho biết ngơn ngữ lập trình thường có loại tên? - Thảo luận nhóm: (Hình thành lực giao tiếp lực hợp tác): Chia lớp thành nhóm, nhóm trình bày khái niệm loại tên cho ví dụ minh họa - Nhận xét chung kết luận lại nội dung Lưu ý với học sinh: Pascal, từ khóa có màu trắng Hoạt động học sinh Nội dung 127 kí tự - Nghe giảng - Trong Free Pascal, tên có độ dài tới 255 kí tự - Pascal không phân biệt chữ hoa, thường tên C++ phân biệt chữ hoa, thường tên - Suy nghĩ trả lời - Ngơn ngữ lập trình thường có loại tên: tên dành riêng, tên chuẩn, tên người lập trình đặt - Tên dành riêng (từ khóa): Là tên ngơn ngữ lập trìnhquy định với ý nghĩa xác định mà người lập trình khơng thể dùng với ý nghĩa khác Ví dụ: Một số từ khóa Trong Pascal: Program, Var, Uses, Begin, End, Trong C++: main, include, void, - Thảo luận nhóm trình bày kết - Nhận xét kết báo cáo nhóm khác - Nghe giảng - Tên chuẩn Là tên ngơn ngữ lập trìnhdùng với ý nghĩa định , nhiên người lập trình sử dụng với ý nghĩa khác Ví dụ: Một số tên chuẩn: Trong Pascal: Real, Integer, Sin, Cos, Char, Trong C++: cin, cout, getchar - Tên người lập trình Trang 10 Giáo Án Tin 11 Hoạt động giáo viên Họat động học sinh Nội dung clrscr; S:=0; for i:=10 downto S:= S+i; writeln('Tong S=',S:3); readln end Hoạt động 3: Tìm hiểu lặp với số lần chưa biết trước câu lệnh while – (Hình thành phát triển lực sử dụng ngôn ngữ, giải vấn đề, tự quản lý lực tự học, giao tiếp lực hợp tác) Lặp với số lần chưa biết trước câu lệnh while – Yêu cầu học sinh thảo Thảo luận nhóm đại Bài tốn : luận nhóm: đọc tốn diện trình bày Tính tổng trả lời câu hỏi S=1 + + 3+ ….+ i sau: Với điều kiện S >15 tìm i Trình bày bước liệt B1: S :=0; i :=0; kê thuật toán tổng B2: Nếu S > 15 chuyển đến bước ; B3: i:=i+1; B4: S := S+ i quay lại bước 2; B5: Đưa kết i kết thúc Bài toán lặp với N Suy nghĩ, trả lời kết thúc? Nhận xét, chốt ý - Từ bước đến bước lặp lại nhiều lần điều kiện S >15 chưa thỏa mãn Trong Pascal có câu Trong Pascal dùng câu lệnh lệnh để giải tốn có while-do để giải tốn có điều kiện dừng mà chưa điều kiện dừng mà chưa biết biết số lần lặp số lần lặp Câu lệnh while-do While coa dạng: ; - While ; - Trong Điều kiện biểu thức - -Điều kiện biểu thức lôgic lôgic Câu lệnh câu lệnh - -Câu lệnh câu lệnh đơn đơn câu lệnh ghép câu lệnh ghép Trang 67 Giáo Án Tin 11 Hoạt động giáo Họat động học sinh viên Ý nghĩa : Khi điều kiện cịn thực câu lệnh sau sau lại quay lại kiểm tra điều kiện Sử dụng câu lệnh while- Thào luận nhóm, đại diện viết chương trình trình bày tính tổng Trình bày bước liệt B1: Nhập M,N; kê thuật toán B2: Nếu M=N lấy giá U7CLN trị chung làm U7CLN chuyển đến bước 5; B3: Nếu M>N M M – N ngược lại N N- M; B4: Quay lại bước 2; B5: Đưa kết ƯCLN kết thúc Nhận xét chốt ý Trình bày thuật tốn Trình bày thuật tốn theotheo sơ đồ khối? sơ đồ khối Nhận xét sửa sai Viết chương trình Program UCLN; thuật tốn trên? Uses crt; Var M,N: integer; Begin Clrscr; Writeln('Nhap vao songuyen duong M, N:'); Readln(M,N); While MN Trang 68 Nội dung Chương trình tốn 2: program tong2; uses crt; var S,i:integer; begin clrscr; S:=0;i:=0; while SN M M – N ngược lại N N- M; B4: Quay lại bước 2; B5: Đưa kết ƯCLN kết thúc Thuật toán theo sơ đồ khối hình trang 47 sgk Chương trình tìm UCLN hai số Program UCLN; Uses crt; Var M,N: integer; Begin Clrscr; Writeln('Nhap vao so nguyen duong M, N:'); Giáo Án Tin 11 Hoạt động giáo viên Nhận xét, sửa sai Họat động học sinh Nội dung If M>N thenReadln(M,N); M:= M-N While MN else N:= N- M; If M>N then M:= Writeln('Uoc chung lon M-N nhat cua so = ',M); else N:= N-M; Readln Writeln('Uoc chung lon End nhat cua so = ',M); Readln - End - Luyện tập thực hành: - Viết cấu trúc lặp với số lần biết trước trước? Vận dụng, mở rộng bổ sung: - Xem lại học - Xem trước BTTH2 IV Rút kinh nghiệm: - Ưu điểm: - Hạn chế: Tiết PPCT: 22-23-24 BÀI TẬP THỰC HÀNH CHƯƠNG III I Kiến thức cần đạt - Ôn tập lại kiến thức cấu trúc rẽ nhánh cấu trúc lặp - Rèn luyện kỹ biên soạn, hiệu chỉnh thực chương trình II Chuẩn bị dạy - học - Giáo viên: Phịng máy vi tính - Học sinh: Sách giáo khoa, ghi III Phương pháp: Thuyết trình kết hợp với vấn đáp Tiết 22,23 IV Tiến trình lên lớp Ổn định lớp Trang 69 Giáo Án Tin 11 Kiểm tra cũ: kết hợp cho điểm thực hành Nội dung Hoạt động 1: làm số tập sử dụng câu lệnh for-do Hoạt động GV Quan sát hướng dẫn học sinh thực Yêu cầu học sinh thực chương trình với nhiều input khác Quan sát hướng dẫn học sinh thực Yêu cầu học sinh thực chương trình với nhiều input khác Quan sát hướng dẫn học sinh thực Cho điểm học sinh hoàn thành tốt tập học sinh có nhiều cố gắng học tập Hoạt động HS Bài 1: viết chương trình tính tổng S S=1+2+3+…+N Var S, N, i: integer; Begin Write(‘nhap N=’); readln(N); S:=0; For i:=1 to N S:=S + i; Write(‘Tong S=’,S); Readln; End Bài 2: chỉnh sửa chương trình để giải tốn tính tích S=1*2*3*4*…*N Var S, N, i: integer; Begin Write(‘nhap N=’); readln(N); S:=1; For i:=1 to N S:=S * i; Write(‘Tong S=’,S); Readln; End Bài 3: Tạo bảng số dạng sau: 10 11 12 13 14 15 16 17 18 19 Program BANGSO; Uses crt; Var i, n: integer; Begin Clrscr; Writeln(' TAO BANG SO TU 0-99'); Writeln(' -'); For i:=0 to 99 Begin If (i mod 10 = 0) then Writeln; Write(i:3) End; Readln; End Củng cố: Trang 70 Giáo Án Tin 11 Nhận xét ý thức học tập học sinh lỗi thường mắc phải thực hành Bài tập nhà Xem lại bài, tiết sau tiếp tục thực hành Tiết 24 IV Tiến trình lên lớp Ổn định lớp Kiểm tra cũ: kết hợp cho điểm thực hành Nội dung Hoạt động 2: làm số tập sử dụng cấu trúc rẽ nhánh, lặp Hoạt động GV Bài 1: Nhập vào ba số a,b,c Kiểm tra xem độ dài ba cạnh hay khơng, khơng in hình ' Khong la ba canh cua mot tam giac' Ngược lại, in chu vi, diện tích tam giác hình Gv: em xác định input output toán? Hs: input: số a, b, c Output: chu vi, diện tích hình tam giác kết luận a, b, c cạnh hình tam giác Gv: điều kiện để số a, b, c cạnh tam giác nào? Hs: (a+b)>c and (b+c)>a and (a+c)>b Gv: cơng thức tính chu vi diện tích hình tam giác biết cạnh? Hs: p:=(a+b+c)/2; s:=sqrt(p*(p-a)*(p-b)*(p-c)); Hoạt động HS Program TAMGIAC; Uses crt; Var a, b, c, s, p: real; Begin Clrscr; Write ('nhap a ='); readln(a); Write ('nhap b ='); readln(b); Write ('nhap c ='); readln(c); If (a>0) and (b>0) and (c>0) and (a+b>c) and (b+c>a) and (a+c>b) then Begin p:=(a+b+c)/2; s:=sqrt(p*(p-a)*(p-b)*(p-c)); Writeln('Chu vi tam giac:',2*p:4:2) ; Writeln('Dien tich tam giac:',s:4:2); End Else Writeln(‘ a, b, c khong phai la ba canh cua tam giac') ; Quan sát, hướng dẫn đồng thời cho Readln; điểm học sinh End Bài 2: viết chương trình nhập vào số Var I, N, S: integer; nguyên dương N Tính tổng số Begin chẵn từ tới N S:=0; Hướng dẫn học sinh thực Write(‘Nhap N=’); readln(N); For i:=1 to N Trang 71 Giáo Án Tin 11 Hoạt động GV Yêu cầu học sinh thực chương trình với nhiều input khác Hoạt động HS If (I mod 2=0) then S:=S+I; Write(‘Tong chan la:’,S); Readln End Quan sát, hướng dẫn đồng thời cho điểm học sinh Củng cố: Nhận xét ý thức học tập học sinh lỗi thường mắc phải thực hành Bài tập nhà Xem lại bài, tiết sau sang chương IV – Kiểu liệu có cấu trúc ================ Trang 72 Giáo Án Tin 11 Tiết PPCT: 25,26,27 CHƯƠNG IV:KIỂU DỮ LIỆU CÓ CẤU TRÚC 11 KIỂU MẢNG I MỤC TIÊU Về kiến thức - Hiểu khái niệm mảng chiều - Hiểu cách khai báo truy cập đến phần tử mảng Về kĩ - Cài đặt thuật toán giải số toán đơn giản với kiểu dữa liệu mảng chiều - Thực khai báo mảng, truy cập, tính tốn, đếm phần tử mảng Về thái độ - Thái độ nghiêm túc học tập - Chủ động tìm hiểu kiến thức Năng lực hướng tới: - Khai báo biến liệu hợp lý Hiểu nguyên lý lưu liệu cách có cấu trúc II CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH Chuẩn bị giáo viên: Giáo án, sách giáo khoa, sách giáo viên, máy tính, máy chiếu, phơng chiếu, bút lơng, bảng,… Chuẩn bị học sinh: Sách giáo khoa, tập, viết,… III TỔ CHỨC CÁC HOẠT ĐỘNG HỌC TẬP Ổn định lớp Kiểm tra cũ (không) Tiến trình học HOẠT ĐỘNG 1: Hoạt động khởi động (1) Mục tiêu: Tạo động để học sinh hiểu cách sử dụng khai báo biến mảng (2) Phương pháp/kĩ thuật dạy học: Cá nhân, thảo luận nhóm (3) Phương tiện dạy học: SGK, Projector, máy tính (4) Học sinh có nhu cầu mong muốn học cách khai báo biến mảng Nội dung hoạt động Hoạt động giáo viên - Trong thực tế, kiểu liệu chuẩn đáp ứng đủ biểu diễn tốn lớn Vì thế, dựa kiểu liệu người lập trình tạo kiểu liệu phức tạp để giải toán thực tế (?) Các em tham khảo toán sách giáo khoa trang 53 cho biết cần nhập Trang 73 Hoạt động học sinh - Nghe giảng - Tham khảo sách giáo khoa trả lời: Input: Nhập vào nhiệt độ trung bình ngày t1, t2, t3, t4, t5, t6, Giáo Án Tin 11 thơng tin gì? Và liệu đưa gì? t7; Output: Nhiệt độ trung bình tuần tb, số ngày vượt mức trung bình dem; - Nhận xét, muốn tính nhiệt độ trung bình n ngày (365 ngày) gặp - Trả lời: phải khai báo từ t1 t365 phải khó khăn gì? Để giải vấn đề đó, ta sử dụng kiểu mảng chiều để mơ tả liệu - Hơm tìm hiểu khái niệm mảng chiều HOẠT ĐỘNG 2: Hình thành kiến thức (1) Mục tiêu: Giúp học sinh biết khái niệm mảng chiều, cách khai báo mảng chiều, hiểu cách nhập in mảng chiều (2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích (3) Hình thức tổ chức hoạt động: Làm việc cá nhân (4) Phương tiện dạy học: SGK, Projector, máy tính (5) Kết quả: Học sinh nắm khái niệm bảng, cách khai báo biến mảng chiều, hiểu cách nhập in mảng chiều, hiểu số ví dụ giải toán mảng chiều Nội dung hoạt động Hoạt động học Nội dung trình bày sinh (?) Các em tham khảo - Tham khảo sách Kiểu mảng sách giáo cho biết giáo khoa trả lời chiều làm việc với mảng chiều Mảng chiều dãy cần xác định gì? hữu hạn phần tử có - Nhận xét - Nghe giảng ghi kiểu liệu * Khi làm việc với mảng chiều ta cần xác định được: + Tên mảng; + Số lượng phần tử; + Kiểu liệu; + Cách khai báo; - Cho ví dụ để học sinh - Ghi ví dụ + Cách tham chiếu đến hiểu phần tử mảng rõ mảng chiều Ví du: A - Suy nghĩ trả lời (?) Với mảng chiều Chỉ số vừa cho ta xác định - Ghi + Tên mảng: A gì? + Số lượng phần tử: Hoạt động giáo viên Trang 74 Giáo Án Tin 11 - Nhận xét - Đối với biến NNLT sử dụng bắt buộc phải khai báo, biến mảng chiều phải khai báo Cách khai báo thầy lớp tìm hiều phần Khai báo mảng chiều - Đối với mảng chiều ta có cách khai báo - Bên cạnh ta có cách khai báo thứ hai - Giải thích ví dụ rõ để học sinh phân biệt tên kiểu mảng, tên biến mảng - Yêu cầu học sinh cho ví dụ cách khai báo - Nhận xét, chỉnh sửa có sai sót (?) Khi ta khai báo mảng chiều, lúc ta xác định mảng đó? + Kiểu liệu: Số nguyên + Tham chiếu đến PT thứ 3, ta viết A[3] Khai báo - Ghi mục Cách Khai báo trực tiếp VAR : array[] of ; Ví dụ: VAR A: array[1 10] of real; - Nghe giảng Cách Khai báo gián tiếp ghi TYPE = array[ ] of ; VAR : - Nghe giảng ; ghi Ví dụ: TYPE nhietdo = array[1 365] of real; - Nghe giảng VAR a : nhietdo; - Thực theo yêu cầu giáo viên - Suy nghĩ trả lời: Các thao tác mảng xác định tên chiều mảng, số lượng phần tử tối đa mảng, kiểu liệu mảng - Nhận xét (?) Giá trị phần tử mảng xác định - Suy nghĩ trả lời chưa, làm để có giá trị đó? - Nhận xét, để có giá trị phần tử - Nghe giảng phải nhập thủ tục nhập ghi mục thầy lớp tìm hiểu phần a Nhập mảng chiều Trang 75 a/ Nhập mảng chiều Trước tiên, cần xác định có phần tử cần dùng: Write(‘nhap so phan tu: ‘); Readln(n); Giáo Án Tin 11 - Để làm điều ta Dùng vịng lặp For - để cần xác định thao tác - Ghi nhập giá trị cho phần tử sau: A[i]: + Trước tiên, cần xác định For i:=1 to n có phần tử cần Begin dùng; Write(‘Nhap phan tu + Dùng vòng lặp For - thu: ’, i); để nhập giá trị cho Readln(A[i]); phần tử A[i] - Nghe giảng End; - Hướng dẫn học sinh cách ghi b/ In mảng chiều in phần tử mảng Dùng vòng lặp For - để chiều in phần tử mảng: For i:= to n Write(A[i]:4); HOẠT ĐỘNG 3: Hoạt động luyện tập, vận dụng (1) Mục tiêu: Giúp học sinh thực thao tác tạo khai báo, nhập in mảng chiều (2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích, so sánh, (3) Hình thức tổ chức hoạt động: giải tập bảng (4) Phương tiện dạy học:SGK, bảng (5) Học sinh biết vận dụng kiến thức học vào giải tình thực tiễn cụ thể Nội dung hoạt động GV yêu cầu HS: Với cách khai báo biến mảng sau đây: Var A:array[1 100] of integer; Em cho biết? - Mảng tên gì? Được nhập tối đa phần tử cho mảng? Các giá trị phần tử có kiểu liệu gì? Cách khai báo trực tiếp hay gián tiếp? GV hướng dẫn cho em thảo luận GV gọi nhóm trả lời GV nhận xét, giải đáp thắc mắc học sinh, đưa nhận xét cuối HOẠT ĐỘNG 4: Hoạt động tìm tịi mở rộng (1) Mục tiêu: Giúp học sinh có nhu cầu mở rộng thêm kiến thức (2) Phương pháp/kĩ thuật dạy học: làm việc cá nhân, nhóm (3) Hình thức tổ chức hoạt động: Ngoài lớp học (4) Phương tiện dạy học:SGK, Projector, máy tính (5) Học sinh biết cách mở rộng kiến thức thơng qua tập cụ thể Nội dung hoạt động Trang 76 Giáo Án Tin 11 - GV: cho tập: Viết chương trình nhập dãy N số nguyên (N N đưa Max, kết thúc; - Sau hiểu thuật tốn có - Chú ý quan sát cách thể giải thích bước viết viết chương trình viết chương trình hồn chỉnh chương trình vào tập B4: - Nếu > Max Max ai; - i i + quay lại B3 Program Tim_max; Const Nmax = 250; Type ArrInt = Array[1 Nmax] of integer; Var N, i, Max, csmax: integer; A: ArrInt; Begin Write(‘Nhap so phan Trang 79 Giáo Án Tin 11 tu cua day so, N=’); Readln(N); For i:=1 to N Begin Write(‘Phan tu thu ‘, i, ‘ =’); Readln(A[i]); End; Max:=A[1]; csmax:=1; For i:=2 to N - Yêu cầu học sinh đọc ví dụ sách giáo khoa If A[i] > Max then Begin Max := A[i]; csMax := i; End; writeln(‘Gia tri cua p.tu max la:’, max); writeln(‘Chi so cua p.tu max la:’, csmax); Readln; End HOẠT ĐỘNG 3: Hoạt động luyện tập, vận dụng: (1) Mục tiêu: Giúp học sinh thực thao tác tạo khai báo, nhập in mảng chiều (2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích, so sánh, (3) Hình thức tổ chức hoạt động: giải tập bảng (4) Phương tiện dạy học:SGK, bảng (5) Học sinh biết vận dụng kiến thức học vào giải tình thực tiễn cụ thể Nội dung hoạt động GV yêu cầu HS: Viết chương trình nhập dãy N số nguyên (N