Giáo án Tin học Lớp 11 - Chương trình cả năm - Trần Văn Quyền - Trường THPT Như Thanh
I. Mục tiêu bài học
1. Kiến thức
- Biết một số khái niệm: tên, tên chuẩn, tên dành riêng, hằng và biến.
- Nắmđược các quy định về tên, hằng và biến trong một ngôn ngữ lập trình.
- Phân biệt được tên, hằng và biến.
2. Kỹ năng
- Biết cách đặt tên, nhận biết được tên viết sai quy tắc.
- Sử dụng đúng chú thích.
3. Thái độ
- Rèn luyện cho học sinh tính nguyên tắc, chặt chẽ trong lập trình
4. Năng lực, phẩm chất
- NL sử dụng ngôn ngữ - NL quan sát và nhận biết
- NL làm việc nhóm - NL xác định các đối tượng trong NNLT
- Phẩm chất: tích cực tìm tòi, tự giác nghiên cứu, ham học hỏi, kiên trì, yêu thích môn học, yêu thích lập trình
II. Phương tiện chuẩn bị
1. Giáo viên
- Phương pháp: Thuyết trình, vấn đáp, trực quan, làm việc nhóm
- Phương tiện: SGK, giáo án
2. Học sinh
- Vở ghi, SGK
Ngày soạn:15/09/2021 Tiết theo KHDH: 1 §1. KHÁI NIỆM LẬP TRÌNH VÀ NGÔN NGỮ LẬP TRÌNH I. Mục tiêu bài học 1. Kiến thức - Biết khái niệm lập trình, ngôn ngữ lập trình và chương trình dịch. - Phân biệt được hai loại chương trình dịch là biên dịch và thông dịch. - Biết các thành phần cơ bản của ngôn ngữ lập trình. 2. Kỹ năng - Nhận diện các thành phần cơ bản trong một ngôn ngữ lập trình. 3. Thái độ - Thấy được sự cần thiết và tiện lợi khi sử dụng các ngôn ngữ lập trình bậc cao. - Có thái độ nghiêm túc khi học về lập trình. 4. Năng lực, phẩm chất - NL sử dụng ngôn ngữ NL làm việc nhóm - NL giải quyết vấn đề NL nhận biết các thành phần của NNLT - Phẩm chất: tích cực tìm tòi, tự giác nghiên cứu, ham học hỏi, kiên trì, yêu thích môn học, yêu thích lập trình II. Phương tiện chuẩn bị 1. Giáo viên - Phương pháp: Thuyết trình, vấn đáp, giải quyết vấn đề - Phương tiện: SGK, giáo án 2. Học sinh - Vở ghi, SGK III. Tiến trình bài học A. Hoạt động khởi động Mục tiêu: Giới thiệu nội dung chương trình tin học lớp 11 Phương pháp/ Kĩ thuật: Đàm thoại, vấn đáp Hình thức tổ chức hoạt động: cá nhân Phương tiện dạy học: SGK, máy chiếu, máy tính Sản phẩm: Học sinh nắm được nội dung chương tin học 11 B. Hoạt động hình thành kiến thức Mục tiêu: Giới thiệu nội dung bài 1 Phương pháp/ Kĩ thuật: Đàm thoại, vấn đáp Hình thức tổ chức hoạt động: cá nhân Phương tiện dạy học: SGK, máy chiếu, máy tính Sản phẩm: Học sinh nắm được nội dung bài 1 HOẠT ĐỘNG DẠY HỌC NỘI DUNG HĐ1: Tìm hiểu khái niệm lập trình và ngôn ngữ lập trình – Phát triển NL sử dụng ngôn ngữ, NL làm việc nhóm GV: Yêu cầu học sinh xác định Input, Output của bài toán giải phương trình bậc nhất ax+b=0. HS: Xác định : - Input : a, b - Output : x=-b/a, vô nghiệm, vô số nghiệm. GV: Hãy xác định các bước để tìm ra Output của bài toán ? HS: Xác định: Bước 1 : Nhập a,b. Bước 2 : Nếu a<>0 kết luận có nghiệm x= -b/a. Bước 3 : Nếu a=0 và b<>0, kết luận: vô nghiệm. Bước 4 : Nếu a=0 và b=0, kết luận: vô số nghiệm. GV: Hệ thống các bước giải trên được gọi là thuật toán. Nếu trình bày thuật toán với một người nước ngoài, em sẽ dùng ngôn ngữ nào để diễn đạt? HS: Ngôn ngữ tiếng Anh. GV: Nếu diễn đạt thuật toán này cho máy hiểu, em sẽ dùng ngôn ngữ gì? HS: Ngôn ngữ máy. GV: Ngôn ngữ máy là một trong các loại NNLT. Hoạt động để diễn đạt một thuật toán thông qua một ngôn ngữ lập trình được gọi là lập trình. GV: Chia lớp thành 3 nhóm - Nhóm 1: Trình bày đặc điểm ngôn ngữ máy + Các lệnh được mã hóa bằng các ký hiệu 0-1. + Chương trình được viết trên ngôn ngữ máy có thể được nạp vào bộ nhớ và thực hiện ngay. - Nhóm 2: Trình bày đặc điểm hợp ngữ + Các lệnh thường là viết tắt của các từ tiếng Anh + Hợp ngữ vẫn còn phụ thuộc vào phần cứng của máy tính. + Chương trình được viết bằng hợp ngữ cần được dịch ra ngôn ngữ máy bằng chương trình hợp dịch. - Nhóm 3: Trình bày đặc điểm của NNLT bậc cao + Các lệnh được mã hóa bằng một ngôn ngữ gần với ngôn ngữ tiếng Anh. + Chương trình viết trên ngôn ngữ bậc cao phải được chuyển đổi thành chương trình trên ngôn ngữ máy mới có thể thực hiện được. GV: Hãy rút ra khái niệm NNLT? HS: 3 nhóm thảo luận và trình bày 1. Khái niệm lập trình và ngôn ngữ lập trình a) Khái niệm lập trình Lập trình là việc sử dụng cấu trúc dữ liệu và các lệnh của ngôn ngữ lập trình cụ thể để mô tả dữ liệu và diễn đạt các thao tác của thuật toán. * Có 3 loại ngôn ngữ lập trình:Ngôn ngữ máy,hợp ngữ và ngôn ngữ bậc cao. - Ngôn ngữ máy : - Ngôn ngữ bậc cao : b) Khái niệm ngôn ngữ lập trình NNLT là ngôn ngữ được dùng để diễn tả thuật toán sao cho máy tính có thể hiểu và thực hiện được. HĐ2: Tìm hiểu chương trình dịch: thông dịch và biên dịch – Phát triển NL giải quyết vấn đề GV: Cần phải có một chương trình để chuyển đổi chương trình viết bằng ngôn ngữ lập trình bậc cao sang ngôn ngữ máy để máy có thể thi hành được. HS: Rút ra khái niệm CT dịch GV: Em muốn giới thiệu về trường mình cho một người khách du lịch quốc tế biết tiếng Anh, có hai cách để thực hiện: - Cách 1: Cần một người biết tiếng Anh, dịch từng câu nói của em sang tiếng Anh cho người khách → Thông dịch - Cách 2: Em soạn nội dung cần giới thiệu ra giấy và người phiên dịch dịch toàn bộ nội dung đó sang tiếng Anh rồi đọc cho người khách → Biên dịch GV:Ngôn ngữ lập trình C++ mà chúng ta sẽ được học có rất nhiều trình biên dịch: Dev C++, Turbo C++, Codeblock,... GV: Nêu 2 tình huống, yêu cầu HS xác định đâu là thông dịch, đâu là biên dịch? - Tình huống 1: Thủ tướng một chính phủ trả lời phỏng vấn trước một nhà báo quốc tế, họ thường cần một người thông dịch để dịch từng câu tiếng Việt sang tiếng Anh. - Tình huống 2: Thủ tướng đọc một bài diễn văn tiếng Anh trước Hội nghị, họ cần một người biên dịch để chuyển văn bản tiếng Việt thành tiếng Anh. HS: Tình huống 1: Thông dịch, tình huống 2: Biên dịch. 2. Chương trình dịch a) Khái niệm Chương trình dịch là chương trình đặc biệt có chức năng chuyển đổi chương trình được viết bằng ngôn ngữ lập trình bậc cao thành chương trình thực hiện được trên máy tính. b) Phân loại - Thông dịch: + Bước 1 : Kiểm tra tính đúng đắn của lệnh tiếp theo trong chương trình nguồn. + Bước 2 : Chuyển lệnh đó thành ngôn ngữ máy. + Bước 3 : Thực hiện các câu lệnh vừa được chuyển đổi. - Biên dịch: + Bước 1 : Duyệt, phát hiện lỗi, kiểm tra tính đúng đắn của lệnh trong chương trình nguồn. + Bước 2 : Dịch toàn bộ chương trình nguồn thành một chương trình trên ngôn ngữ máy. HĐ3: Tìm hiểu các thành phần cơ bản của ngôn ngữ lập trình – Phát triển NL nhận biết các thành phần của NNLT GV: Bảng chữ cái sử dụng trong ngôn ngữ lập trình là gì? HS: Trả lời câu hỏi. GV: Cú pháp khác ngữ nghĩa ở chỗ nào? HS: Cú pháp là quy tắc để viết chương trình, dễ phát hiện lỗi khi tổ hợp kí tự không hợp lệ, còn ngữ nghĩa thì xác định ý nghĩa tổ hợp kí tự trong chương trình. GV: Lấy ví dụ giải thích ngữ nghĩa: Nếu chỉ cho 2 phép tính cộng A + B và C + D, thì về ngữ nghĩa, chúng không có gì khác nhau, chỉ là phép cộng các số. Nhưng nếu cho 2 phép tính cộng A + B và C + D, trong đó A, B là các số nguyên và C, D là các số thực thì lúc này, ngữ nghĩa của của dấu “+” trong 2 phép tính trên là khác nhau. A + B là phép cộng hai số nguyên, còn C + D là phép cộng hai số thực. 3. Các thành phần cơ bản a) Bảng chữ cái - Là tập các kí hiệu dùng để viết chương trình. - Trong ngôn ngữ C++, bảng chữ cái gồm: + Các chữ cái in hoa và in thường trong bảng chữ cái tiếng Anh. + Các chữ số từ 0 đến 9. + Các kí tự đặc biệt: theo dõi SGK. b) Cú pháp - Là bộ quy tắc dùng để viết chương trình. c) Ngữ nghĩa - Xác định ý nghĩa thao tác cần thực hiện ứng với tổ hợp kí tự dựa vào ngữ cảnh của nó. - Cú pháp cho biết cách viết chương trình hợp lệ, ngữ nghĩa xác định ý nghĩa của các tổ hợp kí tự trong chương trình. * Chú ý: - Lỗi cú pháp được chương trình dịch phát hiện và thông báo cho người lập trình. Chương trình không còn lỗi cú pháp thì mới có thể dịch sang ngôn ngữ máy. - Lỗi ngữ nghĩa được phát hiện khi chạy chương trình. C. Hoạt động củng cố - Lập trình, ngôn ngữ lập trình. - Chương trình dịch: thông dịch, biên dịch. - Bảng chữ cái, cú pháp, ngữ nghĩa D. Hoạt động luyện tập, mở rộng - Trả lời các câu hỏi 1; 2 và 3 trang 14 SGK. - Đọc trước phần 2 và phần 3 của bài: “Các thành phần của ngôn ngữ lập trình”. Ngày soạn:15/09/2021 Tiết theo KHDH: 2 §2. CÁC THÀNH PHẦN CỦA NGÔN NGỮ LẬP TRÌNH I. Mục tiêu bài học 1. Kiến thức - Biết một số khái niệm: tên, tên chuẩn, tên dành riêng, hằng và biến. - Nắmđược các quy định về tên, hằng và biến trong một ngôn ngữ lập trình. - Phân biệt được tên, hằng và biến. 2. Kỹ năng - Biết cách đặt tên, nhận biết được tên viết sai quy tắc. - Sử dụng đúng chú thích. 3. Thái độ - Rèn luyện cho học sinh tính nguyên tắc, chặt chẽ trong lập trình 4. Năng lực, phẩm chất - NL sử dụng ngôn ngữ - NL quan sát và nhận biết - NL làm việc nhóm - NL xác định các đối tượng trong NNLT - Phẩm chất: tích cực tìm tòi, tự giác nghiên cứu, ham học hỏi, kiên trì, yêu thích môn học, yêu thích lập trình II. Phương tiện chuẩn bị 1. Giáo viên - Phương pháp: Thuyết trình, vấn đáp, trực quan, làm việc nhóm - Phương tiện: SGK, giáo án 2. Học sinh - Vở ghi, SGK III. Tiến trình bài học A. Hoạt động khởi động Câu hỏi: Phân biệt thông dịch và biên dịch? Cho ví dụ minh họa B. Hoạt động hình thành kiến thức HOẠT ĐỘNG DẠY HỌC NỘI DUNG HĐ1: Tìm hiểu khái niệm tên trong ngôn ngữ lập trình – Phát triển NL tự học GV: Mọi đối tượng, sự vật xung quanh chúng ta đều có một cái tên cụ thể. Và ngôn ngữ lập trình cũng vậy, mỗi đối tượng trong một chương trình đều phải được đặt tên. Vậy thì theo em, việc đặt tên cho các đối tượng trong chương trình nhằm mục đích gì? HS: Trả lời câu hỏi. GV: Em hãy cho biết tên được đặt theo quy tắc nào? HS: Trả lời câu hỏi. GV: Ngôn ngữ lập trình mà chúng ta sẽ được làm quen trong chương trình Tin học 11 là ngôn ngữ lập trình C++. Chính vì vậy, trong tiết học này, chúng ta chỉ đi sâu tìm hiểu về ngôn ngữ lập trình C++. GV: Theo dõi sách giáo khoa, và cho biết tên trong C++phải tuân thủ những quy tắc nào? HS: Trả lời câu hỏi. GV: Cho các tên sau: A, A BC, 6Pq, R12, X#y, _45. Hãy xác định các tên đúng và tên sai. HS: Các tên đúng: A, R12, _45. Các tên sai: A BC, 6Pq, X#y GV: Chia lớp thành 3 nhóm - Nhóm 1: Tên dành riêng - Nhóm 2: Tên chuẩn - Nhóm 3: Tên do người lập trình đặt HS: Thảo luận nhóm và trả lời 2. Một số khái niệm a) Tên - Tên dùng để phân biệt và xác định các đối tượng trong chương trình. - Tên được đặt theo quy tắc của ngôn ngữ lập trình và từng chương trình dịch cụ thể. - Quy tắc đặt tên trong C++: + Bao gồm chữ số, chữ cái, hoặc dấu gạch dưới. + Bắt đầu bằng chữ cái hoặc dấu gạch dưới. + Không được chứa các kí tự đặc biệt: dấu cách, dấu chấm,.. - Ví dụ: A, A BC, 6Pq, R12, X#y, _45 Chú ý: Tên trong C++ phân biệt chữ hoa với chữ thường. - Phân loại: + Tên dành riêng (từ khóa): Được ngôn ngữ lập trình dùng với ý nghĩa riêng xác định Người lập trình không được dùng lại với ý nghĩa khác. VD: main, if, while, include, void + Tên chuẩn: Được NNLT dùng với ý nghĩa nhất định nào đó được quy định trong các thư viện của ngôn ngữ lập trình Người lập trình có thể khai báo và dùng với ý nghĩa khác. VD: cout, min, max + Tên do người lập trình đặt Được người lập trình sử dụng theo ý nghĩa riêng Phải khai báo trước khi sử dụng. VD: Bai_tap, Giai_phuong_trinh,... HĐ2: Tìm hiểu hằng, biến, chú thích – Phát triển NL làm việc nhóm, NL sử dụng ngôn ngữ, NL xác định các đối tượng trong chương trình GV: Đưa ra bài toán: Tính chu vi P và diện tích S của hình tròn có bán kính R với R được nhập từ bàn phím. Hãy cho biết trong bài toán trên có những đại lượng nào có giá trị không đổi và đại lượng nào có giá trị thay đổi. HS: Nếu nhập R = 3 thì C = 6π và S = 9π Nếu nhập R = 4 thì C = 8π và S = 16π Vậy đại lượng có giá trị thay đổi là R, C, S và đại lượng có giá trị không thay đổi là π GV: Em hãy cho biết, trong ngôn ngữ lập trình C++có mấy loại hằng? HS: Trả lời câu hỏi. GV: Biến khác hằng như thế nào? HS: TL GV: Thực hiện việc thêm chú thích trực tiếp vào chương trình, dịch và chạy chương trình. Chú thích có ý nghĩa như thế nào? HS: TL GV: Khi chèn thêm chú thích, kết quả của bài toán có bị thay đổi không? HS: TL GV: Hãy cho biết, chú thích trong C++được viết như nào? HS: TL b) Hằng và biến * Hằng: - Khái niệm: Hằng là đại lượng có giá trị không thay đổi trong quá trình thực hiện chương trình. - Phân loại: + Hằng số học: Số nguyên: -5, +18, 3 Số thực: 1.5, -22.3, 1.0E-6, -2.3E5 + Hằng logic: True:1 False: 0 + Hằng xâu: là dãy kí tự trong bộ mã ASCII, được đặt trong cặp dấu nháy kép. Ví dụ: “Lop 11A3”; “Trương THPT Tran Van Lan”. + Hằng kí tự: là một kí tự bất kì trong bảng mã ASCII nằm trong cặp dấu nháy đơn Ví dụ: ‘0’, ‘a’ * Biến: - Biến là đại lượng có giá trị thay đổi trong quá trình thực hiện chương trình. - Các biến dùng trong chương trình đều phải được khai báo. c) Chú thích: - Giúp người đọc chương trình dễ dàng nhận biết ý nghĩa của chương trình đó. - Chú thích không làm ảnh hưởng đến chương trình nguồn và được chương trình dịch bỏ qua. - Trong C++, chú thích được đặt giữa cặp dấu /* và */ hoặc đặt sau dấu // C. Hoạt động củng cố - Tên: + Tên dành riêng; + Tên chuẩn; + Tên do người lập trình đặt. - Các đại lượng: + Hằng; + Biến. - Chú thích. D. Hoạt động luyện tập, mở rộng - Làm các bài tập 4, 5/14 SGK để chuẩn bị cho tiết bài tập Ngày soạn:16/09/2021 Tiết theo KHDH:3,4 §3. CẤU TRÚC CHƯƠNG TRÌNH §4. MỘT SỐ KIỂU DỮ LIỆU CHUẨN I. Mục tiêu bài học 1. Kiến thức - Hiểu chương trình là sự mô tả thuật toán bằng một ngôn ngữ lập trình; - Biết cấu trúc của một chương trình đơn giản: cấu trúc chung và các thành phần. - Biết một số kiểu dữ liệu chuẩn: Kiểu nguyên, kiểu thực, kiểu kí tự, kiểu logic. - Hiểu cách khai báo biến; 2. Kỹ năng - Nhận biết được các thành phần của một chương trình đơn giản. - Xác định được kiểu cần khai báo của dữ liệu đơn giản. - Khai báo biến đúng; 3. Thái độ - HS ham muốn tìm hiểu cách viết một chương trình giải bài toán trên máy tính, bắt đầu hình dung ra cách viết một chương trình, từ đó có tư duy để viết được những chương trình khó hơn; - Có thái độ nghiêm túc, tính cẩn thận khi làm quen với những quy định nghiêm ngặt trong lập trình. - HS thấy được sự cần thiết phải tuân thủ các quy định chuẩn trong chương trình và khi lập trình. 4. Năng lực, phẩm chất - NL quan sát và nhận biết - NL sử dụng kí hiệu và ngôn ngữ tin học - NL tư duy - NL sử dụng CNTT - NL xác định cấu trúc chương trính - Phẩm chất: tích cực tìm tòi, tự giác nghiên cứu, ham học hỏi, kiên trì, yêu thích môn học, yêu thích lập trình II. Phương tiện chuẩn bị 1. Giáo viên - Phương pháp: Thuyết trình, vấn đáp, trực quan, gợi mở, thực hành - Phương tiện: SGK, giáo án, máy chiếu 2. Học sinh - Vở ghi, SGK III. Tiến trình bài học A. Hoạt động khởi động Câu hỏi: Câu 1: Đưa ra ví dụ về 3 tên đúng, 3 tên sai, hãy chỉ ra lỗi sai Câu 2: Hãy cho các ví dụ về hằng số nguyên, số thực, logic, xâu và kí tự? (tương ứng mỗi loại 2 ví dụ) B. Hoạt động hình thành kiến thức HOẠT ĐỘNG DẠY HỌC NỘI DUNG HĐ1: Tìm hiểu cấu trúc chung của chương trình– Phát triển NL sử dụng ngôn ngữ và kí hiệu tin học, NL tư duy GV: Đặt câu hỏi Một bài tập làm văn các em thường viết có mấy phần? Gồm những phần nào? Có thứ tự hay không? Vì sao phải chia ra như vậy? HS: Gồm 3 phần, có thứ tự. Mở bài, thân bài, kết bài. Chia ra để dễ đọc, dễ hiểu. GV: Theo dõi SGK và cho cô biết, cấu trúc của một chương trình được viết bằng ngôn ngữ bậc cao gồm mấy phần? Phần nào bắt buộc phải có? HS: Trong tin học, chương trình được viết bằng một ngôn ngữ lập trình bậc cao thường gồm 2 phần: phần khai báo và phần thân. Phần thân là phần bắt buộc phải có. GV: Diễn giải: Thành phần có thể có hoặc không có được đặt trong cặp dấu [ và ]. Các diễn giải bằng ngôn ngữ tự nhiên được đặt trong cặp dấu . HS: Nắm bắt cách sử dụng các kí hiệu 1. Cấu trúc chung - Cấu trúc chung + Phần khai báo: có thể có hoặc không + Phần thân: bắt buộc phải có - Mô tả: [ ] HĐ2: Tìm hiểu các thành phần cụ thể của chương trình – Phát triển NL sử dụng ngôn ngữ và kí hiệu tin học GV: Giới thiệu: Phần khai báo sẽ báo cho máy biết chương trình sẽ sử dụng những tài nguyên nào của máy. Chúng ta có thể khai báothư viện, hằng, biến, và chương trình con. GV: Mỗi ngôn ngữ lập trình thường có sẵn một số thư viện cung cấp một số chương trình thông dụng đã được lập sẵn. Để sử dụng các chương trình đó cần khai báo thư viện chứa nó. GV: Nêu cú pháp HS: Xác định các thành phần trong khai báo thư viện GV: Thư viện iostream trong C++ chứa các chương trình thực hiện nhiệm vụ vào ra dữ liệu chuẩn. GV: Khai báo hằng là việc đặt tên cho hằng để tiện khi sử dụng và tránh việc phải viết lại nhiều lần cùng một hằng trong chương trình. HS: Xác định các thành phần trong cú pháp khai báo hằng GV: Khai báo biến là là xin máy tính cấp cho chương trình một vùng nhớ để lưu trữ và xử lý thông tin trong bộ nhớ trong. Chúng ta sẽ tìm hiểu sâu hơn vấn đề này trong mục 5. GV: Khai báo và sử dụng chương trình con được trình bày trong chương VI. GV:Thân chương trình thường là nơi chứa toàn bộ các câu lệnh của chương trình hoặc lời gọi của chương trình con. Trong ngôn ngữ lập trình C++, phần thân nằm trong cặp dấu { và }, thể hiện dấu hiệu mở đầu và kết thúc. GV: Yêu cầu theo dõi SGK để giải thích các từ khóa int, main, return HS: Theo dõi và trả lời 2. Các thành phần của chương trình a) Phần khai báo * Khai báo thư viện - Cú pháp: #include - Ví dụ: #include * Khai báo hằng - Cú pháp: const = ; - Ví dụ: const long x = 100; * Khai báo biến - Tất cả các biến trong chương trình đều phải được đặt tên và phải khai báo cho chương trình dịch biết để khai báo và xử lý. - Biến chỉ được nhận một giá trị tại mỗi thời điểm thực hiện chương trình gọi là biến đơn. b) Phần thân chương trình - Cú pháp: intmain() { [khai báo biến] [các câu lệnh] [khai báo biến] [các câu lệnh] return 0; } * Chú ý: - Biến được khai báo bên trong một hàm (trong cặp dấu { và }) gọi là biến cục bộ. - Biến được khai báo bên ngoài cặp dấu { và } được gọi là biến toàn cục. HĐ3: Tìm hiểu ví dụ về các chương trình đơn giản– Phát triển NL quan sát và nhận biết, NL sử dụng CNTT, NL xác định cấu trúc chương trình GV: Chiếu ví dụ 1, yêu cầu HS xác định: 1) Chương trình có mấy phần? Đó là những phần nào? 2) Phần khai báo có những khai báo nào? 3) Phần thân gồm mấy câu lệnh? HS: Suy nghĩ và TL GV: Chạy chương trình - Chương trình làm nhiệm vụ đưa ra màn hình dòng chữ Hello World! - Dòng // my first program in C++ là chú thích - Dòng # include khai báo thư viện iostream chứa các chương trình vào ra chuẩn. - std:cout là viết tắt của standard character output device. - Toán tử << biểu thị những gì sẽ được đưa ra sau câu lệnh std:cout HS: Quan sát kết quả GV: Chiếu ví dụ 2, yêu cầu HS xác định: 1) Chương trình có mấy phần? Đó là những phần nào? 2) Phần khai báo có những khai báo nào? 3) Phần thân gồm mấy câu lệnh? HS: Suy nghĩ và TL GV: Chạy chương trình - Dòng 2 sử dụng không gian tên std (chứa các lệnh cin, cout, ) - Dòng 3 là khai báo 2 biến toàn cục x và y - Dòng 5 là câu lệnh nhập vào giá trị cho 2 biến x và y từ màn hình - Toán tử >> thể hiện sẽ nhập dữ liệu cho biến nào ngay sau nó. - Dòng 6 là câu lệnh đưa giá trị x+y ra màn hình HS: Quan sát kết quả 3. Ví dụ chương trình đơn giản a) Ví dụ 1 // my first program in C++ # include int main () { Std ::cout <<“Hello World !”; } b) Ví dụ 2 # include //1 using namespace std ; //2 long x, y ; //3 int main () //4 { cin>> x >> y ; //5 cout << x+y ; //6 return 0 ; //7 } //8 * Chú ý : - Một lỗi sai cơ bản của người lập trình là quên viết dấu “;” cuối câu lệnh. - Từ các chương trình sau, chúng ta sử dụng không gian tên using namespace std ; HĐ4: Tìm hiểu một số kiểu dữ liệu chuẩn– Phát triển NL tư duy dụng CNTT, NL xác định cấu trúc chương trình GV: Giá trị hằng và biến trong các chương trình phải gắn với một kiểu dữ liệu để chương trình dịch biết được và phân phối bộ nhớ cho chúng lúc dịch chương trình. Các kiểu dữ liệu chuẩn thường gặp là kiểu số nguyên, số thực, kí tự và logic GV: Em thấy kiểu nguyên có hạn chế gì? HS: Miền giá trị bị hạn chế, tập số nguyên là vô hạn, nhưng kiểu nguyên trong máy tính là hữu hạn. GV: Có những đối tượng nhận giá trị kiểu nguyên nhưng vẫn cần khai báo kiểu thực nếu như giá trị nguyên của nó vượt quá phạm vi biểu diễn của kiểu long long, ví dụ như tính giá trị biểu thức T = 13 + 23 + + n3 với n đủ lớn. Khi đó cần sử dụng T như một biến kiểu double. GV: Em thấy kiểu số thực có đặc điểm gì? HS: Kiểu số thực chỉ cho biết kết quả gần đúng, số thực sử dụng trong máy tính cũng là rời rạc và hữu hạn. Nhưng miền giá trị được mở rộng hơn so với kiểu nguyên. GV: Em hãy cho biết kiểu kí tự được dùng khi nào? Hãy cho ví dụ về kiểu kí tự. HS: Kiểu kí tự dùng khi thông tin là các kí tự, xâu, hầu hết các ngôn ngữ lập trình đểu có kiểu kí tự để làm việc với văn bản. Ví dụ kiểu kí tự A có mã ASCII là 65. GV: Logic là một kiểu dữ liệu được thể hiện rất rõ trong lập trình, rất có ý nghĩa trong việc biểu thị các biểu thức logic và các điều kiện có giá trị đúng hay sai trong chương trình. GV: Lấy thêm ví dụ minh họa cho biến ok trong ví dụ 3. ok = (3 > 5); ok = false; ok = (3 < 5); ok = true; ok = (x > 5); ok bằng true hay false tùy theo giá trị của x; 4. Một số kiểu dữ liệu chuẩn a) Kiểu số nguyên Nhóm Kiểu dữ liệu Bộ nhớ lưu trữ một giá trị Phạm vi giá trị Xấp xỉ theo đơn vị mũ 10 Số nguyên có dấu signed char 1 byte -128 to 127 102 signed short int 2 byte -32768 to 32767 104 signed int 4 byte -2147483648 to 2147483647 109 signed long int 4 byte -2147483648 to 2147483647 109 signed long longint 8 byte -9.2e+18 to 9.2e+18 1018 Số nguyên không dấu unsigned char 1 byte 0 to 255 (28-1) 102 unsignedshort int 2 byte 0 to 65535 (216-1) 104 unsigned int 4 byte 0 to 4294967295 (232-1) 109 signed long int 4 byte 0 to 4294967295 (232-1) 109 signed long longint 8 byte 0 to 1.8*1019 (264-1) 1018 b) Kiểu thực Kiểu Bộ nhớ lưu trữ một giá trị Phạm vi giá trị Double 8 byte +/-1.7e+/-308 c) Kiểu kí tự Kiểu Bộ nhớ lưu trữ một giá trị Phạm vi giá trị char 1 byte 256 kí tự trong bộ mã ACSII c) Kiểu logic Kiểu Bộ nhớ lưu trữ một giá trị Phạm vi giá trị Boolean 1 byte true hoặc false C. Hoạt động củng cố - Cấu trúc của một chương trình: [khai báo thư viện] [khai báo hằng] [khai báo biến toàn cục] [khai báo chương trình con (hàm)] int main { [khai báo biến cục bộ] [các câu lệnh] return 0; } - Các kiểu dữ liệu: nguyên, thực, kí tự, logic - Khai báo biến D. Hoạt động luyện tập, mở rộng - Đọc trước nội dung §6. Phép toán, biểu thức, câu lệnh gán. Ngày soạn:20/09/2021 Tiết theo KHDH:5 §5: KHAI BÁO BIẾN §6: PHÉP TOÁN, BIỂU THỨC, CÂU LỆNH GÁN I. Mục tiêu bài học 1. Kiến thức - Biết được cú pháp khai báo biến,các loại phép toán và hiểu được đúng giá trị trả lại của chúng; - Hiểu được giá trị và sử dụng thành thạo các hàm số học chuẩn của C++; 2. Kỹ năng - Khai báo biến trong chương trình - Chuyển đổi biểu thức toán học sang C++ 3. Thái độ - HS hiểu bài và hứng thú với bài học; - HS được rèn luyện tính cẩn thận khi khai báo biến, chuyển đổi các phép toán và biểu thức giữa hai dạng biểu thị trong toán học và trong lập trình. 4. Năng lực, phẩm chất - NL sử dụng ngôn ngữ - NL hợp tác và làm việc nhóm - NL tính toán - NL chuyển đổi biểu thức toán học sang C++ - NL sử dụng kí hiệu tin học - Phẩm chất: tích cực tìm tòi, tự giác nghiên cứu, ham học hỏi, kiên trì, yêu thích môn học, yêu thích lập trình II. Phương tiện chuẩn bị 1. Giáo viên - Phương pháp: Thuyết trình, vấn đáp, trực quan, làm việc nhóm - Phương tiện: SGK, giáo án 2. Học sinh - Vở ghi, SGK III. Tiến trình bài học A. Hoạt động khởi động B. Hoạt động hình thành kiến thức HOẠT ĐỘNG DẠY HỌC NỘI DUNG HĐ1: Tìm hiểu cách khai báo biến – Phát triển NL sử dụng ngôn ngữ tin học và NL tính toán GV: Chiếu chương trình bài toán giải phương trình bậc nhất ax + b= 0, chỉ rõ khai báo biến của bài toán double a, b, x; GV: Em hãy cho cô biết cú pháp của khai báo biến? HS: Trả lời câu hỏi GV: Diễn giải về danh sách biến và kiểu dữ liệu. GV:Giả sử trong chương trình cần các biến thực A, B, C, D, X1, X2 và các biến nguyên M, N. Hãy khai báo biến cho chương trình. HS: Viết khai báo GV: Hãy khai báo các biến sau đây: Các biến thực x, y, z; Biến kí tự c ; Các biến shorti và j ; Biến long n. HS: Khai báo GV: Đưa ra một số chú ý khi khai báo biến cho HS biết. GV: Chiếu các chương trình và chạy HS: Rút ra phạm vi của các loại biến S 1. Khai báo biến a) Cú pháp khai báo biến - Cú pháp ; trong đó: +Danh sách biến là một hoặc nhiều tên biến, các biến được viết cách nhau bởi dấu phẩy. +Kiểu dữ liệu là một trong các kiểu dữ liệu chuẩn hoặc kiểu dữ liệu do người lập trình định nghĩa. - Ví dụ: + Ví dụ 1: double A, B, C, D, X1, X2; long M, N; + Ví dụ 2: double x, y, z; char c; short i, j; long n; * Chú ý: - Đặt tên biến sao cho gợi nhớ tới ý nghĩa của biến đó, không nên đặt tên quá ngắn hoặc quá dài. Ví dụ : đặt tên biến biểu diễn cho điểm toán và điểm tin là dtoan, dtin. - Khai báo biến cần chú ý tới phạm vi giá trị của nó b) Phạm vi biến - Phạm vi : + Biến cục bộ: khai báo trong cặp dấu {}, chỉ sử dụng trong hàm khai báo nó. + Biến toàn cục: khai báo ngoài cặp dấu {}, sử dụng trong cả chương trình + Khi sử dụng biến cục bộ và biến toàn cục trong một hàm, biến cục bộ sẽ được ưu tiên. - Khởi tạo biến toàn cục và biến cục bộ : + Biến cục bộ: người dùng tự khởi tạo giá trị ban đầu + Biến toàn cục: chương trình tự động khởi tạo giá trị ban đầu : Kiểu dữ liệu Khởi tạo biến toàn cục Int 0 Char ‘\0’ Float 0 Double 0 Pointer NULL HĐ2: Tìm hiểu phép toán – Phát triển NL sử dụng kí hiệu tin học GV: Xác định kết quả của phép toán sau? 26 / 7 = ? và 26 % 7 = ? HS: TL GV: Phép toán quan hệ dùng để so sánh giá trị 2 đại lượng và kết quả trả về là true hoặc false. GV: Biểu thức logic dùng để tạo ra những biểu thức phức tạp từ các biểu thức quan hệ đơn giản. 2. Phép toán a) Phép toán đối với số nguyên Toán học C++ Ghi chú Cộng + Trừ - Nhân * Chia lấy phần dư % 5%2=1 Chia lấy phần nguyên / 5/2=2 b) Phép toán đối với số thực Toán học C++ Ghi chú Cộng + Trừ - Nhân * Chia % 5.0/2.0=2.5 c) Phép toán quan hệ Toán học C++ Ghi chú Nhỏ hơn (<) < Lớn hơn (>) > Nhỏ hơn hoặc bằng (≤) <= Lớn hơn hoặc bằng (≥) >= Bằng (=) = = Hai dấu bằng Khác (≠) != d) Phép toán logic Toán học C++ Ghi chú Phủ định ⌐ ! Một dấu ! Hoặc ˅ || Hai dấu | Và ˄ && Hai dấu & HĐ3: Tìm hiểu biểu thức số học – Phát triển NL chuyển đổi biểu thức toán học sang C++ GV: Hãy đưa ra 2 ví dụ về biểu thức trong toán học? HS: 5a+6b, GV: Các thành phần có thể có trong biểu thức toán học? HS: Hằng số, biến số, phép toán, dấu ngoặc GV: Nêu quy tắc viết biểu thức GV: Em hãy cho biết thứ tự thực hiện các phép toán trong biểu thức toán học? HS: TL. GV: Hãy chuyển đổi các biểu thức toán học sau sang biểu thức trong C++: 1) Ax2 + Bx + C = 0 2) - 3) a[b(c+d)-bc] HS: Lên bảng làm bài. 1) A*x*x + B*x + C 2) (x + y)/(x – 1/2) – (x - z)/(x*y) 3) a*(b*(c+d)-b*c) 3. Biểu thức số học - Khái niệm: Biểu thức số học là: + một biến kiểu số; + hoặc một hằng số; + hoặc các biến kiểu số và các hằng liên kết với nhau bởi một số hữu hạn các phép toán số học và các dấu ngoặc tròn ( và ). - Các quy tắc viết biểu thức: + Chỉ dùng cặp ngoặc tròn để xác định trình tự thực hiện phép toán trong trường hợp cần thiết; + Viết lần lượt từ trái qua phải; + Không được bỏ qua dấu nhân (*) trong tích. - Thứ tự thực hiện phép toán: + Trong ngoặc trước, ngoài ngoặc sau + Không có ngoặc thì thực hiện từ trái sang phải theo thứ tự: nhân (*), chia (/), lấy phần dư (%) trước, cộng (+), trừ (-) sau. HĐ4: Tìm hiểu một số hàm số học chuẩn– Phát triển NL sử dụng ngôn ngữ tin học và NL chuyển đổi biểu thức toán học sang C++ GV:Để thuận lợi cho lập trình, các ngôn ngữ cung cấp một số chương trình tính giá trị cho một số hàm toán học thông thường. Các chương trình như vậy được gọi là hàm số học chuẩn.Cách biểu thị một hàm chuẩn trong một ngôn ngữ lập trình cũng tương tự với cách biểu thị hàm trong toán học, gồm tên hàm, đối số và kiểu của hàm. GV: Hãy thực hiện bảng sau: Value round floor Ceil Trunc 6.2 4.9 8.5 -6.2 -4.9 -8.5 HS: Lên bảng điền vào các ô Value round floor Ceil Trunc 6.2 6.0 6.0 7.0 6.0 4.9 5.0 4.0 5.0 4.0 8.5 9.0 8.0 9.0 8.0 -6.2 -6.0 -7.0 -6.0 -6.0 -4.9 -5.0 -5.0 -4.0 -4.9 -8.5 -9.0 -9.0 -8.0 -8.5 GV: Hãy chuyển biểu thức toán học sau sang C++ HS: (- b + sqrt(sqr(b)-4*a*c))/(2*a) 4. Hàm số học chuẩn - Mỗi hàm chuẩn có tên chuẩn riêng; - Các đối số của hàm là một hay vài biểu thức số học, viết trong ngoặc tròn sau tên hàm; - Bản thân hàm chuẩn cũng được coi là một biểu thức số học, nên nó có thể tham gia vào một biểu thức số học như một toán hạng; - Kết quả của hàm có thể là kiểu nguyên hoặc thực hay phụ thuộc vào kiểu của đối số. - Một số hàm chuẩn trong C++: Hàm Tham số Kiểu trả về Chức năng sqrt(x) x nguyên/thực không âm Thực Căn bậc hai của x fabs(x) x thực Thực Giá trị tuyệt đối của x sin(x) x thực Thực sin(x) cos(x) x thực Thực cos(x) trunc(x) x thực Thực Cắt phần thập phân floor(x) x thực Thực Làm tròn xuống ceil(x) x thực Thực Làm tròn lên round (x) x thực Thực Làm tròn thông thường C. Hoạt động củng cố - Phép toán: số học, quan hệ, logic - Hàm số học chuẩn D. Hoạt động luyện tập, mở rộng - Nghiên cứu trước mục 4, 5 và 6 của bài. Ngày soạn: Tiết theo KHDH: 6 §6. PHÉP TOÁN, BIỂU THỨC, CÂU LỆNH GÁN (tiết 2) I. Mục tiêu bài học 1. Kiến thức - Biết được các biểu thức quan hệ, biểu thức logic - Hiểu lệnh gán. 2. Kỹ năng - Viết được lệnh gán; - Viết được các biểu thức số học và logic với các phép toán th
Tài liệu đính kèm:
- giao_an_tin_hoc_c_lop_11_chuong_trinh_ca_nam_tran_van_quyen.doc