1. Trang chủ
  2. » Cao đẳng - Đại học

Giáo án Tin học 11 - Tiết 19 đến tiết 49

20 11 0

Đ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 20
Dung lượng 284,66 KB

Nội dung

a> Khai báo mảng hai chiều - Trong ngôn ngữ Pascal, mảnh hai chiều được khai báo như sau : Cách 1 : Khai báo trực tiếp GV : Quay lại ví dụ về lưu trữ dữ liệu dạng bảng để các em nhận ra [r]

(1)Ngµy so¹n:……./…./2009 Ngµy gi¶ng:… /… /2009 TiÕt 19, 20: Bµi tËp vµ thùc hµnh I Môc tiªu KiÕn thøc - Nắm cấu trúc và sơ đồ thực cấu trúc rẽ nhánh KÜ n¨ng - RÌn luyÖn kÜ n¨ng sö dông cÊu tróc rÏ nh¸nh viÖc lËp tr×nh gi¶i mét sè bµi to¸n cô thÓ Thái độ - Học sinh có thái độ học tập tích cực, tự giác thực hành II chuÈn bÞ cña GV vµ HS ChuÈn bÞ cña gi¸o viªn - Gi¸o ¸n, SGK, SGV, SBT, phßng thùc hµnh ChuÈn bÞ cña häc sinh - Vë nghi, SGK,SBT III Phương pháp dạy học - Hướng dẫn IV TiÕn tr×nh bµi häc ổn định tổ chức - KiÓm tra sÜ sè KiÓm tra bµi cò - Kh«ng Bµi míi Hoạt động GV Hoạt động HS Hoạt động 1: Theo dõi dẫn dắt học sinh để nêu Làm quen với chương trình và các kh¸i niÖm vÒ bé sè Pitago: công cụ hiệu chỉnh chương trình Tổng bình phương hai số bình Gợi ý để học sinh nêu khái niệm phương số còn lại VÝ dô vÒ bé sè Pitago: sè Pitago - Yªu cÇu: LÊy mét vÝ dô cô thÓ a2=b2+c2 - Hái: §Ó kiÓm tra bé ba sè a, b, c bÊt k× b2=a2+c2 c2=b2+a2 cã ph¶i lµ bé Pitago, ta ph¶i kiÓm tra c¸c đẳng thức nào? Yêu cầu học sinh gõ chương trình mẫu Soạn chương trình vào máy theo yêu vµo m¸y cÇu cña gi¸o viªn - Yêu cầu học sinh lưu chương trình lên - BÊm F2, gâ tªn file vµ enter đĩa với tên Pitago.pas - Yªu cÇu häc sinh thùc hiÖn tõng lÖnh - BÊm F7, NhËp c¸c gi¸ trÞ a=3, b=4, c=5 - Chọn menu Debug để mở cửa sổ hiệu chương trình chØnh - Yªu cÇu häc sinh xem c¸c kÕt qu¶ a2, Lop11.com (2) b2, c2 - Yªu cÇu häc sinh tù t×m thªm mét sè bé a b c kh¸c vµ so s¸nh Hoạt động 2: RÌn luyÖn kÜ n¨ng lËp tr×nh hoµn thiÖn mét bµi to¸n Nêu nội dung, mục đích, yêu cầu bµi to¸n - Hỏi: Bước đầu tiên để giải bài toán? - Hỏi: Để sác định ta phải đặt các câu hỏi nào? Gọi học sinh đặt câu hỏi và gọi học sinh trả lời cho câu hỏi đó? - Yªu cÇu häc sinh ph¸c ho¹ thuËt to¸n Yêu cầu học sinh gõ chương trình vào m¸y - Giáo viên tiếp cận học sinh để hướng dẫn và sửa sai 3.Yªu cÇu häc sinh nhËp d÷ liÖu - NhËp d÷ liÖu víi test -2 Yêu cầu học sinh xác định các testcase, nhập liệu, đối sánh kết - Quan s¸t qu¸ tr×nh rÏ nh¸nh cña tõng bé d÷ liÖu vµo vµ tr¶ lêi Chú ý theo dõi vấn đề đặt giáo viªn - Xác định input, output và thuật giải - Mục đích giải phương trình? + KÕt luËn sè nghiÖm vµ gi¸ trÞ nghiÖm x - Để tính nghiệm x cần các đại lượng nµo? + Cần các đại lượng: a b - Có các bước sử lí nào để tính x? Độc lập soạn chương trình vào máy - Thông báo kết đạt NhËp d÷ liÖu theo test cña gi¸o viªn vµ thông báo kết chương trình T×m testcase 0 VSN VN -3 -1.5 NhËp d÷ liÖu vµ th«ng b¸o kÕt qu¶ Cñng cè Các bước để hoàn thành chương trình: - Phân tích bài toán để xác định liệu vào, liệu ra, thuật toán - Soạn chương trình vào máy - Lưu chương trình - Biªn dÞch - Thực và hiệu chỉnh chương trình DÆn dß - Về nhà đọc trước bài 11 kiểu mảng Lop11.com (3) Ngµy so¹n:……./…./2009 Ngµy gi¶ng:… /… /2009 TiÕt 21, 22, 23, 24: Bµi 11: kiÓu m¶ng I Môc tiªu KiÕn thøc - BiÕt ®­îc mét kiÓu d÷ liÖu míi lµ kiÓu m¶ng mét chiÒu BiÕt ®­îc mét lo¹i biÕn cã chØ sè - BiÕt cÊu tróc t¹o kiÓu m¶ng mét chiÒu vµ c¸ch khai b¸o biÕn kiÓu m¶ng mét chiÒu - BiÕt ®­îc mét kiÓu d÷ liÖu míi lµ kiÓu m¶ng hai chiÒu - Biết cách tạo kiểu mảng hai chiều, cách khai báo biến, tham chiếu đến phÇn tö cña m¶ng KÜ n¨ng - T¹o ®­îc kiÓu m¶ng mét chiÒu vµ sö dông biÕn m¶ng mét chiÒu ng«n ng÷ lËp trình Pascal để giải số bài toán cụ thể - T¹o ®­îc kiÓu m¶ng hai chiÒu vµ khai b¸o biÕn m¶ng hai chiÒu ng«n ng÷ lËp trình Pascal Sử dụng đúng biến mảng để giải số bài toán cụ thể Thái độ - Học sinh có thái độ học tập tích cực, tư học tập II chuÈn bÞ cña GV vµ HS ChuÈn bÞ cña gi¸o viªn - Gi¸o ¸n, SGK, SGV, SBT ChuÈn bÞ cña häc sinh - Vë nghi, SGK,SBT III Phương pháp dạy học - Thuyết trình và vấn đáp IV TiÕn tr×nh bµi häc ổn định tổ chức - KiÓm tra sÜ sè KiÓm tra bµi cò - Lång vµo bµi Bµi míi Hoạt động GV và HS Néi dung Trước vào bài, giáo viên đưa Có thể sử dụng ví dụ SGK để học số vấn đề cần giải sau : sinh dễ theo dõi, gõ trước chương trình để có thể sử dụng cho các phần Với kiểu liệu đã biết, làm nào để : - Lưu trữ và xử lý dãy số ? - Lưu trữ và xử lý Họ và tên người ? Lop11.com (4) - Lưu trữ và xử lý bảng kết thi tốt nghiệp ? HS : Đưa các phương án để trả lời cho Trong lập trình thường có loại mảng : câu hỏi trên - Mảng chiều GV : Các ngôn ngữ lập trình thường - Mảng hai chiều cung cấp số kiểu liệu xây dựng từ kiểu liệu chuẩn gọi là kiểu liệu có cấu trúc Hoạt động 1: Kiểu mảng chiều Chương này chúng ta tìm hiểu số kiểu liệu ngôn ngữ - Mảng chiều là dãy hữu hạn các Pascal để trả lời câu hỏi trên phần tử có cùng kiểu, mảng đặt tên và phần tử mang số Để mô tả mảng chiều ta cần xác định kiểu GV : Đưa ví dụ, cần lập lập trình xử các phần tử và cách đánh số các lý dãy số nguyên, hãy tìm cách lưu phần tử trữ dãy số nguyên lập trình ? Với mảng chiều ta quan tâm đến : - Tên mảng chiều Bằng cách nào để lưu trữ thông tin - Số lượng phần tử mảng dạng bảng lập trình ? - Kiểu liệu phần tử - Cách khai báo biến mảng HS : Đưa ý kiến chiều - Cách truy cập vào phần tử GV : Đánh giá ý kiến học sinh, sau mảng đó đưa mục đích việc sử dụng cấu Xét ví dụ : Nhập vào nhiệt độ trung bình trúc mảng chương trình ngày tuần Tính và đưa màn hình nhiệt độ trung bình tuần và GV : Đưa khái niệm mảng chiều đếm số ngày có nhiệt độ lớn nhiệt độ và số yếu tố liên quan lập trình trung bình này nói chung Quan sát hai chương trình viết ngôn ngữ Pascal cùng để giải bài toán trên - Chương trình : Không sử dụng kiểu mảng GV : Đi sâu phân tích hai chương trình - Chương trình : Sử dụng kiểu học sinh nhận thấy tiện lợi mảng chiều sử dụng mảng a> Khai báo mảng chiều Trong ngôn ngữ Pascal, mảng chiều khai báo hai cách sau : Lop11.com (5) HS : Trong giáo viên phân tích hai Cách : chương trình, học sinh đưa ý kiến Var <Tên mảng> : Array[kiểu số] of nhận xét chương trình <kiểu phần tử> ; Cách : Type <Tên kiểu mảng> = Array [<kiểu số>] of <kiểu phần tử> ; Var <Tên mảng> : <tên kiểu mảng> ; GV : Đưa cách khai báo mảng Trong đó : chiều ngôn ngữ Pascal, giải thích ý - Type là từ khóa dùng để khai báo nghĩa các từ khóa biến, Array là từ khóa để khai báo mảng GV : Khai báo cách nào tiện lợi - Kiểu số thường là đoạn số ? nguyên liên tục có n1 n2, với n1 là số đầu và n2 là số cuối - Kiểu thành phần là kiểu liệu HS : Thường thì học sinh trả lời cách phần tử mảng tiện lợi ? - Để truy cập vào phần tử mảng ta viết : - <Tên biến mảng>[Chỉ số] GV : Tùy trường hợp cụ thể mà ta dùng Ví dụ : cách hay cách thông thường ta A[20] Truy cập phần tử mang số 20 sử dụng cách mảng A Ví dụ : Khai báo biến mảng thông qua kiểu GV : Sử dụng sồ hình ảnh trực quan mảng : minh họa cho học sinh cấu trúc mảng và Type số phần tử ArrayInteger=Array[1 100] of Integer; ArrayReal=Array[1.50] of Real; Chỉ Var A : Array[1 50]; số B : Array[1 50] of Real; Giá 53 81 62 18 26 41 24 53 trị Khai báo mảng trực tiếp : Var A : Array[1 100] of Integer ; B : Arrat[1 50] of Real ; Đưa số khai báo mảng b> 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 và dãy số A1, A2, … , AN Lop11.com (6) - Output : Chỉ số và giá trị số lớn dãy - Ý tưởng : + Đặt số A1 là số lớn (max) + Cho i lặp từ đến N, A[i]> thì đổi max = A[i] vả lưu lại vị trí i Pascal Chương trình sau : GV : Đưa ví dụ HS : Xây dựng thuật toán để giải bài toán (thuật toán đã học lớp 10) GV soạn sẵn chương trình và cho học sinh quan sát chương trình Nếu có nhiều thời gian, giáo viên tiến hành soạn chương trình từ đầu để học sinh có thể dễ dàng nhận các thao tác cần phải thực viết chương trình Program timmax ; Uses crt ; var a : array[1 250] of integer ; n,i,max,csmax : Integer ; Begin clrscr ; Write('Nhap n = ') ; Readln(n) ; For i := to n Begin Write('a[',i,'] = ') ; readln(a[i]) ; End ; max := a[i] ; csmax := ; For i := to n If a[i] > max then Begin max := a[i] ; csmax :=i ; End ; Writeln('Gia tri lon nhat : ',max) ; Writeln('chi so ptu lon nhat : ',csmax) ; Readln ; End Ví dụ : Sắp xếp dãy số nguyên theo thuật toán tráo đổi - Input : Số nguyên dương N và dãy số A1, A2, …, AN - Output : Dãy A xếp theo thứ tự không giảm - Ý tưởng : + Đổi để đưa số lớn vị trí Lop11.com (7) cuối cùng + Làm tương tự số còn lại Chương trình sau : Program sapxep ; Uses crt ; GV : Đưa ví dụ, nhắc lại ý tưởng var A : Array[1 250] of integer ; n,i,j,tg : Integer ; thuật toán HS : Xây dựng thuật toán để giải bài toán (thuật toán đã học lớp 10) GV soạn sẵn chương trình và cho học sinh quan sát chương trình Nếu có thời gian, giáo viên tiến hành soạn chương trình từ đầu để học sinh có thể dễ dàng nhận việc chuyển đổi ngôn ngữ từ ngôn ngữ thuật toán sang ngôn ngữ lập trình Begin clrscr ; Write('Nhap so phan tu mang n = ') ; Readln(n) ; For i := to n Begin Write('A[',i,'] = ') ; readln(A[i]) ; End ; For j := n downto Begin For i := to j-1 If A[i] > A[i+1] then Begin tg := A[i] ; A[i] := A[i+1] ; A[i+1] := tg ; End ; End ; Writeln('day sau sap xep : ') ; For i := to n write(a[i]:8) ; readln ; End Writeln('chi so ptu lon nhat : ',csmax); readln ; End Ví dụ : Tìm kiếm nhị phân - Input : Dãy số A1, A2,………, AN đã xếp tăng dần - Output : Có hay không số i Lop11.com (8) mà A[i] = k thông báo không tìm thấy - Ý tưởng : Xem lại thuật toán tìm kiếm nhị phân SGK lớp 10 Chương trình sau : Program sapxep ; Uses crt ; var A : Array[1 250] of integer ; n,i,k : Integer ; dau,cuoi,giua : Integer ; TK : boolean ; GV : Đưa ví dụ, nhắc lại ý tưởng Begin thuật toán clrscr ; HS : Xây dựng thuật toán để giải bài Write('Nhap so ptu mang n = ') ; toán (thuật toán đã học lớp 10) Readln(n) ; For i := to n Begin GV soạn sẵn chương trình và cho học Write('A[',i,'] = ') ; sinh quan sát chương trình readln(A[i]) ; End ; Write('nhap so can tim k : ') ; Readln(k); Nếu có thời gian, giáo viên tiến dau := ; cuoi := n ; hành soạn chương trình từ đầu để học TK := false ; sinh có thể dễ dàng nhận việc chuyển while (dau <= cuoi) and Not TK Do đổi ngôn ngữ từ ngôn ngữ thuật toán Begin sang ngôn ngữ lập trình giua := (dau+cuoi) div ; If A[giua] = k then TK := true Else If a[giua]>k then cuoi := giua - Else dau := giua + ; End ; If TK then write('Chi so la : ',giua) else write(' Khong tim thay '); readln ; End Kiểu mảng chiều : Lop11.com (9) - Mảng hai chiều là bảng các phần tử cùng kiểu Với mảng hai chiều ta quan tâm đến : Hoạt đông 2: - Tên kiểu mảng hai chiều - Số lượng phần tử chiều mảng - Kiểu liệu phần tử - Cách khai báo biến mảng hai chiều - Cách truy cập vào phần tử mảng a> Khai báo mảng hai chiều - Trong ngôn ngữ Pascal, mảnh hai chiều khai báo sau : Cách : Khai báo trực tiếp GV : Quay lại ví dụ lưu trữ liệu dạng bảng để các em nhận nhu cầu Var : <Tên mảng> : Array[kiểu số phải sử dụng mảng chiều lập dòng, kiểu số cột] of < kiểu phần tử> trình ; Cách : Khai báo gián tiếp thông qua khai báo kiểu mảng Type <Tên kiểu mảng> = Array[kiểu số dòng, kiểu số cột] of <kiểu phần tử> ; Var <Tên mảng> : <Tên kiểu mảng> ; Ví dụ : Khai báo biến mảng thông qua kiểu GV : Khai báo cách nào tiện lợi mảng : (tương tự mảng chiều) ? Type ArrayInteger = Array[1 10,1 15] of HS : Thường thì học sinh chọn cách Integer ; ArrayReal=Array[1 50,1 100] of Real ; Lop11.com (10) GV : Tùy theo trường hợp cụ thể Var A : ArrayInteger ; B : ArrayReal ; thường thì cách hay dùng Khai báo mảng trực tiếp : Var A : Array[1 10,1 15] og Integer ; B : Aarray[1 50,1 100] og Real ; Cách truy cập vào phần tử mảng hai chiều : <Tên mảng>[chỉ số dòng, số cột] Ví dụ : A[1,3], B[23,66],…… b> Một số ví dụ : GV : Khi khai báo mảng chiều cần chú Ví dụ : ý điều gì ? Chương trình sau đưa màn hình bảng HS : Tìm câu trả lời, GV gợi ý để các cửu chương em số mảng, số dòng, số cột và kiểu phần tử Program cuuchuong; Uses crt ; mảng var A : Array[1 9,1 9] of Integer ; i, j : Byte ; GV : Gọi số học sinh lên khai báo số biến mảng chiều theo yêu cầu giáo viên Minh họa hình ảnh mảng chiều và số các phần tử mảng hai chiều cách viết truy cập phần tử mảng Begin Clrscr ; Writeln('Bang cuu chuong -> : '); Writeln ; For i := to For j := to A[i,j] := i*j ; For i := to Begin For j := to Write(a[i,j]:4); Writeln ; Writeln ; End ; Readln ; End GV cho học sinh quan sát chương trình Ví dụ : Lop11.com (11) và giải thích các lệnh chương trình, Chương trình sau nhập vào mảng chú ý sâu vào các lệnh lặp để các em chiều và số nguyên k, sau đó in các nhận thường thì ta sử dụng vòng lặp phần tử có giá trị nhỏ k mảng for - để duyệt qua các phần tử mảng GV nên soạn sẵn chương trình và cho các em quan sát chương trình, và chạy thử chương trình trên máy để các em tiện theo dõi Program Timkiem; Uses crt; var A : Array[1 100,1 100] of Integer; i,j,n,m : Byte ; k,d : integer ; Begin Clrscr ; Write(' Nhap so dong, so cot cua mang : ') ; Readln(m,n); For i := to m For j := to n Begin Write(' A[',i,',',j,'] = '); Readln(A[i,j]); End ; Writeln(' Mang vua nhap vao la : '); Writeln; For i := to m Begin For j := to n Write(a[i,j]:4) ; Writeln; Writeln; End; Write(' Nhap gia tri k : '); Readln(k) ; d := ; For i := to m For j := to n If a[i,j] < k then Lop11.com (12) Begin write('So nho hon ',k,' la '); write(a[i,j]:8); d := d+1 ; End ; If d = then Write('Khong co ptu nao nho hon ',k); readln; End Cñng cè - C¸ch t¹o kiÓu m¶ng mét chiÒu vµ c¸ch khai b¸o biÕn - Tham chiếu đến phần tử - T¹o kiÓu d÷ liÖu m¶ng chiÒu - Khai b¸o biÕn m¶ng mét chiÒu DÆn dß - Về nhà học lại nội dung đã học và đọc trước bài Lop11.com (13) Ngµy so¹n:……./…./2009 Ngµy gi¶ng:… /… /2009 TiÕt 25, 26: Bµi tËp vµ thùc hµnh I Môc tiªu KiÕn thøc - Cñng cè l¹i c¸c kiÕn thøc c¬ b¶n vÒ kiÓu d÷ liÖu m¶ng KÜ n¨ng - N©ng cao kÜ n¨ng sö dông mét sè lÖnh kiÓu d÷ liÖu m¶ng mét chiÒu lËp tr×nh, cô thÓ: + Khai b¸o kiÓu d÷ liÖu m¶ng mét chiÒu + NhËp/xuÊt d÷ liÖu cho m¶ng + Duyệt qua tất các phần tử mảng để xử lí phần tử - Biết giải số bài toán thường gặp: + 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, nhá nhÊt Thái độ - Học sinh có thái độ học tập tích cực, tư tron thực hành II chuÈn bÞ cña GV vµ HS ChuÈn bÞ cña gi¸o viªn - Gi¸o ¸n, SGK, SGV, SBT, phßng thùc hµnh ChuÈn bÞ cña häc sinh - Vë nghi, SGK,SBT III Phương pháp dạy học - Hướng dẫn IV TiÕn tr×nh bµi häc ổn định tổ chức - KiÓm tra sÜ sè KiÓm tra bµi cò - Lång vµo bµi Bµi míi Hoạt động GV và HS Néi dung Hoạt động Bµi 1: T¹o m¶ng A gåm n (n≤ 100) sè GV: Ph©n tÝch néi dung bµi vµ nguyên, số có trị tuyệt đối không vuợt hướng dẫn học sinh thực trên qu¸ 300 TÝnh tæng c¸c phÇn tö cña m¶ng m¸y là bội số số nguyên dương không HS: Thùc hiÖn trªn m¸y cho trước a, Chương trình GV: Hái: Khai b¸o Uses CRT; cã ý Program sum1; nghÜa g×? Uses crt; HS: Tr¶ lêi Const nmax=100; Lop11.com (14) GV: NhËn xÐt vµ chuÈn l¹i kiÕn thøc - Khai báo chương trình Crt để sử dông ®­îc thñ tôc Clrscr; GV: Hái: Myarray lµ tªn kiÓu d÷ liÖu hay tªn biÕn? HS: Tr¶ lêi GV: NhËn xÐt vµ chuÈn l¹i kiÕn thøc - Tªn kiÓu d÷ liÖu GV: Hái: Vai trß cña nmax vµ n cã g× kh¸c nhau? HS: Tr¶ lêi GV: NhËn xÐt vµ chuÈn l¹i kiÕn thøc - nmax lµ sè phÇn tö tèi ®a cã thÓ chøa cña biÕn m¶ng a n lµ sè phÇn tö thùc tÕ cña a GV: Hái: LÖnh For i:= to n Write(A[i]:5); cã ý nghÜa g×? HS: Tr¶ lêi GV: NhËn xÐt vµ chuÈn kiÕn thøc - In mµn h×nh gi¸ trÞ cña tõng phÇn tö m¶ng a GV: Hái: ý nghÜa cña biÕn Posi vµ neg? HS: Tr¶ lêi GV: NhËn xÐt vµ chuÈn l¹i kiÕn thøc - Dùng để lưu số lượng đếm GV: Hái: Chøc n¨ng cña lÖnh if A[i]>0 then posi:= posi:= posi+1 else if A [i]<0 then neg:= neg+1; HS: Tr¶ lêi GV: NhËn xÐt vµ chuÈn l¹i kiÕn thøc - ChØ vÞ trÝ cÇn thªm vµo chương trình Hoạt động Type MyArray=array[1 max] 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(300)random(300); For i:= to n Write (A[i]:5); Writeln; Write(‘Nhap k=’); Readln(k); S:=0; For i:= to n If a[i] mod k=0 then s:= s+a[i]; Write(‘Tong can tinh la’.s); Readln; End b H·y ®­a c¸c c©u lÖnh sau ®©y vµo nh÷ng vị trí cần thiết nhằm sửa đổi chương trình a, để có trương trình đưa số các số dương và số các số âm mảng posi, neg: integer; posi:= 0; neg:= 0; if A[i]>0 then posi:= posi:= posi+1 else if A [i]<0 then neg:= neg+1; Writeln (posi:4, neg:4); Bµi Viết chương trình tìm phần tử có giá trị lớn nhÊt cña m¶ng vµ ®­a mµn h×nh chØ sè GV: Ph©n tÝch néi dung bµi vµ hướng dẫn học sinh thực trên máy và giá trị phần tử tìm Nếu có HS: Thùc hiÖn trªn m¸y nhiÒu phÇn tö cã cïng GTLN th× ®­a phÇn tö cã chØ sè nhá nhÊt a, Chương trình: program MaxElement; const Nmax = 100; type MyArray = array[1…Nmax] of integer; var A: MyArray; GV: Hướng dẫn học sinh gõ chương n, i, j: integer; Lop11.com (15) tr×nh trªn m¸y HS: Thùc hiÖn c¸c thao t¸c trªn m¸y Begin Write(‘Nhap so luong phan tu cua day so, N=’); Readln (N); GV: ViÕt c©u lÖnh A[i]:= For i:= to n random(300)-random(300); thay cho Begin c©u lÖnh Write (‘Phan tu thu ‘,i,’=’); Write (‘Phan tu thu, i,’ =’); Readln(A[i]); Readln(A[i]); HS: Quan s¸t vµ thùc hiÖn End; J:=1; For i:= to n If A[i]>A[j] then j:=i; Write (‘Chi so: ‘,j’ gia tri:’ A[i]:4); Readln; End Cñng cè - Nh¾c l¹i c¸c thao t¸c chÝnh DÆn dß - Về nhà xem lại bài thực hành và đọc trước bài thực hành Lop11.com (16) Ngµy so¹n:……./…./2009 Ngµy gi¶ng:… /… /2009 TiÕt 27, 28: Bµi tËp vµ thùc hµnh I Môc tiªu KiÕn thøc - Cñng cè l¹i c¸c kiÕn thøc c¬ b¶n lËp tr×nh víi kiÓu d÷ liÖu m¶ng - Làm quen với các thuật toán xếp đơn giản KÜ n¨ng - 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 và đề xuất cách giải bài toán cho chương tr×nh ch¹y nhanh h¬n Thái độ - Học sinh có thái độ học tập tích cực, tư tron thực hành II chuÈn bÞ cña GV vµ HS ChuÈn bÞ cña gi¸o viªn - Gi¸o ¸n, SGK, SGV, SBT, phßng thùc hµnh ChuÈn bÞ cña häc sinh - Vë nghi, SGK,SBT III Phương pháp dạy học - Hướng dẫn IV TiÕn tr×nh bµi häc ổn định tổ chức - KiÓm tra sÜ sè KiÓm tra bµi cò - Lång vµo bµi Bµi míi Hoạt động GV và HS Néi dung Hoạt động Bài a, Hãy tìm hiểu và chạy thử chương GV: Yêu cầu học sinh soạn chương trình trình thực thuật toán xếp dãy số vµo m¸y tÝnh nguyên thuật toán trao đổi với các giá HS: Soạn chương trình vào máy tính trị khác n đây - Chương trình minh hoạ Uses CRT; Const nmax=250; GV: Yêu cầu học sinh chạy thử chương Type arrint=array[1 max] of integer; tr×nh Var n, i, j, y: integer; HS: Chạy thử chương trình a: arrint; GV: Hái: Vai trß cña biÕn i, j Begin chương trình Clrscr; HS: Tr¶ lêi Randomize; Lop11.com (17) - BiÕn i, j dïng lµm chØ sè GV: Hái: Mçi vßng lÆp For chương trình sếp có ý nghĩa gì? HS: Tr¶ lêi GV: NhËn xÐt vµ chuÈn l¹i kiÕn thøc - Mçi vßng lÆp For øng víi mçi phép duyệt 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 For i:= to j-1 If a[i]>a[i+1] then GV: Hỏi: Chương trình làm công việc Begin g×? t:= a[i]; HS: Tr¶ lêi a[i]:=a[i+1] a[i+1]:=t; GV: NhËn xÐt vµ chuÈn l¹i kiÕn thøc - Chương trình xếp và làm theo thứ end; Write(‘Day so sau sap xep’); tù d·y sè kh«ng gi¶m For i:= to n write (a[i]:7); Writeln; Readln; End Hoạt động Bài Chương trình minh hoạ GV: Yªu cÇu häc sinh xem bµi tËp Const nmax=100; SGK trang 66 và sác định liệu vào Type myarray[1…nmax] of integer; HS: Tr¶ lêi Var n, i, j: integer; GV: NhËn xÐt vµ chuÈn l¹i kiÕn thøc a, b:arrint; - Vµo: M¶ng A gåm n phÇn tö Begin - Ra: M¶ng B gåm n phÇn tö Randomize; GV: Hỏi: Trong chương trình phải thực Write(‘Nhap n=’); hiÖn bao nhiªu phÐp céng Readln(n); HS: Tr¶ lêi For i:=1 to n a[i]:=random(300)random(300); GV: NhËn xÐt vµ chuÈn l¹i kiÕn thøc - Ph¶i thùc hiÖn n(n+1)/2 phÐp céng For i:= to n write(a[i]:5); Writeln; For i:= to n Begin GV: Yêu cầu học sinh chạy chương B[i]:=0; tr×nh vµ th«ng b¸o kÕt qu¶ For i:= to n B[i]:=B[i]+A[i]; HS: Chạy chương trình và thông báo kết End; qu¶ For i:= to n write(B[i]:5); Readln; End Cñng cè - Nhắc lại nội dung đã thực hành và giải đáp thắc mắc có DÆn dß - Về nhà làm lại nội dung đã học bài thực hành và đọc trước bài Lop11.com (18) Ngµy so¹n:……./…./2009 Ngµy gi¶ng:… /… /2009 TiÕt 29, 30: Bµi 12: kiÓu x©u I Môc tiªu KiÕn thøc - BiÕt x©u lµ mét d·y ký tù (cã thÓ coi x©u lµ mét m¶ng mét chiÒu) - BiÕt c¸ch khai b¸o x©u, truy cËp phÇn tö cña x©u KÜ n¨ng - Sö dông ®­îc mét sè thñ tôc, hµm th«ng dông vÒ x©u - Cài đặt số chương trình đơn giản có sử dụng xâu Thái độ - Học sinh có thái độ học tập tích cực, tư học tập II chuÈn bÞ cña GV vµ HS ChuÈn bÞ cña gi¸o viªn - Gi¸o ¸n, SGK, SGV, SBT ChuÈn bÞ cña häc sinh - Vë nghi, SGK,SBT III Phương pháp dạy học - Thuyết trình và vấn đáp IV TiÕn tr×nh bµi häc ổn định tổ chức - KiÓm tra sÜ sè KiÓm tra bµi cò - Lång vµo bµi Bµi míi Hoạt động GV và HS Néi dung Hoạt động Một số khái niệm GV: Để lưu trữ và xử lý Họ tên - Xâu là dãy kí tự bảng mã người, các kiểu liệu đã học có đáp ASCII ứng ? - Mỗi kí tự gọi là phần tử xâu - Số lượng kí tự xâu gọi là độ HS: Đưa số phương án dài xâu - Xâu có độ dài gọi là xâu rỗng - Tham chiếu tới phần tử xâu GV: Phân tích các phương án học xác định thông qua số phần tử sinh, từ đó đưa yêu cầu cần sử dụng xâu kiểu : Kiểu xâu - Chỉ số phần tử xâu thường đánh số là - Trong ngôn ngữ Pacal, tham chiếu tới Lop11.com (19) GV: Giới thiệu số khái niệm và thao tác thường dùng làm việc với xâu ký tự lập trình nói chung phần tử thường viết : <Tên biến xâu>[chỉ số] Cách khai báo và xử lí xâu ngôn ngữ Pascal : Khai báo biến xâu : Pascal sử dụng từ khóa STRING để khai GV: Đây là cách khai báo ngôn báo xâu Độ dài tối đa xâu viết ngữ Pascal, các ngôn ngữ khác [ ] sau từ khóa STRING Khai báo có thể có cách khai báo khác sau : Do đó viết chương trình ngôn ngữ nào cần tìm hiểu rõ các đối tượng Var <tên biến> : String[độ dài lớn xâu] ; ngôn ngữ đó Ví dụ : Var Ten : String[10] ; Ho_dem : String[50] ; Que : String ; Chú ý : - Nếu không khai báo độ dài tối đa cho biến xâu kí tự thì độ dài ngầm định xâu là 255 Độ dài tối đa xâu phụ thuộc vào - Độ dài lớn xâu là 255 ký tự ngôn ngữ lập trình, thường là 255 ký tự - Hằng xâu kí tự đặt cặp nháy đơn ‘ ’ Cách viết xâu các ngôn ngữ Các thao tác xử lí xâu khác có khác - Với các xâu kí tự có các phép phép xâu và phép so sánh hai xâu kí tự - Phép ghép xâu : Kí hiệu dấu cộng + Xét ví dụ sau : Có xâu kí tự : Ví dụ : ‘Ha’ + ‘Noi’ cho kết là ‘Ha ‘ nGuyen vaN A ’ Noi’ Phép so sánh : <, <=, >, >=, = , <>, Pascal Hỏi cần có các thao tác gì để chỉnh sửa tự động so sánh từ kí tự từ trái xâu kí tự này ? (cần đưa xâu dạng sang phải ‘Nguyen Van A’) Ví dụ : ‘AB’ < ‘AC’, ‘ABC’ > ‘ABB’, ‘ABC’ <’ABCD’ HS: Đưa ý kiến mình Một số thủ tục chuẩn dùng để xử lí xâu : - Delete(St,vt,n) xóa n kí tự xâu GV: Phân tích ý kiến và gợi ý để các em St vị trí vt nhận cần : - Insert(S1,S1,vt) chèn sâu S1 vào S2 - Xóa bớt số dấu cách vị trí vt S2 - Chuyển chữ hoa chữ thường và - Val(St,x,m) Đổi giá trị xâu St thành ngược lại số ghi giá trị vào biến X, không Lop11.com (20) GV: Đưa số câu hỏi : - Làm biết ký tự là dấu cách ? - Làm để xóa vài kí tự ? - Làm để thêm vào xâu vài kí tự ? - Làm để có chữ in hoa tương ứng với chữ thường - Làm có chữ cái thường tương ứng với chữ hoa ? - Làm biết xâu có bao nhiêu kí tự ? Từ đó đưa các thủ tục chuẩn và hàm chuẩn Pascal thường dùng để xử lí xâu Ứng với thủ tục hàm, giáo viên lấy ví dụ chương trình Pascal cụ thể để các em hiểu ý nghĩa các thủ tục và hàm này Trong môi trường soạn thảo Pascal, giáo viên cần làm chương trình đơn giản có sử dụng các thủ tục hàm này để các em theo dõi Hoạt động Giáo viên soạn sẵn các ví dụ này để tiện cho học sinh theo dõi trên màn hình việc chạy thử và không làm thời gian ngồi viết chương trình đổi thì vị trí gây lỗi ghi m, đổi thành công thì m = - Str(X,St) chuyển số X thành xâu kí tự lưu St Một số hàm chuẩn : - Copy(St,vt,n) chép từ xâu St n kí tự từ vị trí vt - Pos(S1,S2) tìm vị trí xuất đầu tiên S1 S2 - Length(St) : cho độ dài xâu St - Upcase(ch) : cho chữ cái viết hoa tương ứng với chữ thường ch - CHR(X) : cho kí tự có mã X bảng mã ASCII - Ord(ch) : cho mã kí tự ch bảng mã Một số ví dụ : VD : Program vd1 ; Uses crt ; Var s1,s2 : String ; Với ví dụ, giáo viên sâu vào câu Begin Clrscr ; lệnh trực tiếp đáp ứng yêu cầu ví dụ, Write('Nhap xau thu : ') ; các em tiếp thu nhanh Readln(s1) ; Write('Nhap xau thu : ') ; Readln(s2) ; Ví dụ : Nhập xâu, viết màn hình If length(s1) > Length(s2) then xâu dài Write(s1) else Write(s2); Readln ; End Lop11.com (21)

Ngày đăng: 01/04/2021, 22:35

w