Giáo án Tin học Lớp 11 - Bài tập thực hành 9: Kiểu dữ liệu tệp - Trường THPT Thăng Long

I. MỤC TIÊU
1. Kiến thức
- Luyện cách làm việc với tệp văn bản
- Rèn luyện kỹ năng biên soạn, hiệu chỉnh và thực hiện chương trình.
2. Năng lực
- Năng lực giải quyết vấn đề, sáng tạo.
- Năng lực tự học, đọc hiểu.
- Năng lực hợp tác nhóm: trao đổi thảo luận, trình bày kết quả.
- Năng lực tính toán, Năng lực thực hành .
3. Phẩm chất
- Phẩm chất: Giúp học sinh rèn luyện bản thân phát triển các phẩm chất tốt đẹp: yêu nước, nhân ái, chăm chỉ, trung thực, trách nhiệm
II. THIẾT BỊ DẠY HỌC VÀ HỌC LIỆU
Giáo viên: Sách giáo khoa, máy tính điện tử.
Học sinh: đồ dùng học tập, SGK, vở ghi, máy tính
III. TIẾN TRÌNH DẠY HỌC
A. HOẠT ĐỘNG KHỞI ĐỘNG (MỞ ĐẦU)
a) Mục tiêu: Tạo tình huống khơi gợi tinh thần cho học sinh
b) Nội dung: Hs dựa vào hiểu biết để trả lời câu hỏi.
c) Sản phẩm: Từ yêu cầu HS vận dụng kiến thức để trả lời câu hỏi GV đưa ra.
d) Tổ chức thực hiện: GV giới thiệu và dẫn dắt vào bài:
B. HÌNH THÀNH KIẾN THỨC MỚI
Hoạt động 1: làm một số bài tập
a) Mục tiêu: làm được một số bài tập sử dụng câu lệnh for-do
b) Nội dung: HS quan sát SGK để tìm hiểu nội dung kiến thức theo yêu cầu của GV.
c) Sản phẩm: HS hoàn thành tìm hiểu kiến thức
Trường: THPT THĂNG LONG
Tổ: LÝ - CN
Họ và tên giáo viên
Hoàng Thị Thanh Tâm
Tên bài dạy
BÀI TẬP THỰC HÀNH 9
KIỂU DỮ LIỆU TỆP
Môn học: Tin Học; Lớp: 11
Thời gian thực hiện: 2 tiết
I. MỤC TIÊU 
1. Kiến thức 
- Luyện cách làm việc với tệp văn bản
- Rèn luyện kỹ năng biên soạn, hiệu chỉnh và thực hiện chương trình. 
2. Năng lực  
- Năng lực giải quyết vấn đề, sáng tạo. 
- Năng lực tự học, đọc hiểu. 
- Năng lực hợp tác nhóm: trao đổi thảo luận, trình bày kết quả. 
- Năng lực tính toán, Năng lực thực hành . 
3. Phẩm chất 
- Phẩm chất: Giúp học sinh rèn luyện bản thân phát triển các phẩm chất tốt đẹp: yêu nước, nhân ái, chăm chỉ, trung thực, trách nhiệm  
II. THIẾT BỊ DẠY HỌC VÀ HỌC LIỆU  
Giáo viên:  Sách giáo khoa, máy tính điện tử. 
Học sinh:  đồ dùng học tập, SGK, vở ghi, máy tính 
III. TIẾN TRÌNH DẠY HỌC 
A. HOẠT ĐỘNG KHỞI ĐỘNG (MỞ ĐẦU) 
a) Mục tiêu: Tạo tình huống khơi gợi tinh thần cho học sinh 
b) Nội dung: Hs dựa vào hiểu biết để trả lời câu hỏi. 
c) Sản phẩm: Từ yêu cầu HS vận dụng kiến thức để trả lời câu hỏi GV đưa ra. 
d) Tổ chức thực hiện: GV giới thiệu và dẫn dắt vào bài: 
B. HÌNH THÀNH KIẾN THỨC MỚI 
Hoạt động 1: làm một số bài tập 
a) Mục tiêu: làm được một số bài tập sử dụng câu lệnh for-do 
b) Nội dung: HS quan sát SGK để tìm hiểu nội dung kiến thức theo yêu cầu của GV. 
c) Sản phẩm: HS hoàn thành tìm hiểu kiến thức 
d) Tổ chức thực hiện: 
Hoạt động của GV và HS 
Sản phẩm dự kiến 
* Bước 1: Chuyển giao nhiệm vụ: 
Yêu cầu học sinh thực hiện chương trình với nhiều input khác nhau. 
* Bước 2: Thực hiện nhiệm vụ:  
 + HS: Suy nghĩ, tham khảo sgk trả lời câu hỏi 
+ GV: quan sát và trợ giúp các cặp.  
* Bước 3: Báo cáo, thảo luận:  
+ HS: Lắng nghe, ghi chú, một HS phát biểu lại các tính chất.  
+ Các nhóm nhận xét, bổ sung cho nhau.  
* Bước 4: Kết luận, nhận định: GV chính xác hóa và gọi 1 học sinh nhắc lại kiến thức 
Ví dụ:
Ví dụ:
Bài 1: Cho N điểm trong mặt phẳng tọa độ Ai = (xi, yi). Khoảng cách Manhattan giữa hai điểm A và B có giá trị D = |xA – xB| + |yA – yB|
Yêu cầu: Tính khoảng cách Manhattan lớn nhất giữa các cặp điểm đã cho
Dữ liệu vào: Từ file văn bản DISTANCE.INP:
 Dòng 1: ghi số nguyên dương n (2 ≤ n ≤ 105). 
Dòng 2 .. N + 1: mỗi dòng 2 số nguyên thể hiện tọa độ của điểm (|xi|, |yi| ≤ 109). Các số viết cách nhau một dấu cách
Dữ liệu ra: Ghi ra file văn bản DISTANCE.OUT
- Gồm 1 số nguyên duy nhất là kết quả bài toán
f=open("DISTANCE.INP",'r')
g=open("DISTANCE.out",'w')
n=int(f.readline())
a=[]
for x in range(0,n):
	b=list(map(int,f.readline().split()))
	a.append(b)
print(a)
def kc(x1,y1,x2,y2):
	r=abs(x2-x1)+abs(y2-y1)
	return r
d=0
for x in range(len(a)-1):
	i=kc(a[x][0],a[x][1],a[x+1][0],a[x+1][1])
	if d<i:
	d=i
g.write(str(d))
f.close()
g.close()
Bài 2 : Xét dãy số nguyên dương khác nhau từng đôi một: a1, a2, an, trong đó 1 ≤ ai ≤ 106, 1 ≤ n ≤ 105). Với số nguyên x cho trước (1 ≤ x ≤ 200000). Hãy xác định số cặp (ai, aj) thỏa mãn các điều kiện:
+ ai + aj = x
+ 1 ≤ i ≤ j ≤ n
Dữ liệu vào: Từ file văn bản SUMX.INP gồm:
Dòng 1: chứa số nguyên dương n
Dòng 2: chứa n số nguyên a1, a2, an. Các số cách nhau bởi dấu cách
Dòng 3 chứa số nguyên x
Dữ liệu ra: Ghi ra file văn bản SUMX.OUT một số nguyên – số cặp tìm được
f=open("SUMX.inp",'r')
g=open("SUMX.out",'w')
n=int(f.readline())
a=list(map(int,f.readline().split()))
x=int(f.readline())
d=0
for i in range(len(a)):
	for j in range(i,len(a)):
	if a[i]+a[j]==x:
	d=d+1
g.write(str(d))
f.close()
g.close()
Hoạt động 2: làm một số bài tập sử dụng cấu trúc rẽ nhánh, lặp 
a) Mục tiêu: làm được một số bài tập sử dụng cấu trúc rẽ nhánh, lặp 
b) Nội dung: HS quan sát SGK để tìm hiểu nội dung kiến thức theo yêu cầu của GV. 
c) Sản phẩm: HS hoàn thành tìm hiểu kiến thức 
d) Tổ chức thực hiện: 
Hoạt động của GV và HS 
Sản phẩm dự kiến 
* Bước 1: Chuyển giao nhiệm vụ: 
Bài 1: Nhập vào ba số a,b,c bất kì. 
Kiểm tra xem nó có thể là độ dài ba cạnh hay không, nếu không thì in ra màn hình ' Khong la ba canh cua mot tam giac'. Ngược lại, thì in chu vi, diện tích của tam giác đó ra màn hình. 
Gv: em hãy xác định input và output của bài toán? 
Bài 2: viết chương trình nhập vào số nguyên dương N. Tính tổng các số chẵn từ 1 tới N. 
* Bước 2: Thực hiện nhiệm vụ:  
 + HS: Suy nghĩ, tham khảo sgk trả lời câu hỏi 
+ GV: quan sát và trợ giúp các cặp.  
* Bước 3: Báo cáo, thảo luận:  
+ HS: Lắng nghe, ghi chú, một HS phát biểu lại các tính chất.  
Program TAMGIAC;  
Uses crt; 
Vara, b, c, s, p: real;  
Begin 
Clrscr; 
Write ('nhap a ='); readln(a); 
Write ('nhap b ='); readln(b);  
Write ('nhap c ='); readln(c); 
If (a>0) and (b>0) and (c>0) and 
(a+b>c) and (b+c>a) and (a+c>b) then 
Begin 
p:=(a+b+c)/2; 
s:=sqrt(p*(p-a)*(p-b)*(p-c));  
Writeln('Chu vi tam giac:',2*p:4:2) ;  
Writeln('Dien tich tam giac:',s:4:2); 
End 
Else 
+ Các nhóm nhận xét, bổ sung cho nhau.  
* Bước 4: Kết luận, nhận định: GV chính xác hóa và gọi 1 học sinh nhắc lại kiến thức 
Writeln(‘ a, b, c khong phai la ba canh cua tam giac') ;  Readln; 
End. 
Var I, N, S: integer; 
Begin 
S:=0; 
Write(‘Nhap N=’); readln(N); 
For i:=1 to N do 
If (I mod 2=0) then S:=S+I; 
Write(‘Tong chan la:’,S); 
Readln 
End. 
C. HOẠT ĐỘNG LUYỆN TẬP 
a. Mục tiêu: Củng cố, luyện tập kiến thức vừa học. 
b. Nội dung: HS đọc SGK làm các bài tập. 
c. Sản phẩm: Bài làm của học sinh, kĩ năng giải quyết nhiệm vụ học tập. 
d. Tổ chức thực hiện: Nhận xét về ý thức học tập của học sinh và những lỗi thường mắc phải khi thực hành. 
D. HOẠT ĐỘNG VẬN DỤNG 
a. Mục tiêu: Vận dụng các kiến thức vừa học quyết các vấn đề học tập và thực tiễn. 
b. Nội dung: HS sử dụng SGK và vận dụng kiến thức để trả lời câu hỏi. 
c. Sản phẩm: HS vận dụng các kiến thức vào giải quyết các nhiệm vụ đặt ra. 
d. Tổ chức thực hiện: 
GV chia lớp thành nhiều nhóm và giao các nhiệm vụ: thảo luận trả lời các câu hỏi và bài tập vận dụng. 
* HƯỚNG DẪN VỀ NHÀ: 
- Ôn lại bài học hôm nay;  
- Chuẩn bị trước cho tiết sau. 
* RÚT KINH NGHIỆM 
.....................................................................................................................................
..................... 
Tài liệu đính kèm:
 giao_an_tin_hoc_lop_11_bai_tap_thuc_hanh_9_kieu_du_lieu_tep.docx giao_an_tin_hoc_lop_11_bai_tap_thuc_hanh_9_kieu_du_lieu_tep.docx







