Tin học:
BÀI THỰC HÀNH SỐ 4(T1)
I. MỤC TIÊU
- Củng cố lại các kiến thức cơ bản khi lập trình với kiểu dữ liệu mảng.
- Làm quen với thuật toán sắp xếp đơn giản.
- Rèn luyện kĩ năng sử dụng kiểu dữ liệu có cấu trúc, kĩ năng diễn đạt
thuật toán bằng chương trình sử dụng dữ liệu kiểu mảng.
- Rèn luyện kĩ năng nhận xét, phân tích và đề xuất cách giải bài toán
sao cho chương trình chạy nhanh hơn.
II. ĐỒ DÙNG DẠY HỌC
Chuẩn bị của giáo viên
- Giáo án, sách giáo khoa, phòng máy vi tính, máy chiếu Projector để
hướng dẫn.
Chuẩn bị của học sinh
- Sách giáo khoa, chương trình đã được viết sẵn.
III. HOẠT ĐỘNG DẠY-HỌC
Hoạt động : Rèn luyện kỹ năng sử dụng kiểu dữ liệu mảng
để phân tích và giải một số bài toán.
HOẠT ĐỘNG CỦA GIÁO VIÊN HOẠT ĐỘNG CỦA HỌC SINH
Giáo viên nêu bài toán:
Sắp xếp dãy gồm n số nguyên Tìm hiểu đề bài.
thành dãy không giảm bằng
thuật toán tráo đổi.
Gợi ý để học sinh nhớ lại thuật Chú ý theo dõi những dẫn dắt của
toán sắp xếp tăng dần (Đã được xây giáo viên để trả lời câu hỏi
dựng trong chương trình tin học lớp
10).
- Lấy một ví dụ thực tiễn: Sắp - Lần lượt lấy từng phần tử từ trái
xếp một dãy các viên bi theo kích qua phải.
thước không giảm.
- Cứ mỗi phần tử ta đem so sánh lần
lượt với các phần tử đứng bên phải
của nó.
- Nếu nhỏ hơn thì đổi chỗ.
- Yêu cầu: Vạch ra các bước để sắp - Lần lượt lấy từng phần tử của dãy
xếp các phần tử của một mảng đem so sánh với các phần tử đứng
không giảm.
bên phải của nó.
- Nếu phần tử nào nhỏ hơn phần tử
đó thì đổi chổ.
- Giáo viên chiếu chương trình lên Quan sát chương trình.
bảng.
- Nhận xét:
Xét 2 câu lệnh:
For i:= 1 to n-1 do
HOẠT ĐỘNG CỦA GIÁO VIÊN HOẠT ĐỘNG CỦA HỌC SINH
For j:= i+1 to n do
If A[i ] > A[j] then
Begin
Tg:= A[i];
A[i]:=A[j];
A[j]:= tg;
end;
- Hỏi: Vai trò của biến i, j trong - Biến i, j dùng làm chỉ số.
chương trình?
- Mỗi vòng lặp For trong đoạn - Mỗi vòng lặp For ứng với mỗi
chương trình sắp xếp có ý nghĩa gì? phép duyệt lần lượt.
- Ứng với mỗi giá trị của i (biến Ta xác định được phần tử ở vị trí i
đếm của vòng lặp ngoài) ta xác của dãy sau khi sắp xếp.
định được phần tử nào?
- Hỏi: Ba lệnh tg:=a[i]; a[i]:=a[j]; - Dùng để đổi giá trị của hai phần tử
a[j]:=tg; có ý nghĩa gì?
a[i] với a[j].
- Thực hiện chương trình, nhập dữ - Quan sát giáo viên thực hiện
liệu để học sinh thấy kết quả chương trình.
chương trình.
- Yêu cầu học sinh soạn chương Độc lập soạn chương trình vào máy
trình trên vào máy cá nhân và chạy cá nhân, chạy thử chương trình và
thử các bộ test của giáo viên.
thông báo kết quả.
- Đặt yêu cầu mới: Khai báo thêm
biến nguyên Dem và bổ sung vào Quan sát yêu cầu mới, chú ý định
chương trình đoạn lệnh cần thiết để hướng giải quyết của giáo viên.
HOẠT ĐỘNG CỦA GIÁO VIÊN
biến Dem tính số lần thực hiện tráo
đổi trong thuật toán. In kết quả tìm
được ra màn hình.
HOẠT ĐỘNG CỦA HỌC SINH
- Hỏi: Đoạn chương trình nào dùng tg:=a[i]; a[i]:=a[j]; a[j]:=tg;
để thực hiện tráo đổi giá trị?
- Yêu cầu hoc sinh viết lệnh để đếm Sau khi thực hiện xong một lần tráo
số lần tráo đổi.
đổi thì tăng giá trị biến đếm lên 1
- Dem := Dem+1;
- Hỏi: Lệnh này được viết ở vị trí - Ngay sau đoạn lệnh tráo đổi.
nào trong chương trình?
- Yêu cầu học sinh soạn thêm câu
lệnh vào chương trình đã soạn trên - Viết thêm câu lệnh.
máy cá nhân.
- Yêu cầu học sinh nhập dữ liệu vào - Nhập dữ liệu theo yêu cầu của giáo
của giáo viên và thông báo kết quả. viên, thực hiện chương trình và
thông báo kết quả sau khi thực hiện.
- Tiếp cận học sinh thực hành và
giúp đỡ học sinh yếu.
- Chiếu chương trình mẫu để học Quan sát chương trình mẫu và đối
sinh quan sát.
chiếu.
- Đánh giá kết quả của học sinh.
- Dành thời gian còn lại để học sinh
thực hành lại toàn bài
IV. TỔNG KẾT:
- Một bài toán có thể có nhiều thuật toán nhưng cần lựa chọn thuật toán có số
lần thực hiện phép tính ít nhất.
- Yêu cầu học sinh xem trước phần còn lại của bài thực hành 4.
- Làm các bài tập trong đề cương để chuẩn bị cho tiết thực hành sau.
TiÓt 26
Ngµy so¹n:
20/11/2010
BÀI THỰC HÀNH SỐ 4(T2)
I. MỤC TIÊU:
- Rèn luyện kĩ năng sử dụng kiểu dữ liệu có cấu trúc, kĩ năng diễn đạt
thuật toán bằng chương trình sử dụng dữ liệu kiểu mảng.
- Rèn luyện kĩ năng nhận xét, phân tích và đề xuất cách giải bài toán
sao cho chương trình chạy nhanh hơn.
II. ĐỒ DÙNG DẠY HỌC
Chuẩn bị của giáo viên
- Giáo án, sách giáo khoa, Phòng máy vi tính, máy chiếu Projector để
hướng dẫn.
Chuẩn bị của học sinh
- Sách giáo khoa, chương trình đã được viết sẵn.
III. HOẠT ĐỘNG DẠY-HỌC
Hoạt động : Rèn luyện kĩ năng nhận xét, phân tích và đề xuất cách
giải bài toán sao cho chương trình chạy nhanh hơn.
HOẠT ĐỘNG CỦA GIÁO VIÊN
- Chiếu đề bài lên bảng.
Cho mảng A gồm n phần tử. Hãy
viết chương trình tạo mảng B
[1..n], trong đó B[i] là tổng của i
phần tử đầu tiên của A.
HOẠT ĐỘNG CỦA HỌC SINH
Quan sát đề bài và tả lời câu hỏi.
- Yêu cầu: Xác định dữ liệu vào, dữ - Vào: Mảng A gồm n phần tử.
liệu ra?
- Ra: Mảng B gồm n phần tử với B[i]
là tổng của i phần tử đầu tiên của A.
- Gợi ý để học sinh đề xuất ý tưởng - Tại vị trí i ta tính tổng giá trị các
xây dựng thuật toán.
phần tử từ 1 đến i.
Giới thiệu chương trình chưa cải
tiến.
Quan sát chương trình trên bảng.
- Chiếu chương trình diễn đạt thuật - Quan sát giáo viên thực hiện, nhận
toán.
xét về thời gian thực hiện chương
trình.
- Thực hiện chương trình để học
sinh biết thời gian thực hiện chương
trình và kết quả của chương trình.
- Phải thực hiện n(n+1)/2 phép cộng.
- Hỏi: Trong chương trình phải thực
hiện bao nhiêu phép cộng?
- Hỏi: Có cách nào để cải tiến?
- Để tính phần tử thứ i của mảng B ta
sử dụng kết quả đã tính ở phần tử thứ
HOẠT ĐỘNG CỦA GIÁO VIÊN
HOẠT ĐỘNG CỦA HỌC SINH
thứ i-1.
B[i]:=B[i-1]+A[i];
- Thay đoạn lệnh
- Lệnh này được thay lệnh nào For j:=1 to i do B[i]:=B[i]+A[j];
trong chương trình? Viết ở vị trí
nào?
Soạn chương trình vào máy, thực
hiện chương trình và thông báo kết
- Yêu cầu: Viết chương trình hoàn quả.
thiện.
- Nhận xét về thời gian thực hiện của
Tiểu kết: Cùng một bài toán, có chương trình này so với chương trình
nhiều cách giải quyết khác nhau. trước khi cải tiến.
Người lập trình cần chọn cách sao
cho máy thực hiện nhanh nhất.
Dành thời gian còn lại để học sinh
thực hành.
IV. TỔNG KẾT:
- Giáo viên củng cố lại những nội dung đã học:
- Thuật toán sắp xếp đơn giản.
- Một bài toán có thể có nhiều cách viết thành một chương trình. Cần
chọn cách có số phép tính ít nhất để tiết kiệm thời gian chạy chương trình..
- Yêu cầu học sinh về nhà tiếp tục rèn luyện kỹ năng thực hành, xem trước
nội dung bài 12 – KIỂU XÂU.
... thuật toán có số lần thực phép tính - Yêu cầu học sinh xem trước phần lại thực hành - Làm tập đề cương để chuẩn bị cho tiết thực hành sau TiÓt 26 Ngµy so¹n: 20/11/2010 BÀI THỰC HÀNH SỐ 4( T2) I MỤC... nhân - Yêu cầu học sinh nhập liệu vào - Nhập liệu theo yêu cầu giáo giáo viên thông báo kết viên, thực chương trình thông báo kết sau thực - Tiếp cận học sinh thực hành giúp đỡ học sinh yếu -... thuật - Quan sát giáo viên thực hiện, nhận toán xét thời gian thực chương trình - Thực chương trình để học sinh biết thời gian thực chương trình kết chương trình - Phải thực n(n+1)/2 phép cộng -