I. MỤC TIÊU 1. Kiến thức. Hiểu được cách khai báo và truy cập cập đến phần tử của mảng một chiều. Hiểu được thủ tục nhập xuất mảng và sắp xếp phần tử trong mảng 2. Kỹ năng Thực hiện được khai báo mảng. Viết được chương trình sử dụng mảng 1 chiều đơn giản. 3. Thái độ Tiếp tục thể hiện lòng yêu thích bộ môn tin học. II. CHUẨN BỊ 1. Giáo viên: Sách giáo khoa Tin học 11, sách giáo viên Tin học 11, bảng phụ. 2. Học sinh: Sách giáo khoa Tin học 11, vở ghi, bút… III. PHƯƠNG PHÁP Phương pháp: Sử dụng các phương pháp, dạy học cơ bản sau một cách linh họat nhằm giúp học sinh tìm tòi, phát hiện, chiếm lĩnh tri thức.
TRƯỜNG THPT THÁI PHIÊN GVHD : TRẦN THỊ PHƯỢNG GSTT : CHU THÀNH NHÂN NGÀY SOẠN : 26/2/2017 NGÀY DẠY : 2/3/2017 TIẾT : LỚP : 11/9 GIÁO ÁN GIẢNG DẠY BÀI TẬP KIỂU MẢNG I MỤC TIÊU Kiến thức - Hiểu cách khai báo truy cập cập đến phần tử mảng chiều - Hiểu được thủ tục nhập xuất mảng và sắp xếp phần tử mảng Kỹ - Thực khai báo mảng - Viết được chương trình sử dụng mảng chiều đơn giản Thái độ - Tiếp tục thể lòng yêu thích môn tin học II CHUẨN BỊ Giáo viên: Sách giáo khoa Tin học 11, sách giáo viên Tin học 11, bảng phụ Học sinh: Sách giáo khoa Tin học 11, ghi, bút… III PHƯƠNG PHÁP - Phương pháp: Sử dụng phương pháp, dạy học sau cách linh họat nhằm giúp học sinh tìm tòi, phát hiện, chiếm lĩnh tri thức IV.HOẠT ĐỘNG DẠY – HỌC Ổn định lớp Tiến trình lên lớp T G Hoạt động GV Hoạt động HS Nội dung 4’ Hoạt động 1: Ôn tập lý thuyết GV đưa câu hỏi trắc HS trả lời câu hỏi nghiệm để củng cố kiến thức về mảng chiều Yêu cầu học sinh trả lời và nhận xét Hoạt động 2: Bài tập Hỏi học sinh : Input và output Input: Mảng A gồm của bài toán là gì ? n phần tử (n nhập từ bàn phím) Mỗi phần tử có kiểu số nguyên Output : số liên tiếp có tổng lớn nhất GV dẫn dắt ý tưởng của bài toán tương tự với bài toán tìm số lớn nhất dãy các em đã học ở tiết trước Yêu cầu học sinh nhắc lại ý tưởng của bài toán tìm số lớn nhất GV dẫn dắt: Bài toán này cũng tương tự bài toán tìm max, chỉ khác là không phải tìm số mà tìm số liên tiếp có tổng lớn nhất VD: Cho mảng A gồm phần tử 20’ 6 Ta cần phải tìm số liên tiếp có tổng lớn nhất mảng A, có thể là 5, ,1 hoặc có thể là 6, 1, hoặc 1, ,7 … BÀI TẬP KIỂU MẢNG Bài tập : Cho mảng A gồm n phần tử (n nhập từ bàn phím) Mỗi phần tử có kiểu số nguyên và in màn hình số liên tiếp có tổng lớn nhất mảng program tim3solonnhat; var A: array [1 100] of integer; i, n, cs , max , tong : integer; Gán max := A[1] sau begin đó sử dụng câu lệnh Writeln('Nhap vao so lặp for để duyệt phan tu cua mang'); mảng, nếu A[i] > Readln(n); max thì gán max := For i:= to n A[i]; Begin Writeln('A[',i,']=') ; Readln(A[i]); End; max:=A[1]+A[2]+A[ 3]; cs:=2; for i:=3 to n-1 begin tong:=A[i-1]+A[i] + A[i+1]; if tong>max then begin max:=tong; cs:=i; Hỏi học sinh output của mảng A này là gì ? GV giảng giải: Do bài toán tính tổng phần tử liên tiếp nên ta xét phần tử A[i] , A[i-1] , A[i+1] đó A[i-1] là số liền trước và A[i+1] là số liền sau của phần tử A[i] Đầu tiên ta gán max:=A[1]+A[2]+A[3]; Chỉ số của phần tử Hỏi học sinh chỉ số phần tử A[i] bằng A[i] bằng ? Để lưu lại chỉ số i của A[i] thì ta cần dùng biến cs Hỏi học sinh biến cs gán giá trị bằng ? GV dẫn dắt ban đầu đã tính tổng của A[1]+A[2]+A[3] , cần tính tổng của A[2]+A[3] +A[4] thì cần bắt đầu từ i bằng ? Gán tong:=A[i-1]+A[i] + A[i+1]; Hỏi học sinh so sánh nếu tong>max thì sẽ thế nào VD: 5 6 CS=2 end; end; writeln('3 so ',A[cs1],' ',A[cs],' ',A[cs+1],' co tong lon nhat mang’); readln; end i=3 Gán max:=tong; cs:=i; Gán A[1] + A[2] + A[3] = Max i = So sánh Max với A[2] + A[3] + [A4] Cho đến tong>max i = - Với cs = i Khi ta in phần tử A[cs-1]+A[cs]+A[cs+1]; Giáo viên mời em học sinh lên viết chương trình, em viết phần khai báo và nhập mảng,1 em viết phần tìm 3số liên tiếp có tổng lớn nhất Mời em học sinh chạy lại chương trình bạn đã viết bảng Hoạt động 2: Bài tập Hỏi học sinh : Input và output - Input : dãy n số Bài tập : Nhập vào của bài toán là gì? nguyên (n nhập từ dãy gồm n số bàn phím) nguyên sau đếm số lần xuất phần tử có - Output: in số lần giá trị bằng X dãy phần tử X xuất hiện (n, X nhập từ bàn dãy phím) Yêu cầu học sinh trình bày ý tưởng để đếm số lần phần tử Khởi tạo biến đếm ban đầu dem := X xuất hiện dãy Sử dụng vòng lặp i, lặp từ đến N 10’ Đối với phần tử A[i], A[i] = X tăng biến đếm lên Neu dem:= in giá trị X mảng Kết thúc, giá trị biến đếm số lần xuất cử X A Program DemPtuX; var A: Array[1 100] of Integer; i, n, dem, X: integer; Begin Write('Nhap so phan tu cua Day so: ' ); Readln(n); for i:= to n begin Write('Nhap phan tu thu ',i,'= ' ); Readln(A[i]); end; write('Nhap gia tri In số lần xuất phần tử A phan tu X can tim: ' ); Readln(X); dem :=0; for i:=1 to n if A[i] = X then dem := dem + 1; if dem = then write('Khong co phan tu ',X,' day') else Write('So lan xuat hien phan tu ',X,' =====> ',dem ); Readln End Hoạt động 3: Làm bài tập Cho học sinh thời gian 5’ để - Học sinh chăm chú làm bài tập và lấy điểm cộng làm bài tập cho bạn nộp sớm và đúng nhất 10’ Chia bảng làm và yêu cầu học sinh xung phong lên bảng viết chương trình Yêu cầu các học sinh còn lại nhận xét bài của bạn viết bảng Giáo viên nhận xét và giải thích các vấn đề học sinh chưa nắm rõ Củng cố -Dặn dò ( TG: 1’) - Nhấn mạnh kiến thức về mảng một chiều - Nhắc nhở học sinh về xem trước bài bài tập và thực hành PHIẾU HỌC TẬP Câu 1: Mảng chiều là: A Dãy hữu hạn phần tử kiểu Mảng đặt tên phần tử có số B Dãy hữu hạn phần tử kiểu Mảng không đặt tên phần tử có số C Dãy hữu hạn phần tử khác kiểu Mảng đặt tên phần tử có số D Dãy vô hạn phần tử kiểu Mảng đặt tên phần tử có số Câu 2: Để khai báo biến mảng chiều, ta cần phải có thông tin gì? A Tên biến mảng C Kiểu phần tử mảng B Số lượng phần tử mảng D Tất đáp án A, B, C Câu 3: Khai báo biến DTB để lưu trữ điểm trung bình môn tin học 54 học sinh, ta sử dụng: A Var DTB: array[0 53] of real; B Var DTB := array[0 53] of integer; C Var DTB: array[0 54] : real; D Var DTB: array[0 54] of real; Câu 4: Cho var A: array[0 99] of integer; Để tham chiếu tới phần tử thứ 20 biến mảng A, ta sử dụng: A A20 C A[19] B A[20] D A19 Câu 5: Cho trước var A: array[1 N] of integer; Hãy cho biết đoạn chương trình sau dùng để làm gì? Giatri:= A[1]; For i:= to N If A[i] > Giatri then Giatri:= A[i]; A B C D Tìm phần tử nhỏ mảng Tìm phần tử nhỏ từ A[2] đến A[N] Tìm phần tử lớn mảng Tìm phần tử lớn từ A[2] đến A[N] Đáp án: 1A, 2D, 3A, 4C, 5C Ý kiến nhận xét giáo viên hướng dẫn chuyên môn: ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… Đà Nẵng, ngày 26 tháng năm 2017 GIÁO VIÊN HƯỚNG DẪN GIÁO SINH THỰC TẬP Trần Thị Phượng Chu Thành Nhân ... lớn nhất mảng A, có thể là 5, ,1 hoặc có thể là 6, 1, hoặc 1, ,7 … BÀI TẬP KIỂU MẢNG Bài tập : Cho mảng A gồm n phần tử (n nhập từ bàn phím) Mỗi phần tử có kiểu số... ',dem ); Readln End Hoạt động 3: Làm bài tập Cho học sinh thời gian 5’ để - Học sinh chăm chú làm bài tập và lấy điểm cộng làm bài tập cho bạn nộp sớm và đúng nhất 10’... động 1: Ôn tập lý thuyết GV đưa câu hỏi trắc HS trả lời câu hỏi nghiệm để củng cố kiến thức về mảng chiều Yêu cầu học sinh trả lời và nhận xét Hoạt động 2: Bài tập Hỏi