- 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]
(1)SỞ GIÁO DỤC & ĐÀO TẠO LAI CHÂU – TRƯỜNG THPT TÂN UYÊN Ngày soạn Ngày giảng Tiết 27 23/11/09 27/11/09 NĂM HỌC 2009-2010 BÀI THỰC HÀNH (tiết 1) i Môc tiªu Kiến thức: - Củng cố lại các kiến thức lập trình với kiểu liệu mảng - Làm quen với thuật toán xếp đơn giản Kĩ năng: - Rèn luyện kĩ sử dụng kiểu liệu có cấu trúc, kĩ diễn đạt thuật toán chương trình sử dụng liệu kiểu mảng - Rèn luyện kĩ nhận xét, phân tích và đề xuất cách giải bài toán cho chương trình chạy nhanh Tư duy: - Tạo mảng chiều và liên hệ đến các bảng cửu chương để tư lập trình các chương trình khác Thái độ: - Tự giác, chủ động thực hành ii ChuÈn bÞ bµi gi¶ng 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, ghi Xem trước bài học 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 KiÓm tra bµi cò: -Cách khai báo mảng chiều và chiều? Đáp: Khai báo Mảng chiều; Cách khai báo trực tiếp biến mảng chiều ; Type<tên kiểu mảng>:= array[kiểu số ] of <kiểu phần tử>; Cách khai báo gián tiếp biến mảng qua kiểu mảng chiều : Type <tên kiểu mảng>= array[kiểu 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 chiều: Var <tên biến mảng> : array [kiểu số hàng, kiểu số cột] of <kiểu phần tử>; - Cách 2: Khai báo gián tiếp GV: Đỗ Tiến Vượng Trường THPT Tân Uyên – Tân Uyên_Lai Châu Lop11.com Trang (2) SỞ GIÁO DỤC & ĐÀO TẠO LAI CHÂU – TRƯỜNG THPT TÂN UYÊN NĂM HỌC 2009-2010 Type <tên kiểu mảng> = array [kiểu số hàng, kiểu số cột] of <kiểu phần tử>; Var <tên biến mảng> : <tên kiểu mảng>; Néi dung bµi gi¶ng: Hoạt động Tìm hiểu chương trình diễn đạt thuật toán xếp Hoạt động giáo viên Gợi ý cho học sinh thuật toán xếp tăng dần - Lấy ví dụ thực tiễn: Người mù xếp dãy các viên bi theo kích thước không giảm - Yêu cầu: Vạch các bước để xếp các phần tử mảng không giảm Liệt kê các bước giải ? Hoạt động cua học sinh Chú ý theo dõi dẫn dắt giáo viên để trả lời câu hỏi - Lần lượt lấy phần tử từ trái qua phải - Cứ phần tử ta đem so sánh với các phần tử đứng bên phải nó - Nếu nhỏ thì đổi chỗ Input: Dãy A gồm N số nguyên a1, a2, , aN Output: Dãy A xếp lại thành dãy không giảm a) Cách liệt kê Bước Nhập N, các số hạng a1, a2, , aN; Bước M N; Bước Nếu M < thì đưa dãy A đã xếp kết thúc; Bước M M – 1, i 0; Bước i i + 1; Bước Nếu i > M thì quay lại bước 3; Nếu > ai+1 thì tráo đổi và ai+1 cho Hoạt động Tìm hiểu chương trình ví dụ Hoạt động giáo viên Hoạt động cua học sinh Tìm hiểu chương trình ví dụ, sách giáo khoa, Quan sát chương trình, suy nghĩ câu hỏi và trang 65 trả lời - Chiếu chương trình ví dụ lên bảng GV: Đỗ Tiến Vượng Trường THPT Tân Uyên – Tân Uyên_Lai Châu Lop11.com Trang (3) SỞ GIÁO DỤC & ĐÀO TẠO LAI CHÂU – TRƯỜNG THPT TÂN UYÊN NĂM HỌC 2009-2010 program 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 A[i]:= random(300)random(300); for i:=1 to n write (A[i]:5); { o day ta in mang vua tao } writeln ; for j:=N downto for i:= to j-1 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:= to n write (A[i]:7); writeln ; end - Hỏi: Vai trò biến i, j chương trình? vòng lặp For đoạn chương trình 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 chương trình, nhập liệu để học sinh thấy kết 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 số - Mỗi vòng lặp For ứng với phép duyệt - Dùng để đổi giá trị hai phần tử a[i] với a[i+1] - Quan sát giáo viên thực chương trình - Chương trình xếp dãy số thao thứ tự không giảm HOẠT ĐỘNG Thêm câu lệnh đếm vào chương trình GV: Đỗ Tiến Vượng Trường THPT Tân Uyên – Tân Uyên_Lai Châu Lop11.com Trang (4) SỞ GIÁO DỤC & ĐÀO TẠO LAI CHÂU – TRƯỜNG THPT TÂN UYÊN Hoạt động giáo viên Sửa chương trình để giải 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 tráo đổi thuật toán In kết tìm màn hình - Hỏi: Đoạn chương trình nào dùng để thực 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 viết vị trí nào chương trình? NĂM HỌC 2009-2010 Hoạt động cua học sinh Quan sát yêu cầu mới, chú ý định hướng giải 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 Nhập liệu và báo kết Hoạt động giáo viên - Yêu cầu học sinh soạn chương trình vào máy Hoạt động cua học sinh - Soạn chương trình vào máy, thực chương trình và thông báo kết - Yêu cầu học sinh nhập liệu vào giáo - Nhập liệu theo yêu cầu giáo viên, thực chương trình và thông báo kết sau viên và thông báo kết thực - Đánh giá kết học sinh Cñng cè: -Mảng chiều, mảng chiều 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 iv NhËn xÐt 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 giáo viên hướng dẫn: GV: Đỗ Tiến Vượng Trường THPT Tân Uyên – Tân Uyên_Lai Châu Lop11.com Trang (5)