Giáo án C++ tin học 11 soạn theo công văn 5512 Bạn đang chuẩn bị bước chân vào con đường lập trình CNTT. Đứng trước vô vàn sự lựa chọn về ngôn ngữ lập trình cần học. Có những ngôn ngữ tuy rất cơ bản dễ học nhưng nó lại là một ngôn ngữ khá cũ. Cũng có những ngôn ngữ mới được phát triển, hệ bậc cao, rất tối ưu nhưng không phải ai cũng học được. Hôm nay chúng tôi sẽ giới thiệu đến bạn ngôn ngữ lập trình C++ cùng với tài liệu học tập, bộ giáo trình kỹ thuật C++ vô cùng hữu ích.
Trang 1Bạn đang chuẩn bị bước chân vào con đường lập trình CNTT Đứng trước vô vàn sự lựachọn về ngôn ngữ lập trình cần học Có những ngôn ngữ tuy rất cơ bản dễ học nhưng nólại là một ngôn ngữ khá cũ Cũng có những ngôn ngữ mới được phát triển, hệ bậc cao, rấttối ưu nhưng không phải ai cũng học được Hôm nay chúng tôi –CodeGym sẽ giới thiệu
đến bạn ngôn ngữ lập trình C++ cùng với tài liệu học tập, bộ giáo trình kỹ thuật C++ vôcùng hữu ích
Ngày soạn:
Tiết theo KHDH: 1
§1 KHÁI NIỆM LẬP TRÌNH VÀ NGÔN NGỮ LẬP TRÌNH
§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 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 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ônhọ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
Trang 2HOẠ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
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
+ 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
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áccủ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 :
Trang 3+ 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
- 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
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 caothành chương trình thực hiện được trênmáy tính
b) Phân loại
- Thông dịch:
+ Bước 1 : Kiểm tra tính đúng đắn củalệnh tiếp theo trong chương trình nguồn + Bước 2 : Chuyển lệnh đó thành ngônngữ máy
+ Bước 3 : Thực hiện các câu lệnh vừađược chuyển đổi
Trang 4toà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
+ Bước 2 : Dịch toàn bộ chương trìnhnguồn thành một chương trình trên ngônngữ 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
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ự
Trang 5ý 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
- Lỗi ngữ nghĩa được phát hiện khi chạychương trình
- 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”
- 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
Trang 6- 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ônhọ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
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
2 Một số khái niệm
a) Tên
- Tên dùng để phânbiệt và xác định cácđối tượng trongchương trình
- Tên được đặt theoquy tắc của ngôn ngữlập trình và từngchương trình dịch cụthể
- Quy tắc đặt têntrong C++:
Trang 7+ Bắt đầu bằng chữcái hoặc dấu gạchdưới.
+ Không đượcchứa các kí tự đặcbiệt: dấu cách, dấuchấm,
- Ví dụ: A, A BC,6Pq, R12, X#y, _45
Chú ý: Tên trong C+
+ phân biệt chữ hoavới chữ thường
- Phân loại:
+ Tên dành riêng (từkhóa):
Được ngônngữ lập trình dùngvới ý nghĩa riêng xácđịnh
Người lậptrình không đượcdùng lại với ý nghĩakhác
VD: main, if,while, include, void + Tên chuẩn:
Được NNLTdùng với ý nghĩanhất định nào đóđược quy định trongcác thư viện củangôn ngữ lập trình
Người lập
Trang 8trình có thể khai báo
và dùng với ý nghĩakhác
VD: cout,min, max
+ Tên do người lậptrình đặt
Được ngườilập trình sử dụngtheo ý nghĩa riêngPhải khai báotrướ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
- 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:
Trang 9GV: 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?
kí tự trong bộ mãASCII, được đặttrong cặp dấu nháykép
Ví dụ: “Lop 11A3”;
“Trương THPT TranVan Lan”
+ Hằng kí tự: là một
kí tự bất kì trongbảng mã ASCII nằmtrong cặp dấu nháyđơn
Ví dụ: ‘0’, ‘a’
* Biến:
- Biến là đại lượng
có giá trị thay đổitrong quá trình thựchiện chương trình
- Các biến dùngtrong chương trìnhđều phải được khaibáo
c) Chú thích:
- Giúp người đọcchương trình dễ dàngnhận biết ý nghĩa củachương trình đó
- Chú thích khônglàm ảnh hưởng đếnchương trình nguồn
và được chương trìnhdịch bỏ qua
- Trong C++, chú
Trang 10thích được đặt giữacặp dấu /* và */ hoặcđặt sau dấu //
Trang 11Ngày soạn:
Tiết theo KHDH:5
§3: KHAI BÁO BIẾN
§4: PHÉP TOÁN, BIỂU THỨC, CÂU LỆNH GÁN
- 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ểuthứ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ônhọ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
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
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
1 Khai báo biến
a) Cú pháp khai báo biến
- Cú pháp
<kiểu dữ liệu><danh sách biến> ;
trong đó:
Trang 12GV: 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:
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
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ụctrong 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
Trang 13giá trị ban đầu :Kiểu dữ liệu Khởi tạo biến toàn
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
Chia lấy phầnnguyên
<=
Lớn hơn hoặcbằng (≥)
>=
d) Phép toán logic
Trang 14GV: 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
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
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
+ 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 sangphải theo thứ tự: nhân (*), chia (/), lấy phần dư(%) trước, cộng (+), trừ (-) sau
Trang 153) a*(b*(c+d)-b*c)
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
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ộtbiểu thức số học, nên nó có thể tham gia vàomộ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ặcthực hay phụ thuộc vào kiểu của đối số
- Một số hàm chuẩn trong C++:
trả về
Chức năng
phầnthậpphân
trònxuống
tròn lên
tròn
Trang 16GV: Hãy thực hiện bảng sau:
Value roun
d
floor
Ceil
Trunc6.2
Ceil
Trunc
Trang 17Ngày soạn:
Tiết theo KHDH:4
§5 CẤU TRÚC CHƯƠNG TRÌNH
§6 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 đầuhình dung ra cách viết một chương trình, từ đó có tư duy để viết được những chươngtrì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ặttrong 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à khilậ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
- 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
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ỗiloại 2 ví dụ)
B Hoạt động hình thành kiến thức
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
Trang 18GV: 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 <
và >
HS: Nắm bắt cách sử dụng các kí
hiệu
- 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ó
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
Trang 19thườ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
- Cú pháp: #include<tên thư viện>
- Ví dụ: #include <iostream>
* Khai báo hằng
- Cú pháp: const<tên kiểu dữ liệu><tên hằng> =
<giá trị>;
- 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ịchbiế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]
Trang 20GV: 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
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
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
- Dòng 2 sử dụng không gian tên
3 Ví dụ chương trình đơn giản
a) Ví dụ 1
// my first program in C++
# include <iostream>
int main (){
Std ::cout <<“Hello World !”;
}
b) Ví dụ 2
# include <iostream> //1using namespace std ; //2long x, y ; //3
int main () //4{ cin>> x >> y ; //5 cout << x+y ; //6 return 0 ; //7} //8
* Chú ý :
Trang 21std (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ị
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
Phạm vi giátrị
Xấ
p xỉtheođơnvịmũ10Số
nguyê
n códấu
signed char 1
byte-128 to 127 102
signed short
int
2byte
-32768 to32767
104
signed int 4
byte
214748364
2147483647
109
signed long
int
4byte
214748364
2147483647
109
signed long longint
8byte
-9.2e+18
to 9.2e+18
1018
Trang 22GV: 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
Sốnguyênkhôngdấu
unsigned char
1byte
0 to 255 (28-1) 10
2
unsignedshor
t int
2byte
0 to 65535 (216-1) 10
4
unsigned int 4
byte
4294967295
4294967295
(232-1)
109
signed long longint
8byte
Phạm vi giá trị
char 1 byte 256 kí tự trong
bộ mã ACSII
c) Kiểu logic
Trang 23GV: 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
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)]
- 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
Trang 24- 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 và làm việc nghiêm túc khi viết câu lệnh gán; khichuyể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ậptrình
4 Năng lực, phẩm chất
- 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ônhọ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
- Phương tiện: SGK, giáo án
HĐ1: Tìm hiểu biểu thức quan hệ– Phát triển NL sử dụng ngôn ngữ và NL chuyển đổi
biểu thức toán học sang C++
GV: Hai biểu thức cùng kiểu liên kết với
nhau bởi phép toán quan hệ cho ta một
trong đó, biểu thức 1 và biểu thức 2 cùng
là xâu hoặc cùng là biểu thức số học
Ví dụ :
Trang 25GV: Hãy đưa ra điều kiện để điểm M có
tọa độ (x,y) thuộc hình tròn tâm I(a,b),
- Trình tự thực hiện:
+ Tính giá trịbiểu thức ở 2 vế
+ Thực hiện phép toán quan hệ
- Kết quả của biểu thức quan hệ: true (đúng) hoặc false (sai).
Ví dụ: Với x<3 nếu x =5 thì biểu thức x<5 có giá trịfalse Nếu x =1 thì biểu thức x<5 có giá trịtrue
HĐ2: Tìm hiểu biểu thức logic – Phát triển NL tư duy
GV: Nêu các phép toán logic?
HS: Trả lời
GV: Để biểu thị phủ định của điều kiện x
là một số khác 0 ta viết trong C++ là:
! (x = 0)
Để biểu thị điều kiện x là một số nằm
ngoài đoạn [5, 10] trong C++ ta viết:
+ Các biểu thức quan hệ thường đặt trongdấu ngoặc tròn ( và )
- Giá trị của biểu thức logic là true hoặc false.
- Phép toán ! được viết trước biểu thức
cần phủ định
Ví dụ:! (x<1) tương đương với biểu thức
Trang 26GV: Đặc điểm của phép toán hoặc, và?
- Các phép toán || và && dùng để kết hợp
nhiều biểu thức logic hoặc quan hệ thànhmột biểu thức, thường được dùng để diễn
tả các điều kiện phức tạp
Ví dụ: Để thể hiện điều kiện 5 ≤ x ≤ 11,trong C++ cần phải tách thành phát biểudưới dạng 5 ≤ x và x ≤ 11 :
(5 <= x) &&(x <= 11)
HĐ3: Tìm hiểu câu lệnh gán – Phát triển NL tư duy
GV: Câu lệnh gán là một trong những câu
lệnh cơ bản nhất của các ngôn ngữ lập
trình
HS: Theo dõi
GV: Nhấn mạnh và nêu một số điểm chú
ý khi sử dụng lệnh gán
- Bên trái lệnh gán là tên biến, bên phải là
biểu thức đã xác định
- Biểu thức bên phải cẩn được xác định
giá trị trước khi gán, nghĩa là mọi biến
trong biểu thức đã được xác định giá trị
và các phép toán trong biểu thức có thể
thực hiện được trong miền giá trị của
- Hoạt động của câu lệnh gán:
+ Tính giá trị của biểu thức vế phải;+ Gán giá trị của biểu thức đã tính chobiến ở vế trái
- Ví dụ
x1 = (-b – sqrt (b*b- 4*a*c))/(2*a); x2 = -b/a – x1;
z = z – 1;
i = i + 1;
Trong ví dụ trên, ý nghĩa của lệnh gán thứ
3 là giảm giá trị của biến z một đơn vị Ýnghĩa của lệnh gán thứ tư là tăng giá trịcủa biến i lên một đơn vị
C Hoạt động củng cố
- Phép toán quan hệ, phép toán logic
- Câu lệnh gán
D Hoạt động luyện tập, mở rộng
Trang 27- Chuẩn bị §7 Các hàm chuẩn vào/ra đơn giản
Trang 28- HS hiểu bài và hứng thú với bài học;
- Bước đầu rèn luyện tư duy giải quyết các vấn đề đơn giản và hoàn chỉnh trên máy tính
4 Năng lực, phẩm chất
- NL quan sát và thực hành - NL lập trình
- NL sử dụng CNTT - NL tư duy
- 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ônhọ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, thao tác mẫu
- Phương tiện: SGK, giáo án
HĐ1: Tìm hiểu hàm nhập dữ liệu vào từ bàn phím – Phát triển NL quan sát và thực
hành
GV: Khi giải quyết một bài toán, ta phải đưa
dữ liệu vào máy tính xữ lí Ví dụ:
- Khi viết chương trình giải phương trình
1 Nhập dữ liệu vào từ bàn phím
Trang 29HS: Quan sát máy chiếu
GV: Khi viết chương trình tính diện tích
hình chữ nhật có chiều rộng là a, chiều dài
là b, ta nhập như thế nào?
HS: Rút ra cú pháp nhập
GV: Minh họa việc nhập giá trị không tương
thích với kiểu dữ liệu → Chương trình báo
+ Các giá trị nhập vào cho biến phảitương ứng với kiểu dữ liệu
HĐ2: Tìm hiểu hàm đưa dữ liệu ra màn hình – Phát triển NL tư duy
GV: Sau khi xử lí xong, để nhìn thấy được
kết quả ta phải dùng thủ tục xuất dữ liệu.Ví
dụ: ta phải đưa ra màn hình giá trị 2 nghiệm
Trang 30GV: Chạy chương trình sử dụng câu lệnh in
ra màn hình theo cả 3 cách
HS: Quan sát chương trình, phân biệt các
cách làm và ghi nhớ cú pháp
GV: Chạy chương trình có sử dụng các hàm
chuẩn vào và ra sau:
GV: Chạy chương trình sau theo 2 trường
hợp có quy cách in và không có quy cách in
sẽ chuyển xuống đầu dòng tiếp theo
- Ví dụ:
cout<< “Nhap so nguyen duong n = ”;cin>>n;
hoặc cout<< “Nhap so nguyen duong n =
”<<endl;
cin>>n;
Trang 31+ fixed là cố định số chữ số phần thậpphân phải đủ n kí tự, nếu không đủ phảithêm 0
§8 SOẠN THẢO, DỊCH, THỰC HIỆN VÀ HIỆU CHỈNH
CHƯƠNG TRÌNH
I Mục tiêu bài học
1 Kiến thức
- Biết các bước soạn thảo, dịch, thực hiện và hiệu chỉnh chương trình
- Biết một số công cụ của môi trường CodeBlocks
2 Kỹ năng
- Soạn, dịch, sửa lỗi, chạy và hiệu chỉnh chương trình
- Chỉnh sửa chương trình dựa vào thông báo lỗi của chương trình dịch và kết quả thuđược
3 Thái độ
- HS hiểu bài và hứng thú với bài học;
- Bước đầu rèn luyện tư duy giải quyết các vấn đề đơn giản và hoàn chỉnh trên máy tính
4 Năng lực, phẩm chất
- NL quan sát và thực hành - NL lập trình
- NL sử dụng CNTT - NL tư duy
- 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ônhọ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, thao tác mẫu
- Phương tiện: SGK, giáo án
HĐ1: Tìm hiểu môi trường làm việc với CodeBlocks – Phát triển NL quan sát và thực
hành, NL sử dụng CNTT, NL tư duy, NL lập trình
Trang 32GV: Hướng dẫn học sinh các thao tác
- Thoát khỏi phần mềm (Alt+F4)
HS: Quan sát quy trình soạn thảo của
một chương trình, rút ra các phím tắt
thường sử dụng
1 Làm việc với CodeBlocks
- Tạo thư mục mới trong C++
+ B1: Khởi động CodeBlocks+ B2: Create a new project+ B3: Console Aplication → Go+ B4: C++ → Next
+ B5: Đặt tên và chọn đường dẫn → Next+ B6: Finish
- Tạo chương trình, viết và chạy+ B1: Source
+ B2: Nháy đúp main.cpp+ B3: Soạn thảo chương trình+ B4: Biên dịch ( )
+ B5: Run ( )
- Tạo một chương trình mới sau khi vừa viếtmột chương trình
+ B1: Nháy đúp main.cpp+ B2: Soạn thảo chương trình+ B3: Build and Run ( )
- Đặt tên chương trình: File → Save file as
HĐ2:Soạn thảo các chương trình ví dụ – Phát triển NL quan sát và thực hành, NL sử
dụng CNTT, NL tư duy, NL lập trình
GV: Chiếu ví dụ
HS: Thực hiện chương trình theo các
bước giáo viên vừa hướng dẫn
2 Ví dụ
Viết chương trình nhập vào bán kính R củahình tròn Tính chu vi C và diện tích S củahình tròn đó
- Tạo thư mục mới + B1: Khởi động CodeBlocks+ B2: Create a new project+ B3: Console Aplication → Go+ B4: C++ → Next
+ B5: Nhập “Vi_du ” vào ô Project Title→Next, chọn vị trí lưu tệp trên ổ đĩa E
+ B6: Finish
- Tạo chương trình, viết và chạy+ B1: Source
+ B2: Nháy đúp main.cpp+ B3: Soạn thảo chương trình
Trang 33{ cout<< “Nhap vao ban kinh r = ”;
- Đặt tên chương trình: File → Save file as
→ Gõ tên “Duong_tron”
Trang 34- NL sử dụng CNTT - NL tư duy
- 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ônhọ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: Làm việc nhóm, kiểm tra đánh giá, vấn đáp
- Phương tiện: SGK, giáo án, phòng thực hành
HĐ1:Soạn thảo chương trình: “Giải phương trình bậc hai”– Phát triển NL quan sát
và thực hành, NL sử dụng CNTT, NL tư duy, NL lập trình
GV: Hướng dẫn học sinh mở Code Blocks
và gõ chương trình,
HS: Soạn thảo chương trình
1 Chương trình: “Giải phương trình bậc hai”
cout<< “Nhap a, b, c ”;
Trang 35GV: Nêu câu hỏi phân tích chương trình:
1) Nêu tác dụng của từng biến trong
d) Nhấn phím F9 để chạy chương trình.Nhập các giá trị 1 ; -3 ; 2
e) Nhấn phím F9 rồi nhập các giá trị 1 ;
0 ; -2
f) Sửa lại chương trình trên sao chokhông dùng biến trung gian d Thực hiệnchương trình đã sửa với các bộ dữ liệutrên
#include <bits/stdc++.h>
using namespace std;
Trang 36trình sẽ có những thay đổi như thế nào?
HS: double a,b,c,x1,x2; x1 =
(-b+sqrt(b*b-4*a*c))/(2*a);
→ Thực hiện sửa lại chương trình, biên
dịch, sửa lỗi và chạy với 2 bộ dữ liệu trên
GV lưu ý: Có thể ghi sang tệp chương
trình mới khi có nhu cầu chỉnh sửa chương
trình bằng cách File → Save file as
cout<< “Nhap a, b, c ”;
cin>>a>>b>>c;
x1 = (-b+sqrt(b*b-4*a*c))/(2*a); x2=-b/a-x1;
g) Sửa lại chương trình nhận được ở câu
c bằng cách thay đổi công thức x2= (-b-sqrt(d))/(2*a);
h) Thực hiện chương trình đã sửa với bộ
dữ liệu 1; -5; 6 Quan sát kết quả trênmàn hình
i) Thực hiện chương trình với bộ dữ liệu1; 1; 1 và quan sát kết quả trên màn hình
Trang 37- NL sử dụng CNTT - NL tư duy
- 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ônhọ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: Làm việc nhóm, kiểm tra đánh giá, vấn đáp
- Phương tiện: SGK, giáo án, phòng thực hành
HĐ1:Soạn thảo chương trình: “Tính diện tích phần gạch chéo” – Phát triển NL quan
sát và thực hành, NL sử dụng CNTT, NL tư duy, NL lập trình
GV: Hãy viết chương trình nhập số a
(a>0) rồi tính và đưa ra diện tích phần
được gạch chéo trong hình 3 (kết quả
làm tròn đến 4 chữ số phần thập phân)
HS: Xây dựng khung chương trình
1 Chương trình: “Tính diện tích phần gạch chéo”
Trang 38vận tốc v khi chạm đất của một vật rơi tự
do từ độ cao h, biết rằng v = , trong đó g
là gia tốc rơi tự do và g = 9.8 m/s2 Độ
cao h (m) được nhập vào từ bàn phím
HS: Xây dựng khung chương trình
Trang 39GV: Cho h = 3; h = 10.5; h = 43
HS: Chạy thử các giá trị và so sánh kết
quả giữa các nhóm
int main(){
Trang 40- Củng cố lại cho HS một số khái niệm: lập trình, ngôn ngữ lập trình, chương trình dịch
- Phân biệt thông dịch và biên dịch, tên dành riêng và tên chuẩn
- Biết phânbiệt các loại biểu thức trong NNLT
2 Kỹ năng
- Xác định được tên đúng, tên sai, tên chuẩn, từ khoá
- Đặt tên cho một đối tượng bất kì
- Viết được các biểu thức số học và logic với các phép toán thông dụng
- Bước dầu biết phân tích và hoàn thành chương trình đơn giản
- Phương pháp: Thuyết trình, vấn đáp, gợi mở
- Phương tiện: SGK, giáo án
HĐ1:Giải quyết các bài tập trang 35/SGK
Câu 1: Cho biết sự khác nhay giữa hằng
- Biến là đại lượng có thể bị thay đổi trong quá trình thực hện chương trình.
- Khai báo biến để cho chương trình dịch biết để lưu trữ và xử lí.
- Biến đó có thể được khai báo bằng các kiểu dữ liệu là: Integer, Word, Longint.