- Yêu cầu học sinh nhập dữ liệu vào của giáo - Nhập dữ liệu theo yêu cầu của giáo viên, thực hiện chương trình và thông báo kết quả sau khi viên và thông báo kết quả.. - Đánh giá kết quả[r]
Trang 1Ngày soạn 23/11/09 Ngày giảng 27/11/09 BÀI THỰC HÀNH 4 (tiết 1)
1 Kiến thức:
- 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
2 Kĩ năng:
- 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
3 Tư duy:
- Tạo ra mảng 2 chiều và liờn hệ đến cỏc bảng cửu chương để tư duy lập trỡnh cỏc
chương trỡnh khỏc
4 Thỏi độ:
- Tự giỏc, chủ động trong khi thực hành
ii Chuẩn bị bài giảng
1 Phương tiện:
- GV: Giỏo ỏn, bài giảng điện tử.phũng mỏy.
- HS: Sỏch giỏo khoa, vở ghi Xem trước bài học.
2 Phương pháp dạy học
-Gợi mở vấn đáp
-Đàm thoại
-Đặt vấn đề
iii Tiến trình dạy học
1 Kiểm tra bài cũ:
-Cỏch khai bỏo mảng một chiều và 2 chiều?
Đỏp: Khai bỏo
Mảng 1 chiều;
Cỏch 1 khai bỏo trực tiếp biến mảng một chiều ;
Type<tờn kiểu mảng>:= array[kiểu chỉ số ] of <kiểu phần tử>;
Cỏch 2 khai bỏo giỏn tiếp biến mảng qua kiểu mảng một chiều :
Type <tờn kiểu mảng>= array[kiểu chỉ số ] of <kiểu phần tử>;
Var <tờn biến mảng >: <tờn kiểu mảng>;
- Cỏch 1: Khai bỏo trực tiếp
Mảng 2 chiều:
Var <tờn biến mảng> : array [kiểu chỉ số hàng, kiểu chỉ số cột] of <kiểu phần tử>;
- Cỏch 2: Khai bỏo giỏn tiếp
Tiết 27
Trang 2Type <tờn kiểu mảng> = array [kiểu chỉ số hàng, kiểu chỉ số cột] of <kiểu phần tử>;
Var <tờn biến mảng> : <tờn kiểu mảng>;
2 Nội dung bài giảng:
Hoạt động 1 Tỡm hiểu chương trỡnh diễn đạt của thuật toỏn sắp xếp.
Hoạt động của giáo viên Hoạt động cua học sinh
1 Gợi ý cho học sinh thuật toỏn sắp xếp tăng
dần
- Lấy một vớ dụ thực tiễn: Người mự sắp xếp
một dóy cỏc viờn bi theo kớch thước khụng
giảm
- Yờu cầu: Vạch ra cỏc bước để sắp xếp cỏc
phần tử của một mảng khụng giảm
Liệt kờ cỏc bước giải ?
1 Chỳ ý theo dừi những dẫn dắt của giỏo viờn
để trả lời cõu hỏi
- Lần lượt lấy từng phần tử từ trỏi qua phải
- 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ỗ
Input: Dóy A gồm N số nguyờn a1, a2, , aN -
Output: Dóy A được sắp xếp lại thành dóy
khụng giảm
a) Cỏch liệt kờ
Bước 1. Nhập N, cỏc số hạng a 1 , a 2 , , aN;
Bước 2. M N;
Bước 3. Nếu M < 2 thỡ đưa ra dóy A đó được sắp
xếp rồi kết thỳc;
Bước 4. M M – 1, i 0;
Bước 5. i i + 1;
Bước 6. Nếu i > M thỡ quay lại bước 3;
Nếu ai > ai +1 thỡ trỏo đổi ai và ai +1 cho
Hoạt động 2 Tỡm hiểu chương trỡnh vớ dụ
Hoạt động của giáo viên Hoạt động cua học sinh
2 Tỡm hiểu chương trỡnh vớ dụ, sỏch giỏo khoa,
trang 65
- Chiếu chương trỡnh vớ dụ lờn bảng
2 Quan sỏt chương trỡnh, suy nghĩ cõu hỏi và trả lời
Trang 3program sap_xep ;
uses crt ;
const Nmax = 250 ;
type ArrInt = array [1 Nmax] of integer ;
var n,i,j,y,t: integer ;
A: Arrint ;
begin
clrscr ;
randomize ;
write ('nhap n =');
readln (n);
{ o day ta tao ngau nhien mang gom n so
nguyen }
for i:=1 to n do A[i]:=
random(300)-random(300);
for i:=1 to n do write (A[i]:5); { o day ta in
mang vua tao }
writeln ;
for j:=N downto 2 do
for i:= 1 to j-1 do
if A[i] > A[1+1] then
begin (* trao doi A[i] va A[i+1] *)
t:= A[i] ;
A[i]:= A[i+1] ;
A[i+1]:= t ;
end;
writeln ('day so duoc sap xep') ;
for i:= 1 to n do
write (A[i]:7);
writeln ;
end
- Hỏi: Vai trò của biến i, j trong chương trình?
mỗi vòng lặp For trong đoạn chương trình sắp
xếp có ý nghĩa gì?
- Hỏi: Ba lệnh tg:=a[i]; a[i]:=a[i+1]; a[i+1]:=tg;
có ý nghĩa gì?
- Thực hiện chương trình, nhập dữ liệu để học
sinh thấy kết quả chương trình
- Hỏi: Chương trình làm công việc gì?
- Biến i, j dùng làm chỉ số
- Mỗi vòng lặp For ứng với mỗi phép duyệt lần lượt
- Dùng để đổi giá trị của hai phần tử a[i] với a[i+1]
- Quan sát giáo viên thực hiện chương trình
- Chương trình sắp xếp dãy số thao thứ tự không giảm
HOẠT ĐỘNG 3 Thêm câu lệnh đếm vào chương trình
Trang 4Hoạt động của giáo viên Hoạt động cua học sinh
3 Sửa chương trỡnh để giải quyết bài toỏn ở
cõu b
- Đặt yờu cầu mới: Khai bỏo thờm biến nguyờn
Dem và bổ sung vào chương trỡnh đoạn lệnh
cần thiết để 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
- Hỏi: Đoạn chương trỡnh nào dựng để thực
hiện trỏo đổi giỏ trị?
- Yờu cầu hoc sinh viết lệnh để đếm số lần trỏo
đổi
- Hỏi: Lệnh này được viết ở vị trớ nào trong
chương trỡnh?
3 Quan sỏt yờu cầu mới, chỳ ý định hướng giải quyết của giỏo viờn
tg:=a[i]; a[i]:=a[i+1]; a[i+1]:=tg;
- Dem := Dem+1;
- Ngay sau đoạn lệnh trỏo đổi
HOẠT ĐỘNG 4 Nhập dữ liệu và bỏo kết quả.
Hoạt động của giáo viên Hoạt động cua học sinh
- Yờu cầu học sinh soạn chương trỡnh vào mỏy
- Yờu cầu học sinh nhập dữ liệu vào của giỏo
viờn và thụng bỏo kết quả
- Đỏnh giỏ kết quả của học sinh
- 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 quả
- Nhập dữ liệu theo yờu cầu của giỏo viờn, thực hiện chương trỡnh và thụng bỏo kết quả sau khi thực hiện
3 Củng cố:
-Mảng 1 chiều, mảng 2 chiều
4 Dặn dò:
-Về nhà học bài và làm lại cỏc bài tập vào mỏy, chuẩn bị bài toỏn 2
Phương pháp:
Hiệu quả sử dụng:
Hiệu quả SD TBDH:
ND cần điểu chỉnh:
Nhận xét của giáo viên hướng dẫn: