Giáo án số 2:Bài thực hành số 4
lượt xem 7
download
Học sinh củng cố lại được các kiến thức cơ bản khi lập trình với kiểu dữ liệu mảng . Học sinh biết nhận xét , phân tích , đề xuất các cách giải bài toán để cho chương trình chạy nhanh hơn . Làm quen với dữ liệu có cấu trúc và bài toán sắp xếp . Yêu cầu học sinh có thái độ chủ động , tự giác trong khi thực hành
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Giáo án số 2:Bài thực hành số 4
- trêng ®hsp hµ néi K56A_Khoa CNTT Giáo án số 2:Bài thực hành số 4 A. Mục đích , yêu cầu : Học sinh củng cố lại được các kiến thức cơ bản khi lập trình với kiểu dữ liệu mảng . Học sinh biết nhận xét , phân tích , đề xuất các cách giải bài toán để cho chương trình chạy nhanh hơn . Làm quen với dữ liệu có cấu trúc và bài toán sắp xếp . Yêu cầu học sinh có thái độ chủ động , tự giác trong khi thực hành B. Phương pháp , phương tiện : 1. Phương pháp : Kết hợp nhiều phương pháp dạy học như thuyết trình , vấn đáp , hình ảnh ... với thực tế. 2. Phương tiện : Đối với thầy : Phòng máy vi tính , giáo án . Đối với trò : Sách giáo khoa , vở ghi lý thuyết , vở thực hành , máy tính (nếu có ) , chương trình đã được viết sẵn . C. Tiến trình lên lớp và nội dung bài giảng : I_ổn định lớp :(1') ổn định trật tự lớp . Yêu cầu lớp trưởng báo cáo sĩ số . II_Kiểm tra bài cũ: (3') Câu hỏi kiểm tra bài cũ :Em hãy cho biết cách khai báo mảng ? Câu trả lời mong muốn : Khai báo tên gọi có kiểu dữ liệu mảng một chiều có dạng : Var tên mảng :ARRAY[kiểu chỉ số] of kiểu thành phần; Trong đó : - Var , ARRAY, of là từ khóa . - Tên biến mảng là một tên gọi tự đặt . - Kiểu thành phần là tên kiểu của phần tử mảng. - Kiểu chỉ số: + Chỉ số có kiểu dữ liệu miền con : Cận_đầu ... Cận_cuối , trong đó Cận_đầu , Cận_cuối xác định giá trị chỉ số đầu và chỉ số cuối . 2
- trêng ®hsp hµ néi K56A_Khoa CNTT + Chỉ số có kiểu dữ liệu liệt kê . III_Nội dung bài giảng : Nội dung Hoạt động giữa thầy và trò STT T.gian Đặt vấn đề và gợi động cơ - Thuyết trình :Như bài trước cô đã nói , 1. 1’ hôm nay chúng ta sẽ thực hành về phần mảng . Trong quá trình thực hành cô sẽ kết hợp kiểm tra việc học lý thuyết của các em và sẽ cho điểm . Nội dung bài giảng : 2. 15’ I_Bài 1: a) Hãy tìm hiểu và chạy thử chương - Thuyết trình : Đối với bài này các em trình thực hiện thuật toán sắp xếp dãy cần phải liệt kê được các bước cơ bản của số nguyên bằng thuật toán tráo đổi với bài toán . các giá trị khác nhau của n dưới - Đặt câu hỏi : Bài toán này thực hiện đây.Qua đó nhận xét về thời gian chạy chương trình gì ? Nội dung của nó bao của chương trình ? gồm mấy bước cơ bản? Nêu giới hạn và nội dung từng bước ? Câu trả lời : Bài toán viết chương trình Uses Crt ; sắp xếp các phần tử của mảng theo thứ tự Const Nmax=250 ; không giảm , nó gồm 4 bước . Đó là : Type ArrInt = array[1..Nmax] of integer ; +b1: Khai báo Từ đầu chương trình đến “ A:ArrInt “ . Var n , i , j , t : integer ; +b2: Thực hiện chương trình . A : ArrInt ; Từ “Begin“đến “writeln (‘Day so duoc sap Begin ClrScr; xep : ‘); “. +b3: In kết quả ra màn hình Randomize ; Tiếp theo đến “Readln“. Write (‘Nhap n = ‘) ; +b4: kết thúc chương trình (end). Readln(n); - Đi vào từng bước và đặt câu hỏi cho For i :=1 to n do A[i] :=random(300)- random(300); nhằm diễn giải cho học sinh hiểu. Từ đó 3
- trêng ®hsp hµ néi K56A_Khoa CNTT biết được những chỗ nào học sinh không For i:=1 to n do write (A[i] :5) ; hiểu và cần giải thích cụ thể . Writeln ; For j := N downto 2 do -Đặt câu hỏi : Sau từ khóa bắt đầu For i :=1 to j -1 do chương trình thực hiện công việc gì ? If A[i] > A[i+1] then Begin Câu trả lời : + Nhập vào n và gán n vào phần tử của t :=A[i]; mảng A . A[i] := A[i+1]; + Thực hiện thuật toán sắp xếp . A[i+1] := t ; End ; Writeln (‘ Day so duoc sap xep : ‘) ; For i := 1 to n do - Đặt câu hỏi : Hãy nêu cách thực hiện Write (A[i] :7 ); thuật toán của chương trình ? Writeln ; Câu trả lời : Cách thực hiện thuật toán Readln End. là : + Dùng 2 biến i , j làm chỉ số . + Dùng 2 vòng For để đưa mảng vào , mỗi - b1: Khai báo + Khai báo đơn vị chuẩn : Uses Crt ; vòng lặp For ứng với mỗi phép duyệt lần Uses là từ khóa ding để khai báo có lượt . dùng các đơn vị chuẩn . + Lấy từng phần tử của mảng ra kiểm tra : Crt là đơn vị chuẩn cung cấp phương nếu A[i] >A[i+1] thì thực hiện tráo đổi vị tiện xử lý màn hình , bàn phím . trí của 2 phần tử trên .Cứ như thế cho đến + Khai báo hằng Nmax =250 ( xác phần tử cuối cùng của mảng . Nếu sai thì định số phần tử tối đa của kiểu mảng ). dừng vòng lặp . + Khai báo kiểu mảng tên ArrInt : - Đặt câu hỏi :Như vậy 3 lệnh t := A[i] ; A[i] := A[i+1] ; A[i+1] := t có ý nghĩa gì Type ArrInt = array[1..Nmax] of integer; ? + Khai báo các biến : Câu trả lời :3 lệnh trên dùng để đổi giá trị của 2 phần tử A[i] và A[i+1] . Var n , i , j , t : integer; - Đặt câu hỏi : Nhận xét gì về thời gian A : ArrInt ; 4
- trêng ®hsp hµ néi K56A_Khoa CNTT - b2: Thực hiện chương trình. chạy của chương trình ? + Nhập vào n và gán n vào phần tử Câu trả lời : Thời gian thực hiện của mảng A . chương trình nhanh do chương trình lấy từng phần tử của mảng ra kiểm tra chứ Xóa màn hình : ClrScr ; Khởi hàm tạo sinh số ngẫu nhiên không so sánh từng phần tử của mảng với tất cả các phần tử còn lại (rất mất thời gian Randomize ; Các phần tử của mảng A lấy từ -299 ). đến 299 : - Đặt câu hỏi : Ta phải giải quyết phần này như thế nào đây ? Biến Dem sẽ nằm ở A[i] := Random(300) - Random(300) ; + Thực hiện thuật toán sắp xếp : Đưa vị trí nào trong chương trình ? mảng vào bằng 2 vòng For . Lấy từng Câu trả lời : phần tử của mảng ra kiểm tra và thực + Khai báo : n , i , j ,t , d :integer ; hiện tráo đổi thông qua biến t . + Bổ sung chương trình : t :=A[i]; Dem :=0 ; A[i] := A[i+1]; For j:= N downto 2 do A[i+1] := t ; For i:=1 to j - 1 do If A[i] > A[i+1] then - b3: In kết quả . Begin In ra mảng 1 chiều : For i:=1 to n do t := A[i] ; Write (A[i] :7); A[i] := A[i+1] ; Writeln ; A[i+1] := t ; Dem:=Dem+1 ; - b4: Kết thúc chương trình . End ; - Thuyết trình : Các em hãy soạn chương b) Khai báo thêm biến nguyên Dem và trình vào máy và nhập dữ liệu rồi đánh giá 20’ bổ sung vào chương trình những câu kết quả . 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 .Đưa kết quả tìm được ra màn hình . II_Bài 2 : 5
- trêng ®hsp hµ néi K56A_Khoa CNTT Hãy đọc và tìm hiểu những phân tích để viết chương trình giải bài toán : Cho mảng A gồm n phần tử . Hãy viết chương trình tạo mảng B[1..n], trong đó B[i] là tổng của i phần tử đầu tiên của A. - Đặt câu hỏi : Trước tiên các em cần xác Program SubSum1; định dữ liệu đầu vào , dữ liệu đầu ra và Const max=100; thuật toán để giải ? Type MyArray=array[1..max] of integer; Câu trả lời : + Vào : Mảng A gồm n phần tử. Var A , B : MyArray; + Ra : Mảng B gồm n phần tử . n , i , j : integer ; + Thuật toán : tại vị trí i ta tính tổng giá Begin trị các phần tử từ 1 đến i . Radomize; Write (‘ Nhap n =‘); Readln(n) ; -Đặt câu hỏi : Với đoạn chương trình trên For i :=1 to n do A[i] := random(300) - random(300) máy phải thực hiện bao nhiêu phép cộng ? Câu trả lời : Máy phải thực hiện ; n(n+1)/2 phép cộng . For i :=1 to n do write(A[i] :5); - Đặt câu hỏi : Ta nhận thấy việc thực Writeln ; hiên phép cộng để tạo ra phần tử mới cho For i :=1 to n do mang B phải lặp đi lặp lại rất nhiều lần . Begin Vậy có cách nào khắc phục được điều đó B[i]:=0; For j :=1 to i do B[i]:=B[i]+A[j]; không ? Câu trả lời : Để tính bước i ta sử dụng kết End ; quả đã tính ở bước i-1 . For i :=1 to n do write (B[i] :6); Do đó có đoạn chương trình khác là : Readln End. B[1]:=A[1] ; For i :=2 to n do B[i]:=B[i-1]+A[i] ; 6
- trêng ®hsp hµ néi K56A_Khoa CNTT Với 2 lệnh này máy chỉ phải thực hiện n- 1 phép cộng . D. Củng cố bài giảng : (3’) - Ta thấy rằng cùng một bài toán có nhiều cách giải quyết khác nhau nhờ việc phân tích các thuật giải mà ta có thể tiết kiệm một lượng tính toán đáng kể . - Tuy tốc độ tính toán của máy tính nhưng nó cũng có giới hạn . Do đó , trong khi viết chương trình ta nên tìm cách viết sao cho chương trình thực hiện càng ít phép toán càng tốt .Nói cách khác chúng ta cần tìm ra cách giải tối ưu nhất cho mọi bài toán . E. Hướng dẫn qua bài tập về nhà cho học sinh :(2’) - Bài tập về nhà : Viết chương trình tìm phần tử có giá trị lớn nhất của mảng và đưa ra màn hình chỉ số và giá trị của phần tử tìm được . Nếu có nhiều phần tử có cùng giá trị lớn nhất thì đưa ra phần tử có chỉ số nhỏ nhất ? - Hướng dẫn qua : + Xác định dữ liệu vào , dữ liệu ra ? + Sử dụng biến j để lưu giá trị max . - Các em xem lại tất cả các kiến thức đã học , bao gồm : lệnh cơ bản , lệnh điều khiển , kiểu dữ liệu cơ bản , kiểu dữ liệu có cấu trúc để giờ sau kiểm tra 1 tiết . 7
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài thực hành số 4 – Tin học 11
10 p | 1029 | 108
-
Giáo án lớp 2 môn Luyện Từ Và Câu: BÀI 22 : TỪ NGỮ VỀ LOÀI CHIM. DẤU CHẤM, DẤU PHẨY
4 p | 552 | 49
-
Giáo án tuần 12 bài Tập đọc: Mẹ - Tiếng việt 2 - GV. Hoàng Quân
5 p | 1071 | 44
-
Giáo án lớp 2 môn Luyện Từ Và Câu: BÀI 24 : TỪ NGỮ VỀ LOÀI THÚ. DẤU CHẤM, DẤU PHẨY
4 p | 525 | 43
-
Giáo án tuần 8 bài Tập làm văn: Mời, nhờ, yêu cầu, đề nghị - Tiếng việt 2 - GV. Hoàng Quân
4 p | 430 | 39
-
Giáo án tuần 2 bài LTVC: Mở rộng vốn từ: Từ ngữ về học tập. Dấu chấm hỏi - Tiếng việt 2 - GV. Hoàng Quân
4 p | 455 | 37
-
Giáo án tuần 14 bài Tập đọc: Câu chuyện bó đũa - Tiếng việt 2 - GV. Hoàng Quân
6 p | 658 | 37
-
Giáo án tuần 12 bài Tập làm văn: Gọi điện - Tiếng việt 2 - GV. Hoàng Quân
4 p | 482 | 36
-
Giáo án tuần 12 bài Kể chuyện: Sự tích cây vú sữa - Tiếng việt 2 - GV. Hoàng Quân
4 p | 437 | 28
-
Giáo án tuần 8 bài Kể chuyện: Người mẹ hiền - Tiếng việt 2 - GV. Hoàng Quân
5 p | 343 | 23
-
Giáo án Sinh học 12 - THỰC HÀNH
2 p | 223 | 22
-
Giáo án tuần 1 bài Tập làm văn: Tự giới thiệu. Câu và bài - Tiếng việt 2 - GV. Hoàng Quân
4 p | 357 | 21
-
Giáo án tuần 11 bài Chính tả (Tập chép): Bà cháu. g/gh, s/x, ươn/ương - Tiếng việt 2 - GV. Hoàng Quân
5 p | 446 | 19
-
Bài 4:SỰ RƠI TỰ DO
8 p | 286 | 17
-
Giáo án tuần 2 bài Tập làm văn: Chào hỏi. Tự giới thiệu - Tiếng việt 2 - GV. Hoàng Quân
4 p | 279 | 15
-
Giáo án Toán 2 chương 2 bài 18: 36+15
8 p | 109 | 10
-
Giáo án Tin học lớp 7 - Bài thực hành 4: Bảng điểm lớp em (Tiết 2)
3 p | 74 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn