giáo án tin 11 kì 2 C++

- 0 / 0
(Tài liệu chưa được thẩm định)
Nguồn: sưu tầm
Người gửi: Thuhuyen Cmx
Ngày gửi: 12h:14' 10-04-2023
Dung lượng: 75.0 KB
Số lượt tải: 56
Nguồn: sưu tầm
Người gửi: Thuhuyen Cmx
Ngày gửi: 12h:14' 10-04-2023
Dung lượng: 75.0 KB
Số lượt tải: 56
Số lượt thích:
0 người
Giáo án tin học 11 – Năm học : 2022-2023
Ngày soạn:
Ngày dạy:
Tiết PPCT: 37
14. KIỂU DỮ LIỆU TỆP - §15. THAO TÁC VỚI TỆP
I. Mục tiêu bài học
1. Kiến thức
- Biết khái niệm và vai trò của tệp
- Biết hai cách phân loại tệp
- Biết bản chất của tệp văn bản
2. Kỹ năng
- Khai báo biến tệp và các thao tác cơ bản làm việc với tệp văn bản;
- Sử dụng một số thủ tục và hàm chuẩn làm việc với tệp
3. Thái độ
- Học sinh hào hứng tìm hiểu về một kiểu dữ liệu mới
4. Năng lực, phẩm chất
- NL tư duy
- NL sử dụng ngôn ngữ
- 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ở
- 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: Kết hợp trong quá trinh học bài mới
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 vai trò của tệp– Phát triển NL tư duy
1.Vai trò của kiểu tệp
GV: Chạy một chương trình bất kì khi chưa
sử dụng và sau khi đã sử dụng tệp, yêu cầu
HS so sánh và rút ra vai trỏ của kiểu tệp.
HS: Trả lời câu hỏi.
- Dữ liệu kiểu tệp được lưu trữ lâu dài ở bộ nhớ
1
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
ngoài và không mất khi tắt nguồn điện.
- Lượng dữ liệu lưu trữ trên tệp có thể rất lớn và
chỉ phụ thuộc vào dung lượng đĩa.
HĐ2: Tìm hiểu cách phân loại tệp– Phát triển NL sử dụng ngôn ngữ
2. Phân loại tệp
GV: Có mấy cách phân loại tệp
HS:2 cách
GV: Xét theo cách tổ chức dữ liệu, tệp được
phân thành mấy loại?
- C1: Phân loại theo cách tổ chức dữ liệu
HS: 2 loại
+ Loại 1: Tệp văn bản: là tệp mà dữ liệu được
ghi dưới dạng các kí tự theo mã ASCII.
+ Loại 2: Tệp có cấu trúc: là tệp mà các thành
phần của nó được tổ chức theo một cấu trúc nhất
định.
GV: Xét theo cách thức truy cập, tệp được
phân làm mấy loại?
HS: 2 loại (tệp truy cập tuần tự và tệp truy cập
- C2: Phân loại theo cách thức truy cập
trực tiếp)
+ Loại 1: Tệp truy cập tuần tự: cho phép truy cập
đến một dữ liệu nào đó trong tệp chỉ bằng cách
bắt đầu đi từ đầu tệp và đi qua lần lượt tất cả các
tệp.
+ Loại 2: Tệp truy cập trực tiếp: cho phép tham
chiếu đến dữ liệu bằng cách xác định trực tiếp vị
trí của dữ liệu đó.
HĐ3: Tìm hiểu thao tác với tệp – Phát triển NL sử dụng ngôn ngữ, NL tư duy
3. Thao tác với tệp
GV: Có những thao tác với tệp nào?
HS: Suy nghĩ và TL câu hỏi
- Khai báo biến tệp;
- Mở tệp;
- Đọc/ghi dữ liệu;
- Đóng tệp.
* Chú ý:
- Khác với mảng, số lượng phần tử của tệp
không cần xác định trước.
- Hai thao tác cơ bản đối với tệp là đọc dữ liệu từ
2
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
tệp và ghi dữ liệu vào tệp.
- Thao tác đọc/ghi với tệp được thực hiện với
từng phần tử của tệp.
C. Hoạt động củng cố
- Các thao tác với tệp: khai báo biến tệp, mở/đóng tệp, đọc/ghi tệp
D. Hoạt động luyện tập, mở rộng
- Nghiên cứu tiếp “§15. Thao tác với tệp”.
3
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
Ngày soạn:
Ngày dạy:
Tiết PPCT: 38
§16. VÍ DỤ LÀM VIỆC VỚI TỆP
I. Mục tiêu bài học
1. Kiến thức
- Hiểu các thao tác làm việc với tệp
2. Kỹ năng
- Sử dụng đúng các thủ tục trong C++ thực hiện các nhiệm vụ: mở tệp đọc/ghi, đọc/ghi tệp, đóng tệp
3. Thái độ
- Học sinh thấy được tầm quan trọng của kiểu dữ liệu tệp trong việc lưu trữ dữ liệu.
4. Năng lực, phẩm chất
- NL tính toán
- NL lập trình
- 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ô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ở
- 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: Vẽ sơ đồ làm việc với tệp
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 ví dụ 1– Phát triển NL tư duy và NL tính toán
1. Ví dụ 1
GV: Chiếu đề bài và chương trình.
GV: Chương trình này thực hiện công việc
gì? Xác định Input và Output của bài toán?
HS: Tính và đưa ra màn hình khoảng cách từ
trại của thầy hiệu trưởng đến trại của mỗi giáo
viên.
GV: Hãy cho biết câu lệnh while(cin>>x>>y)
- Xác định bài toán:
+ Input: x, y
+ Output: d
4
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
có ý nghĩa như thế nào?
HS: Khi việc đọc dữ liệura hai biến x và y vẫn
còn đúng (vẫn còn dữ liệu để đọc). Nếu
không còn dữ liệu để đọc, sẽ trả về giá trị là
false.
GV: Có thể sử dụng cấu trúc FOR thay cho
WHILE được không?
HS: Không, vì không biết số lượng phần tử
của tệp.
GV: Giới thiệu cho HS cách tạo file
TRAI.TXT.
- B1: File → New → Empty file
- B2: Nhập dữ liệu
- B3: File → Save (Ctrl + S)
+ Mục File name: nhập tên TRAI.TXT
+ Mục Save as type: chọn All files
HS: Soạn thảo, tạo tệp và chạy chương trình
- Chương trình:
#include
using namespace std;
short x, y;
double d;
int main()
{
freopen(“TRAI.TXT”, “r”, stdin);
freopen(“TRAI.TXT”, “w”, stdout);
while (cin>>x>>y)
{
d = sqrt(a*x+y*y)
cout<}
return 0;
}
C. Hoạt động củng cố- Cấu trúc chương trình có sử dụng tệp:+ Mở tệp đọc/ghi
+ Đọc tệp
+ Ghi tệp
+ Đóng tệp
5
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
D. Hoạt động luyện tập, mở rộng- Tìm hiểu kiểu dữ liệu mảng và viết các chương trình đó có sử
dụng kiểu dữ liệu tệp.
Ngày soạn:
Ngày dạy:
Tiết PPCT: 39,40
BÀI TẬP – THỰC HÀNH
I. Mục tiêu bài học
1. Kiến thức
- Hiểu các thao tác cơ bản làm việc với tệp
2. Kỹ năng
- Học sinh sử dụng thành thạo kiểu dữ liệu tệp vào giải quyết các bài toán thông thường
3. Thái độ
- Học sinh thấy được tầm quan trọng của kiểu dữ liệu tệp trong các kì thi quan trọng như thi HSG.
4. Năng lực, phẩm chất
- NL tính toán
- NL lập trình
- 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ô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: Kết hợp trong quá trình làm bài tập
B. Hoạt động hình thành kiến thức
HOẠT ĐỘNG DẠY HỌC
NỘI DUNG
HĐ1:Thực hiện bài tập 1 – Phát triển NL tư duy, NL lập trình và NL tính toán
1. Bài 1
GV: Chiếu đề bài và chương trình.
HS: Đọc kĩ yêu cầu
Yêu cầu: Cho hai số nguyên a và b(a<=109,
b<=109). Bạn hãy tính chu vi và diện tích hình chữ
nhật có độ dài hai cạnh tương ứng là a và b.
Dữ liệu: Cho fileNHAP.TXT gồm hai số tự nhiên
a và b, mỗi số cách nhau ít nhất một dấu cách
Kết quả:Ghi ra fileXUAT.TXTgồm 2 số lần lượt
6
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
là chu vi và diện tích của hình chữ nhật đó.
NHAP.TXT
15 9
5 5
3 17
XUAT.TXT
48 135
20 25
30 51
- Xác định bài toán:
GV: Xác định Input và Output của bài toán?
HS: TL
GV: Yêu cầu HS viết chương trình
HS: Soạn thảo, tạo tệp và chạy chương trình
+ Input: a, b
+ Output: p, s
- Chương trình:
#include
using namespace std;
long a, b;
long long p, s;
int main()
{
freopen(“NHAP.TXT”, “r”, stdin);
freopen(“XUAT.TXT”, “w”, stdout);
while (cin>>a>>b)
{
p = (a+b)*2;
s= a*b;
cout << p << “ ”<}
return 0;
}
GV: Chiếu chương trình và chạy.
HS: Chạy chương trình, đối chiếu kết quả
HĐ2: Thực hiện bài tập 2 – Phát triển NL tính toán và NL lập trình
2. Bài tập 2
GV: Chiếu đề bài
HS: Đọc và suy nghĩ
Một người thường xuyên đóng tiền điện hàng
tháng cho gia đình. Bạn hãy giúp cho khách hàng
7
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
này hiểu cách tính tiền điện của sở điện lực. Biết
cách tính tiền điện của sở điện lực như sau :
* Nếu điện năng tiêu thụ của một hộ gia đình
từ 1 đến 50 số thì tính 1000đ/số
* Nếu điện năng tiêu thụ của một hộ gia đình
từ 51 đến 100 số thì tính 1500đ/số
* Nếu điện năng tiêu thụ của một hộ gia đình
từ 101 số trở đi thì tính 2000đ/số
Yêu cầu: Em hãy lập trình giúp người khách tính
tiền điện phải đóng cho sở điện lực
Dữ liệu:Cho file TIENDIEN.INP gồm một số
nguyên dương N(N<=1010) là số điện năng tiêu thụ
của khách hàng
Kết quả:Ghi ra file TIENDIEN.OUT số tiền mà
hộ gia đình phải đóng
TIENDIEN.INP
TIENDIEN.OUT
51
51500
- Xác định bài toán
GV: Hãy xác định Input và Output cho bài
toán trên?
HS: Suy nghĩ và TL
+ Input: n
+ Output: t
GV: Hãy nêu ý tưởng giải quyết bài toán?
HS: Sử dụng câu lệnh if else
if (n<=50) then t = n*1000;
else if ((n>50) &&(n<=100)) t = 50*1000+(n50)*1500);
else t = 50*1000+(50*1500)+(n-100)*2000);
GV: Yêu cầu HS code chương trình
HS: Xây dựng chương trình hoàn chỉnh.
- Chương trình:
#include
using namespace std;
long n;
long long t;
int main()
{
8
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
freopen(“TIENDIEN.INP”,“r”, stdin);
freopen(“TIENDIEN.OUT”,“w”, stdout);
while (cin>>n)
{
if (n<=50) then t = n*1000;
else if ((n>50) &&(n<=100)) t=50*1000+(n50)*1500);
else t = 50*1000+(50*1500)+(n-100)*2000);
}
return 0;
}
GV: Chạy chương trình.
HS: Quan sát kết quả của chương trình và so
sánh với kết quả tính được. Nhận xét về tính
chính xác và thời gian thực hiện của chương
trình.
C. Hoạt động củng cố
- Các thao tác cơ bản làm việc với tệp
D. Hoạt động luyện tập, mở rộng
- Đọc lại cấu trúc lặp chuẩn bị cho tiết bài tập tiếp theo.
9
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
Ngày soạn:
Ngày dạy:
Tiết PPCT: 41,42:
§17. CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI
I. Mục tiêu bài học
1. Kiến thức
- Biết việc sử dụng chương trình con rất cần thiết khi phải viết chương trình dài, phức tạp
- Nắm được cấu trúc chung của một chương trình con
- Phân biệt được hàm có trả về một giá trị và hàm không trả về một giá trị
- Phân biệt được tham chiếu và tham trị
2. Kỹ năng
- Xây dựng và tổ chức chương trình con;
- Gọi chương trình con trong thân chương trình chính.
3. Thái độ
- Học sinh hiểu bài và có hứng thú làm quen với lập trình có cấu trúc.
- HS thấy được tầm quan trọng của chương trình con và lập trình có cấu trúc
4. Năng lực, phẩm chất
- NL tư duy
- NL tính toán
- NL sử dụng ngôn ngữ
- NL lập 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ở
- 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:
Kết hợp trong quá trình học bài mới
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 chương trình con– Phát triển NL sử dụng ngôn ngữ
GV: Các chương trình dài, phức tạp thường rất
dài, có thể gồm nhiều lệnh, khi đọc rất khó hình
dung chương trình thực hiện những công việc
1.Khái niệm chương trình con
a.Khái niệm
10
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
gì và việc hiệu chỉnh cũng rất khó khăn. Như
vậy, làm thế nào để bài toán phức tạp dễ đọc,
dễ hiểu, dễ hiệu chỉnh và dễ nâng cấp.
Xét bài toán sau:
Tính tổng an + bm + cp + dq
Hãy nêu ý tưởng giải quyết bài toán này?
HS: Suy nghĩ và TL dựa theo SGK.
#include
using namespace std;
double a,b,c,d,t,t1,t2,t3,t4;
long i,m,n,p,q;
int main()
{
cout<<"Nhap a,b,c,d,m,n,p,q:";
cin>>a>>b>>c>>d>>m>>n>>p>>q;
t1=1.0;t2=1.0; t3=1.0; t4=1.0;
for (long i=1;i<=n;i++)
t1=t1*a;
for (long i=1;i<=m;i++)
t2=t2*b;
for (long i=1;i<=p;i++)
t3=t3*c;
for (long i=1;i<=q;i++)
t4=t4*d;
t= t1+t2+t3+t4;
cout<<"Tong
=
"<return 0;
}
GV: Nêu cách giải quyết sử dụng chương trình
con như sau:
#include
using namespace std;
double a,b,c,d,t;
long i,m,n,p,q;
double luythua(double a,long m)
{
double lt=1.0;
for (long i=1;i<=m;i++)
lt=lt*a;
return lt;
}
11
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
int main()
{
cout<<"Nhap a,b,c,d,m,n,p,q:";
cin>>a>>b>>c>>d>>m>>n>>p>>q;
t= luythua(a,n)+luythua(b,m)+luythua(c,p)
+luythua(d,q);
cout<<"Tong
=
"<return 0;
}
GV:Để giải bài toán trên máy tính có thể chia
chương trình thành các khối, mỗi khối gồm
nhiều lệnh giải bài tập con nào đó → Chương
trình chính được xây dựng từ các chương trình
con. Vậy chương trình con là gì?
HS: Theo dõi SGK và TL
Chương trình con là một dãy lệnh mô tả một số
thao tác nhất định và có thể được thực hiện (được
GV: So sánh chương trình “Luythua2” có sử gọi) từ nhiều vị trí trong chương trình.
dụng chương trình con và chương trình b. Lợi ích của việc sử dụng chương trình con
“Luythua1” không sử dụng chương trình con,
em hãy cho biết các lợi ích của việc sử dụng
chương trình con.
HS: Suy nghĩ và TL
- Tránh được việc phải viết lặp đi lặp lại nhiều
lần cùng một dòng lệnh.
- Hỗ trợ việc thực hiện các chương trình lớn
- Phục vụ quá trình trừu tượng hóa
HĐ2: Tìm hiểu cách phân loại chương trình con– Phát triển NL sử dụng ngôn ngữ, NL tính toán,
NL tư duy, NL lập trình
GV: Nêu ví dụ về hàm số học chuẩn trong C+
+?
HS:sin(x), sqrt(x), trunc(x),…;
GV: Xét hàm sin(x). Với x = 0 giá trị của hàm
sin(x) cho kết quả là bao nhiêu?
HS: sin(x) = 1
GV: Sau khi thực hiện tính toán hàm sin(x) với
x = 0 cho giá trị là 1. Vậy em hãy cho biết hàm
2. Phân loại chương trình con
a.Hàm có trả về một giá trị
12
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
có trả về một giá trị có đặc điểm gì?
- Khái niệm: Hàm là chương trình thực hiện một
số thao tác nào đó, trả lại giá trị qua tên của hàm
- Cú pháp:
(tham số 1, tham số 2,
…)
{
các câu lệnh;
return giá trị trả về của hàm;
}
- Ví dụ:
#include
using namespace std;
int cong(int a, int b)
{
int r;
r = a+b;
return r;
}
int main()
{
int x=5,y=3;z;
z = cong(7,2);
cout<<"Ket qua 1 = "<cout<<"Ket qua 2 = "<cout<<"Ket qua 3 = "<z = 4 + cong(x,y);
cout<<"Ket qua 4 = "<return 0;
}
GV: Giải thích hàm cộng, tương tự yêu cầu HS
xây dựng hàm trừ và viết chương trình có sử
dụng hàm trừ nhiều lần.
HS: Thực hiện yêu cầu.
b. Hàm không trả về một giá trị - hàm void
GV: Nêu ví dụ về hàm chuẩn vào/ra đơn giản
trong C++?
HS: cout, cin,…
GV: Xét hàm cout<<“Xin chao!!!”; hàm này
làm gì?Cho kết quả là gì? Có trả về giá trị nào
không?
HS: Hàm cout<<“Xin chao!!!” thực hiện in ra
13
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
màn hình dòng chữ: “Xin chao” và không trả về
giá trị?
GV: Hãy cho biết hàm không trả về một giá trị
có đặc điểm gì?
- Khái niệm: Hàm không trả về một giá trị (Thủ
HS: Suy nghĩ và TL
tục – hàm void) là chương trình thực hiện một số
thao tác nào đó, không trả lại giá trị qua tên của
hàm
- Cú pháp:
void(tham số 1, tham số 2,…)
{
các câu lệnh;
}
- Ví dụ:
#include
using namespace std;
void inthongbao()
{
cout<< “Day la mot ham”;
}
int main()
{
inthongbao();
}
GV: Giải thích chương trình ví dụ và yêu cầu
HS viết một số ví dụ về hàm không trả về giá trị
thực hiện một công việc bất kì
HS: Thực hiện yêu cầu
C. Hoạt động củng cố
- Khái niệm, lợi ích của chương trình con
- Phân biệt hàm có trả về giá trị và hàm không trả về giá trị
D. Hoạt động luyện tập, mở rộng
- Đọc trước mục 2. Tham trị và tham chiếu và 3. Đệ quy
14
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
Ngày soạn:
Ngày dạy:
Tiết PPCT: 43,44
§18. VÍ DỤ VÊ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON
I. Mục tiêu bài học
1. Kiến thức
- Phân biệt được tham chiếu và tham trị
2. Kỹ năng
- Xây dựng và tổ chức hàm không trả ra giá trị có sử dụng tham chiếu hoặc tham trị;
3. Thái độ
- Học sinh hiểu bài và có hứng thú làm quen với lập trình có cấu trúc.
- HS thấy được tầm quan trọng của chương trình con và lập trình có cấu trúc
4. Năng lực, phẩm chất
- NL tư duy
- NL tính toán
- NL sử dụng ngôn ngữ
- NL lập 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ở
- 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:
Cho dãy số nguyên dương a gồm n phần tử (0 ≤ n ≤ 100000) (0 ≤ ai ≤ 100000) (i = 1..n)
Yêu cầu:- Tìm tất cả các số nguyên tố của dãy A
Dữ liệu:- Vào từ file DS.INP
- Dòng 1 ghi số phần tử n của dãy
- Dòng 2 ghi các giá trị phần tử ai (i = 1..n)
Kết quả:- Đưa ra file DS.OUT
- Các số nguyên tố (trên 1 dòng)
DS.INP
6
DS.OUT
2 11 5
2 11 4 5 9 5
15
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
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 hàm không trả về một giá trị – Phát triển NL sử dụng ngôn ngữ, NL tư duy, NL tính
toán và NL lập trình
1. Hàm không trả về một giá trị
a. Ví dụ: Hàm vẽ hình chữ nhật
GV: Chiếu hàm vẽ hình chữ nhật, yêu cầu học
sinh nhận xét về hàm ve_hcn của ví dụ này với
ví dụ trước.
* Tổ chức hoạt động nhóm;
- Phân nhóm từ 4-6 em
- Công việc: Xác định bản chất của hàm
ve_hcn;
- Câu hỏi: Câu lệnh nào thực hiện vẽ cạnh trên,
hai cạnh bên và câu lệnh nào thực hiện vẽ cạnh
dưới.
- Kết thúc hoạt động: thu kết quả của các nhóm,
yêu cầu các nhóm trình bày kết quả của nhóm.
- Cho các nhóm nhận xét kết quả bài làm của
nhau.
GV: Nhận xét kết quả và đưa ra kết luận (có thể
cho điểm các nhóm nếu bài làm tốt)
GV: Trong chương trình chính ta vẽ tất cả bao
nhiêu hình chữ nhật?
HS: Trả lời câu hỏi (6 hỉnh).
#include
using namespace std;
void ve_hcn(long chdai, long chrong)
{ long i, j;
//Ve canh tren cua hinh chu nhat
for (i=1;i<=chdai;i++) cout<<"*";
cout<//Ve 2 canh ben
for (j=1; j<=(chrong-2);j++)
{
cout<<"*";
for (i=1;i<= (chdai-2);i++) cout<<" ";
cout<<"*";
cout<}
//Ve canh duoi
for (i=1; i<=chdai;i++) cout<<"*";
cout<}
int main() //Bat dau chuong trinh chinh
{ long a, b, i;
ve_hcn(25,10);
cout<cout<ve_hcn(10,5);
cout<a=4; b=2;
for (i=1; i<= 4; i++)
{
ve_hcn(a,b);
cout<16
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
a=a*2; b=b*2;
}
return 0;
}
HĐ2:Phân biệt tham chiếu và tham trị– Phát triển NL sử dụng ngôn ngữ, NL tính toán, NL tư duy,
NL lập trình
b. Phân biệt tham trị và tham chiếu
GV: Chiếu ví dụ 1: hàm hoan_doi_1 lên bảng.
Hỏi: hàm hoan_doi 1 thực hiện công việc gì?
HS: Hoán đổi giá trị hai biến dữ liệu vào cho
nhau.
GV: Chạy chương trình và thực hiện đổi phần
khai báo thành: void hoan_doi(long &x, long
&y) để HS quan sát và nhận xét sự khác nhau - Ví dụ 1: Tham trị
giữa tham biến và tham trị.
#include
using namespace std;
void hoan_doi(long x, long y)
{
long tg=x;
x=y;
y=tg;
}
int main()
{
long a= 5; long b=10;
cout<hoan_doi(a,b);
cout<}
→ Output: 5 10
5 10
- Ví dụ 2: Tham chiếu
#include
using namespace std;
void hoan_doi(long &x, long &y)
{
long tg=x;
x=y;
y=tg;
17
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
}
int main()
{
long a= 5; long b=10;
cout<hoan_doi(a,b);
cout<}
→ Output: 5 10
10 5
C. Hoạt động củng cố
- Tham chiếu: giá trị của biến trong chương trình con thay đổi làm thay đổi giá trị biến trong chương
trình chính.
- Tham trị: giá trị của biến trong chương trình con thay đổi nhưng không làm thay đổi giá trị biến
trong chương trình chính.
D. Hoạt động luyện tập, mở rộng
- Nghiên cứu cách xây dựng các chương trình con trả về giá trị đối với toàn bộ các chương trình Tin
học 11
18
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
Ngày soạn:
Ngày dạy:
Tiết PPCT: 45
Tiết 44:KIỂM TRA 1 TIẾT
I. Mục tiêu bài học
1. Kiến thức
- Kiểm tra đánh giá kiến thức của học sinh về nội dung kiến thức kiểu dữ liệu tệp
2. Kỹ năng
- Viết chương trình với mảng một chiều có sử dụng kiểu dữ liệu tệp
3. Thái độ
- Nghiêm túc làm bài.
4. Năng lực, phẩm chất
- NL tự học
- NL sử dụng CNTT
- Phẩm chất: trung thực, tự trọng
II. Phương tiện chuẩn bị
1. Giáo viên
b. Đề kiểm tra
ĐỀ BÀI
Cho dãy số nguyên a gồm n phần tử (1 < n ≤100), mỗi phần tử có giá trị tuyệt đối khôngvượt quá
3000. Tính tổng các phần tử của dãy là bội số của 7.
Dữ liệu:Đọc từ tệp tong.inp gồm 2 dòng:
- Dòng 1 chứa số nguyên dương n là số lượng các phần tử của mảng a
- Dòng 2chứa các số a1,...an
Kết quả:Ghi ra tệp tong.out một số duy nhất là tổng các số chia hết cho 7
TONG.INP
5
3 7 2 14 6
8
2 5 21 28 9 10 5 7
TONG.OUT
21
56
b. Đáp án, biểu điểm
1. Chấm bài:
- Chấm bài bằng các test, mỗi test tương ứng 1 điểm.
- Chương trình không chạy hoặc dữ liệu vào ra không phù hợp theo yêu cầu sẽ không được điểm.
19
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
2. Chương trình
#include
using namespace std;
const long nmax=100;
long n, i, s, a[nmax];
int main()
{
freopen(“DS.INP”, “r”, stdin);
freopen(“DS.OUT”, “w”, stdout);
while (cin>>n)
{
s=0;
for (i=1; i<=n;i++)
{
cin>>a[i];
if (a[i]%7==0) s=s+a[i];
cout<}
}
return 0;
}
2. Học sinh
- Các kiến thức đã học và ôn tập
III. Tiến trình bài học
A. Hoạt động khởi động
2. Kiểm tra
- GV: Phát đề
- HS: Làm bài trên máy
3. Củng cố: không
D. Hoạt động luyện tập, mở rộng
- Nghiên cứu trước nội dung §17. Chương trình con và phân loại
20
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
Ngày soạn:
Ngày dạy:
Tiết PPCT: 46,47
BÀI TẬP VÀ THỰC HÀNH 6
I. Mục tiêu bài học
1. Kiến thức
- Phân biệt được tham chiếu và tham trị
2. Kỹ năng
- Xây dựng và tổ chức hàm trả về một giá trị có sử dụng tham chiếu hoặc tham trị;
3. Thái độ
- HS thấy được tầm quan trọng của chương trình con và lập trình có cấu trúc
4. Năng lực, phẩm chất
- NL tư duy
- NL tính toán
- NL sử dụng ngôn ngữ
- NL lập 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
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: kết hợp trong quá trình thực hành
B. Hoạt động hình thành kiến thức
HOẠT ĐỘNG DẠY HỌC
NỘI DUNG
HĐ1: Thực hiện bài tập 1 – Phát triển NL sử dụng ngôn ngữ, NL tư duy, NL tính toán và NL lập
trình
1. Bài tập 1
GV: Chiếu đề bài
HS: Suy nghĩ phân tích đề bài
Giả thuyết của Gon-Bac nói rằng mỗi số chẵn n
lớn hơn 2 là tổng của 2 số nguyên tố. Cho n là số
chẵn lớn hơn 2, hãy xác định số lượng các cặp số
nguyên tố có tổng bằng n.
Dữ liệu: - Vào từ file GONBAC.INP chứa duy
nhất số n (2≤ n ≤ 20000)
21
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
Kết quả: Ghi ra file GONBAC.OUT chứa duy
nhất một số theo yêu cầu của đề bài
GONBAC.INP
16
GONBAC.OUT
2
GV: Bài toán này phải xây dựng hàm như thế
nào?
HS: Hàm nguyên tố có trả về một giá trị
GV: Nêu ý tưởng giải quyết bài toán?
HS: Duyệt i từ 2 đến n/2, kiểm tra nếu i và (n-i)
là số nguyên tố thì đếm.
GV: Yêu cầu HS viết chương trình
HS: Soạn thảo, dịch, thực hiện và hiệu chình
#include
chương trình
using namespace std;
long i,n,d;
bool nt(long n)
{
bool kt;
kt=true;
if(n<2) kt=false;
else
for(i=2;i<=trunc(sqrt(n));i++)
if(n%i==0) kt=false;
return kt;
}
int main()
{
freopen("gonbac.inp","r",stdin);
freopen("gonbac.out","w",stdout);
while(cin>>n)
{
d=0;
for(long i=2;i<=(n/2);i++)
if ((nt(i)==true) && (nt(n-i)==true))
d=d+1;
cout<}
22
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
return 0;
}
HĐ2: Thực hiện bài tập 2 – Phát triển NL sử dụng ngôn ngữ, NL tính toán, NL tư duy, NL lập trình
2. Bài tập 2
GV: Bài toán này phải xây dựng hàm như thế
nào?
Cho dãy số nguyên dương a gồm n phần tử (0 ≤ n
HS: Hàm chính phương có trả về một giá trị
≤ 100000) (0 ≤ ai ≤ 100000) (i = 1..n)
Yêu cầu:Tìm tất cả các số chính phương của dãy
A
Dữ liệu:- Vào từ file DS.INP
- Dòng 1 ghi số phần tử n của dãy
- Dòng 2 ghi các giá trị phần tử ai (i = 1..n)
Kết quả:- Đưa ra file DS.OUT. Các số chính
phương (trên 1 dòng)
DS.INP
6
DS.OUT
49
2 11 4 5 9 5
GV: Nêu ý tưởng giải quyết bài toán?
HS: Duyệt i từ 1 đến n, kiểm tra nếu a i là số
chính phương thì in ra.
GV: Yêu cầu HS viết chương trình
HS: Soạn thảo, dịch, thực hiện và hiệu chình
chương trình
#include
using namespace std;
const long nmax=100000;
long n,i,d,a[nmax+1];
bool cp(long(n))
{
bool kt;
if(trunc(sqrt(n))==sqrt(n))kt=true;
else kt=false;
return kt;
}
int main ()
23
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
{
freopen("ds.inp","r",stdin);
freopen("ds.out","w",stdout);
while(cin>>n)
{
d=0;
for(long i=1;i<=n;i++)
{
cin>>a[i];
if(cp(a[i])==true)d=d+1;
}
cout<}
cout<}
C. Hoạt động củng cố
- Lời gọi hàm trả về một giá trị phải được đặt trong một lệnh hoặc trong một lời gọi chương trình con
khác.
- Hàm có thể tham gia vào các biểu thức tính toán như một toán hạng thông thường
D. Hoạt động luyện tập, mở rộng
- Xây dựng hàm đảo ngược của một số để tiết sau thực hành tiếp
24
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
Ngày soạn:
Tiết theo KHDH: 43
ÔN TẬP
I. Mục tiêu bài học
1. Kiến thức
- Nắm vững các kiến thức về kiểu dữ liệu tệp và chương trình con
2. Kỹ năng
- Viết chương trình sử dụng kiểu dữ liệu tệp
- Xây dựng chương trình con
3. Thái độ
- Tích cực ôn tập để chuẩn bị kiểm tra học kì II
4. Năng lực, phẩm chất
- NL tư duy
- NL tính toán
- NL sử dụng ngôn ngữ
- NL lập 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ở
- 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:
Viết hàm tìm bội chung nhỏ nhất của 2 số nguyên dương a và b.
B. Hoạt động hình thành kiến thức
HOẠT ĐỘNG DẠY HỌC
NỘI DUNG
HĐ1:Xây dựng hàm tìm bội chung nhỏ nhất của hai số nguyên dương a và b– Phát triển NL sử
dụng ngôn ngữ, NL tư duy, NL tính toán và NL lập trình
1. Hàm tìm bội chung nhỏ nhất
GV: Bội chung nhỏ nhất của 2 số là gì?
HS: Suy nghĩ và TL
GV: Nếu sử dụng vòng for để tìm bội của 2 số,
thì giá trị biến i sẽ thay đổi như thế nào?
HS: i sẽ chạy từ a đến a*b
GV: Yêu cầu HS viết chương trình
HS: Soạn thảo, dịch, thực hiện và hiệu chỉnh
chương trình.
25
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
#include
using namespace std;
long a, b;
long BCNN(long a, long b)
{ long i;
for (long i= a;i<=(a*b);i++)
if ((i%a == 0) && (i%b ==0))
{ return i;
break;
}
}
int main()
{
cout<<"Nhap a va b: ";
cin>>a>>b;
cout<< "Boi chung nho nhat:" << BCNN(a,b);
return 0;
}
HĐ2: Xây dựng hàm kiểm tra nguyên tố– Phát triển NL sử dụng ngôn ngữ, NL tính toán, NL tư
duy, NL lập trình
GV: Chiếu đề bài
HS: Đọc, phân tích đề bài
2. Hàm nguyên tố
Cho dãy số nguyên dương a gồm n phần tử (0 ≤ n
≤ 100000) (0 ≤ ai ≤ 100000) (i = 1..n)
Yêu cầu: Tìm tất cả các số nguyên tố của dãy A.
Dữ liệu: - Vào từ file DS.INP
- Dòng 1 ghi số phần tử n của dãy
- Dòng 2 ghi các giá trị phần tử ai (i =
1..n)
Kết quả:- Đưa ra file DS.OUT các số nguyên tố
(trên 1 dòng)
DS.INP
DS.OUT
6
11 5
2 11 4 5 9 5
49
GV: Yêu cầu HS xây dựng hàm kiểm tra
nguyên tố
HS: Xây dựng hàm nguyento
26
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
GV: Yêu cầu HS viết chương trình hoàn chỉnh
HS: Hoàn thiện chương trình
#include
using namespace std;
#define max 100
// nhap mang
void NhapMang(int A[],int n)
{
for(int i=1; i<=n; i++)
{
cout<<"nhap Phan tu thu A["<cin>>A[i];
}
}
// in mang
void XuatMang(int A[],int n)
{
cout<for(int i=1; i<=n; i++)
cout<}
//ham nguyen to
bool nt(long n)
{ long i;
bool kt=true;
if (n<2) kt=false;
else for (i=2; i<=trunc(sqrt(n)); i++)
if (n%i==0) kt=false;
return kt;
}
//Ham in so nguyen to
void In(int A[],int n)
{
for(int i=1; i<=n; i++)
if (nt(A[i])== true) cout<}
// ham main
int main()
27
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
{
int A[max], n;
cout<<"Nhap so phan tu:";
cin>>n;
NhapMang(A,n);
cout<<"Mang vua nhap la:";
XuatMang(A,n);
cout<cout<<"Cac so nguyen to: ";
In(A,n);
return 0;
}
C. Hoạt động củng cố
- Hàm không trả về một giá trị: lời gọi độc lập
- Hàm trả về một giá trị: lời gọi phải được đặt trong một lệnh hoặc trong một lời gọi chương trình
con khác.
D. Hoạt động luyện tập, mở rộng
- Ôn tập toàn bộ kiến thức để kiểm tra học kì II
28
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
Ngày soạn:
Tiết theo KHDH:44
KIỂM TRA HỌC KÌ II
I. Mục tiêu bài học
1. Kiến thức
- Kiểm tra đánh giá toàn bộ nội dung kiến thức về lập trình C++ với các nội dung trọng tâm:
+ Kiểu dữ liệu mảng
+ Kiểu dữ liệu xâu
+ Kiểu dữ liệu tệp
+ Chương trình con
2. Kỹ năng
- Viết chương trình sử dụng kiểu dữ liệu tệp
- Xây dựng chương trình con
3. Thái độ
- Tích cực ôn tập để chuẩn bị kiểm tra học kì II
4. Năng lực, phẩm chất
- NL tự học
- NL sử dụng ngôn ngữ
- Phẩm chất: tự trọng, trung thực
II. Phương tiện chuẩn bị
1. Giáo viên
a. Ma trận
MA TRẬN ĐỀ KIỂM TRA HỌC KỲ II TIN HỌC 11
Nội
dung
Kiểu
mảng
một
chiều
Nhận biết
Câu 1, 2, 3, 4, 16, 17,
19, 21, 23, 24, 32, 33,
40
Câu 8, 11, 12, 15, 22,
Kiểu xâu 25, 27, 30, 36, 39
Tổng
Thông hiểu
Vận dụng thấp
Vận dụng
cao
Câu 18, 31, 34, 38
Câu 9, 10, 13,
20, 28, 37
Câu 5, 6, 7, 14, 26, 29,
35
Số câu: 23
Số câu: 11
Số điểm: 5,75
Số điểm: 2,75
Số câu: 6
Số điểm: 1,5
29
Giáo viên: Nguyễn ...
Ngày soạn:
Ngày dạy:
Tiết PPCT: 37
14. KIỂU DỮ LIỆU TỆP - §15. THAO TÁC VỚI TỆP
I. Mục tiêu bài học
1. Kiến thức
- Biết khái niệm và vai trò của tệp
- Biết hai cách phân loại tệp
- Biết bản chất của tệp văn bản
2. Kỹ năng
- Khai báo biến tệp và các thao tác cơ bản làm việc với tệp văn bản;
- Sử dụng một số thủ tục và hàm chuẩn làm việc với tệp
3. Thái độ
- Học sinh hào hứng tìm hiểu về một kiểu dữ liệu mới
4. Năng lực, phẩm chất
- NL tư duy
- NL sử dụng ngôn ngữ
- 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ở
- 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: Kết hợp trong quá trinh học bài mới
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 vai trò của tệp– Phát triển NL tư duy
1.Vai trò của kiểu tệp
GV: Chạy một chương trình bất kì khi chưa
sử dụng và sau khi đã sử dụng tệp, yêu cầu
HS so sánh và rút ra vai trỏ của kiểu tệp.
HS: Trả lời câu hỏi.
- Dữ liệu kiểu tệp được lưu trữ lâu dài ở bộ nhớ
1
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
ngoài và không mất khi tắt nguồn điện.
- Lượng dữ liệu lưu trữ trên tệp có thể rất lớn và
chỉ phụ thuộc vào dung lượng đĩa.
HĐ2: Tìm hiểu cách phân loại tệp– Phát triển NL sử dụng ngôn ngữ
2. Phân loại tệp
GV: Có mấy cách phân loại tệp
HS:2 cách
GV: Xét theo cách tổ chức dữ liệu, tệp được
phân thành mấy loại?
- C1: Phân loại theo cách tổ chức dữ liệu
HS: 2 loại
+ Loại 1: Tệp văn bản: là tệp mà dữ liệu được
ghi dưới dạng các kí tự theo mã ASCII.
+ Loại 2: Tệp có cấu trúc: là tệp mà các thành
phần của nó được tổ chức theo một cấu trúc nhất
định.
GV: Xét theo cách thức truy cập, tệp được
phân làm mấy loại?
HS: 2 loại (tệp truy cập tuần tự và tệp truy cập
- C2: Phân loại theo cách thức truy cập
trực tiếp)
+ Loại 1: Tệp truy cập tuần tự: cho phép truy cập
đến một dữ liệu nào đó trong tệp chỉ bằng cách
bắt đầu đi từ đầu tệp và đi qua lần lượt tất cả các
tệp.
+ Loại 2: Tệp truy cập trực tiếp: cho phép tham
chiếu đến dữ liệu bằng cách xác định trực tiếp vị
trí của dữ liệu đó.
HĐ3: Tìm hiểu thao tác với tệp – Phát triển NL sử dụng ngôn ngữ, NL tư duy
3. Thao tác với tệp
GV: Có những thao tác với tệp nào?
HS: Suy nghĩ và TL câu hỏi
- Khai báo biến tệp;
- Mở tệp;
- Đọc/ghi dữ liệu;
- Đóng tệp.
* Chú ý:
- Khác với mảng, số lượng phần tử của tệp
không cần xác định trước.
- Hai thao tác cơ bản đối với tệp là đọc dữ liệu từ
2
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
tệp và ghi dữ liệu vào tệp.
- Thao tác đọc/ghi với tệp được thực hiện với
từng phần tử của tệp.
C. Hoạt động củng cố
- Các thao tác với tệp: khai báo biến tệp, mở/đóng tệp, đọc/ghi tệp
D. Hoạt động luyện tập, mở rộng
- Nghiên cứu tiếp “§15. Thao tác với tệp”.
3
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
Ngày soạn:
Ngày dạy:
Tiết PPCT: 38
§16. VÍ DỤ LÀM VIỆC VỚI TỆP
I. Mục tiêu bài học
1. Kiến thức
- Hiểu các thao tác làm việc với tệp
2. Kỹ năng
- Sử dụng đúng các thủ tục trong C++ thực hiện các nhiệm vụ: mở tệp đọc/ghi, đọc/ghi tệp, đóng tệp
3. Thái độ
- Học sinh thấy được tầm quan trọng của kiểu dữ liệu tệp trong việc lưu trữ dữ liệu.
4. Năng lực, phẩm chất
- NL tính toán
- NL lập trình
- 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ô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ở
- 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: Vẽ sơ đồ làm việc với tệp
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 ví dụ 1– Phát triển NL tư duy và NL tính toán
1. Ví dụ 1
GV: Chiếu đề bài và chương trình.
GV: Chương trình này thực hiện công việc
gì? Xác định Input và Output của bài toán?
HS: Tính và đưa ra màn hình khoảng cách từ
trại của thầy hiệu trưởng đến trại của mỗi giáo
viên.
GV: Hãy cho biết câu lệnh while(cin>>x>>y)
- Xác định bài toán:
+ Input: x, y
+ Output: d
4
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
có ý nghĩa như thế nào?
HS: Khi việc đọc dữ liệura hai biến x và y vẫn
còn đúng (vẫn còn dữ liệu để đọc). Nếu
không còn dữ liệu để đọc, sẽ trả về giá trị là
false.
GV: Có thể sử dụng cấu trúc FOR thay cho
WHILE được không?
HS: Không, vì không biết số lượng phần tử
của tệp.
GV: Giới thiệu cho HS cách tạo file
TRAI.TXT.
- B1: File → New → Empty file
- B2: Nhập dữ liệu
- B3: File → Save (Ctrl + S)
+ Mục File name: nhập tên TRAI.TXT
+ Mục Save as type: chọn All files
HS: Soạn thảo, tạo tệp và chạy chương trình
- Chương trình:
#include
using namespace std;
short x, y;
double d;
int main()
{
freopen(“TRAI.TXT”, “r”, stdin);
freopen(“TRAI.TXT”, “w”, stdout);
while (cin>>x>>y)
{
d = sqrt(a*x+y*y)
cout<
return 0;
}
C. Hoạt động củng cố- Cấu trúc chương trình có sử dụng tệp:+ Mở tệp đọc/ghi
+ Đọc tệp
+ Ghi tệp
+ Đóng tệp
5
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
D. Hoạt động luyện tập, mở rộng- Tìm hiểu kiểu dữ liệu mảng và viết các chương trình đó có sử
dụng kiểu dữ liệu tệp.
Ngày soạn:
Ngày dạy:
Tiết PPCT: 39,40
BÀI TẬP – THỰC HÀNH
I. Mục tiêu bài học
1. Kiến thức
- Hiểu các thao tác cơ bản làm việc với tệp
2. Kỹ năng
- Học sinh sử dụng thành thạo kiểu dữ liệu tệp vào giải quyết các bài toán thông thường
3. Thái độ
- Học sinh thấy được tầm quan trọng của kiểu dữ liệu tệp trong các kì thi quan trọng như thi HSG.
4. Năng lực, phẩm chất
- NL tính toán
- NL lập trình
- 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ô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: Kết hợp trong quá trình làm bài tập
B. Hoạt động hình thành kiến thức
HOẠT ĐỘNG DẠY HỌC
NỘI DUNG
HĐ1:Thực hiện bài tập 1 – Phát triển NL tư duy, NL lập trình và NL tính toán
1. Bài 1
GV: Chiếu đề bài và chương trình.
HS: Đọc kĩ yêu cầu
Yêu cầu: Cho hai số nguyên a và b(a<=109,
b<=109). Bạn hãy tính chu vi và diện tích hình chữ
nhật có độ dài hai cạnh tương ứng là a và b.
Dữ liệu: Cho fileNHAP.TXT gồm hai số tự nhiên
a và b, mỗi số cách nhau ít nhất một dấu cách
Kết quả:Ghi ra fileXUAT.TXTgồm 2 số lần lượt
6
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
là chu vi và diện tích của hình chữ nhật đó.
NHAP.TXT
15 9
5 5
3 17
XUAT.TXT
48 135
20 25
30 51
- Xác định bài toán:
GV: Xác định Input và Output của bài toán?
HS: TL
GV: Yêu cầu HS viết chương trình
HS: Soạn thảo, tạo tệp và chạy chương trình
+ Input: a, b
+ Output: p, s
- Chương trình:
#include
using namespace std;
long a, b;
long long p, s;
int main()
{
freopen(“NHAP.TXT”, “r”, stdin);
freopen(“XUAT.TXT”, “w”, stdout);
while (cin>>a>>b)
{
p = (a+b)*2;
s= a*b;
cout << p << “ ”<
return 0;
}
GV: Chiếu chương trình và chạy.
HS: Chạy chương trình, đối chiếu kết quả
HĐ2: Thực hiện bài tập 2 – Phát triển NL tính toán và NL lập trình
2. Bài tập 2
GV: Chiếu đề bài
HS: Đọc và suy nghĩ
Một người thường xuyên đóng tiền điện hàng
tháng cho gia đình. Bạn hãy giúp cho khách hàng
7
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
này hiểu cách tính tiền điện của sở điện lực. Biết
cách tính tiền điện của sở điện lực như sau :
* Nếu điện năng tiêu thụ của một hộ gia đình
từ 1 đến 50 số thì tính 1000đ/số
* Nếu điện năng tiêu thụ của một hộ gia đình
từ 51 đến 100 số thì tính 1500đ/số
* Nếu điện năng tiêu thụ của một hộ gia đình
từ 101 số trở đi thì tính 2000đ/số
Yêu cầu: Em hãy lập trình giúp người khách tính
tiền điện phải đóng cho sở điện lực
Dữ liệu:Cho file TIENDIEN.INP gồm một số
nguyên dương N(N<=1010) là số điện năng tiêu thụ
của khách hàng
Kết quả:Ghi ra file TIENDIEN.OUT số tiền mà
hộ gia đình phải đóng
TIENDIEN.INP
TIENDIEN.OUT
51
51500
- Xác định bài toán
GV: Hãy xác định Input và Output cho bài
toán trên?
HS: Suy nghĩ và TL
+ Input: n
+ Output: t
GV: Hãy nêu ý tưởng giải quyết bài toán?
HS: Sử dụng câu lệnh if else
if (n<=50) then t = n*1000;
else if ((n>50) &&(n<=100)) t = 50*1000+(n50)*1500);
else t = 50*1000+(50*1500)+(n-100)*2000);
GV: Yêu cầu HS code chương trình
HS: Xây dựng chương trình hoàn chỉnh.
- Chương trình:
#include
using namespace std;
long n;
long long t;
int main()
{
8
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
freopen(“TIENDIEN.INP”,“r”, stdin);
freopen(“TIENDIEN.OUT”,“w”, stdout);
while (cin>>n)
{
if (n<=50) then t = n*1000;
else if ((n>50) &&(n<=100)) t=50*1000+(n50)*1500);
else t = 50*1000+(50*1500)+(n-100)*2000);
}
return 0;
}
GV: Chạy chương trình.
HS: Quan sát kết quả của chương trình và so
sánh với kết quả tính được. Nhận xét về tính
chính xác và thời gian thực hiện của chương
trình.
C. Hoạt động củng cố
- Các thao tác cơ bản làm việc với tệp
D. Hoạt động luyện tập, mở rộng
- Đọc lại cấu trúc lặp chuẩn bị cho tiết bài tập tiếp theo.
9
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
Ngày soạn:
Ngày dạy:
Tiết PPCT: 41,42:
§17. CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI
I. Mục tiêu bài học
1. Kiến thức
- Biết việc sử dụng chương trình con rất cần thiết khi phải viết chương trình dài, phức tạp
- Nắm được cấu trúc chung của một chương trình con
- Phân biệt được hàm có trả về một giá trị và hàm không trả về một giá trị
- Phân biệt được tham chiếu và tham trị
2. Kỹ năng
- Xây dựng và tổ chức chương trình con;
- Gọi chương trình con trong thân chương trình chính.
3. Thái độ
- Học sinh hiểu bài và có hứng thú làm quen với lập trình có cấu trúc.
- HS thấy được tầm quan trọng của chương trình con và lập trình có cấu trúc
4. Năng lực, phẩm chất
- NL tư duy
- NL tính toán
- NL sử dụng ngôn ngữ
- NL lập 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ở
- 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:
Kết hợp trong quá trình học bài mới
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 chương trình con– Phát triển NL sử dụng ngôn ngữ
GV: Các chương trình dài, phức tạp thường rất
dài, có thể gồm nhiều lệnh, khi đọc rất khó hình
dung chương trình thực hiện những công việc
1.Khái niệm chương trình con
a.Khái niệm
10
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
gì và việc hiệu chỉnh cũng rất khó khăn. Như
vậy, làm thế nào để bài toán phức tạp dễ đọc,
dễ hiểu, dễ hiệu chỉnh và dễ nâng cấp.
Xét bài toán sau:
Tính tổng an + bm + cp + dq
Hãy nêu ý tưởng giải quyết bài toán này?
HS: Suy nghĩ và TL dựa theo SGK.
#include
using namespace std;
double a,b,c,d,t,t1,t2,t3,t4;
long i,m,n,p,q;
int main()
{
cout<<"Nhap a,b,c,d,m,n,p,q:";
cin>>a>>b>>c>>d>>m>>n>>p>>q;
t1=1.0;t2=1.0; t3=1.0; t4=1.0;
for (long i=1;i<=n;i++)
t1=t1*a;
for (long i=1;i<=m;i++)
t2=t2*b;
for (long i=1;i<=p;i++)
t3=t3*c;
for (long i=1;i<=q;i++)
t4=t4*d;
t= t1+t2+t3+t4;
cout<<"Tong
=
"<
}
GV: Nêu cách giải quyết sử dụng chương trình
con như sau:
#include
using namespace std;
double a,b,c,d,t;
long i,m,n,p,q;
double luythua(double a,long m)
{
double lt=1.0;
for (long i=1;i<=m;i++)
lt=lt*a;
return lt;
}
11
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
int main()
{
cout<<"Nhap a,b,c,d,m,n,p,q:";
cin>>a>>b>>c>>d>>m>>n>>p>>q;
t= luythua(a,n)+luythua(b,m)+luythua(c,p)
+luythua(d,q);
cout<<"Tong
=
"<
}
GV:Để giải bài toán trên máy tính có thể chia
chương trình thành các khối, mỗi khối gồm
nhiều lệnh giải bài tập con nào đó → Chương
trình chính được xây dựng từ các chương trình
con. Vậy chương trình con là gì?
HS: Theo dõi SGK và TL
Chương trình con là một dãy lệnh mô tả một số
thao tác nhất định và có thể được thực hiện (được
GV: So sánh chương trình “Luythua2” có sử gọi) từ nhiều vị trí trong chương trình.
dụng chương trình con và chương trình b. Lợi ích của việc sử dụng chương trình con
“Luythua1” không sử dụng chương trình con,
em hãy cho biết các lợi ích của việc sử dụng
chương trình con.
HS: Suy nghĩ và TL
- Tránh được việc phải viết lặp đi lặp lại nhiều
lần cùng một dòng lệnh.
- Hỗ trợ việc thực hiện các chương trình lớn
- Phục vụ quá trình trừu tượng hóa
HĐ2: Tìm hiểu cách phân loại chương trình con– Phát triển NL sử dụng ngôn ngữ, NL tính toán,
NL tư duy, NL lập trình
GV: Nêu ví dụ về hàm số học chuẩn trong C+
+?
HS:sin(x), sqrt(x), trunc(x),…;
GV: Xét hàm sin(x). Với x = 0 giá trị của hàm
sin(x) cho kết quả là bao nhiêu?
HS: sin(x) = 1
GV: Sau khi thực hiện tính toán hàm sin(x) với
x = 0 cho giá trị là 1. Vậy em hãy cho biết hàm
2. Phân loại chương trình con
a.Hàm có trả về một giá trị
12
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
có trả về một giá trị có đặc điểm gì?
- Khái niệm: Hàm là chương trình thực hiện một
số thao tác nào đó, trả lại giá trị qua tên của hàm
- Cú pháp:
…)
{
các câu lệnh;
return giá trị trả về của hàm;
}
- Ví dụ:
#include
using namespace std;
int cong(int a, int b)
{
int r;
r = a+b;
return r;
}
int main()
{
int x=5,y=3;z;
z = cong(7,2);
cout<<"Ket qua 1 = "<
cout<<"Ket qua 4 = "<
}
GV: Giải thích hàm cộng, tương tự yêu cầu HS
xây dựng hàm trừ và viết chương trình có sử
dụng hàm trừ nhiều lần.
HS: Thực hiện yêu cầu.
b. Hàm không trả về một giá trị - hàm void
GV: Nêu ví dụ về hàm chuẩn vào/ra đơn giản
trong C++?
HS: cout, cin,…
GV: Xét hàm cout<<“Xin chao!!!”; hàm này
làm gì?Cho kết quả là gì? Có trả về giá trị nào
không?
HS: Hàm cout<<“Xin chao!!!” thực hiện in ra
13
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
màn hình dòng chữ: “Xin chao” và không trả về
giá trị?
GV: Hãy cho biết hàm không trả về một giá trị
có đặc điểm gì?
- Khái niệm: Hàm không trả về một giá trị (Thủ
HS: Suy nghĩ và TL
tục – hàm void) là chương trình thực hiện một số
thao tác nào đó, không trả lại giá trị qua tên của
hàm
- Cú pháp:
void
{
các câu lệnh;
}
- Ví dụ:
#include
using namespace std;
void inthongbao()
{
cout<< “Day la mot ham”;
}
int main()
{
inthongbao();
}
GV: Giải thích chương trình ví dụ và yêu cầu
HS viết một số ví dụ về hàm không trả về giá trị
thực hiện một công việc bất kì
HS: Thực hiện yêu cầu
C. Hoạt động củng cố
- Khái niệm, lợi ích của chương trình con
- Phân biệt hàm có trả về giá trị và hàm không trả về giá trị
D. Hoạt động luyện tập, mở rộng
- Đọc trước mục 2. Tham trị và tham chiếu và 3. Đệ quy
14
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
Ngày soạn:
Ngày dạy:
Tiết PPCT: 43,44
§18. VÍ DỤ VÊ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON
I. Mục tiêu bài học
1. Kiến thức
- Phân biệt được tham chiếu và tham trị
2. Kỹ năng
- Xây dựng và tổ chức hàm không trả ra giá trị có sử dụng tham chiếu hoặc tham trị;
3. Thái độ
- Học sinh hiểu bài và có hứng thú làm quen với lập trình có cấu trúc.
- HS thấy được tầm quan trọng của chương trình con và lập trình có cấu trúc
4. Năng lực, phẩm chất
- NL tư duy
- NL tính toán
- NL sử dụng ngôn ngữ
- NL lập 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ở
- 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:
Cho dãy số nguyên dương a gồm n phần tử (0 ≤ n ≤ 100000) (0 ≤ ai ≤ 100000) (i = 1..n)
Yêu cầu:- Tìm tất cả các số nguyên tố của dãy A
Dữ liệu:- Vào từ file DS.INP
- Dòng 1 ghi số phần tử n của dãy
- Dòng 2 ghi các giá trị phần tử ai (i = 1..n)
Kết quả:- Đưa ra file DS.OUT
- Các số nguyên tố (trên 1 dòng)
DS.INP
6
DS.OUT
2 11 5
2 11 4 5 9 5
15
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
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 hàm không trả về một giá trị – Phát triển NL sử dụng ngôn ngữ, NL tư duy, NL tính
toán và NL lập trình
1. Hàm không trả về một giá trị
a. Ví dụ: Hàm vẽ hình chữ nhật
GV: Chiếu hàm vẽ hình chữ nhật, yêu cầu học
sinh nhận xét về hàm ve_hcn của ví dụ này với
ví dụ trước.
* Tổ chức hoạt động nhóm;
- Phân nhóm từ 4-6 em
- Công việc: Xác định bản chất của hàm
ve_hcn;
- Câu hỏi: Câu lệnh nào thực hiện vẽ cạnh trên,
hai cạnh bên và câu lệnh nào thực hiện vẽ cạnh
dưới.
- Kết thúc hoạt động: thu kết quả của các nhóm,
yêu cầu các nhóm trình bày kết quả của nhóm.
- Cho các nhóm nhận xét kết quả bài làm của
nhau.
GV: Nhận xét kết quả và đưa ra kết luận (có thể
cho điểm các nhóm nếu bài làm tốt)
GV: Trong chương trình chính ta vẽ tất cả bao
nhiêu hình chữ nhật?
HS: Trả lời câu hỏi (6 hỉnh).
#include
using namespace std;
void ve_hcn(long chdai, long chrong)
{ long i, j;
//Ve canh tren cua hinh chu nhat
for (i=1;i<=chdai;i++) cout<<"*";
cout<
for (j=1; j<=(chrong-2);j++)
{
cout<<"*";
for (i=1;i<= (chdai-2);i++) cout<<" ";
cout<<"*";
cout<
//Ve canh duoi
for (i=1; i<=chdai;i++) cout<<"*";
cout<
int main() //Bat dau chuong trinh chinh
{ long a, b, i;
ve_hcn(25,10);
cout<
cout<
for (i=1; i<= 4; i++)
{
ve_hcn(a,b);
cout<
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
a=a*2; b=b*2;
}
return 0;
}
HĐ2:Phân biệt tham chiếu và tham trị– Phát triển NL sử dụng ngôn ngữ, NL tính toán, NL tư duy,
NL lập trình
b. Phân biệt tham trị và tham chiếu
GV: Chiếu ví dụ 1: hàm hoan_doi_1 lên bảng.
Hỏi: hàm hoan_doi 1 thực hiện công việc gì?
HS: Hoán đổi giá trị hai biến dữ liệu vào cho
nhau.
GV: Chạy chương trình và thực hiện đổi phần
khai báo thành: void hoan_doi(long &x, long
&y) để HS quan sát và nhận xét sự khác nhau - Ví dụ 1: Tham trị
giữa tham biến và tham trị.
#include
using namespace std;
void hoan_doi(long x, long y)
{
long tg=x;
x=y;
y=tg;
}
int main()
{
long a= 5; long b=10;
cout<hoan_doi(a,b);
cout<}
→ Output: 5 10
5 10
- Ví dụ 2: Tham chiếu
#include
using namespace std;
void hoan_doi(long &x, long &y)
{
long tg=x;
x=y;
y=tg;
17
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
}
int main()
{
long a= 5; long b=10;
cout<hoan_doi(a,b);
cout<}
→ Output: 5 10
10 5
C. Hoạt động củng cố
- Tham chiếu: giá trị của biến trong chương trình con thay đổi làm thay đổi giá trị biến trong chương
trình chính.
- Tham trị: giá trị của biến trong chương trình con thay đổi nhưng không làm thay đổi giá trị biến
trong chương trình chính.
D. Hoạt động luyện tập, mở rộng
- Nghiên cứu cách xây dựng các chương trình con trả về giá trị đối với toàn bộ các chương trình Tin
học 11
18
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
Ngày soạn:
Ngày dạy:
Tiết PPCT: 45
Tiết 44:KIỂM TRA 1 TIẾT
I. Mục tiêu bài học
1. Kiến thức
- Kiểm tra đánh giá kiến thức của học sinh về nội dung kiến thức kiểu dữ liệu tệp
2. Kỹ năng
- Viết chương trình với mảng một chiều có sử dụng kiểu dữ liệu tệp
3. Thái độ
- Nghiêm túc làm bài.
4. Năng lực, phẩm chất
- NL tự học
- NL sử dụng CNTT
- Phẩm chất: trung thực, tự trọng
II. Phương tiện chuẩn bị
1. Giáo viên
b. Đề kiểm tra
ĐỀ BÀI
Cho dãy số nguyên a gồm n phần tử (1 < n ≤100), mỗi phần tử có giá trị tuyệt đối khôngvượt quá
3000. Tính tổng các phần tử của dãy là bội số của 7.
Dữ liệu:Đọc từ tệp tong.inp gồm 2 dòng:
- Dòng 1 chứa số nguyên dương n là số lượng các phần tử của mảng a
- Dòng 2chứa các số a1,...an
Kết quả:Ghi ra tệp tong.out một số duy nhất là tổng các số chia hết cho 7
TONG.INP
5
3 7 2 14 6
8
2 5 21 28 9 10 5 7
TONG.OUT
21
56
b. Đáp án, biểu điểm
1. Chấm bài:
- Chấm bài bằng các test, mỗi test tương ứng 1 điểm.
- Chương trình không chạy hoặc dữ liệu vào ra không phù hợp theo yêu cầu sẽ không được điểm.
19
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
2. Chương trình
#include
using namespace std;
const long nmax=100;
long n, i, s, a[nmax];
int main()
{
freopen(“DS.INP”, “r”, stdin);
freopen(“DS.OUT”, “w”, stdout);
while (cin>>n)
{
s=0;
for (i=1; i<=n;i++)
{
cin>>a[i];
if (a[i]%7==0) s=s+a[i];
cout<
}
return 0;
}
2. Học sinh
- Các kiến thức đã học và ôn tập
III. Tiến trình bài học
A. Hoạt động khởi động
2. Kiểm tra
- GV: Phát đề
- HS: Làm bài trên máy
3. Củng cố: không
D. Hoạt động luyện tập, mở rộng
- Nghiên cứu trước nội dung §17. Chương trình con và phân loại
20
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
Ngày soạn:
Ngày dạy:
Tiết PPCT: 46,47
BÀI TẬP VÀ THỰC HÀNH 6
I. Mục tiêu bài học
1. Kiến thức
- Phân biệt được tham chiếu và tham trị
2. Kỹ năng
- Xây dựng và tổ chức hàm trả về một giá trị có sử dụng tham chiếu hoặc tham trị;
3. Thái độ
- HS thấy được tầm quan trọng của chương trình con và lập trình có cấu trúc
4. Năng lực, phẩm chất
- NL tư duy
- NL tính toán
- NL sử dụng ngôn ngữ
- NL lập 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
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: kết hợp trong quá trình thực hành
B. Hoạt động hình thành kiến thức
HOẠT ĐỘNG DẠY HỌC
NỘI DUNG
HĐ1: Thực hiện bài tập 1 – Phát triển NL sử dụng ngôn ngữ, NL tư duy, NL tính toán và NL lập
trình
1. Bài tập 1
GV: Chiếu đề bài
HS: Suy nghĩ phân tích đề bài
Giả thuyết của Gon-Bac nói rằng mỗi số chẵn n
lớn hơn 2 là tổng của 2 số nguyên tố. Cho n là số
chẵn lớn hơn 2, hãy xác định số lượng các cặp số
nguyên tố có tổng bằng n.
Dữ liệu: - Vào từ file GONBAC.INP chứa duy
nhất số n (2≤ n ≤ 20000)
21
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
Kết quả: Ghi ra file GONBAC.OUT chứa duy
nhất một số theo yêu cầu của đề bài
GONBAC.INP
16
GONBAC.OUT
2
GV: Bài toán này phải xây dựng hàm như thế
nào?
HS: Hàm nguyên tố có trả về một giá trị
GV: Nêu ý tưởng giải quyết bài toán?
HS: Duyệt i từ 2 đến n/2, kiểm tra nếu i và (n-i)
là số nguyên tố thì đếm.
GV: Yêu cầu HS viết chương trình
HS: Soạn thảo, dịch, thực hiện và hiệu chình
#include
chương trình
using namespace std;
long i,n,d;
bool nt(long n)
{
bool kt;
kt=true;
if(n<2) kt=false;
else
for(i=2;i<=trunc(sqrt(n));i++)
if(n%i==0) kt=false;
return kt;
}
int main()
{
freopen("gonbac.inp","r",stdin);
freopen("gonbac.out","w",stdout);
while(cin>>n)
{
d=0;
for(long i=2;i<=(n/2);i++)
if ((nt(i)==true) && (nt(n-i)==true))
d=d+1;
cout<
22
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
return 0;
}
HĐ2: Thực hiện bài tập 2 – Phát triển NL sử dụng ngôn ngữ, NL tính toán, NL tư duy, NL lập trình
2. Bài tập 2
GV: Bài toán này phải xây dựng hàm như thế
nào?
Cho dãy số nguyên dương a gồm n phần tử (0 ≤ n
HS: Hàm chính phương có trả về một giá trị
≤ 100000) (0 ≤ ai ≤ 100000) (i = 1..n)
Yêu cầu:Tìm tất cả các số chính phương của dãy
A
Dữ liệu:- Vào từ file DS.INP
- Dòng 1 ghi số phần tử n của dãy
- Dòng 2 ghi các giá trị phần tử ai (i = 1..n)
Kết quả:- Đưa ra file DS.OUT. Các số chính
phương (trên 1 dòng)
DS.INP
6
DS.OUT
49
2 11 4 5 9 5
GV: Nêu ý tưởng giải quyết bài toán?
HS: Duyệt i từ 1 đến n, kiểm tra nếu a i là số
chính phương thì in ra.
GV: Yêu cầu HS viết chương trình
HS: Soạn thảo, dịch, thực hiện và hiệu chình
chương trình
#include
using namespace std;
const long nmax=100000;
long n,i,d,a[nmax+1];
bool cp(long(n))
{
bool kt;
if(trunc(sqrt(n))==sqrt(n))kt=true;
else kt=false;
return kt;
}
int main ()
23
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
{
freopen("ds.inp","r",stdin);
freopen("ds.out","w",stdout);
while(cin>>n)
{
d=0;
for(long i=1;i<=n;i++)
{
cin>>a[i];
if(cp(a[i])==true)d=d+1;
}
cout<
cout<
C. Hoạt động củng cố
- Lời gọi hàm trả về một giá trị phải được đặt trong một lệnh hoặc trong một lời gọi chương trình con
khác.
- Hàm có thể tham gia vào các biểu thức tính toán như một toán hạng thông thường
D. Hoạt động luyện tập, mở rộng
- Xây dựng hàm đảo ngược của một số để tiết sau thực hành tiếp
24
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
Ngày soạn:
Tiết theo KHDH: 43
ÔN TẬP
I. Mục tiêu bài học
1. Kiến thức
- Nắm vững các kiến thức về kiểu dữ liệu tệp và chương trình con
2. Kỹ năng
- Viết chương trình sử dụng kiểu dữ liệu tệp
- Xây dựng chương trình con
3. Thái độ
- Tích cực ôn tập để chuẩn bị kiểm tra học kì II
4. Năng lực, phẩm chất
- NL tư duy
- NL tính toán
- NL sử dụng ngôn ngữ
- NL lập 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ở
- 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:
Viết hàm tìm bội chung nhỏ nhất của 2 số nguyên dương a và b.
B. Hoạt động hình thành kiến thức
HOẠT ĐỘNG DẠY HỌC
NỘI DUNG
HĐ1:Xây dựng hàm tìm bội chung nhỏ nhất của hai số nguyên dương a và b– Phát triển NL sử
dụng ngôn ngữ, NL tư duy, NL tính toán và NL lập trình
1. Hàm tìm bội chung nhỏ nhất
GV: Bội chung nhỏ nhất của 2 số là gì?
HS: Suy nghĩ và TL
GV: Nếu sử dụng vòng for để tìm bội của 2 số,
thì giá trị biến i sẽ thay đổi như thế nào?
HS: i sẽ chạy từ a đến a*b
GV: Yêu cầu HS viết chương trình
HS: Soạn thảo, dịch, thực hiện và hiệu chỉnh
chương trình.
25
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
#include
using namespace std;
long a, b;
long BCNN(long a, long b)
{ long i;
for (long i= a;i<=(a*b);i++)
if ((i%a == 0) && (i%b ==0))
{ return i;
break;
}
}
int main()
{
cout<<"Nhap a va b: ";
cin>>a>>b;
cout<< "Boi chung nho nhat:" << BCNN(a,b);
return 0;
}
HĐ2: Xây dựng hàm kiểm tra nguyên tố– Phát triển NL sử dụng ngôn ngữ, NL tính toán, NL tư
duy, NL lập trình
GV: Chiếu đề bài
HS: Đọc, phân tích đề bài
2. Hàm nguyên tố
Cho dãy số nguyên dương a gồm n phần tử (0 ≤ n
≤ 100000) (0 ≤ ai ≤ 100000) (i = 1..n)
Yêu cầu: Tìm tất cả các số nguyên tố của dãy A.
Dữ liệu: - Vào từ file DS.INP
- Dòng 1 ghi số phần tử n của dãy
- Dòng 2 ghi các giá trị phần tử ai (i =
1..n)
Kết quả:- Đưa ra file DS.OUT các số nguyên tố
(trên 1 dòng)
DS.INP
DS.OUT
6
11 5
2 11 4 5 9 5
49
GV: Yêu cầu HS xây dựng hàm kiểm tra
nguyên tố
HS: Xây dựng hàm nguyento
26
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
GV: Yêu cầu HS viết chương trình hoàn chỉnh
HS: Hoàn thiện chương trình
#include
using namespace std;
#define max 100
// nhap mang
void NhapMang(int A[],int n)
{
for(int i=1; i<=n; i++)
{
cout<<"nhap Phan tu thu A["<cin>>A[i];
}
}
// in mang
void XuatMang(int A[],int n)
{
cout<
cout<}
//ham nguyen to
bool nt(long n)
{ long i;
bool kt=true;
if (n<2) kt=false;
else for (i=2; i<=trunc(sqrt(n)); i++)
if (n%i==0) kt=false;
return kt;
}
//Ham in so nguyen to
void In(int A[],int n)
{
for(int i=1; i<=n; i++)
if (nt(A[i])== true) cout<}
// ham main
int main()
27
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
{
int A[max], n;
cout<<"Nhap so phan tu:";
cin>>n;
NhapMang(A,n);
cout<<"Mang vua nhap la:";
XuatMang(A,n);
cout<
In(A,n);
return 0;
}
C. Hoạt động củng cố
- Hàm không trả về một giá trị: lời gọi độc lập
- Hàm trả về một giá trị: lời gọi phải được đặt trong một lệnh hoặc trong một lời gọi chương trình
con khác.
D. Hoạt động luyện tập, mở rộng
- Ôn tập toàn bộ kiến thức để kiểm tra học kì II
28
Giáo viên: Nguyễn Thị Huyền- Trường THPT Nông Cống 4
Giáo án tin học 11 – Năm học : 2022-2023
Ngày soạn:
Tiết theo KHDH:44
KIỂM TRA HỌC KÌ II
I. Mục tiêu bài học
1. Kiến thức
- Kiểm tra đánh giá toàn bộ nội dung kiến thức về lập trình C++ với các nội dung trọng tâm:
+ Kiểu dữ liệu mảng
+ Kiểu dữ liệu xâu
+ Kiểu dữ liệu tệp
+ Chương trình con
2. Kỹ năng
- Viết chương trình sử dụng kiểu dữ liệu tệp
- Xây dựng chương trình con
3. Thái độ
- Tích cực ôn tập để chuẩn bị kiểm tra học kì II
4. Năng lực, phẩm chất
- NL tự học
- NL sử dụng ngôn ngữ
- Phẩm chất: tự trọng, trung thực
II. Phương tiện chuẩn bị
1. Giáo viên
a. Ma trận
MA TRẬN ĐỀ KIỂM TRA HỌC KỲ II TIN HỌC 11
Nội
dung
Kiểu
mảng
một
chiều
Nhận biết
Câu 1, 2, 3, 4, 16, 17,
19, 21, 23, 24, 32, 33,
40
Câu 8, 11, 12, 15, 22,
Kiểu xâu 25, 27, 30, 36, 39
Tổng
Thông hiểu
Vận dụng thấp
Vận dụng
cao
Câu 18, 31, 34, 38
Câu 9, 10, 13,
20, 28, 37
Câu 5, 6, 7, 14, 26, 29,
35
Số câu: 23
Số câu: 11
Số điểm: 5,75
Số điểm: 2,75
Số câu: 6
Số điểm: 1,5
29
Giáo viên: Nguyễn ...
 








Các ý kiến mới nhất