Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 68 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
68
Dung lượng
513,5 KB
Nội dung
Ngày soạn: 7/ 1/ 2008 Ngày giảng: . . ./ / 2008 Tiết 19. Bài tập và thực hành 2 (tiếp) I. Mục tiêu 1. Kiến thức - Xây dựng chơng trình rẽ nhánh - Làm quen với các công cụ phục vụ hiệu chỉnh chơng trình. 2. Kỹ năng - Biết sử dụng cấu trúc rẽ nhánh trong việc lập trình giải một số bài toán cụ thể. - Làm quen với các công cụ phục vụ và hiệu chỉnh chơng trình. 3. Thái độ - Có ý thức chăm lo đến giao diện khi xây dựng chơng trình. II. Ph ơng tiện dạy và học 1. Chuẩn bị của GV - Bài soạn, SGK, Phòng máy tính. 2. Chuẩn bị của HS - Đồ dùng học tập. III. Tiến trình bài giảng 1. ổ n định tổ chức / /2008 ./ /2008 ./ /2008 . / /2008 ./ /2008 ./ /2008 . / /2008 ./ /2008 ./ /2008 . / /2008 ./ /2008 ./ /2008 . / /2008 ./ /2008 ./ /2008 . 2 Kiểm tra bài cũ - Không kiểm tra. 3 Bài mới Hoạt động của thầy và trò Nội dung bài giảng GV: Hớng dẫn hs mở tệp lu bài tập chơng trình Py- ta- go (chọn FILE chọn OPEN, chọn tệp cần mở) HS: Thực hành theo hớng dẫn của giáo viên, mở chơng trình, Bài thực hành: Program Pi_ta_go; Uses crt; Var a, b, c: integer; a2,b2,c2: longint; Begin Clrscr; Write(Nhap a, b, c =); Readln(a,b,c); 1 - GV: Hớng dãn thực hiện việc theo dõi các lệnh của CT bằng cách nhấn phím F7 và theo dõi các giá trị của biến trên cửa sổ Watches, để hiện cửa sổ Watches nhấn Ctrl+F7 để hiện cửa sổ Add watch, sau đó nhập tên biến (ví dụ a2 là biến đang cần theo dõi giá trị) và nhấn phím Enter sẽ có tên biến a2 cùng giá trị của nó. - HS: Quan sát và thực hiện theo - GV: Yêu cầu tiếp tục nhấn F7 để quan sát quá trình rẽ nhánh. - GV để HS nhập giá trị mới a=700, b=1000, c=800 và tự làm các thao tác nh trên. trong thời gian này hớng dẫn một số học sinh thực hiện các thao tác trong bài thực hành. - HS: Quan sát và thực hiện theo nội dung yêu cầu. a2:=a; b2:=b; c2:=c; a2:=a2*a; b2:=b2*b; c2:=c2*c; if (a2=b2+c2) or (b2=a2+c2) or (c2=a2+b2) then writeln(Ba so da nhap la bo so Pi- ta-go) else writeln(Ba so da nhap khong la bo so Pi ta go); readln End. d) Vào bảng Debug mở cửa sổ hiệu chỉnh để xem giá trị a2, b2, c2; e. Nhấn phím F7 để thực hiện các câu lệnh tính những giá trị nói trên, so sánh với kết quả a=9, b=16, c=25; f) Quan sát quá trình rẽ nhánh; g) Lặp lại các bớc nói trên với a=700, b=1000, c=800; 4. Củng cố - Giáo viên nhắc lại cách sử dụng một số công cụ trong TP hỗ trợ cho việc thực hiện, theo dõi, thay đổi giá trị biến trong chơng trình + Nhấn phím F7 đẻ thực hiện từng câu lệnh chơng trình; + Chọn Debug để mở cửa sổ hiệu chỉnh hoặc nhấn tổ hợp phím Cltr + F7 5. Bài tập về nhà - Làm bài tập 5, 6, 7, 8 SGK T51 giờ sau chữa bài tập và thực hành. 2 Ngày soạn: 7 / 1/ 2008 Ngày giảng: . . ./ / 2008 Tiết 20. Bài tập và thực hành 2 (tiếp) III. Tiến trình bài giảng 1. ổ n định tổ chức / /2008 ./ /2008 ./ /2008 . / /2008 ./ /2008 ./ /2008 . / /2008 ./ /2008 ./ /2008 . / /2008 ./ /2008 ./ /2008 . / /2008 ./ /2008 ./ /2008 . 2 Kiểm tra bài cũ - Kiểm tra kết hợp trong nội dung thực hành. 3 Bài mới Hoạt động của thầy và trò Nội dung bài giảng * Hoạt động 1( Hớng dẫn và giải đáp các thắc mắc của HS về một số bài tập ở nhà) - GV: Gọi HS lên bảng giải bài tập 4 SGK- T51 - HS: Lên bảng - GV: Nhận xét, bổ sung. - GV: Yêu cầu cả lớp cùng giải bài tập 5 SGK- T51 trên máy tính. - GV gợi ý chơng trình, yêu cầu HS thực hành theo nội dung BT. - HS: Quan sát, nghe giảng, thực hành. Bài 4 SGK- T51 a. if (sqr(x)+ sqr(y))<=1 then z:= sqr(x) + sqr(y) else if y>= x then z := x+y else z := 0.5; b. if (sqr(x-a) + sqr(y-b) <= sqr(r) then z:= abs(x) + abs(y) else z:=x+y; Bài 5 SGK- T51 a. Y=1/2+2/3+3/4+ +50/51 Var Y: real; N: byte; Begin Y: = 0; For N:=1 to 50 do Y:=Y+N/(N+1); Writeln(Tong Y la:,Y); Readln End. b. e(N) = 1 + 1/1! + 1/2! + 1/3! + 1/4! + + 1/n! + cho đến khi 1/n! <2*10 -6 . 3 - GV: Gợi ý chơng trình bài tập 6 SGK- T51, yêu cầu HS thực hành theo nội dung BT. - HS: Quan sát, nghe giảng, thực hành. Var N: longint; e,sh: real; begin sh := 1/2; N := 2; E := 2 + sh; while sh >= 2*1E 6 do Begin Inc(N); Sh:=sh*(1/N); E:=e + sh; End; Writeln(Gia tri e(N) la:,e:10:6); Readln End. Bài 6 SGK- T51 Var ga, cho: byte; Begin For cho := 1 to 24 do Begin Ga:= 36 cho; If ga + 2 * cho = 50 then Writeln(Ga:, ga, Cho:, cho); Readln End. 4. Củng cố - Mọi quá trình tính toán đều có thể mô tả và thực hiện dựa trên ba cấu trúc cơ bản là cấu trúc tuần tự, cấu trúc rẽ nhánh và cầu trúc lặp. 5. Bài tập về nhà - Đọc trớc bài 11 của chơng IV, giờ sau học lý thuyết 4 Ngày soạn: 15/ 1/ 2008 Ngày giảng: . . ./ / 2008 Tiết 21. Chơng Iv. Kiểu dữ liệu có cấu trúc Đ11. Kiểu mảng I. Mục tiêu 1. Kiến thức - Kiểu mảng là một kiểu dữ liệu có cấu trúc; rất cần thiết và hữu ích trong nhiều CT; - Mảng một chiều là một dãy hữu hạn các phần tử cùng kiểu; - Các NNLT thông dụng cho phép ngời lập trình xây dựng kiểu dữ liệu mảng một chiều; - Để mô tả mảng một chiều cần khai báo kiểu của các phần tử và cách đánh số các phần tử của nó; - Có thể tham chiếu phần tử của mảng bằng tên của mảng và chỉ số tơng ứng của phần tử này. 2. Kỹ năng - Nhận biết đợc các thành phần trong khai báo kiểu mảng một chiều; - Nhận biết các định danh của phần tử kiểu mảng một chiều xuất hiện trong một CT; - Biết cách khai bào kiểu mảng đơn giản với chỉ số kiểu miền con của kiểu nguyên. - Tạo đợc kiểu mảng một chiều và sử dụng biến mảng một chiều trong ngôn ngữ lập trình Pascal để giải quyết một số bài toán cụ thể đơn giản. 3. Thái độ - Có ý thức tự giác học tập và có tinh thần tập thể tham gia hoạt động nhóm . II. Ph ơng tiện dạy và học 1. Chuẩn bị của GV - Bài soạn, SGK, bảng phụ. 2. Chuẩn bị của HS - Đồ dùng học tập, bảng phụ III. Tiến trình bài giảng 1. ổ n định tổ chức / /2008 ./ /2008 ./ /2008 . / /2008 ./ /2008 ./ /2008 . / /2008 ./ /2008 ./ /2008 . / /2008 ./ /2008 ./ /2008 . / /2008 ./ /2008 ./ /2008 . 2 Kiểm tra bài cũ - Không kiểm tra. 3 Bài mới 5 Hoạt động của thầy và trò Nội dung bài giảng * Hoạt động 1 (Tìm hiểu câu lệnh kiểu mảng một chiều) - GV: Yêu cầu HS tự đọc phần đầu của mục 1 SGK T53 - HS: Đọc SGK - GV: Hãy cho biết khái niệm về mảng một chiều? Tại sao cần dùng đến mảng một chiều? - HS: Trả lời - GV: Các ngôn ngữ lập trình có qui tắc và cách thức cho phép xác định. GV: Trình bày và giải thích câu lệnh cho chơng trình Nhietdo_tuan SGK- T53 và CT Nhietdo_Nngay SGK- T54 (dùng bảng phụ). - GV: Qua hai ví dụ trên ta thấy đợc rằng, khi cần giải bài toán lên đến N ngày thì cách làm nh CT Nhietdo_tuan không những đòi hỏi một khối lợng khai báo khá lớn mà CT tính toán cũng khá dài. Vì vậy cần sử dụng đến mảng để giải quyết những bài toán nh vậy. GV: Các em hãy quan sát hai ví dụ trên; đó là các cách khai báo mảng một chiều. Qua các ví dụ trên, em hãy chỉ ra cách khai báo mảng một chiều tổng quát. - HS: Trả lời câu hỏi. 1. Kiểu mảng một chiều - Mảng một chiều là dãy hữu hạn các phần tử cùng kiểu. Mảng đợc đặt tên và mỗi phần tử của nó có một chỉ số. Để mô tả mảng một chiều cần xác định kiểu của các phần tử và cách đánh số các phần tử của nó. - Khi xây dựng và sử dụng kiểu mảng một chiều, các NNLT có quy tắc, cách thức cho phép xác định: + Tên kiểu mảng một chiều; + Số lợng phần tử; + Kiểu dữ liệu của phần tử; + Cách khai báo biến mảng; + Cách tham chiếu đến phần tử. a. Khai báo - Ví dụ 1 Var LOP : array[40 100] of integer; TO : array[1 7] of integer; - Ví dụ 2 Type MyArray = array[1 max] of real; Var N: MyArray; * Tổng quát, khai báo mảng một chiều có hai dạng - Cách 1: khai báo trực tiếp. Var <tên biến mảng> : array[kiểu chỉ số] of <kiểu phần tử>; - Cách 2: Khai báo gián tiếp. Type <tên kiểu mảng> = array[kiểu chỉ số] 6 of <kiểu phần tử>; Var <tên biến mảng>: <tên kiểu mảng>; Trong đó: + Kiểu chỉ số thờng là một đoạn số nguyên liên tục có dạng n1 n2 với n1, n2 là các hằng hoặc biểu thức nguyên xác định chỉ số đầu và chỉ số cuối (n1 n2); + Kiểu phần tử là kiểu của phần tử mảng. - GV: Chia nhóm lần 1, chia lớp thành 3 nhóm. - HS: Thảo luận theo nhóm, hoàn thành kết quả vào bảng phụ. - GV: Yêu cầu các nhóm báo cáo và nhận xét nhóm chéo nhóm của mình H1. - Nhóm 1: Hãy viết khai báo mảng một chiều theo cách 1? - Nhóm 2: Hãy viết khai báo mảng một chiều theo cách 2? - Nhóm 3: Trong các khai báo sau, khai báo nào hợp lệ? 1) Type Mang 1 = array[1 50] of real; Var A: Mang1; 2) Type Mang 1 : array[1 50] of real; Var A= Mang1; 3) Var B : array[1 100] of real; 4. Củng cố - Cách tạo kiểu mảng một chiều và cách khai báo biến: Type <tên kiểu mảng> = array[kiểu chỉ số] of <kiểu phần tử>; Var <tên biến mảng>: <tên kiểu mảng>; - Tham chiếu đến từng phần tử của mảng một chiều đợc xác định bởi tên mảng cùng với chỉ số, đợc viết trong cặp dấu ngoặc [ ]. 5. Bài tập về nhà - Học bài theo câu hỏi SGK, Lấy ví dụ đúng và khai báo mảng một chiều ở hai dạng. 7 Ngày soạn: 25/ 1/ 2008 Ngày giảng: . . ./ / 2008 Tiết 22. Đ11. Kiểu mảng (tiếp) III. Tiến trình bài giảng 1. ổ n định tổ chức / /2008 ./ /2008 ./ /2008 . / /2008 ./ /2008 ./ /2008 . / /2008 ./ /2008 ./ /2008 . / /2008 ./ /2008 ./ /2008 . / /2008 ./ /2008 ./ /2008 . 2 Kiểm tra bài cũ - Viết ví dụ khai báo biến mảng một chiều bằng hai cách đã học và giải thích các thành phần có trong cú pháp? 3 Bài mới Hoạt động của thầy và trò Nội dung bài giảng * Hoạt động 2 (Tìm hiểu một số chơng trình có sử dụng kiểu mảng một chiều) - GV: Yêu cầu HS đọc đề bài, hãy cho biết Input và Output? - HS: trả lời - GV: Yêu cầu HS nhắc lại thuật toán tìm Max (đã đợc học ở lớp 10)? - HS: trả lời - GV: Trình bày và giải thích chơng trình Tìm giá trị Max (Dùng bảng phụ) - HS: Quan sát, nghe giảng, ghi bài - GV: Gọi HS đứng tại chỗ giải thích ý nghĩa từng câu lệnh. 1. Kiểu mảng một chiều b. Một số ví dụ - Ví dụ 1: tìm phần tử lớn nhất của dãy số nguyên. Xác định bài toán + Input: Số nguyên dơng N và dãy gồm N sô nguyên dơng a 1 , a 2 , , a n . + Output: Max(a 1 , a 2 , , a n ). Thuật toán: B1: Nhập N, và dãy a 1 , a 2 , , a n . B2: Max a 1 ; i 2; B3: Nếu i > N thì đa ra Max, rồi kết thúc; B4: + Nếu a 1 > Max thì Max a i ; + i i + 1 rồi quay lại B3. Chơng trình: Program Tim_max; Const Nmax = 250; Type ArrInt = Array[1 Nmax] of integer; Var N, i, Max. csmax: integer; A: arrInt; Begin Write(Nhap so phan tu cua day so, N=); 8 - HS: Trả lời - GV: Hãy xác định Input và Output? - HS: trả lời - GV: Nhắc lại thuật toán sắp xếp bằng tráo đổi (dùng bảng phụ) - HS: Quan sát, nghe giảng, ghi bài. - GV: Trình bày và giải thích chơng trình sắp xếp bằng tráo đổi (Dùng bảng phụ) - HS: Quan sát, nghe giảng, ghi bài - GV: Gọi HS đứng tại chỗ giải thích ý nghĩa từng câu lệnh. - HS: Trả lời Readln(N); For i:=1 to N do Begin Write(Phan tu thu ,i, =); Readln(A[i]); End; Max:=A[1]; csmax:=1; For i:=2 to N do If A[i] > Max then Begin Max := A[i]; csMax := i; End; writeln(Gia tri cua p.tu max la:,max); writeln(Chi so cua p.tu max la:,max); readln End. Ví dụ 2: sắp xếp dãy số nguyên bằng thuật toán tráo đổi. + Input: Số nguyên dơng N và dãy A gồm N số nguyên dơng a 1 , a 2 , , a n . + Output: dãy A đựơc sắp xếp thành dãy không giảm. Thuật toán: B1: Nhập N và dãy a 1 , a 2 , , a n . B2: M N; B3: Nếu M < 2 thì đa ra dãy A đã đợc SX 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 B3; B7: Nếu a i > a i+ 1 thì tráo đổi a i và a i+ 1 cho nhau; B8: quay lại B5. Chơng trình: Program sap_xep; Const Nmax = 250; Type ArrInt = Array[1 Nmax] of integer; Var N, i, j, TG: integer; A: arrInt; Begin 9 Write(Nhap so phan tu cua day so, N=); Readln(N); For i:=1 to N do Begin Write(Phan tu thu ,i, =); Readln(A[i]); End; For j:=N downto 2 do For i:=1 to j 2 do If A[i] > A[i+1] then Begin TG:=A[i]; A[i]:=A[i+1]; A[i+1]:=TG; End; Writeln(Day so duoc sap xep la:); For i:=1 to N do writeln(A[i]):4); Readln End. - GV: Chia lớp thành 3 nhóm, yêu cầu các nhóm thảo luận theo nội dung yêu cầu. Hoàn thành kết quả vào bảng phụ - GV: Yêu cầu các nhóm báo cáo và nhận xét nhóm chéo nhóm của mình H1. - Nhóm 1: Hãy viết khai báo mảng một chiều trong chơng trình VD 1 theo cách khác đã học ? - Nhóm 2: Hãy viết khai báo mảng một chiều trong chơng trình VD 2 theo cách khác đã học ? - Nhóm 3: Hãy tét thử chơng trình bằng một dãy số gồm 5 phần tử với các giá trị khác nhau. Đa gia giá trị Max và csmax? 4. Củng cố - Củng cố cho HS nắm chắc hai cách khai báo biến mảng một chiều: Var <tên biến mảng> : array[kiểu chỉ số] of <kiểu phần tử>; Hoặc Type <tên kiểu mảng> = array[kiểu chỉ số] of <kiểu phần tử>; Var <tên biến mảng>: <tên kiểu mảng>; 5. Bài tập về nhà - Học bài theo câu hỏi SGK, làm bài tập trong SBT, đọc trớc ví dụ 3 SGK- T58. 10 [...]... Biết kiểu xâu với một số hàm thủ tục chuẩn; - Hiểu cách khai báo kiểu dữ liệu xâu - Biết vận dụng khai báo kiểu xâu vào bài tập và chơng trình trên máy tính 2 Kỹ năng - Biết khai báo kiểu dữ liệu xâu; - Biết so sánh hai xâu; - Nhận biết và bớc đầu sử dụng đợc các hàm, các thủ tục chuẩn 3 Thái độ - Có ý thức tự giác học tập và có tinh thần tập thể tham gia hoạt động nhóm - Tiếp tục xây dựng lòng ham thích... tắc và cách thức cho phép xác định: - SGK- T68 * Hoạt động 2 (Tìm hiểu cú pháp khai báo kiểu dữ liệu xâu) - GV: Để khai báo kiểu dữ liệu xâu ta sử dụng tên dành riêng STRING, tiếp theo là độ dai không quá 255 đợc ghi trong cặp ngoặc [255] - HS: Nghe giảng, ghi nhớ - GV: Trình bày cú pháp khai báo kiểu dữ liệu xâu (viết bảng) - GV: Khi trong khai báo không có phần khai báo độ dài thì biến đó có giá trị... chuẩn; - Hiểu cách khai báo kiểu dữ liệu xâu - Làm quen với việc tìm kiếm, thay thế và biến đổi xâu - Biết áp dụng các hàm, các thủ tục chuẩn vào bài tập cụ thể 2 Kỹ năng - Biết khai báo kiểu dữ liệu xâu; - Biết sử dụng các thủ tục và hàm chuẩn để xử lý xâu - Soạn thảo và chạy thử đợc chơng trình trong bài thực hành và một số yêu cầu khác 3 Thái độ - Có ý thức bảo vệ tài sản phòng máy; - Góp phần hình... thực hành 3 17 Ngày soạn: 15/ 02/ 2008 Ngày giảng: / / 2008 Tiết 25 Bài tập và thực hành 3 I Mục tiêu 1 Kiến thức - Củng cố cho HS những hiểu biết về kiểu dữ liệu mảng; - Cung cấp cho HS ba thuật toán cơ bản và đơn giản thờng gặp với dữ liệu kiểu mảng: Tính tổng các phần tử thoả mãn điều kiện nào đó; Đếm số các phần tử thoả mãn điều kiện nào đó; Tìm phần tử lớn nhất hay nhỏ nhất cùng vị trí của... nhất hay nhỏ nhất cùng vị trí của nó trong mảng; - Giới thiệu hàm ramdom; 2 Kỹ năng - HS có đợc các kỹ năng cơ bản làm việc với kiểu mảng (một chiều) trong lập trình, cụ thể là: Khai báo kiểu dữ liệu mảng; nhập dữ liệu cho mảng, đa ra màn hình chỉ số và giá trị các phần tử của mảng; Duyệt qua các phần tử của mảng để xử lý từng phần tử; - Biết chạy chơng trình với một số chơng trình có sẵn và biết giải... GV: Khi trong khai báo không có phần khai báo độ dài thì biến đó có giá trị ngầm định là 255 - GV: Lấy ví dụ khai báo xâu? - HS: lên bảng viết ví dụ 1 Khai báo kiểu dữ liệu xâu * Hoạt động 3 (Tìm hiểu các thao tác xử lí xâu) - GV: Các dữ liệu xâu có thể thực hiện phép ghép xâu và các phép so sánh - HS: Quan sát, nghe giảng, ghi bài - GV: Các phép so sánh hai xâu có thứ tự u tiên thấp hơn phép ghép xâu... String; 2 Các thao tác xử lí xâu a Phép ghép xâu đợc sử dụng ghép nhiều xâu thành một xâu kí hiệu là dấu (+) - VD: abc + ks, Cho kết quả là abcks b Các phép so sánh =, , , = - Ví dụ: TIN + HOC < TIN HOC 10 * Để xử lí các xâu, có thể sử dụng các thủ tục và hàm chuẩn sau: c Thủ tục chuẩn DELETE (St, vt, n) thực hịên việc xoá n kí tự của xâu St bắt đầu từ vị trí vt d Thủ tục INSERT(S1, S2,... cho biết kết quả: - GV: Yêu cầu các nhóm báo cáo và nhận Giá trị st: Mon Tin Hoc 10; Thao tác: DELETE(st, 4, 6 ); KQ? xét nhóm chéo nhóm của mình - Nhóm 3: + Hãy cho biết kết quả: - GV: Nhận xét và đánh giá a Giá trị S1: Lam Van; S2: Sach Tap lop 10 Thao tác: INSERT(S1, S2, 9); KQ? b Giá trị S1: Nguyen Lan Anh; S2: Le Thanh Nga Thao tác: POS(S1, S2); KQ? 4 Củng cố - Xâu là dãy kí tự trong bảng mã... thao tác và biểu thức sau: a TRUONG + THPT + THAI HOA; KQ? b Giá trị st: Mon Tin Hoc 10; Thao tác: DELETE(st, 6, 3 ); KQ? c Giá trị s1: Van 10; Giá trị s2: Hoc ; Thao tác INSERT(s1, s2, 4); KQ? d Giá trị s: Huyen Ham Yen; Biểu thức: COPY(s, 8, 6); KQ? e Giá trị s: Huyen Ham Yen; Biểu thức: LENGTH(s); KQ? f Giá trị ch: tinh tuyen quang; Biểu thức: UPCASE(ch); KQ? Đáp án và biểu điểm Câu 1 Đáp án a-... Tiết 27 Bài tập và thực hành 4 I Mục tiêu 1 Kiến thức - Củng cố cho HS những kiến thức và kỹ năng khi lập trình với kiểu dữ liệu mảng; - Củng cố cho HS một số thuật toán sắp xếp các phần tử của một dãy (bằng tráo đổi) và biết vận dụng để diễn đạt thuật toán này bằng CT sử dụng dữ liệu kiểu mảng trên máy tính 2 Kỹ năng - HS có đợc các kỹ năng cơ bản làm việc với kiểu mảng (một chiều) trong lập trình, . End. Bài 6 SGK- T51 Var ga, cho: byte; Begin For cho := 1 to 24 do Begin Ga: = 36 cho; If ga + 2 * cho = 50 then Writeln (Ga: , ga, Cho:, cho); Readln End trớc bài 11 của chơng IV, giờ sau học lý thuyết 4 Ngày soạn: 15/ 1/ 2008 Ngày giảng: . . ./ / 2008 Tiết 21. Chơng Iv. Kiểu dữ liệu có cấu trúc 11. Kiểu