1. Trang chủ
  2. » Giáo án - Bài giảng

giáo án bồi dưỡng học sinh giỏi môn tin học

28 7,5K 24

Đ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

Thông tin cơ bản

Định dạng
Số trang 28
Dung lượng 395 KB

Nội dung

đây là tài liệu rất hưu ích cho các thầy cô đây là tài liệu rất hưu ích cho các thầy cô đây là tài liệu rất hưu ích cho các thầy cô đây là tài liệu rất hưu ích cho các thầy cô đây là tài liệu rất hưu ích cho các thầy cô đây là tài liệu rất hưu ích cho các thầy cô đây là tài liệu rất hưu ích cho các thầy cô

Ngày soạn: 10/09/2013 Ngày day: 11/09/2013 ÔN TẬP BÀI TOÁN VÀ THUẬT TOÁN Buổi 1 I. MỤC TIÊU: Kiến thức: – Hiểu cách biểu diễn thuật toán bằng sơ đồ khối và bằng liệt kê các bước. – Hiểu một số thuật toán thông dụng. Kĩ năng: – Biết xây dựng thuật toán của một số bài toán thông dụng. Thái độ: – Luyện khả năng tư duy lôgic khi giải quyết một vấn đề nào đó. II. CHUẨN BỊ: Giáo viên – Giáo án + bảng vẽ các sơ đồ khối. Học sinh: - Nghiên cứu các bài đã học ở lớp 10 (Bài 4) III. TIẾN TRÌNH BÀI DẠY: 1. Ổn định tổ chức: Kiểm tra sĩ số. 2. Giảng bài mới: Nội dung Hoạt động của Giáo viên Hoạt động của Học sinh Hoạt động 1: Nhắc lại khái niệm về bài toán và cách xác định bài toán I. Khái niệm bài toán: • Trong tin học, bài toán là một việc mà ta muốn máy tính thực hiện. • Các yếu tố xác định một bài toán: + Input (thông tin đưa vào máy): dữ liệu vào + Output (thông tin muốn lấy ra từ máy): dữ liệu ra VD 1: Tìm UCLN của 2 số M, N. VD 2: Tìm nghiệm của pt ax 2 + bx + c = 0 ( a ≠ 0) VD3: Kiểm tra số nguyên dương n có phải là một số nguyên tố không? • GV yêu cầu học sinh Nhớ lại khái niệm vê bài toán. • GV yêu cầu học sinh cách xác định bài toán. • GV cho một số bài toán yêu cầu học sinh xác định Input và Output • GV nhận xét bài làm của học sinh. • HS thảo luận, trả lời yêu cầu của giáo viên • HS xác định và thực hiện các yêu cầu. Hoạt động 2: Nhắc lại khái niệm thuật toán và cách diễn tả thuật toán II.Thuật toán và cách diễn tả thuật toán 1. Khái niệm thuật toán Thuật toán để giải một bài toán là một dãy hữu hạn các thao tác được sắp xếp theo một trình tự xác định sao cho sau khi thực hiện dãy thao tác ấy, từ Input của bài toán, ta nhận được Output cần tìm. 2. Cách diễn tả thuật toán - Cách liệt kê - Sơ đồ khối • GV yêu cầu học sinh nhắc lại khái niệm thuật toán. H. Có mấy cách để diễn tả thuật toán GV. Yêu cầu học sinh trình lại về cách liệt kê và sơ đồ khối. • Học sinh suy nghĩ và trả lời • Có hai cách: cách liệt kê và cách sơ đồ khối Hs. Suy nghĩ và trả lời 1 Hoạt động 3: Nhắc lại một số thuật toán thông dụng đã học và xây dựng một số thuật toán mới 3. Một số ví dụ áp dụng Hãy xây dựng thuật toán giải bài toán sau bằng cách liệt kê hoặc sơ đồ khối. Ví dụ 1. Tìm nghiệm của phương trình bậc 2 tổng quát • Thuật toán: (Liệt kê) B1: Nhập các số thực a, b, c (a#0) B2: Tính D ← b 2 – 4ac B3: Nếu D> 0 thì thông báo phương trình có hai nghiệm phân biệt x1, x2 rồi kết thúc. B4: Nếu D<0 thì thông báo phương trình có nghiệm kép x1=x2=-b/2a rồi kết thúc B5. Nếu D<0 thì thông báo phương trình vô nghiệm rồi kết thúc. Ví dụ 2. Tìm giá trị lớn nhất Max của dãy số. • Thuật toán: (Liệt kê) B1: Nhập N và dãy a 1 , …, a N B2: Max ← a 1 ; i ←2 B3: Nếu i > N thì đưa ra giá trị Max và kết thúc. B4: Nếu a i > Max thì Max ← a i B5: i ← i+1, quay lại B3. - Tìm giá trị nhỏ nhất Min của dãy số. Ví dụ 3. Cho N và dãy số a 1 , a 2 , …, a N . Cho biết có bao nhiêu số hạng trong dãy có giá trị bằng 0 • Thuật toán: (Liệt kê) • GV yêu cầu học sinh xây dựng lại thuật toán bằng hai cách giải bài toán. • GV đánh giá, nhận xét. • GV: Yêu cầu học sinh mở rộng áp dụng với bài toán giải phương trình bậc nhất tổng quát. • GV yêu cầu học sinh nêu ý tưởng và xây dựng lại thuật toán bằng hai cách giải bài toán. GV. Nhận xét và giải đáp cách liệt kê • GV mô phỏng các bước thực hiện thuật toán trên với N = 11 và dãy A: 5, 1, 4, 7, 6, 3, 15, 8, 4, 9, 12. • GV mở rộng thuật toán với một số yêu cầu sau: - Không khởi tạo Max ← a 1 mà với một a i bất kì có nhận xét gì về thuật toán. - Với bài toán tìm Min thuật toán sẽ có thay đổi như thế nào? GV tiếp tục yêu cầu học sinh nêu ý tưởng và xây dựng lại thuật toán bằng hai cách giải bài toán. • Học sinh xây dựng cách liệt kê và cách sơ đồ khối • Học sinh xây dựng một trong hai cách: cách liệt kê và cách sơ đồ khối • Học sinh xây dựng một trong hai cách: cách liệt kê và cách sơ đồ khối • Học sinh lắng nghe, ghi bài • Học sinh lắng nghe và đưa ra nhận xét. - Thuật toán sẽ so sánh ai với chính nó. (nghĩa là có thêm một bước so sánh sẽ thừa ra) - Thay biến Max bằng biến Min và B4. Nếu a i < Min thì Min← a i • Học sinh xây dựng một trong hai cách: cách liệt kê và cách sơ đồ khối 2 B1: Nhập N, a 1 , a 2 , …, a N B2: i ← 0; Dem ← 0 B3: i ← i + 1 B4: Nếu i > N thì thông báo giá trị Dem, rồi kết thúc. B5: Nếu a i = 0 thì Dem ← Dem + 1. B6: Quay lại B3. • GV mở rộng thuật toán với một số yêu cầu cho các bài toán sau: - Với bài toán kiểm tra trong dãy số có bao nhiêu số âm, bao nhiêu số dương thì thuật toán có thay đổi như thế nào - Hãy dựa trên thuật toán và mở rộng với các bài toán: tính tổng các số âm, tổng các số dương - GV gợi ý và yêu cầu học sinh xây dựng ý tưởng, thuật toán. - HS suy nghi và trả lời - B5: Nếu a i = 0 thì Dem ← Dem + 1. Có thể được thay đổi lại như sau: - Số dương: B5: Nếu a i > 0 thì Dem ← Dem + 1. - Số âm: B5: Nếu a i <0 thì Dem ← Dem + 1. - Khởi tạo một biến Tong←0 - Số dương: B5: Nếu a i >0 thì Tong← Tong+ a i - Số âm: B5: Nếu a i <0 thì Tong← Tong+ a i Hoạt động 4:Tìm hiểu tính chất của thuật toán 4. Tính chất thuật toán - Tính dừng - Tính xác định - Tính đúng đắn • GV yêu cầu học sinh nhắc lại các tính thuật toán. GV. Lấy một số ví dụ để thể hiện các tính chất • Học sinh suy nghĩ và trả lời • Có hai cách: cách liệt kê và cách sơ đồ khối3 tính chất cơ bản 4. Củng cố kiến thức: - Khái niệm bài toán, thuật toán - Cách diễn tả thuật toán: liệt kê, sơ đò khối 5. Bài tập về nhà Hãy xây dựng thuật toán giải bài toán sau bằng cách liệt kê hoặc sơ đồ khối. Bài 1. Tìm UCLN của hai số nguyên dương M và N Bài 2. Kiểm tra số nguyên X có trong dãy số hay không? Nếu có thi thông báo chỉ số? Bài 3. Kiểm tra tính nguyên tố của một số nguyên dương? Gợi ý: Xem lại thuật toán SGK tin học 10. Bài 4. Kiểm tra số nguyễn N có phải là số hoàn hảo hay không? Gợi ý: só hoàn hảo là số mà có tổng các ước bằng chính nó VD: số 6 có các ước lần lượt là: 1, 2, 3 và 1+2+3=6 3 Ngày soạn: 15/09/2013 Ngày dạy: 19/09/2013 TÌM HIỂU MÔT SỐ THUẬT TOÁN Buổi 2 I. MỤC TIÊU: Kiến thức: – Hiểu cách biểu diễn thuật toán bằng sơ đồ khối và bằng liệt kê các bước. – Nắm vứng một số thuật toán thông dụng. Kĩ năng: – Biết xây dựng thuật toán của một số bài toán thông dụng và nâng cao. Thái độ: – Luyện khả năng tư duy lôgic khi giải quyết một vấn đề nào đó. II. CHUẨN BỊ: Giáo viên – Giáo án + tài liệu tham khảo cho học sinh. Học sinh: - Nghiên cứu các bài đã học ở tiết trước và chuẩn bị chu đáo các bài tập về nhà III. TIẾN TRÌNH BÀI DẠY: 1. Ổn định tổ chức: Kiểm tra sĩ số. 2. Kiểm tra bài cũ: Kiểm tra vở bài tập và yêu cầu học sinh viết lại thuật toán giải bài toán kiểm tra tính nguyên tố của một số nguyên dương. 3. Giảng bài mới: Nội dung Hoạt động của Giáo viên Hoạt động của Học sinh Hoạt động 1: Tìm hiểu thuật toán sắp xếp bằng tráo đổi (Bubble Sort) I. Bài toán sắp xếp Cho dãy A gồm N số nguyên a 1, a 2 , …, a N . Cần sắp xếp các số hạng để dãy A trở thành dãy không giảm. • Thuật toán sắp xếp bằng tráo đổi (Exchange Sort) • Ý tưởng: Với mỗi cặp số hạng đứng liền kề trong dãy, nếu số trước lớn hơn số sau thì ta đổi chỗ chúng cho nhau. Việc đó được lặp lại, cho đến khi không có sự đổi chỗ nào xảy ra nữa. • Thuật toán: a) Cách liệt kê: - B1: Nhập N, các số hạng a 1 , a 2 , …, a N ; - B2: M ¬ N ; - B3: Nếu M< 2 thì đưa ra dãy A đã được sắp xếp rồi kết thúc; - B4: M ¬ M–1; i ¬ 0; - B5: i ¬ i+1; - B6: Nếu i > M thì quay lại bước 3; - B7: Nếu a i > a i+1 thì tráo đổi a i và a i+1 cho nhau; - B8: Quay lại bước 5. Cho một dãy số nguyên A: 6, 1, 5, 3, 7, 8, 10, 7, 12, 4 Hãy sắp xếp dãy A trở thành dãy không giảm. • GV hướng dẫn HS tìm thuật toán giải bài toán. • GV nhận xét và bổ sung • Hướng dẫn HS trình bày thuật toán (bằng pp liệt kê) • Nhận xét: Sau mỗi lần đổi chỗ, giá trị lớn nhất của dãy A sẽ được chuyển dần về cuối dãy và sau lượt thứ nhất thì giá trị lớn nhất xếp đúng vị trí là ở cuối dãy. Và sau mỗi lượt chỉ thực hiện với dãy đã bỏ bớt số hạng cuối dãy (M ¬ M–1). Trong thuật toán trên, i là biến chỉ số có giá trị nguyên từ 0 → M+1. • GV yêu cầu HS vẽ sơ đồ thuật toán giải bài toán trên và lấy ví dụ mô phỏng. • HS trả lời: 1, 3, 4, 5, 6, 7, 7, 8, 10, 12. • Ghi lại sơ đồ thuật toán và hình dung ra các bước thực hiện thuật toán. - Tiến hành vẽ sơ đồ khối và lấy ví dụ áp dụng để mô phỏng. 4 Hoạt động 2: Tìm hiểu một số thuật toán sắp xếp II. Khái niệm: 1) Sắp xếp là một quá trình tổ chức lại một dãy các dữ liệu theo một trật tự nhất định. 2) Mục đích của việc sắp xếp là nhằm giúp cho việc tìm kiếm dữ liệu một cách dễ dàng và nhanh chóng. Sắp xếp là một việc làm hết sức cơ bản và được dùng rộng rãi trong các kĩ thuật lập trình nhằm sử lý dữ liệu. 3) Các giải thuật sắp xếp được phân chia thành hai nhóm chính là: - Sắp xếp trong Toàn bộ cơ sở dữ liệu cần sắp xếp phải được đưa vào bộ nhớ chính của máy tính. Do đó nó thường được sử dụng khi khối lượng dữ liệu không vượt quá dung lượng bộ nhớ chính. a) Phương pháp đếm (Counting sort) * Giải thích: Nội dung của phương pháp này là đếm các phần tử có khoá nhỏ hơn hay bằng khoá của các phần tử A[i]. Nếu có j phần tử có khoá nhỏ hơn khoá của phần tử A[i] thì phần tử A[i] sẽ có vị trí theo thứ tự (j+1) trong dãy đã có thứ tự. Trong giải thuật, ta dùng mảng Count[i] ( i = 1, 2, n ) với Count[i] cho biết số phần tử có khoá nhỏ hơn khoá của phần tử A[i]. Như vậy Count[i+1] là vị trí của phần tử A[i] trong dãy đã có thứ tự. b) Phương pháp chèn (Insertion Sort) * Giải thích: Nội dung của phương pháp này là giả sử ta có dãy A[1] A[i-1] đã có thứ tự, có phải xác định vị trí thích hợp của phần tử A[i] trong dãy A[1] A[i - 1] bằng phương pháp tìm kiếm tuần tự từ A[i - 1] trở về A[1] để tìm ra vị trí thích hợp của A[i]. Ta chèn A[i] vào vị trí này và kết quả là đãy A[1] A[i] có thứ tự. Ta áp dụng cách làm này với i = 2, 3, , n. c) Phương pháp chọn (Selection Sort) * Giải thích:Nội dung của phương pháp này là ở bước thứ i (i = 1, 2, 3, ,n-1 ) ta lựa chọn phần tử nhỏ nhất trong dãy A[i] A[n] rồi đổi chổ phần tử này với phần tử A[i]. Cuối cùng ta sẽ có dãy A[1] A[n] có thứ tự. d) Phương pháp đổi chỗ: Có rất nhiều phương pháp sắp xếp dựa trên việc Nhóm sắp xếp trong bao gồm các phương pháp : * Phương pháp đếm. * Phương pháp chèn. * Phương pháp chọn. * Phương pháp đổi chổ. * Phương pháp trộn. * Ví dụ: Sắp xếp dãy 2 3 1 5 2 7 6 9 4 i: 1 2 3 4 5 6 7 8 Count: 2 0 4 1 6 5 7 3 * Ví dụ: Ta phải sắp xếp dãy số: 39 50 7 37 89 13 1 62 i=2 39 50 7 37 89 13 1 62 i=3 39 50 7 37 89 13 1 62 i=4 7 39 50 37 89 13 1 62 i=5 7 37 39 50 89 13 1 62 i=6 7 37 39 50 89 13 1 62 i=7 7 13 37 39 50 89 1 62 i=8 1 7 13 37 39 50 89 62 1 7 13 37 39 50 89 62 * Ví dụ: Ta phải sắp xếp dãy số : 39 50 7 37 89 13 1 62 i=1 39 50 7 37 89 13 1 62 i=2 1 50 7 37 89 13 39 62 i=3 1 7 50 37 89 13 39 62 i=4 1 7 13 37 89 50 39 62 i=5 1 7 13 37 89 50 39 62 i=6 1 7 13 37 50 50 39 62 i=7 1 7 13 37 39 50 89 62 1 7 13 37 39 50 89 62 5 đổi chỗ giữa 2 phần tử của dãy. Sau đây chúng ta xét các phương pháp: - Bubble Sort. - Shake Sort. - Sell Sort. - Quick Sort. + Bubble Sort: * Giải thích: Nội dung của phương pháp này là duyệt các dãy A[1], , A[n]. Nếu A[i].Key > A[i+1].Key (i = 1, 2, 3, , n-1)#0 thì ta đổi chỗ A[i].Key với phần tử A[i+1].Key. Lập lại quá trình duyệt dãy này cho đến khi không còn việc đổi chổ của hai phần tử. Chú ý rằng bất cứ lúc nào phần tử nhỏ nhất cũng gặp trước tiên. Nó như những bột khí nhẹ sẽ nổi lên trên khi đun nước. Sau đó ở thứ hai phần tử nhỏ thứ 2 sẽ được đặ vào đúng một vị trí. Vì vậy sắp xếp nổi bột thao tác như một kiểu sắp xếp chọn, mặc dù nó không làm nhiều việc hơn để đưa từng phần tử vào đúng vị trí. + Shake Sort: * Giải thích: Phương pháp này là một cải tiến của phương pháp Bubble Sort theo hướng "Không những phần tử nhẹ nổi lên trên mà cả phần tử nặng cũng xuống dưới" giống như khi ta rung"rung" một cái nồi và thuật toán sắp xếp phải được điều khiển cả hai quá trình "nổi lên" và "chìm xuống" này một cách tự giác. Muốn vậy ta phải ghi nhớ lần đổi chổ cuối cùng khi duyệt dãy từ trên lên và khi duyệt từ trên xuoóng để quyết định chu trình kế tiếp sẽ duyệt từ đâu đến đâu. + Shell Sort: * Giải thích: Các phương pháp sắp xếp dã trình bày ở trên nói chung đều di chuyển mỗi phần tử đi một vị trí trong mỗi bước. Phương pháp Shell Sort dựa trên ý tưởng chính là hoán các phần tử ở xa nhau. Để làm được việc đó ta cần phải sắp các tập tin để nó có tính chất là việc lấy mọi phần tử thứ h (bắt đầu từ vị trí bất kì nào) cũng đều cho ra tập tin đã sắp. Một tập tin như vậy được gọi là sắp theo độ dài bước h. Một cách nói khác, một tập tin dược sắp theo độ dài bước h là tập tin được sắp độc lập với nhau, đan xen vào nhau. Bằng cách sắp xếp theo độ dài bước h ứng với vài giá trị h khá lớn, chúng ta có thể di chuyển các phần tử ở những khoảng cách xa nhau trong mảng và vì vậy dễ dàng hơn để sắp xếp độ dài bước h các giá tri nhỏ hơn. Dùng thủ tục cho bất kì một dãy các giá trị của h tận cùng là 1 sẽ cho ra một tập tin đã sắp xong: Dó chính là Shell Sort. + Quick Sort: * Ví dụ: Ta phải sắp xếp dãy số: 39 50 7 37 89 13 1 62 Bước 0 1 2 3 4 5 6 7 50 1 1 1 1 13 1 62 39 39 7 7 7 7 7 7 7 50 39 13 13 13 13 13 37 7 50 39 37 37 37 37 89 37 13 50 39 39 39 39 13 89 37 37 50 50 50 50 1 13 89 62 62 62 62 62 62 62 62 89 89 89 89 89 * Ví dụ: Sắp xếp dãy số: 39 50 7 37 89 13 1 62 d = 2 3 3 4 4 c = 8 8 7 7 4 39 1 1 1 1 50 39 39 7 7 7 50 7 39 13 37 7 37 13 37 89 37 50 37 39 13 89 13 50 50 1 13 62 62 62 62 62 89 89 89 * Ví dụ: Ta phải sắp xếp dãy số: 39 50 7 39 89 13 1 62 Bước 1: 4-Sort 39 50 7 39 89 13 1 62 39 13 1 37 89 50 7 62 Bước 2: 2-Sort 39 13 1 37 89 50 7 62 1 13 7 37 39 50 89 62 Bước 3: 1-Sort 1 13 7 37 39 50 89 62 1 7 13 37 39 50 89 62 6 * Giải thích: Nội dung của phương pháp này là chọn phần tử x ở giữa của dãy làm chuẩn để so sánh. Ta phân hoạch dãy này thành 3 dãy con liên tiếp nhau: - Dãy con thứ nhất gồm phần tử có khoá nhỏ hơn x.key. - Dãy con thứ hai gồm các phần tử có khoá bằng x.key. - Dãy con thứ ba gồm các phần tử có khoá lớn hơn x.key. Sau đó áp dụng giải thuật phân hoạch này cho dãy con thứ nhất nhất và dãy con thứ ba, nếu các dãy con có nhiều hơn một phần tử (Đệ qui). Cụ thể là xét một doạn của dãy từ thành phần L đến thành phần thứ R. - Lấy giá trị của thành phần thứ (L+R) Div 2 gán vào biến X. - Cho i ban đầu là L. - Cho j ban đầu là R. - Lập lại. * Chừng nào còn A[i] < X thì tăng i. * Chừng nào còn A[j] > X thì giảm j. * i<=j thì + Hoán vị A[i] và A[j] + Tăng i + Giảm j Cho đến khi i>j + Sắp xếp đoạn từ A[L] đến A[j] + Sắp xếp đoạn từ A[i] đến A[R] * Ví dụ: Sắp xếp dãy số: 39 50 7 37 89 13 1 62 X = 37 Sau 2 lần đổi chổ ta được dãy: 1 13 7 37 89 50 39 62 Xử lý dãy con: 1 13 7 Ta được: 1 7 13 Sử lý dãy con: 89 50 39 62 Ta được: 39 50 89 62 39 50 62 89 Vậy dãy đã sắp xếp là: 1 7 13 39 50 62 89 Hoạt động 3: Tìm hiểu thuật toán tìm kiếm nhị phân • Xác định bài toán - Input: Dãy A là dãy tăng gồm N số nguyên khác nhau a 1 , a 2 , …, a N và một số nguyên k - Output: Chỉ số i mà a i = k hoặc thông báo không có số hạng nào của dãy A có giá trị bằng k. • Thuật toán: * Cách liệt kê: - B1: Nhập N, các số hạng a 1 , a 2 , …, a N và khoá k - B2: Dau ¬ 1,Cuoi ¬ N; - B3: Giưa = 2 Dau Cuoi+       ; - B4: Nếu a Giưa = k thì thông báo chỉ số Giưa, rồi kết thúc; - B5: Nếu a Giưa > k thì đặt Cuoi = Giưa - 1, rồi chuyển đến bước 7; - B6: Dau ¬ Giưa +1; - B7: Nếu Dau > cuoi thì thông báo dãy A không có số hạng nào có giá trị bằng k, kết thúc; • Nhấn mạnh dãy A là một dãy tăng. Hỏi: Hãy so sánh bài toán tìm kiếm tuần tự với bài toán tìm kiếm nhị phân. • GV hướng dẫn HS tìm thuật toán giải bài toán. • Ý tưởng: Sử dụng tính chất dãy A là dãy tăng, ta tìm cách thu hẹp nhanh phạm vị tìm kiếm sau mỗi lần so sánh khoá với số hạng được chọn, ta chọn số hạng a Giữa ở " giữa dãy" để so sánh với k, trong đó Giưa = 1 2 N +       . Khi đó: - Nếu a Giưa = k thì Giưa là chỉ số cần tìm. - Nếu a Giưa > k thì do dãy A là - Tìm hiểu bài toán - Học sinh xác định bài toán Đ. Dãy A ở đây là dãy tăng HS. Lắng nghe, suy nghĩ và xây dựng thuật toán. - Xây dựng sơ đồ khối - Lấy ví dụ để mô phỏng nhằm nắm vững hơn kiến thức. 7 - B8: Quay lại bước 3. dãy đã sắp xếp nên việc tìm kiếm tiếp theo chỉ xét trên dãy a 1 , a 2 , …, a Giưa-1 . - Nếu a Giưa < k thì thực hiện tìm kiếm trên dãy a Giưa+1 , a Giưa+2 , …, a n . Quá trình trên sẽ được lặp lại một số lần cho đến khi hoặc đã tìm thấy khoá k trong dãy A hoặc phạm vi tìm kiếm bằng rỗng. - GV: Nhấn mạnh thuật toán này chi áp dụng với những bài toán đã được sắp xếp tăng hoặc giảm. 4. Củng cố kiến thức: - Thuật toán sắp xếp, tìm kiếm - Cách diễn tả thuật toán: liệt kê, sơ đồ khối 5. Bài tập về nhà Hãy xây dựng thuật toán giải bài toán sau bằng cách liệt kê hoặc sơ đồ khối. Bài 1. Sắp xếp dãy số nguyên a 1 , a 2 , …, a N thành một dãy giảm (sử dụng cac phương phám đã học) Bài 2. Dãy A gồm N số nguyên khác nhau a 1 , a 2 , …, a N và một số nguyên k. Kiểm tra xem trong dãy có giá trị nào bằng k hay không? Bài 3. Dãy A gồm N số nguyên a 1 , a 2 , …, a N . Kiểm tra xem trong dãy A có bao nhiêu số nguyên tố? 8 Ngày soạn: 20/09/2013 Ngày day: 25/09/2013 GIỚI THIỆU VỀ NGÔN NGỮ LẬP TRÌNH PASCAL Buổi 3 I. MỤC TIÊU: Kiến thức: –Khái niệm về ngôn ngữ lập trình & chương trình máy tính –Các bước xây dựng chương trình –Tìm hiểu một số khái niệm cơ bản về ngôn ngữ lập trình Pascal. –Áp dụng kiễn thức để giải một số bài toán đơn giản. Kĩ năng: – Biết các bước xây dựng chương trình và giải quyết một số bài toán đơn giản Thái độ: – Ham học, đam mê lập trình. II. CHUẨN BỊ: Giáo viên – Giáo án + tài liệu tham khảo cho học sinh. Học sinh: –Nghiên cứu các bài đã học ở tiết trước và chuẩn bị chu đáo các bài tập về nhà III. TIẾN TRÌNH BÀI DẠY: 1. Ổn định tổ chức: Kiểm tra sĩ số. 2. Kiểm tra bài cũ: Kiểm tra vở bài tập và yêu cầu học sinh viết lại thuật toán giải bài toán kiểm tra tính nguyên tố của một số nguyên dương. 3. Giảng bài mới: Nội dung Hoạt động của GV và HS Hoạt động 1: Tìm hiêu khái niệm lập trình và ngôn ngữ lập trình I. Ngôn ngữ lập trình 1. Lập trình là gì ? Lập trình là các thao tác đưa ý nghĩ của con người theo một trình tự có hệ thống vào máy tính, yêu cầu máy tính thực hiện. 2. Ngôn ngữ lập trình Là các phần mềm mà nhờ đó các kỹ thuật viên mô phỏng lại các thao tác trên ngôn ngữ đó thông qua các qui tắc qui ước mà ngôn ngữ đề ra. Ngôn ngữ lập trình có chức năng chuyển toàn bộ chương trình sang mã máy để máy tính có thể thực hiện và đưa ra kết quả. 3. Các bước xây dựng chương trình Bước 1. Xác định vấn đề - bài toán. Bước 2. Lựa chọn phương pháp giải. Bước 3. Xây dựng thuật toán hoặc thuật giải. Bước 4. Cài đặt chương trình. Bước 5. Hiệu chỉnh chương trình. Bước 6. Thực hiện chương trình. GV. Trình bày các khái niệm: lập trình và ngôn ngữ lập trình HS. Nhớ lại các khái niệm đã học GV. Lấy một sô ngông ngữ lập trình phổ biến hiện nay mà em biết HS: Ngôn ngữ : C, C++, Pascal, Java, HS. Nhắc lại các bước giải bài toán trên máy tính GV. Trình bày đầy đủ các bước xây dựng chương trình để học sinh định hướng khi viết chương trình HS. Lắng nghe, ghi chép Hoạt động 2: Tìm hiểu ngôn ngữ lập trình Pascal 9 II. Các khái niệm cơ bản 1. Bộ kí tự - Các chữ cái: 26 chữ cái hoa (A,B, ,Z) 26 chữ thường (a,b, z) - Các chữ số thập phân: 0,1,2,3,4,5,6,7,8,9 - Các dấu toán học thông dụng: + - * / > >= < <= = ( ) - Dấu gạch nối _ - Các kí hiệu đặc biệt: ; . {} [ ] : % & @ $ # ^ ! ‘ “ ? 2. Từ khoá (Key word) Từ khoá là các từ dành riêng cho Turbo Pascal, mỗi từ có một chức năng nhất định. Khi sử dụng phải dùng đúng với cú pháp. 3. Tên Tên là một dãy kí tự được tạo thành từ các chữ cái, chữ số và dấu gạch nối. Tên thường dùng để đặt tên cho các đại lượng trong chương trình như tên biến, hằng, tên kiểu dữ liệu mới vv Kí tự đầu tiên của tên không được là chữ số.Tên có độ dài tuỳ ý nhưng chỉ có 63 kí tự đầu tiên là có ý nghĩa, tên không được trùng với tên của từ khoá. * Tên chuẩn: là tên do Turbo Pascal định nghĩa trước dùng chỉ các hàm, hằng, biến, thủ tục thư viện của turbo Pascal. * Tên do người lập trình đặt: Đặt tuỳ ý nhưng phải tuân thủ theo nguyên tắc của Pascal như tên biến, tên chương trình, tên kiểu dữ liệu mới 4. Dòng chú thích - Đặt trong cập ngoặc :{} 5. Dấu chấm phẩy Dấu chấm phẩy “ ; ” thường nằm sau các câu lệnh nhằm ngăn cách giữa các câu lệnh với nhau, không nên hiểu dấu “ ; ” dùng để kết thúc một câu lệnh. 6. Các kiểu dữ liệu a. Kiểu logic (Boolean) - Các phép toán: AND, OR, XOR, NOT. - Miền giá trị: TRUE (đúng), FALSE (sai). b.Kiểu số nguyên c. Kiểu số thực - Có năm kiểu số thực, được tổng kết qua bảng sau: Tên Phạm vi biểu diễn Yêu cầu bộ nhớ GV. Turbo Pascal được xây dựng với bộ kí tự sau HS. Lắng nghe, ghi bài GV. Hãy nêu một số từ khóa mà em biết Một số từ khoá: BEGIN END PROCEDURE FUNCTION PROGRAM CONST VAR TYPE IF THEN FOR vvv GV. Đặt một số tên đúng và tên sai trong ngôn ngữ Pascal. Ví dụ: PROGRAM TG; {Khai báo tên chương trình tính diện tích tam giác} GV. Chỉ có hai giá trị: TRUE (đúng), FALSE (sai). Tên Miền giá trị Yêu cầu bộ nhớ Shortint -128 đến 127 1 byte Integer -32768 đến 32767 2 byte Longint - 2147483648 đến 2147483647 4 byte Byte 0 đến 255 1 byte 10 [...]... lệnh có cấu trúc – Biết nhận dạng bài toán và lựa chong câu trúc thích hợp – Ứng dụng các câu lệnh để giải một số bài toán từ đơn giản đến phức tạp Kĩ năng: – Xây dựng thuật toán, nhận dạng bài toán, lựa chọn cấu trúc phù hợp Thái độ: – Ham học, đam mê lập trình II CHUẨN BỊ: Giáo viên – Giáo án + tài liệu tham khảo cho học sinh Học sinh: –Nghiên cứu các bài đã học ở tiết trước và chuẩn bị chu đáo các... toán từ đơn giản đến phức tạp Kĩ năng: – Vận dụng được kiểu dữ liệu mảng để xử lí một số bài toán Thái độ: – Ham học, đam mê lập trình II CHUẨN BỊ: Giáo viên – Giáo án + tài liệu tham khảo cho học sinh Học sinh: –Nghiên cứu các bài đã học ở tiết trước và chuẩn bị chu đáo các bài tập về nhà III TIẾN TRÌNH BÀI DẠY: 1 Ổn định tổ chức: Kiểm tra sĩ số 2 Kiểm tra bài cũ: Kiểm tra vở bài tập và yêu cầu học. .. TIÊU: Kiến thức: – Giới thiệu câu lệnh có cấu trúc: rẽ nhánh và lặp – Ứng dụng các câu lệnh để giải một số bài toán Kĩ năng: – Biết xây dựng được các chương trình ứng với từng trường hợp đối với từng cấu trúc Thái độ: – Ham học, đam mê lập trình II CHUẨN BỊ: Giáo viên – Giáo án + tài liệu tham khảo cho học sinh Học sinh: –Nghiên cứu các bài đã học ở tiết trước và chuẩn bị chu đáo các bài tập về nhà... DẠY: 1 Ổn định tổ chức: Kiểm tra sĩ số 2 Kiểm tra bài cũ: Kiểm tra vở bài tập và yêu cầu học sinh viết lại thuật toán giải bài toán kiểm tra tính nguyên tố của một số nguyên dương 3 Giảng bài mới: Nội dung Hoạt động của GV và HS Hoạt động 1: Tìm hiêu cấu trúc rẽ nhánh II Câu lệnh điều kiện IF THEN Sơ đồ thuật toán cho câu lệnh điều kiện If 1 Câu lệnh điều kiện có hai dạng như sau: then Câu lệnh điều... chức: Kiểm tra sĩ số 2 Kiểm tra bài cũ: Kiểm tra vở bài tập và yêu cầu học sinh viết lại thuật toán giải bài toán kiểm tra tính nguyên tố của một số nguyên dương 3 Giảng bài mới: Nội dung Hoạt động của GV và HS Bài 1 Viết chương trình nhập vào số tự nhiên N rồi thông báo lên màn hình số đó có phải là số GV Nêu ý tưởng giải bài toán nguyên tố hay không Uses crt; Ý tưởng: Var N,i,d : Word; N là số nguyên... xuống GV Áp dung cấu trúc rẽ nhánh để thực hiện chương trình trên máy tính HS Tiến hành thực hiện chương trình Uses crt; Var x:integer; Begin Write('Nhap vao mot so nguyen : '); Readln(x); If x MOD 2=0 Then Writeln('So vua nhap vao la so chan') Else Writeln('So vua nhap vao la so le'); Readln; End GV Yêu cầu học sinh sử dung cả hai cấu trúc rẽ nhánh - Có thể dùng thuật toán sau: IF ab thì thay a=a-b, Ngược lại b:=b-a Quá Chương trình trình được lặp lại cho đến khi a= b thì dừng lại Program USCLN; Var a,b:integer; Begin Write(' Nhap vao so a=');readln(a); Write(' Nhap vao so b=');readln(b); While ab do If a>b then a:=a-b Else b:=b-a; Writeln('USCLN la:',a); Readln End Ví dụ 2 Lãi xuất hàng tháng gửi tiết kiệm là 1% GV Nêu ý tưởng giải bài toán (không kỳ... bao nhiêu chữ số và tổng các chữ số của số đó Gợi ý: Dùng vòng lặp WHILE Trong khi N>0 thì: lấy ra chữ số cuối cùng của N để tính bằng phép toán MOD 10, sau đó bỏ bớt đi chữ số cuối cùng của N bằng phép toán DIV 10 Bài 4 Viết chương trình để tìm lời giải cho bài toán sau: Trăm trâu trăm bó cỏ Trâu đứng ăn năm Trâu nằm ăn ba Lụ khụ trân già Ba con một bó Hỏi có bao nhiêu trâu mỗi loại? 19 Ngày soạn: 10/10/2013 . cầu học sinh Nhớ lại khái niệm vê bài toán. • GV yêu cầu học sinh cách xác định bài toán. • GV cho một số bài toán yêu cầu học sinh xác định Input và Output • GV nhận xét bài làm của học sinh. •. toán - Cách liệt kê - Sơ đồ khối • GV yêu cầu học sinh nhắc lại khái niệm thuật toán. H. Có mấy cách để diễn tả thuật toán GV. Yêu cầu học sinh trình lại về cách liệt kê và sơ đồ khối. • Học sinh. bằng 0 • Thuật toán: (Liệt kê) • GV yêu cầu học sinh xây dựng lại thuật toán bằng hai cách giải bài toán. • GV đánh giá, nhận xét. • GV: Yêu cầu học sinh mở rộng áp dụng với bài toán giải phương trình

Ngày đăng: 18/09/2014, 17:49

TỪ KHÓA LIÊN QUAN

w