Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 31 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
31
Dung lượng
331 KB
Nội dung
Ngày soạn: ./01/2011 Ngày giảng: ./ /2011 Lớp: 11B1 Sĩ số: Tiết 19: bài tập và thực hành 2 (1/2) I - Mục tiêu: 1. Kiến thức: - Củng cố thêm về cấu trúc rẽ nhánh; - Tiếp tục 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: tạo cấu trúc lặp, giải bài toán tìm tổng của dãy số; 3. Thái độ: có hành vi thái độ đúng đắn về những vấn đề đạo đức liên quan đến việc sử dụng MT II. Chuẩn bị của thầy và trò: 1. Giáo viên: SGK, SGV, Giáo án, phiếu HT, Ví dụ su tầm cho chơng trình TP về tổ chức lặp. 2. Học sinh: SGK, vở ghi. II - Tiến trình bài dạy: 1. Kiểm tra bài cũ: Không 2. Nội dung bài giảng: Hoạt động của Giáo viên và Học sinh Nội dung kiến thức GV hớng dẫn và giải đáp các thắc mắc của hs về một số BT ở nhà. - Giáo viên chia nhóm HS - Thảo luận tại từng nhóm (4 nhóm) GV yêu cầu HS nhóm 1 trả lời câu hỏi 1- SGK/50 Hãy cho biết sự giống và khác nhau của hai dạng câu lệnh IF - THEN -GV yêu cầu các nhóm 2,3,4 lắng nghe và nhận xét câu trả lời của nhóm 1. - Giáo viên nhận xét, đánh giá, chốt lại (có thể cho điểm). * Chữa bài tập Câu hỏi 1: + Giống nhau: Cùng là lệnh tổ chức rẽ nhánh, khi gặp một điều kiện nào đó hì chọn lựa thực hiện thao tác thích hợp. + Khác nhau: Trong câu lệnh IF - THEN dạng thiếu, nếu điều kiện không đúng thì thoát khỏi tổ chức rẽ nhánh, thực hiện câu lệnh tiếp theo của chơng trình; còn trong câu lệnh IF - THEN dạng đủ, nếu điều kiện không đúng thì thực hiện lệnh thứ hai, sau đó mới thoát khỏi tổ chức rẽ nhánh, thực hiện câu lệnh tiếp theo của ch- ơng trình. GV yêu cầu HS nhóm 2 trả lời câu hỏi 2- SGK/50 Câu lệnh ghép là gì? Tại sao phải có câu lệnh ghép? - GV yêu cầu các nhóm 1,3,4 lắng nghe và nhận xét câu trả lời của nhóm 2. - Giáo viên nhận xét, đánh giá, chốt lại (có thể cho điểm). Câu hỏi 2: (SGK/50) Câu lệnh ghép là một câu lệnh đợc hợp thành từ nhiều câu lệnh thành phần. Câu lệnh ghép nhằm thực hiện thao tác gồm nhiều thao tác thành phần. Mỗi thao tác thành phần tơng ứng với một câu lệnh thành phần hoặc câu lệnh ghép khác. Về mặt NNLT, câu lệnh ghép là một trong các yếu tố để tạo khả năng chơng trình có cấu trúc. GV yêu cầu HS nhóm 3 trả lời câu hỏi 3- SGK/51 Có thể thay thế đoạn chơng trình chứa câu lệnh FOR - DO bằng đoạn chơng trình chứa câu lệnh WHILE - DO đợc không? - GV yêu cầu các nhóm 1,2,4 lắng nghe và nhận xét câu trả lời của nhóm 3. - Giáo viên nhận xét, đánh giá, chốt lại (có thể cho điểm). Câu hỏi 3: (SGK-51) Có thể thay thế đoạn chơng trình chứa câu lệnh FOR - DO bằng đoạn chơng trình chứa câu lệnh WHILE - DO nh sau: i:= <giá trị đầu>; While < i <=giá trị cuối> do Begin <câu lệnh>; <tăng i một đơn vị>; end; GV yêu cầu HS đọc đề bài 4 trong SGK/51 Bài tập 4: SGK/51 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; 1 nếu x 2 +y 2 1 nếu x 2 +y 2 > 1 và y x nếu x 2 +y 2 >1 và y<x Hoạt động của Giáo viên và Học sinh Nội dung kiến thức a) + + = 5,0 22 yx yx z GV yêu cầu HS nhóm 4 và các nhóm 1,2,3 làm BT. Gọi đại diện nhóm 4 lên trình bày. Các nhóm khác quan sát, nhận xét. GV: khẳng định lại. GV yêu cầu HS đọc đề bài 4 trong SGK/51 b) + + = yx yx z |||| GV yêu cầu HS nhóm 1 và các nhóm 2,3,4 làm BT. Gọi đại diện nhóm 1 lên trình bày. Các nhóm khác quan sát, nhận xét. GV: khẳng định lại. Bài tập 4: SGK/51 b) if (sqr(x-a)+sqr(y-b) < sqr(z) then z:= abs(x)+abs(y) Else z:=x+y; GV yêu cầu HS đọc đề bài 5 trong SGK/51 Lập trình tính: a) = + = 50 1 1 n n n Y GV yêu cầu HS nhóm 2 và các nhóm 1,3,4 làm BT. Gọi đại diện nhóm 2 lên trình bày. Các nhóm khác quan sát, nhận xét GV: khẳng định lại. Bài tập 5: SGK/51 a) uses CRT; Var y: real; N: Byte; Begin Clrscr; y:=0; For n:=1 to 50 do y:= y+n/(n+1); Writeln(y:10: 6); Readln; End. GV yêu cầu HS đọc đề bài 5 trong SGK/51 b) GV gợi ý HS đặt giá trị ban đầu/giá trị khởi tạo cho các biến (Cách thức tiến hành tơng tự khi giải bài 5a nhng nên nhấn mạnh về lí do chọn lặp có số lần lặp không biết trớc). b) e(n) = .,1 ! 1 . !2 1 !1 1 1 +++++ n cho đến khi 6 102 ! 1 ì< n Đa giá trị e(n) ra màn hình. Bài tập 5: SGK/51 b) uses CRT; Var N: longint; e,sh: Real; Begin Clrscr; 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 cua e(n) la: ',e :10:6); Readln; End. 3. Củng cố: - Học sinh nắm vững kiến thức đã học trong bài lý thuyết, áp dụng vào bài luyện tập. - Giáo viên tóm tắt nội dung về tổ chức rẽ nhánh và tổ chức lặp. 4. Hớng dẫn học ở nhà: BTVN: - Học sinh làm lại các câu hỏi và bài tập trong bài. - Chuẩn bị và làm bài tập 6,7, 8 - SGK/51 , Ngày tháng năm 2011 2 nếu điểm (x,y) nằm trong đường tròn bán kính r (r>0), tâm (a;b) trong trường hợp còn lại Ngày soạn: ./ ./2011 Ngày giảng: ./ /2011 Lớp: 11B1 Sĩ số: Ngày giảng: ./ /2011 Lớp: 11B2 Sĩ số: Ngày giảng: ./ /2011 Lớp: 11B7 Sĩ số: Tiết 20: bài tập và thực hành 2 (2/2) I - Mục tiêu: 1. Kiến thức: - Củng cố thêm về cấu trúc rẽ nhánh; - Tiếp tục 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: tạo cấu trúc lặp, giải bài toán tìm tổng của dãy số; 3 Thái độ: có hành vi thái độ đúng đắn về những vấn đề đạo đức liên quan đến việc sử dụng MT II. Chuẩn bị của thầy và trò: 1. Giáo viên: SGK, SGV, Giáo án, phiếu HT, Ví dụ su tầm cho chơng trình TP về tổ chức lặp. 2. Học sinh: SGK, vở ghi. III - Tiến trình bài giảng: 1. Kiểm tra bài cũ: Không 2. Nội dung bài giảng: Hoạt động của Giáo viên và Học sinh Nội dung kiến thức GV yêu cầu HS đọc đề bài 6 trong SGK/51 Lập trình để giải bài toán cổ sau: Vừa gà vừa chó Bó lại cho tròn Ba mơi sáu con Một trăm chân chẵn. Hỏi có bao nhiêu con mỗi loại? GV: Gợi ý HS tìm Input, Output của bài toán, chọn biến, kiểu DL, tìm công thức liên hệ giữa các biến và hớng dẫn viết chơng trình. Bài tập 6: SGK/51: uses CRT; Var ga, cho: Integer; BEGIN Clrscr; For cho:=1 to 24 do Begin ga:=36 - cho; If ga+2 * cho =50 then writeln('Ga co:',ga,'con',' Cho co: ',cho,' con'); End; Readln; END. GV yêu cầu HS đọc đề bài 7 trong SGK/51 NHập từ bàn phím tuổi của cha và con (hiện tại tuổi của cha lớn hơn 2 lần tuổi của con và tuổi cha hơn tuổi con ít nhất là 25). Đa ra màn hình câu trả lời cho câu hỏi "Bao nhiêu năm nẵa thì tuổi cha gấp đôi tuổi con ?" Bài tập 7: SGK/51 Uses CRT; Var tuoicha,tuoicon,nam: word; BEGIN Clrscr; Write('Nhap tuoi cha va con: '); write('(tuoicha>2 * tuoicon va tuoicha - tuoicon>=25)'); Readln(tuoicha,tuoicon); nam:=0; While (tuoicha<>2 * tuoicon) do begin tuoicha:=tuoicha+1; tuoicon:=tuoicon+1; nam:=nam+1; end; writeln('Sau',nam,'nam tuoi cha gap 2tuoi con'); Readln; END. GV yêu cầu HS đọc đề bài 8 trong SGK/51 Bài tập 8: SGK/51 3 Hoạt động của Giáo viên và Học sinh Nội dung kiến thức Một ngời gửi tiết kiệm không kỳ hạn với số tiền A đồng với lãi suất 0,3% mỗi tháng. Hỏi sau bao nhiêu tháng, ngời đó rút hết tiền thì sẽ nhận đợc số tiền ít nhất là B đồng? Biết rằng với việc gửi tiết kiệm không kỳ hạn thì lãi không đợc cộng vào vốn. GV hớng dẫn HS cách làm BT. uses CRT; const laisuat = 0.003; Var tiengui, tienrutve,luu: Real; thang: integer; BEGIN Clrscr; write(' Nhap vao so tien gui : '); readln(tiengui); luu:=tiengui; write('So tien co khi rut ve : '); readln(tienrutve); thang:=0; while tiengui<tienrutve do begin tiengui:= tiengui + luu * laisuat; thang:=thang+1; end; write('Gui ', luu:10:4,' dong', 'sau ', thang, ' thang '); writeln(' se nhan duoc so tien ', tienrutve:10:4,' dong'); readln END. 3. Củng cố: - Học sinh nắm vững kiến thức đã học trong bài lý thuyết, áp dụng vào bài luyện tập. - Giáo viên tóm tắt nội dung về tổ chức rẽ nhánh và tổ chức lặp. 4. Hớng dẫn học ở nhà: BTVN: - Học sinh làm lại các câu hỏi và bài tập trong bài. - Chuẩn bị học và đọc trớc bài kiểu dữ liệu có cấu trúc ở Đ11 - Kiểu mảng. , Ngày tháng năm 2011 4 Ngày soạn: ./ ./2011 Ngày giảng: ./ /2011 Lớp: 11B1 Sĩ số: Ngày giảng: ./ /2011 Lớp: 11B2 Sĩ số: Ngày giảng: ./ /2011 Lớp: 11B7 Sĩ số: Chơng 4: Kiểu dữ liệu có cấu trúc Tiết 21 Đ11 - kiểu mảng (1/4) I - Mục tiêu: 1. Kiến thức: - Kiểu mảng là một kiểu DL có cấu trúc, rất cần thiết và hữu ích trong nhiều chơng trình. - Mảng 1 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 DL mảng một chiều. - Để mô tả mảng 1 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ó (mỗi phần tử của nó có 1 chỉ số). - 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 định danh của một phần tử kiểu mảng 1 chiều xuất hiện trong một chơng trình. - Biết cách viết khai báo mảng đơn giản với chỉ số kiểu miền con của kiểu nguyên. 3. Thái độ: có hành vi thái độ đúng đắn về kiểu dữ liệu có cấu trúc mảng II. Chuẩn bị của thầy và trò: - Giáo viên: SGK, SGV, SBT, Giáo án, ví dụ minh họa su tầm, MTĐT (nếu có). - Học sinh: SGK, SBT, vở ghi. III - Tiến trình bài giảng: 1. Kiểm tra bài cũ: (Không) 2. Nội dung bài giảng: Hoạt động của Giáo viên và Học sinh Nội dung kiến thức Hoạt động 1: Giáo viên: lấy ví dụ về mảng một chiều: Nhập vào nhiệt độ (trung bình) của mỗi ngày trong tuần. Tính và đa ra màn hình nhiệt độ TB của tuần và số lợng ngày trong tuần có nhiệt độ cao hơn nhiệt độ TB của tuần. Program nhietdotuan; Var t1,t2,t3,t4,t5,t6,t7,tb:real; dem:integer; BEGIN CLRSCR; write('Nhap vao nhiet do cua 7 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 do TB cua tuan: ',tb); writeln('so ngay nhiet do cao hon nhiet do TB: ',dem); Readln; END. 1. Kiểu mảng một chiều: - Khái niệm: là dãy hữu hạn các phần tử cùng kiểu đặt sau tên mảng. - Mảng đợc đặt tên và mỗi phần tử của nó có 1 chỉ số. * Để xây dựng và sử dụng kiểu DL mảng 1 chiều, ngời lập trình cần phải xác định những yếu tố sau: - Tên kiểu mảng 1 chiều. - Số lợng phần tử. - Kiểu DL của phần tử. - Cách khai báo biến mảng. - Cách tham chiếu đến từng mảng. a) Khai báo: * Khai báo biến mảng 1 chiều có dạng: + Khai báo trực tiếp biến mảng 1 chiều: VAR <tên biến mảng>:ARRAY[kiểu chỉ số] OF <kiểu phần tử>; + Khai báo gián tiếp biến mảng qua kiểu mảng 1 chiều: 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>; Trong đó: - kiểu chỉ số: thờng là 1 đoạn số nguyên liên 5 Hoạt động của Giáo viên và Học sinh Nội dung kiến thức Gv giảng giải BTVD và nêu cách đặt vấn đề để đa ra câu hỏi về mảng 1 chiều nếu số ngày trong bài là N (N có thể khá lớn) thì giải quyết BT ntn? HS: trả lời. GV đa ra các khai báo liên quan đến DL: - Khai báo kiểu DL: TYPE <tên kiểu>=<kiểu DL>; vd: TYPE hoten=char; - Khai báo biến gián tiếp qua tên kiểu: VAR <tên biến>:<tên kiểu>; vd: VAR HT: hoten; - Khai báo biến trực tiếp: VAR <tên biến>:<kiểu DL>; vd: VAR hoten: char; GV đa ra 2 khai báo mảng 1 chiều và yêu cầu hs lấy ví dụ. tục có dạng n1 n2 với n1 và 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 các phần tử mảng. Tham chiếu tới phần tử của mảng 1 chiều đợc xác định bởi tên mảng cùng với chỉ số, đợc viết trong cặp ngoặc [ ]. Ví dụ: hocsinh[20]; tham chiếu tới học sinh thứ 20. Hoạt động 2: Gv Hớng dẫn và giảng giải hs làm: BT ví dụ: kiểu mảng một chiều - bài tập tính nhiệt độ N ngày. SGK - 54 Giáo viên đa ra một số cách khai báo kiểu mảng một chiều hợp lệ và không hợp lệ cho Hs quan sát và lựa chọn cách khai báo đúng: TYPE a1= array[-100 200] of real; mang1: array[10 50] of integer; arrayInt = array[-100 0] of Integer; arrayBoolean= array[-n+1 n+1] of boolean; * Một số ví dụ: Ví dụ về mảng 1 chiều: Chơng trình tính nhiệt độ tuần ở mục 1- kiểu mảng một chiều có thể cài đặt nh sau: Program Tinh_nhiet_do_N_ngay; const Max=366; type abc=array[1 Max] OF Real; Var Nhietdo: abc; Dem,i,N: byte; tong, tb: real; BEGIN WRITE('Nhap so ngay:'); Readln(N); tong:=0; For i:=1 to N do begin write('Nhap nhiet do ngay ',i,': '); readln(nhietdo[i]); tong:=tong+nhietdo[i]; end; tb:=tong/N; dem:=0; For i:=1 to n do if Nhietdo[i] > tb then dem:=dem+1; writeln('Nhiet do trung binh N ngay: ',tb:6:2); writeln(' so ngay co nhiet do cao hon nhiet do trung binh: ',dem); readln; END. 3. Củng cố: - Tóm tắt lại các kiến thức đã học trong bài. - Câu lệnh về kiểu mảng 1 chiều: cách khai báo biến của mảng một chiều (ở 2 dạng: trực tiếp và gián tiếp); - Vận dụng lí thuyết làm bài tập hoặc ra các câu hỏi trắc nghiệm thông tin về các dạng khai báo của mảng 1 chiều. Lấy các ví dụ Đúng và Sai để HS phân biệt, giải thích câu lệnh 4. Hớng dẫn học ở nhà: BTVN: - Trả lời các câu hỏi 1 đến 4 trong SGK /79; - Yêu cầu HS chuẩn bị tiết học sau bằng cách: giao nhiệm vụ cho Hs ôn lại 3 thuật toán đã học ở lớp 10 (Tìm giá trị lớn nhất của một dãy số nguyên; sắp xếp bằng tráo đổi và tìm kiếm nhị phân ở Đ 4 - Bài toán và thuật toán SGK Tin học lớp 10) , Ngày tháng năm 2011 6 Ngày soạn: ./ ./2011 Ngày giảng: ./ /2011 Lớp: 11B1 Sĩ số: Ngày giảng: ./ /2011 Lớp: 11B2 Sĩ số: Ngày giảng: ./ /2011 Lớp: 11B7 Sĩ số: Tiết 22 Đ11 - kiểu mảng (2/4) I - Mục tiêu: 1. Kiến thức: Một số ví dụ về kiểu mảng một chiều (mục 1b của Đ11), cách sử dụng mảng 1 chiều trong chơng trình thể hiện các thuật toán cơ bản về tìm kiếm và sắp xếp; - Duyệt tuần tự để tìm phần tử lớn nhất của dãy số nguyên; - Sắp xếp dãy số nguyên bằng tráo đổi; - Tìm một số hạng trong một dãy số nguyên tăng bằng thuật toán tìm kiếm nhị phân. - Củng cố và làm HS hiểu sâu sắc hơn những thuật toán tìm kiếm, sắp xếp cơ bản mà HS đã đợc học ở lớp 10. - Minh họa, củng cố và nâng cao những hiểu biết của HS trong tiết 1 về mảng 1 chiều - Hình thành kĩ năng cơ bản về sử dụng kiểu mảng trong cài đặt chơng trình. 2. Kỹ năng: xây dựng cấu trúc, cách khai báo, cách tham chiếu một phần tử và ích lợi của kiểu dữ liệu mảng). 3. Thái độ: có hành vi thái độ đúng đắn về kiểu dữ liệu có cấu trúc mảng II. Chuẩn bị của thầy và trò: 1. Giáo viên: SGK, SGV, SBT, Giáo án, ví dụ minh họa su tầm, MTĐT (nếu có). 2. Học sinh: SGK, SBT, vở ghi. III - Tiến trình bài giảng: 1. Kiểm tra bài cũ: Hãy nêu cách khai báo biến mảng một chiều? Nêu ví dụ minh họa? 2. Nội dung bài giảng: Hoạt động của Giáo viên và Học sinh Nội dung kiến thức Hoạt động 1: - Nh đã yêu cầu của BTVN tiết trớc; GV yêu cầu HS phát biểu và nêu ra ý tởng các bài toán: Tìm giá trị lớn nhất của một dãy số nguyên; sắp xếp bằng tráo đổi và tìm kiếm nhị phân. - Mặc dù các bài toán này đã đợc biết trớc ở lớp 10, gv vẫn cần làm rõ phát biểu bài toán qua việc xác định input và Output. Gv có thể hỏi và giải thích thêm để giúp cho HS hiểu, xác định đúng yêu cầu của bài toán. - Hs cần nắm đợc thuật toán trớc khi đợc giáo viên hớng dẫn xem xét (hay tham gia viết) chơng trình cài đặt. * Gv yêu cầu HS đọc SGK ví dụ 1 về Tìm phần tử lớn nhất của dãy số nguyên /56 - Dùng một mảng có kiểu phần tử là nguyên để biểu diễn 1 dãy hữu hạn số nguyên và cách khai báo mảng trong Pascal. 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. Input: Số nguyên dơng N (N 250) và dãy N số nguyên a 1 , . a N , mỗi số đều không vợt quá 500. Output: Chỉ số và giá trị lớn nhất Max của dãy số đã cho (nếu nhiều phần tử lớn nhất chỉ cần đa ra một trong số chúng). Thuật toán: 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 rồi kết thúc; B4. B4.1: Nếu a i > Max thì Max a i ; B4.2: i i + 1 rồi quay lại B3; Chơng trình thực hiện việc duyệt tuần tự các phần tử để tìm ra số lớn nhất của dãy số nguyên: SGK/56-57. Program TIMMAX; uses CRT; Const Nmax=250; type daynguyen = array[1 Nmax] of integer; var N, i, max, csmax: integer; 7 Hoạt động của Giáo viên và Học sinh Nội dung kiến thức - Câu lệnh For - do thứ nhất trong chơng trình thể hiện 1 nhiệm vụ trong B1 của thuật toán, dùng để nhập các phần tử của mảng. Số phần tử thực sự của mảng do ngời chạy chơng trình nhập vào bởi câu lệnh ngay trớc câu lệnh for - do này. - Câu lệnh for - do thứ hai trong chơng trình thể hiện vòng lặp (gồm B3 và B4 trong thuật toán), dùng để duyệt tuần tự từng phần tử trong mảng lọc lấy phần tử tạm thời là lớn nhất (trong các phần tử đã duyệt qua). - GV cần rèn luyện cho HS thuần thục cách tham chiếu đến 1 phần tử của mảng 1 chiều qua tên mảng và chỉ số của phần tử đó. - Mỗi phần tử của mảng h vậy đợc xử lí nh một biến kiểu nguyên. - So với bài toán phát biểu ở lớp 10, bài toán này có thêm y/cầu cho biết chỉ số của phần tử lớn nhất và nếu có nhiều phần tử lớn nhất thì chỉ cần đa ra 1 trong các chỉ số (bởi vậy chơng trình có thêm chỉ số csmax để ghi nhận chỉ số của phần tử đạt giá trị lớn nhất tìm đợc Max trong chơng trình). a: daynguyen; BEGIN clrscr; write('Nhap so luong phan tu cua day so, N = '); 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 phan tu max: ',Max); writeln('Chi so cua phan tu max: ', csmax); readln END. Hoạt động 2: - Giáo viên ôn lại thuật toán và kết hợp với ví dụ mô phỏng để tạo điều kiện HS hiểu chơng trình. - Khái niệm lợt: sau lợt (lần) duyệt thứ nhất giá trị lớn nhất xếp đúng vị trí là ở cuối dãy. Tơng tự, sau lợt 2, giá trị lớn thứ 2 đợc xếp ở vị trí sát cuối . sau mỗi lợt có ít nhất 1 số hạng đã xếp đúng vị trí. HS cần hiểu cụ thể, trong thuật toán phải thực hiện bao nhiêu lợt, mỗi lợt thực hiện trên đoạn nào (từ đâu đến đâu) của dãy số? Giá trị của j chính là chỉ số phần tử cuối trong đoạn đợc duyệt của lợt. Tạo điều kiện cho HS hiểu mục đích của câu lệnh for j:=N downto 2 do với biến đếm j chạy từ N về 2. - Mỗi lợt bao gồm việc thực hiện một số thao tác: so sánh một phần tử với phần tử đứng ngay sau nó để xử lí, bắt đầu từ phần tử đầu tiên trong dãy đến phần tử thứ j. Thao tác so sánh để quyết định xử lí (tráo đổi 2 phần tử) đợc lặp một số lần. Tạo đk cho Hs hiểu mục đích của câu lệnh lặp mà chơng trình dùng để thể hiện mỗi lợt. for i:= 1 to j-1 do if A[i] > A[i+1] then Begin (* tráo đổi vị trí A[i] và A[i+1] *) t:= A[i]; A[i]:=A[i+1]; A[i+1]:= t; 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 (N 250) và dãy A gồm N số nguyên dơng a 1 , a 2 , . a N , mỗi số đều không vợt quá 500. Output: Dãy số A đợc sắp xếp thành dãy không giảm. Thuật toán: B1: Nhập N và 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 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 Sapxep; uses CRT; Const Nmax=250; type daynguyen = array[1 Nmax] of integer; var N, i, j, t: integer; a: daynguyen; BEGIN clrscr; 8 Hoạt động của Giáo viên và Học sinh Nội dung kiến thức end; - giá trị biến đếm i chính là chỉ số phần tử đợc lấy so sánh với phần tử kề sau nó trong dãy số. Hs cần hiều vì sao cấu trúc lặp này, i chỉ lấy đến j-1 chứ không phải lấy đến j. - Nên bám sát thuật toán để giải thích (hoặc xây dựng) những đoạn câu lệnh tơng ứng trong chơng trình. - Gv: có thể gợi ý Hs cách sắp xếp lại dãy số thành dãy không tăng. write('Nhap so luong phan tu cua day so, N = '); readln(N); For i:=1 to N do (* Nhap cac phan tu *) Begin write('phan tu thu ',i,' = '); readln(a[i]); end; For j := N downto 2 do For i := 1 to j - 1 do If a[i] > a[i + 1] then Begin ( * trao doi a[i] va a[i + 1] *) t := a[i]; a[i] := a[i+1]; a[i+1] := t; end; writeln('Day so duoc sap xep la: '); For i := 1 to N do write(a[i]: 3); readln END. 3. Củng cố: Giáo viên: - Tóm tắt lại các kiến thức đã học trong bài. - Không thể nhập hay xuất giá trị của một biến mảng một chiều nh nhập hay xuất một giá trị của biến có kiểu DL chuẩn mà phải nhập hay xuất cho từng phần tử của mảng. - Do mảng là dãy các phần tử đợc đánh số bởi các số nguyên liên tiếp nên việc thực hiện các thao tác nào đó (nhập, xuất hay xử lí) trên dãy các phần tử của mảng thờng gắn với câu lệnh for - do. - Các thao tác nhập, xuất hay xử lý mỗi phần tử của mảng phải tuân theo quy định kiểu phần tử của mảng. - Khai báo kiểu mảng cần xác định kích thớc của mảng. Tuy nhiên, trên thực tế có nhiều trờng hợp số phần tử chứa DL thực sự có ý nghĩa đối với bài toán đang giải quyết nhỏ hơn số lợng phần tử của mảng. 4. Hớng dẫn học ở nhà: BTVN: - Làm các bài tập 5 - 6 trong SGK /79; Hớng dẫn làm Bài tập ở nhà: Bài 5: Lấy d=A[2] - A[1] Khi đó: dãy A là cấp số cộng nếu nó thỏa mãn điều kiện A[i] = A[1] + (i-1)d. (hoặc điều kiện A[i] - A[i-1] = d với 1 < i N) Dùng một vòng lặp theo biến đếm i để kiểm tra xem mỗi A[i] có thỏa mãn điều kiện nói trên hay không? chỉ cần phát hiện đợc một phần tử của A không thỏa mãn là kết luận đợc dãy A không phải là cấp số cộng. , Ngày tháng năm 2011 9 Ngày soạn: ./ ./2011 Ngày giảng: ./ /2011 Lớp: 11B1 Sĩ số: Ngày giảng: ./ /2011 Lớp: 11B2 Sĩ số: Ngày giảng: ./ /2011 Lớp: 11B7 Sĩ số: Tiết 23 Đ11 - kiểu mảng (3/4) I - Mục tiêu: 1. Kiến thức: Một số ví dụ về kiểu mảng một chiều (mục 1b của Đ11), cách sử dụng mảng 1 chiều trong chơng trình thể hiện các thuật toán cơ bản về tìm kiếm và sắp xếp; - Củng cố và làm HS hiểu sâu sắc hơn những thuật toán tìm kiếm, sắp xếp cơ bản mà HS đã đợc học ở lớp 10. - Minh họa, củng cố và nâng cao những hiểu biết của HS trong tiết 1 về mảng 1 chiều (cấu trúc, cách khai báo, cách tham chiếu một phần tử và ích lợi của kiểu Dl này). 2. Kỹ năng: - Duyệt tuần tự để tìm phần tử lớn nhất của dãy số nguyên; - Sắp xếp dãy số nguyên bằng tráo đổi; - Tìm một số hạng trong một dãy số nguyên tăng bằng thuật toán tìm kiếm nhị phân. - Hình thành kĩ năng cơ bản về sử dụng kiểu mảng trong cài đặt chơng trình. 3. Thái độ: Nghiêm thúc thực hiện II. Chuẩn bị của thầy và trò: 1. Giáo viên: SGK, SGV, SBT, Giáo án, ví dụ minh họa su tầm, MTĐT (nếu có). 2. Học sinh: SGK, SBT, vở ghi. III - Tiến trình bài giảng: 1. Kiểm tra bài cũ: Làm bài tập 5 - SGK/79 2. Nội dung bài giảng: Hoạt động của Giáo viên và Học sinh Nội dung kiến thức Hoạt động 1: - Giáo viên ôn lại thuật toán và nêu và củng cố, nhấn mạnh ý tởng của thuật toán là thu hẹp nhanh phạm vi tìm kiếm sau mỗi lần so sánh khóa với số hạng đợc chọn. Có thể lấy ví dụ mô phỏng để làm rõ một số điểm trong thuật toán, tạo điều kiện cho HS hiểu chơng trình. - Trong thuật toán tìm kiếm thực chất là lặp một số lần (cha xác định trớc) các thao tác sau: chọn số hạng ở giữa dãy, so sánh số hạng đó với k, căn cứ vào kết quả so sánh này để hoặc kết luận đã tìm thấy (trờng hợp xảy ra bằng) hoặc thu hẹp phạm vi tìm kiếm (trờng hợp không bằng). - Khi nào thì quá trình nói trên dừng lại? Quá trình lặp đó cần dừng lại khi một trong 2 sự kiện sau xảy ra: đã tìm thấy hoặc không gian tìm kiếm đã trở nên nằng rỗng (nghĩa là không còn đoạn nào của dãy cho ta hi vọng chứa phần tử cần tìm). - Phạm vi tìm kiếm trên dãy là một đoạn đợc xác định bởi các biến nguyên Dau và Cuoi, t- ơng ứng cho biết bắt đầu từ phần tử có chỉ số Dau của dãy cho đến phần tử có chỉ số Cuoi của dãy. Gv dẫn dắt để HS hiểu đc công thức xđ lại cho biến Dau hay Cuoi trong mỗi trờng hợp thu hẹp phạm vi tìm kiếm. b). Một số ví dụ: Ví dụ 3: Tìm kiếm nhị phân Input: Dãy A là dãy tăng gồm N (N 250) số nguyên dơng a 1 , a 2 , . a N và số nguyên k. Output: Chỉ số i mà a i = k hoặc thông báo "không tìm thấy" nếu không có số hạng nào của dãy A có giá trị bằng k. Thuật toán: B1: Nhập N và dãy a 1 , a 2 . a N và khóa k; B2: Dau 1; Cuoi N; B3: Giua ; 2 + CuoiDau B4: Nếu a giua =k thì thông báo chỉ số Giua, rồi kết thúc; B5: Nếu A giua > k thì đặt Cuoi= Giua - 1 rồi chuyển đến B7; B6: Dau Giua + 1; B7: Nếu Dau> Cuoi thì thông báo dãy A không có số hạng có giá trị bằng k, rồi kết thúc; B8: Quay lai B3. Program TK_nhiphan; uses CRT; const Nmax=250; type 10 [...]... Ngày tháng năm 2 011 12 Ngày soạn: / ./2 011 Ngày giảng: / /2 011 Lớp: 11B1 Sĩ số: Ngày giảng: / /2 011 Lớp: 11B2 Sĩ số: Ngày giảng: / /2 011 Lớp: 11B7 Sĩ số: 11 - kiểu mảng (4/4) Tiết 24 I - Mục tiêu: 1 Kiến thức: Nội dung của tiết này là kiểu mảng hai chiều (mục 2 của 11) * Học sinh cần biết: - Có thể hình dung một mảng hai chiều nh một bảng có các dòng và các cột Các dòng và các cột đều đợc đánh số... với dòng thứ 2 từ dới lên Việc hoán đổi vị trí dòng thứ i với dòng đối xứng với nó đợc thực hiện khi i nhận giá trị từ 1 đến N làm cho mỗi dòng đợc hoán đổi vị trí 2 lần,, vì vậy cuối cùngg mảng A không thay đổi so với ban đầu Ngày tháng năm 2 011 15 Ngày soạn: / ./2 011 Ngày giảng: / /2 011 Lớp: 11B1 Sĩ số: Ngày giảng: / /2 011 Lớp: 11B2 Sĩ số: Ngày giảng: / /2 011 Lớp: 11B7 Sĩ số: Tiết 25: bài tập và... viên đánh giá tiết học thực hành - Nhận xét, kiểm tra, cho điểm - Củng cố nội dung đã thực hành 4 Hớng dẫn học ở nhà: BTVN: - Làm các bài tập đã cho từ 5 đến11 trang 79, 80 (đã có hớng dẫn ở các tiết trớc) - Chuẩn bị tiết sau: Bài tập và thực hành 4 Ngày tháng năm 2 011 19 Ngày soạn: / ./2 011 Ngày giảng: / /2 011 Lớp: 11B1 Sĩ số: Ngày giảng: / /2 011 Lớp: 11B2 Sĩ số: Ngày giảng: / /2 011 Lớp: 11B7 Sĩ... tra, cho điểm - Củng cố nội dung đã thực hành 4 Hớng dẫn học ở nhà: BTVN: - Làm các bài tập đã cho từ 5 đến11 trang 79, 80 (đã có hớng dẫn ở các tiết trớc) Ngày tháng năm 2 011 17 Ngày soạn: / ./2 011 Ngày giảng: / /2 011 Lớp: 11B1 Sĩ số: Ngày giảng: / /2 011 Lớp: 11B2 Sĩ số: Ngày giảng: / /2 011 Lớp: 11B7 Sĩ số: Tiết 26: bài tập và Thực hành 3 (2/2) I - Mục tiêu: 1 Kiến thức: - Củng cố cho học sinh những... soạn: / ./2 011 Ngày giảng: / /2 011 Lớp: 11B1 Sĩ số: Ngày giảng: / /2 011 Lớp: 11B2 Sĩ số: Ngày giảng: / /2 011 Lớp: 11B7 Sĩ số: Tiết 28: bài tập và Thực hành 4 (2/2) I - Mục tiêu: 1 Về kiến thức: - Củng cố cho HS những kiến thức và kĩ năng đã có khi lập trình với kiểu dữ liệu mảng; - Củng cố cho HS một 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à kĩ năng diễn đạt thuật toán này bằng... for j:= 2 to n do if a[j,i] > max then begin max:=a[j,i]; ind:=j; end; Vsp:=a[i,i]; a[i,i]:=a[ind, i]; a[ind, i]:= Vsp; end; Ngày tháng năm 2 011 23 Ngày soạn: / ./2 011 Ngày giảng: / /2 011 Lớp: 11B1 Sĩ số: Ngày giảng: / /2 011 Lớp: 11B2 Sĩ số: Ngày giảng: / /2 011 Lớp: 11B7 Sĩ số: Tiết 29: Đ12 kiểu xâu (1/2) I - Mục tiêu: 1 Kiến thức: Biết xâu là một dãy các kí tự (trong bảng mã ASCII), có thể coi... Đọc trớc phần lý thuyết còn lại của bài - Làm lại bài tập và làm một số ví dụ về thủ tục Delete và Insert - Làm BT 10 - SGK/80 Ngày tháng năm 2 011 25 Ngày soạn: / ./2 011 Ngày giảng: / /2 011 Lớp: 11B1 Sĩ số: Ngày giảng: / /2 011 Lớp: 11B2 Sĩ số: Ngày giảng: / /2 011 Lớp: 11B7 Sĩ số: Tiết 30: Đ12 kiểu xâu (2/2) I - Mục tiêu: Học sinh cần hiểu rõ: 1 Kiến thức: Biết xâu là một dãy các kí tự (trong bảng... BTVN: - Ôn luyện vững các hàm và thủ tục trong phần lý thuyết của bài kiểu xâu - Tiết sau (tiết 31) - Học bài tập và thực hành 5 Ngày tháng năm 2 011 27 Ngày soạn: / ./2 011 Ngày giảng: / /2 011 Lớp: 11B1 Sĩ số: Ngày giảng: / /2 011 Lớp: 11B2 Sĩ số: Ngày giảng: / /2 011 Lớp: 11B7 Sĩ số: Tiết 31: Bài tập và thực hành 5 (1/2) I - Mục tiêu: 1 Kiến thức: - Củng cố cho học sinh những hiểu biết về kiểu dữ liệu... tập về kiểu xâu 4 Hớng dẫn học bài ở nhà: BTVN: Làm bài tập trong SGK trang 82 - (nếu có điều kiện) gõ và chạy thử chơng trình Ngày tháng năm 2 011 29 Ngày soạn: / ./2 011 Ngày giảng: / /2 011 Lớp: 11B1 Sĩ số: Ngày giảng: / /2 011 Lớp: 11B2 Sĩ số: Ngày giảng: / /2 011 Lớp: 11B7 Sĩ số: Tiết 32: Bài tập và thực hành 5 (2/2) I - Mục tiêu: 1 Kiến thức- Củng cố cho học sinh những hiểu biết về kiểu dữ liệu xâu... tránh vào các chơng trình không phải nội dung bài học 3 Củng cố: - Giáo viên đánh giá tiết học thực hành; - Nhận xét, kiểm tra từng nhóm máy thực hành - Củng cố nội dung đã thực hành 4 Hớng dẫn học ở nhà: BTVN: - Trả lời các câu hỏi và chuẩn bị trớc các bài tập 8; 9 trong SGK/79, 80 - Chuẩn bị tiết 28 (Bài 2 - SGK/66-67) - Đọc và tìm hiểu trớc phần còn lại của bài thực hành 4 Ngày tháng năm 2 01121 . tháng năm 2 011. . 6 Ngày soạn: ./ ./2 011 Ngày giảng: ./ /2 011 Lớp: 11B1 Sĩ số: Ngày giảng: ./ /2 011 Lớp: 11B2 Sĩ. tháng năm 2 011. . 9 Ngày soạn: ./ ./2 011 Ngày giảng: ./ /2 011 Lớp: 11B1 Sĩ số: Ngày giảng: ./ /2 011 Lớp: 11B2 Sĩ