Download giáo án tin học 11 biên soạn theo chuẩn kiến thức kỹ năng, từ bài 1 đến bài 11 (2)

57 522 0
Download giáo án tin học 11 biên soạn theo chuẩn kiến thức kỹ năng, từ bài 1 đến bài 11 (2)

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

PHN MT BI SON CHƯƠNG I MộT Số KHáI NIệM Về LậP TRìNH Và NGÔN NGữ LậP TRìNH Đ1 KHáI NIệM LậP TRìNH Và NGÔN NGữ LậP TRìNH I Mục tiêu - Hiểu khả ngôn ngữ lập trình bậc cao, phân biệt đợc với ngôn ngữ máy hợp ngữ Biết đợc vai trò chơng trình dịch Phân biệt đợc biên dịch thông dịch II Chuẩn bị giáo viên học sinh Chuẩn bị giáo viên - Bảng viết, sách giáo khoa (SGK), sách giáo viên (SGV), phiếu học tập Chuẩn bị học sinh - Sách giáo khoa III Tiến trình lên lớp ổn định lớp Hoạt động dạy - học H oạt động giáo viên học Nội dung sinh Hoạt động Làm rõ khái niệm lập trình Khái niệm lập trình ngôn ngữ lập trình ngôn ngữ lập trình Giáo viên (GV): chơng trình lớp 10 a) Khái niệm lập trình đà học phơng pháp giải toán máy tính Vậy em hÃy nhắc lại bớc để giải toán máy tính Học sinh (HS): Suy nghĩ, nhớ lại kiến thức đà học trả lời GV: Nhận xét câu trả lời HS nhắc lại bớc giải toán máy tính Sau yêu cầu HS nhắc lại khái niệm ngôn ngữ lập trình đà học lớp 10 HS: Suy nghĩ trả lời GV: Nhận xét câu trả lời HS GV: Với toán, sau đà xác định đợc thuật toán, làm để máy tính hiểu giải đợc toán đó? HS: Suy nghĩ trả lời GV: Phải dùng ngôn ngữ máy hiểu để biểu diễn thuật toán thành chơng trình đợc gọi lập trình Vậy theo em gọi lập trình? HS: Tham khảo SGK suy nghĩ trả lời GV: Nhận xét ®Õn kÕt luËn GV: Em h·y cho biÕt cã mÊy loại ngôn ngữ lập trình? Chia lớp thành bốn nhóm, phát phiếu học tập cho nhóm yêu cầu nhóm ghi loại ngôn ngữ lập trình đà biết vào phiếu học tập nhóm Yêu cầu đại diện nhóm đọc kết nhóm HS: Nhận xét kết nhóm khác GV: Nhận xét chung kết luận GV: Theo em ngôn ngữ lập trình bậc cao khác với loại ngôn ngữ lập trình khác điểm nào? HS: Suy nghĩ trả lời GV: Mỗi loại máy có ngôn ngữ máy riêng, thờng viết chơng trình ngôn ngữ loại máy chạy đợc loại máy VÝ dơ, mét ngêi ViƯt Nam nãi chun víi mét ngêi Mü chØ biÕt tiÕng Anh b»ng tiÕng ViƯt, th× ngời Mỹ có hiểu không? HS: Suy nghĩ trả lời GV: Vậy để ngời Mỹ hiểu đợc phải làm gì? HS: Suy nghĩ trả lời (dịch tiếng Anh) GV: Chơng trình viết ngôn ngữ bậc cao máy có hiểu đợc không? Lập trình sử dụng cấu trúc liệu câu lệnh ngôn ngữ lập trình cụ thể để mô tả liệu diễn đạt thao tác thuật toán b) Ngôn ngữ lập trình Có ba loại ngôn ngữ lập trình: ngôn ngữ máy, hợp ngữ ngôn ngữ bậc cao Chơng trình viết ngôn ngữ máy (ngôn ngữ nhị phân) nạp trực tiếp vào nhớ thực đợc Chơng trình viết ngôn ngữ bậc cao nói chung không HS: Dựa vào SGK suy nghĩ trả lời GV: Nhận xét, bổ sung kết luận Hoạt động Làm rõ khái niệm chơng trình dịch GV: Để chuyển chơng trình viết ngôn ngữ bậc cao sang ngôn ngữ máy phải làm gì? HS: Suy nghĩ trả lời GV: Muốn chuyển chơng trình ngôn ngữ bậc cao sang ngôn ngữ máy phải dịch, chơng trình làm nhiệm vụ dịch gọi chơng trình dịch phụ thuộc vào loại máy, muốn máy hiểu đợc phải chuyển sang ngôn ngữ máy Chơng trình dịch a) Khái niệm Là chơng trình đặc biệt có chức chuyển đổi chơng trình viết ngôn ngữ bậc cao sang ngôn ngữ máy để máy thực đợc Chươ ng trình nguồn Chươ ng trình dịch Chươ ng trình đích GV: Dẫn dắt ví dụ SGK Qua vÝ dơ em cã nhËn xÐt g×? HS: Suy nghÜ tr¶ lêi GV: NhËn xÐt, bỉ sung Em h·y nêu ví dụ thực tế thông dịch biên dịch HS: Lấy ví dụ GV: Tơng tự nh chơng trình dịch có hai loại thông dịch biên dịch Em hÃy phân biệt đặc điểm loại HS: Tham khảo SGK suy nghĩ trả lời GV: Nhận xét bổ sung kết luận GV: Theo em thông dịch biên dịch thờng sử dụng trờng hợp nào? HS: Suy nghĩ trả lời GV: Kết luận: - Thông dịch thích hợp cho môi trờng đối thoại ngời máy - Biên dịch thuận tiện cho chơng trình cần thực nhiều lần b) Phân loại chơng trình dịch Thông dịch (interpreter): Dịch lần lợt câu lệnh thực câu lệnh ấy, việc lặp lại bớc sau: - Kiểm tra tính đắn câu lệnh chơng trình nguồn - Chuyển đổi câu lệnh thành hay nhiều câu lệnh ngôn ngữ máy - Thực câu lệnh vừa đợc chuyển đổi Biên dịch (compiler): đợc thực qua hai bớc: - Duyệt, phát lỗi, kiểm tra tính đắn câu lệnh chơng trình nguồn - Dịch toàn chơng trình nguồn thành chơng trình đích thực máy lu lại để sử dụng cần thiết Củng cố, dặn dò - Cho học sinh nhắc lại khái niệm: Chơng trình dịch, thông dịch, biên dịch, - Xem lại cũ, đọc Bài đọc thêm Bạn biết ngôn ngữ lập trình? - Chuẩn bị trớc Đ2 Các thành phần ngôn ngữ lập trình Đ2 CáC THàNH PHầN CủA NGÔN NGữ LậP TRìNH I Mục tiêu Kiến thức - Biết ngôn ngữ lập trình có ba thành phần bản: Bảng chữ cái, cú pháp ngữ nghĩa - Biết số khái niệm: tên, tên chuẩn, tên dành riêng, tên ngời lập trình đặt, hằng, biến Kĩ - Phân biệt đợc tên, tên chuẩn, tên dành riêng, tên ngời lập trình đặt - Nhớ quy định tên, biến ngôn ngữ lập trình - Biết đặt tên nhận biết đợc tên sai quy định Thái độ - Nhận thức đợc trình phát triển ngôn ngữ lập trình gắn liền với trình phát triển tin học nhằm giải toán thực tiễn ngày phức tạp - Ham muốn học ngôn ngữ lập trình cụ thể để có khả giải toán máy tính điện tử - Có tính kỉ luật cao tính thần làm việc theo nhóm II Chuẩn bị giáo viên học sinh Chuẩn bị giáo viên - Sơ đồ bảng chữ cái, phiếu học tập, máy vi tính, máy chiếu (*), bút Chuẩn bị học sinh - Sách giáo khoa III Tiến trình lên lớp ổn định lớp - Kiểm tra cũ - Nêu khái niệm chơng trình dịch Có loại chơng trình dịch? Phân biệt loại Hoạt động dạy - học H oạt động giáo viên học Nội dung sinh Hoạt động Tìm hiểu thành phần Các thành phần ngôn ngữ lập trình GV: Tiếng Việt đợc hình thành từ yếu tố nào? HS: Suy nghĩ trả lời GV: Nhận xét, bổ sung đa kết luận Vậy ngôn ngữ lập trình có tơng tự nh ngôn ngữ tự Tiếng Việt nói riêng ngôn ngữ tự nhiên nói chung nhiên không? đợc hình thành từ: - Bảng chữ - Ngữ pháp - Ngữ nghĩa từ câu GV: Chiếu lên hình chơng trình đợc viết Pascal Em hÃy quan sát chơng trình program vidu; Uses crt; cho biết ngời ta đà sử dụng kí hiệu var a,b,s:real; để viết chơng trình? begin clrscr; HS: Quan sát chơng trình suy nghĩ trả lời write('Nhap vao gia GV: Nhận xét tiếp tục dẫn dắt: Ngôn ngữ lập tri a, b '); trình tơng tự nh ngôn ngữ tự nhiên, theo readln(a,b,c); s:=a*b; em ngôn ngữ lập trình gồm thành phần nào? write('Dien tich hinh HS: Liên hệ với ngôn ngữ tự nhiên suy nghĩ chu nhat la:,s); trả lời câu hỏi readln; end GV: Nhận xét câu trả lời HS đa kết luận Từ sau, ngầm hiểu không sử dụng máy tính, máy chiếu để giảng dạy GV cần chuẩn bị bảng, hình vẽ giấy khổ lớn (A0) để treo minh hoạ trớc lớp (*) GV: Bảng chữ tiếng Anh gồm chữ nào? Chia lớp thành bốn nhóm, phát phiếu học tập cho nhóm yêu cầu nhóm ghi chữ vào phiếu học tập nhóm HS: Tham khảo SGK, thảo luận theo nhóm điền vào phiếu học tập GV: Yêu cầu đại diện nhóm đọc kết nhóm HS: Nhận xét kết nhóm khác bổ sung (nếu có) GV: Vậy bảng chữ ngôn ngữ lập trình bảng chữ tiếng Anh giống khác nh nào? Treo bảng chữ đà chuẩn bị lên bảng HS: Quan sát so sánh GV: Trong tiếng Việt muốn viết câu phải dựa vào đâu? HS: Suy nghĩ trả lời câu hỏi (dựa vào ngữ pháp) GV: nhận xét câu trả lời HS kết luận: lập trình để viết chơng trình ngời ta dựa vào cú pháp Vậy cú pháp gì? HS: Đọc SGK suy nghĩ trả lời GV: Cú pháp quy tắc để viết chơng trình GV: Trong tiếng Việt ta nói câu ngời nghe phải hiểu đợc ý nghĩa câu nói Vậy lập trình phải xác định đợc ý nghĩa tổ hợp kí tự chơng trình Đó ngữ nghĩa GV: Nêu ví dụ trang 10 SGK Hoạt động Tìm hiểu khái niệm tên GV: Mọi đối tợng chơng trình phải đợc đặt tên Em hÃy đọc SGK cho biết quy tắc đặt tên Turbo Pascal HS: Đọc SGK trả lời câu hỏi GV: Nhận xét kết luận GV: Chiếu lên hình số tên sai (đà chuẩn bị sẵn), yêu cầu HS chọn tên HS: Quan sát trả lời Mỗi ngôn ngữ lập trình thờng có ba thành phần bản: bảng chữ cái, cú pháp ngữ nghĩa a) Bảng chữ Là tập kí hiệu dùng để viết chơng trình Trong ngôn ngữ Pascal bảng chữ gồm: Các chữ cái: ABCDEFGHIJKLM NOPQRSTUVWXYZ abcdefghijklmnopq rstuvwxyz Các chữ số: 0123456789 Các kí tự đặc biệt: +-*/=[].,_;#^$& ( ) { }: ' b) Cú pháp Là quy tắc để viết chơng trình, dựa vào mà ngời lập trình chơng trình dịch phát chổ sai sót chơng trình c) Ngữ nghĩa Ngữ nghĩa xác định ý nghĩa thao tác cần phải thực ứng với tổ hợp kí tự dựa vào ngữ cảnh Một số khái niệm a) Tên Mọi đối tợng chơng trình phải đợc đặt tên Quy tắc đặt tên: - Gồm chữ số, chữ cái, dấu gạch dới GV: Khẳng định lại tên tổng kết GV: Yêu cầu HS đọc SGK cho biết khái niệm tên dành riêng, tên chuẩn tên ngời lập trình đặt Chia lớp thành ba nhóm, nhóm trình bày hiểu biết loại tên cho ví dụ HS: Thảo luận theo nhóm điền phiếu học tập GV: Chiếu lên hình số tên ngôn ngữ lập trình Pascal đà đợc chuẩn bị sẵn Phát phiếu học tập cho nhóm yêu cầu nhóm thực hiện: - Xác định tên dành riêng - Bắt đầu chữ dấu gạch dới - Độ dài không vợt 127 kí tự Ngôn ngữ lập trình thờng có ba loại tên: tên dành riêng, tên chuẩn, tên ngời lập trình đặt Tên dành riêng (từ khóa): Là tên đợc ngôn ngữ lập trình quy định dùng với ý nghĩa xác định, ngời lập trình không đợc dùng với ý nghĩa khác - Xác định tên chuẩn Tên chuẩn: Là tên đợc ngôn ngữ lập trình dùng với ý nghĩa định đó, ngời lập trình sử dụng với ý nghĩa khác - Xác định tên ngời lập trình đặt Tên ngời lập trình đặt: ĐHS: Gắn phiếu học tập nhóm lên bảng ợc xác định cách khai báo trớc sử dụng, đợc GV: Yêu cầu HS nhóm khác nhận xét, bổ sung dùng với ý nghĩa riêng Các GV: Bổ sung thêm cho nhóm (nếu cần) để tên không đợc trùng với đa trả lời tên dành riêng tên chơng trình Hoạt động Tìm hiểu khái niệm không đợc trùng b) Hằng biến biến GV: Yêu cầu HS nêu số ví dụ HS: Suy nghĩ trả lời câu hỏi GV: Hằng gì? Trong tin học có loại Hằng: Là đại lợng có giá trị không thay đổi nào? trình thực chơng trình HS: Đọc SGK trả lời Các ngôn ngữ lập trình thờng GV: Nhận xét câu trả lời HS cho kết luận: có: Mỗi ngôn ngữ lập trình có quy định cách - Hằng số học: sè nguyªn hay sè thùc viÕt h»ng Nªu vÝ dơ để HS hiểu - Hằng xâu: chuỗi kí tự đợc đặt dấu nháy đơn nháy kép - Hằng lôgic: giá trị sai GV: Yêu cầu HS đọc SGK cho biết khái niệm Biến: Là đại lợng đợc đặt tên, biến dùng để lu trữ giá trị giá trị đợc thay đổi HS: Đọc SGK trả lời trình thực chơng trình GV: Kết luận Có nhiều loại biến khác GV: Em hÃy phân biệt khác phải đợc khai báo trớc sử dụng biến HS: Suy nghĩ trả lời GV: Nhận xét tổng kết GV: Yêu cầu HS đọc SGK cho biết chức thích chơng trình sau nêu ví dụ HS: Trả lời câu hỏi GV: Nhận xét kết luận c) Chú thích Chú thích đợc dùng để giải thích cho chơng trình rõ ràng dễ hiểu Trong Pascal thích đợc đặt {} * * Củng cố, dặn dò - Các thành phần ngôn ngữ lập trình? Sự khác tên dành riêng tên chuẩn? - Xem lại - Chuẩn bị Câu hỏi tập SGK trang 13 Đ3 Cấu trúc chơng trình CHƯƠNG II CHƯƠNG TRìNH ĐƠN GIảN Đ3 CấU TRúC CHƯƠNG TRìNH I Mục tiêu Kiến thức - Hiểu chơng trình mô tả thuật toán ngôn ngữ lập trình - Biết đợc cấu trúc chung chơng trình Kĩ - Nhận biết đợc thành phần chơng trình đơn giản 10 II Chuẩn bị giáo viên học sinh: Chuẩn bị giáo viên - Phơng pháp: Thuyết trình, vấn đáp - Phơng tiện: o Máy vi tính máy chiếu o Tranh vẽ sẵn cấu trúc chung chơng trình o Một số chơng trình mẫu Chuẩn bị học sinh - Sách giáo khoa III Tiến trình lên lớp ổn định lớp Hoạt động dạy - học H oạt động giáo viên học Nội dung sinh Hoạt động Tìm hiểu cấu trúc chung Cấu trúc chung chơng trình GV: Khi đà có thuật toán giải toán, muốn máy tính giải toán ta phải làm gì? HS: Suy nghĩ trả lời câu hỏi GV: Nhận xét câu trả lời HS kết luận: Muốn máy tính giải toán phải biểu diễn thuật toán giải chơng trình ngôn ngữ lập trình GV: Em hÃy cho biết văn gồm có phần? HS: Trả lời câu hỏi GV: Kết luận dẫn dắt: Một văn gồm có ba phần (Mở bài, thân bài, kết luận) gọi cấu trúc văn Vậy liệu chơng trình có cấu trúc không? HS: Liên hệ, suy nghĩ trả lời GV: Nhận xét câu trả lời HS kết luận Một chơng trình nói chung gồm hai phần: phần khai báo Hoạt động Tìm hiểu thành phần phần thân chơng trình chơng trình Các thành phần ch11 GV: Phần khai báo cần khai báo gì? Phần ơng trình khai báo có thiết phải có không? a) Phần khai báo Có thể có khai báo: tên chơng trình, hằng, biến, th viện, chơng trình con, Khai báo tên chơng trình GV: Biến nh gọi biến đơn? Program ; HS: Suy nghĩ, tham khảo SGK trả lời Khai báo th viƯn GV: NhËn xÐt vµ kÕt ln: BiÕn chØ mang Uses ; giá trị gọi biến đơn Khai báo Khai báo biến GV: Phần thân chơng trình chứa gì? Phần thân chơng trình HS: Suy nghĩ, tham khảo SGK trả lời Thân chơng trình thờng nơi GV: Nhận xét kết luận chứa toàn câu lệnh GV: Làm để chơng trình dịch biết phần thân chơng trình lời gọi chchơng trình? ơng trình HS: Suy nghĩ, tham khảo SGK trả lời Thân chơng trình thờng có GV: Em hÃy trình bày cấu trúc chơng cặp dấu hiệu bắt đầu kết trình Pascal đơn giản Chia lớp thành bốn nhóm, thúc chơng trình phát phiếu học tập cho nhóm yêu cầu nhóm ghi cấu trúc chơng trình Pascal đơn giản vào phiếu học tập nhóm HS: Thảo luận theo nhóm điền vào phiếu học tập GV: Yêu cầu đại diện nhóm trình bày kết nhóm cho HS nhận xét kết nhóm khác GV: Nhận xét kết nhóm, bổ sung kết luận GV: Treo bảng cấu trúc chung chơng trình Pascal đà chuẩn bị lên bảng Hoạt động Tìm hiểu ví dụ chơng trình đơn giản Ví dụ chơng trình đơn giản GV: Giới thiệu chơng trình đơn giản giải Program Vidu; Begin thích thành phần chơng trình Write('Xin chao cac ban); Readln; End Củng cố, dặn dò - Cấu trúc chơng trình Pascal đơn giản gì? Kết thúc chơng trình gì? 12 học sinh Hoạt động Tìm hiểu ý nghĩa mảng chiều GV: Nêu toán yêu cầu HS nêu thuật toán để giải toán HS: Suy nghĩ để trả lời GV: Để viết chơng trình giải toán cần biến biến nào? HS: Dựa vào thuật toán, suy nghĩ trả lời GV: Nhận xét, đánh giá kết luận, treo chơng trình đà viết sẵn lên bảng GV: Nhìn vào chơng trình hÃy cho nhận xét số ngày N lớn thuật toán có thay đổi không? HS: Suy nghĩ trả lời câu hỏi GV: Khi chơng trình có hạn chế nào? HS: Suy nghĩ trả lời GV: Nhận xét kết luận: Khi số ngày N (lớn) chất thuật toán thay đổi, nhng việc viết chơng trình gặp khó khăn phải dùng nhiều biến số câu lệnh để tính toán dài Vậy để khắc phục khó khăn đó? GV: Để khắc phục hạn chế trên, ngời ta thờng ghép chung N biến thành dÃy đặt cho tên chung phần tử đợc gắn số, dÃy gọi mảng chiều GV: Em hiểu nh mảng chiều? HS: Suy nghĩ, tham khảo SGK để trả lời GV: Nhận xét kết luận GV: Chơng trình đợc viết lại nh sau (chiếu chơng trình đà chuẩn bị lên bảng) GV: Phân tích giải thích ngữ nghĩa thành phần chơng trình để HS làm quen dần với cú pháp, cách khai báo Kiểu mảng chiều a) Khái niệm Bài toán: Nhập vào nhiệt độ (trung bình) ngày tuần Tính đa hình nhiệt độ trung bình tuần số lợng ngày tuần có nhiệt độ cao nhiệt độ trung bình tuần program Nhietdo_Tuan; var t1,t2,t3,t4,t5,t6,t7,tb: real; dem: integer; begin writeln('Nhap vao nhiet to cua ngay: '); readln(t1,t2,t3,t4,t5,t6,t7); tb:=(t1+t2+t3+t4+t5+t6+t7)/7; dem:= 0; if t1>tb then dem:= dem+1; if t2>tb then dem:= dem+1; if t3>tb then dem:= dem+1; if t4>tb then dem:= dem+1; if t5>tb then dem:= dem+1; if t6>tb then dem:= dem+1; if t7>tb then dem:= dem+1; writeln ('Nhiet trung binh tuan: ',tb:4:2); writeln ('So nhiet cao hon trung binh: ',dem); readln end Mảng chiều dÃy hữu hạn phần tử kiểu Mảng đợc đặt 45 thao tác mảng chiều GV: Qua tìm hiểu chơng trình theo em để mô tả mảng chiều, ta cần xác định yếu tố nào? Khi sử dụng mảng chiều ta cần quan tâm điều gì? HS: Suy nghĩ trả lời GV: Nhận xét kết luận: Với mảng chiều ta cần quan tâm: - Tên mảng chiều - Số lợng phần tử mảng - Kiểu liệu phần tử - Cách khai báo biến mảng chiều - Cách truy cập vào phần tử mảng Hoạt động Tìm hiểu cách khai báo mảng chiều GV: HÃy cho biết cách khai báo kiểu liệu mảng chiều ngôn ngữ lập trình Pascal Cho ví dụ GV: Chia lớp thành ba nhóm, phát phiếu học tập yêu cầu nhóm viết kết nhóm vào phiếu học tập HS: Thảo luận theo nhóm cử đại diện nhóm để trình bày Các nhóm theo dâi vµ cho nhËn xÐt GV: NhËn xÐt vµ kết luận (treo phần khai báo đà chuẩn bị sẵn giấy khổ lớn lên bảng) Giới thiệu sử dụng cách nên sử dụng cách để khai báo mảng GV: Chiếu lên bảng số khai báo mảng chiều đà chuẩn bị trớc yêu cầu HS xác định khai báo hay sai HS: Suy nghĩ trả lời GV: Nhận xét ®a kÕt ln GV: Gi¶ sư m¶ng A biĨu diễn nhiệt độ ngày tháng, muốn biết nhiệt độ 46 tên phần tử nã cã mét chØ sè program Nhietdo_Nngay; const Max = 366; type Kmang1 = array[1 Max] of real; var Nhietdo: Kmang1; dem, i, N: byte; Tong, Trung_binh: real; begin write('Nhap so ngay: '); readln(N); Tong:= 0; for i:= to N begin write('Nhap nhiet ',i, ': '); readln(Nhietdo[i]); Tong:= Tong + Nhietdo[i]; end; dem:= 0; trung_binh:= Tong/N; for i:= to N if Nhietdo[i] > trung_binh then dem:= dem+1; writeln('Nhiet trung binh',N,' ngay:', trung_binh:8:3); writeln('So nhiet cao hon trung binh: ',dem); readln end b) Khai b¸o C¸ch Khai b¸o trùc tiÕp biÕn mảng chiều: var : array [kiểu số] of ; Cách Khai báo gián tiếp biến mảng qua kiểu mảng chiều: type = array [kiểu số] of ; var :; đó: Kiểu số thờng đoạn số ngày 25 tháng phải viết nào? HS: Suy nghĩ trả lời GV: Nhận xét đa kết luận nguyên liên tục có dạng n1 n2 với n1, n2 biểu thức nguyên xác định số đầu số cuối (n1 n2); Kiểu phần tử kiểu phần tử mảng Ví dụ Các khai báo kiểu mảng chiều sau hợp lệ: Hoạt động Rèn luyện kĩ sử dụng mảng chiều GV: Giới thiệu đề (ví dụ 1, SGK trang 56), chiếu đề lên bảng Yêu cầu HS xác định liệu vào, liệu Sau nêu thuật toán để giải toán (thuật toán đà học lớp 10) GV: Nếu không sư dơng biÕn m¶ng mét chiỊu, cã thĨ gi¶i qut đợc toán không? Khó khăn chỗ nào? HS: Suy nghĩ trả lời GV: Định hớng cho HS sử dụng kiểu mảng chiều để giải toán Gợi ý để HS có ý tởng viết chơng trình: - Khai báo kiểu mảng - Xác định thao tác cần giải GV: Chiếu chơng trình lên bảng chạy thử với liệu khác GV: Giới thiệu đề (ví dụ 2, SGK trang 57), chiếu đề lên bảng Yêu cầu HS phân tích toán xác định liệu vào, liệu Sau nhắc lại thuật toán đà học lớp 10 HS: Suy nghĩ hoạt động dới sù híng dÉn cđa GV GV: Chia líp thµnh ba nhóm, yêu cầu nhóm viết chơng trình lên giấy bóng lên bìa cứng HS: Làm việc theo nhóm GV: Theo dõi nhóm thảo luận làm type ArrayReal = array[-100 200] of real; ArrayBoolean = array[-n+1 n+1] of boolean; ArrayInt = [-100 0] of integer; đó, n nguyên Tham chiếu tới phần tử mảng chiều đợc xác định tên mảng với số, đợc viết cặp ngoặc [ vµ ] c) Mét sè vÝ dơ VÝ dơ Tìm phần tử lớn dÃy số nguyên Input: Số nguyên dơng N (N 250) dÃy N số nguyên dơng a1, a2, , aN, số không vợt 500 Output: Chỉ số giá trị phần tử lớn dÃy số đà cho (nếu có nhiều phần tử lớn cần đa mét sè chóng) VÝ dơ S¾p xÕp dÃy số nguyên thuật toán tráo đổi Input: Số nguyên dơng N (N 250) 47 việc Sau thu phiếu trả lời, chiếu lên bảng, yêu cầu HS nhóm khác nhận xét đánh giá HS: Trao đổi nhận xét nhóm GV: Đánh giá nhận xét kết nhóm, có nhóm làm tốt cho điểm để khích lệ Sau chuẩn hoá chơng trình cho HS (chiếu chơng trình đà chuẩn bị sẵn lên bảng) GV: Giới thiệu đề (ví dụ 3, SGK trang 58), chiếu đề lên bảng Yêu cầu HS phân tích toán xác định liệu vào, liệu ra, xác định thuật toán giải toán Sau yêu cầu HS viết chơng trình lên phiếu học tập HS: Suy nghĩ lµm bµi GV: Thu phiÕu häc tËp cđa HS vµ nhận xét, đánh giá, cho điểm HS làm tốt GV: Chuẩn hoá chơng trình cho HS (chiếu chơng trình đà chuẩn bị sẵn lên bảng) dÃy A gồm N số nguyên dơng a1, a2, , aN, số không vợt 500 Output: DÃy số A đà đợc xếp thành dÃy không giảm Ví dụ Tìm kiếm nhị phân Input: DÃy A dÃy tăng gồm N (N 250) số nguyên dơng a1, a2, , aN số nguyên k Output: Chỉ số i mà = k thông báo "Khong tim thay" số hạng dÃy A có giá trị k Củng cố, dặn dò - Cách khai báo kiểu mảng chiều - Cách tham chiếu đến phần tử - Các thao tác mảng chiều Câu hỏi tập nhà - Trả lời câu hỏi đến 4, lµm bµi tËp 5, 6, 7, SGK, trang 79 - §äc tríc néi dung vỊ kiĨu m¶ng hai chiỊu, SGK, trang 59 48 Đ11 KIểU MảNG (tiếp) I Mục tiêu Kiến thức - Biết đợc kiểu liệu kiểu mảng hai chiều - Biết cách khai báo kiểu, biến mảng hai chiều - Biết cách tham chiếu đến phần tử mảng hai chiều Kĩ - Sử dụng mảng hai chiều để giải số toán cụ thể - Sử dụng kiểu mảng hai chiều câu lệnh lặp với số lần biết tr ớc để viết chơng trình trình giải số toán II Chuẩn bị giáo viên học sinh Chuẩn bị giáo viên - Phơng pháp: Thuyết trình, vấn đáp - Phơng tiện: o Máy vi tính máy chiếu o Một số chơng trình mẫu Chuẩn bị học sinh - Sách giáo khoa III Tiến trình lên lớp ổn định lớp - kiểm tra cũ - HÃy khai báo biến mảng để lu trữ dÃy số gồm 10 số nguyên - Muốn tham chiếu đến phần tử thø cđa d·y sè lµm nh thÕ nµo? Hoạt động dạy - học H oạt động giáo viên học Nội dung sinh Hoạt động Tìm hiĨu ý nghÜa cđa kiĨu m¶ng KiĨu m¶ng hai chiỊu hai chiỊu a) Kh¸i niƯm GV: mn lu kÕt bảng nhân phải cần mảng chiều phần tử? HS: Suy nghĩ liên hệ với kiến thức đà học để trả lời câu hỏi GV: Nhận xét câu trả lời HS đa kết 49 luận: Cần mảng chiều 10 phần tử GV: Muốn biểu diễn chín bảng nhân (bảng cửu chơng) từ đến biểu diễn nh nào? HS: Suy nghĩ trả lời (có thể dùng chín mảng chiều, bảng) GV: Nhận xét câu trả lời HS đa kết luận: Có thể dùng chín mảng chiều, mảng mời phần tử để biểu diễn, hay dùng bảng gồm hàng 10 cột để biểu diễn (GV treo bảng đà chuẩn bị giấy khổ lớn lên b¶ng) 10 12 14 16 18 12 15 18 21 24 27 12 16 20 24 28 32 36 10 15 20 25 30 35 40 45 12 18 24 30 36 42 48 54 14 21 28 35 42 49 56 63 16 24 32 40 48 56 64 72 18 27 36 45 54 63 72 81 10 20 30 40 50 60 70 80 90 Bảng cửu chơng GV: Các giá trị bảng có kiểu nh nào? HS: Suy nghĩ trả lời câu hỏi GV: Các giá trị bảng có kiểu số nguyên, bảng nh gọi mảng hai chiều Vậy mảng hai chiều? HS: Suy nghĩ tham khảo SGK trả lời câu hỏi GV: Nhận xét đa kết luận GV: Để mô tả kiểu mảng hai chiều, cần xác định yếu tố nào? HS: Suy nghĩ trả lời câu hỏi GV: Nhận xét kết luận: Tơng tự nh mảng chiều Hoạt động Tìm hiểu cách khai báo mảng hai chiều 50 Mảng hai chiều bảng phần tử kiểu, hay mảng hai chiều mảng chiều mà phần tử mảng chiều Tơng tự nh với kiểu mảng chiều, với kiểu mảng hai chiều, ngôn ngữ lập trình có quy tắc, cách thức cho phép xác định: - Tên kiểu mảng hai chiều; - Số lợng phần tử chiều; - Kiểu liệu phần tử; - Cách khai báo biến; - Cách tham chiếu đến phần tử b) Khai báo GV: Treo bảng minh hoạ mảng hai chiều đà chuẩn bị giấy khổ lớn lên bảng GV: Từ khai báo mảng chiều, theo em mảng hai chiều đợc khai báo nh nào? HS: Suy nghĩ trả lời GV: Nhận xét đa cách khai báo mảng hai chiều GV: Yêu cầu học sinh giải thích thành phần cú pháp khai báo đồng thời nêu ví dụ khai báo mảng hai chiều HS: Trả lời câu hỏi lên bảng viết Các HS khác nhận xét GV: Nhận xét kết luận cách giải thích ý nghĩa thành phần cho HS rõ đa ví dụ khai báo mảng hai chiều GV: Tơng tự mảng chiều em hÃy cho biết cách tham chiếu đến phần tử mảng hai chiều HS: Suy nghĩ phát biểu ý kiến GV: Nhận xét đa cách tham chiếu đến phần tử mảng hai chiều Cách Khai báo trực tiếp biến mảng hai chiều nh sau: var : array [kiểu số dòng , kiểu số cột] of ; Cách Khai báo gián tiếp biến mảng qua kiểu mảng hai chiều: type = array [kiểu số dòng , kiĨu chØ sè cét] of ; var : ; Ví dụ: type ArrayReal = array[-100 200,100 200] of real; ArrayBoolean = array[-n+1 n+1,n 2*n] of boolean; var ArrayInt: array[1 10,1 15] of integer; ArrayLong: array[0 3*(n+1),0 n] of longint; ®ã, n nguyên c) Một số ví dụ Ví dụ Hoạt động Rèn luyện kĩ sử dụng kiểu mảng hai chiều GV: Giới thiệu đề (ví dụ 1, SGK trang 61) program BangCuuChuong; 51 Yêu cầu HS xác định cách tổ chức liệu Sau hớng dẫn HS công việc cần giải GV: Chia lớp thành ba nhóm, yêu cầu nhóm viết chơng trình lên giấy bìa phiếu học tập HS: Thực theo yêu cầu GV GV: Thu phiếu học tập nhóm, chiếu lên bảng Gọi HS nhóm khác nhận xét đánh giá GV: Nhận xét sau chuẩn hoá chơng trình cho HS cách chiếu chơng trình mẫu đà chuẩn bị lên bảng cho HS quan sát thực chơng trình để HS thấy kết GV: Giới thiệu đề bµi (vÝ dơ 2, SGK trang 62) Híng dÉn HS phân tích toán Sau yêu cầu HS khai báo biến mảng toán GV: Để nhập từ bàn phím giá trị cho mảng hai chiều theo em phải dùng lệnh gì? HS: Suy nghĩ trả lời câu hỏi GV: Nhận xét tổng kết cách nhập giá trị phần tử cho mảng hai chiỊu lµ dïng hai lƯnh for lång GV: Tơng tự nh ví dụ 1, ta đà biết cách duyệt để đa hình tất phần tử mảng hai chiều Trờng hợp toán yêu cầu đa phần tử nhỏ k, phải viết lại đoạn chơng trình nh nào? HS: Một HS lên bảng viết, lớp theo dâi GV: NhËn xÐt, gãp ý, bỉ sung vµ đa đoạn chơng trình GV: Yêu cầu HS viết hoàn chỉnh chơng trình Sau nhận xét chung hoàn chỉnh chơng trình GV: Chiếu chơng lên bảng để HS quan sát GV: Thực chơng trình để HS thấy đợc kết (cần giải thích số chỗ HS cha hiểu yêu cầu nhà tìm hiểu thêm) 52 uses crt; var B: array[1 9,1 10] of integer; i, j: integer; begin clrscr; for i:=1 to for j:= to 10 B[i,j]:= i*j; for i:=1 to begin for j:=1 to 10 write(B[i,j]:4); writeln; end; readln end VÝ dô For i := to For j := to Begin Write('A[',i,',',j,']='); Readln(A[i,j]); End; d := 0; writeln('So nho hon',k,' la:'); For i := to For j := to If a[i,j] < k then Begin write(a[i,j]); d := d+1; End; Củng cố, dặn dò - Kiểu mảng chiều thờng đợc dùng chơng trình cần tổ chức liệu nh dÃy phần tử kiểu - Khi tổ chức liệu có cấu trúc bảng, ngời ta dùng mảng hai chiều - Mỗi biến mảng gồm nhiều phần tử, phần tử có số - Chuẩn bị trớc Bài tập thực hành Câu hỏi tập nhà - Làm tập 6, 7, 8, 9, SGK, trang 79, 80 BàI TậP Và THựC HàNH I Mục tiêu Kiến thức - Củng cố lại kiến thức kiểu liệu mảng Kĩ - Nâng cao kĩ sử dụng số câu lệnh số kiểu liệu mảng chiều lập trình, cụ thể: o Khai báo kiểu liệu mảng chiều o Nhập/xuất liệu cho mảng o Duyệt qua tất phần tử mảng để xử lí phần tử - Biết giải số toán thờng gặp: o Tính tổng phần tử thoả mÃn điều kiện o Đếm số phần tử thoả mÃn điều kiện o Tìm phần tử lớn nhất, nhỏ Thái độ - Góp phần rèn luyện tác phong, t lập trình: Tự giác, tích cực, chủ động sáng tạo tìm kiếm kiến thức II Chuẩn bị giáo viên học sinh Chuẩn bị giáo viên - Phơng pháp: Thuyết trình, vấn đáp 53 - Phơng tiện: o Máy vi tính máy chiếu o Một số chơng trình mẫu Chuẩn bị học sinh - Sách giáo khoa III Tiến trình lên lớp ổn định lớp Hoạt động dạy - học H oạt động giáo viên học sinh Hoạt động 1: Tìm hiểu tập GV: Chiếu chơng trình lên bảng để HS tìm hiểu GV: Myarray tên kiểu liệu hay tên biến? HS: Suy nghĩ trả lời GV: Vai trò nmax n có khác nhau? HS: Suy nghĩ trả lời GV: Những dòng lệnh dùng để khai báo biến mảng A? GV: Giải thích thực chơng trình để HS thÊy kÕt qu¶ GV: LƯnh For ci cïng thùc hiƯn nhiƯm vơ g×? LƯnh s := s + A[i]; đợc thực lần? GV: Thực lại chơng trình lần cuối để HS thấy kết Néi dung Bµi program Sum1; uses crt; const nmax=100; type MyArray = array[1 nmax] of integer; var A: MyArray; s,n,i,k: integer; begin clrscr; randomize; write('Nhap n ='); readln(n); for i:= to n A[i] := random(301)random(301); for i:= to n write(A[i]:5); writeln; write('Nhap k = '); readln(k); s:=0; for i:=1 to n if A[i] mod k = then s:=s+A[i]; writeln('Tong can tinh la: ',s); readln end Hoạt động Tìm hiểu tập GV: Yêu cầu HS nêu thuật toán tìm phần tử có giá trị lớn Sau tìm hiểu chơng trình GV: Vai trò biến j chơng trình gì? Bài Nếu muốn tìm phần tử nhỏ nhất, cần sửa chỗ nào? Nếu muốn tìm phần tử lớn với số program MaxElement; const Nmax= 100; 54 lớn ta sửa chỗ nào? GV: Yêu cầu HS viết chơng trình đa số phần tử có giá trị lớn Với câu hỏi gợi ý sau: - Cần giữ lại đoạn chơng trình tìm giá trị lớn không? - Cần thêm lệnh nữa? - Vị trí thêm lệnh đó? GV: Yêu cầu HS nhập liệu vào báo cáo kết GV: Đánh giá kết HS type MyArray = array[1 Nmax] of integer; var A: MyArray; n,i,j: integer; begin write('Nhap so luong phan tu cua day so, N = '); readln(N); for i:=1 to N begin write('Phan tu thu',i,' = '); readln(A[i]); end; j:= 1; for i:= to n if A[i] > A[j] then j:= i; write ('Chi so: ',j, ' Gia tri:',A[j]:4); readln end Cñng cè, dặn dò - Tóm tắt nội dung thực hành, lu ý nội dung - Xem lại - Chuẩn bị trớc Bài tập thực hành BàI TậP Và THựC HàNH I Mục tiêu Kiến thức - Củng cố lại 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ĩ - 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 đề xuất cách giải toán cho chơng trình chạy nhanh 55 Thái độ - Tự giác, chủ động thực hành II Chuẩn bị giáo viên học sinh Chuẩn bị giáo viên - Phơng pháp: Thuyết trình, vấn đáp - Phơng tiện: o Máy vi tính máy chiếu o Một số chơng trình mẫu Chuẩn bị học sinh - Sách giáo khoa III Tiến trình lên lớp ổn định lớp Hoạt động dạy - học Hoạt động giáo viên học sinh Hoạt động Tìm hiểu tập GV: Gợi ý cho HS nhớ lại thuật toán xếp đà học - LÊy mét vÝ dơ thùc tiƠn: Ngêi mï b¸n t¸o, muốn xếp táo thành dÃy theo khối lợng không giảm - Yêu cầu HS đa bớc để xếp phần tử mảng GV: Cho HS tìm hiểu chơng trình, SGK, trang 65 Đặt câu 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ì? - Ba lƯnh tg := a[i]; a[i] := a[i+1]; vµ a[i+1] := tg; có ý nghĩa gì? GV: Thực chơng trình, nhập liệu để HS thấy kết chơng trình Sau yêu cầu HS trả lời câu hỏi: Chơng trình xử lí công việc gì? GV: Hớng dẫn HS sửa chơng trình để giải toán câu b với câu hỏi gợi ý: 56 Nội dung Bµi uses crt; const Nmax = 250; type ArrInt = array[1 Nmax] of integer; var n, i, j, y: integer; A: ArrInt; begin clrscr; randomize; write('Nhap n = '); readln(n); for i:= to n A[i]:= random(300)random(300); for i:= to n write(A[i]:5); writeln; for j:=N downto begin for i:=1 to j-1 if A[i]> A[i+1] then begin t:= A[i]; - Đoạn chơng trình dùng để thực tráo đổi giá trị? - Lệnh đợc viết vị trí chơng trình? GV: Yêu cầu HS nhập liệu vào chạy chơng trình thông báo kết GV: Nhận xét đánh giá kết HS Hoạt động Thực tập Xác định toán GV: Chiếu đề lên bảng Yêu cầu HS xác định liệu vào, liệu Gợi ý để HS tìm thuật toán Giới thiệu chơng trình cha cải tiến GV: Thực chơng trình để HS quan sát kết GV: Trong chơng trình phải thực phép cộng? HS: Suy nghĩ trả lời câu hỏi GV: Thấy r»ng: B[1] := A[1]; B[i] := B[i−1] + A[i], (1 < i ≤ n) nªn cã thĨ thay bëi: B[1]:= A[1]; for i:= to n B[i]:= B[i-1]+A[i]; GV: Yêu cầu HS viết chơng trình hoàn thiện chạy lại để so sánh với kết trớc GV: Cùng toán, có nhiều cách giải khác Ngời lập trình cần chọn cách cho máy thùc hiÖn nhanh nhÊt A[i]:= A[i+1]; A[i+1]:=t end; end; writeln('Day so duoc sap xep: '); for i:=1 to n write(A[i]: 7); writeln; readln end Bµi program SubSum1; const nmax=100; type MyArray = array[1 nmax] of integer; var A, B: MyArray; n,i,j: integer; begin randomize; write('Nhap n ='); readln(n); for i:= to n A[i]:= random(300)random(300); for i:= to n write(A[i]:5); writeln; for i:= to n begin B[i]:= 0; for j:= to i B[i]:= B[i]+A[j]; end; for i:= to n write (B[i]:6); readln end Củng cố, dặn dò - Thuật toán xếp đơn giản - Một toán có nhiều cách viết thành ch ơng trình Cần chọn cách có số phép tính Câu hỏi tập nhà 57 - Xem lại tất kiến thức đà học, bao gồm: lệnh bản, lệnh điều khiển, kiểu liệu bản, kiểu liệu có cấu trúc Tiết sau kiểm tra 15 phút Đ12 KIểU XÂU I Mục tiêu Kiến thức - Biết xâu dÃy kí tự (có thể coi xâu mảng chiều) - Biết cách khai báo xâu, truy cập phần tử xâu - Biết phép toán thao tác xử lí xâu Kĩ - Sử dụng đợc số thủ tục, hàm thông dụng xâu - Cài đặt đợc số chơng trình đơn giản có sử dụng xâu II Chuẩn bị giáo viên học sinh Chuẩn bị giáo viên - Phơng pháp: Thuyết trình, vấn đáp - Phơng tiện: o Máy vi tính máy chiếu o Một số chơng trình mẫu, giấy khổ lớn viết sẵn hàm thủ tục chuẩn xử lí xâu Chuẩn bị học sinh - S¸ch gi¸o khoa 58 ... gồm hàng 10 cột để biểu diễn (GV treo bảng đà chuẩn bị giấy khổ lớn lên bảng) 10 12 14 16 18 12 15 18 21 24 27 12 16 20 24 28 32 36 10 15 20 25 30 35 40 45 12 18 24 30 36 42 48 54 14 21 28 35... trình mẫu, toán ví dụ thuật toán Bài toán Tính đa kết hình tổng 33 S = 1 1 + + + + a a +1 a +2 a + 10 0 Bài toán Tính đa kết hình tổng S = cho ®Õn 1 1 + + + + + a a +1 a +2 a+N < 0,00 01 a+N Tht... liệu tơng ứng - Chuẩn bị trớc Đ6 Phép toán, biểu thức, câu lệnh gán Đ6 PHéP TOáN, BIểU THứC, CÂU LệNH GáN I Mục tiêu Kiến thức - Biết khái niệm: phép toán, biểu thức số học, hàm số học chn, biĨu

Ngày đăng: 13/10/2015, 16:16

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan