Hoạt động 3: khai báo mảng một chiều 20 phút GV yêu cầu HS tìm hiểu cách khai báo mảng một chiều trong SGK.. Câu hỏi kiểm tra bài cũ: Thực hiện yêu cầu sau: - Trong chương trình tính điể
Trang 1Ngày soạn: / / 2010 Tiết 20 – Tuần XX
KIỂU MẢNG
I/ MỤC TIÊU:
- Biết được khái niệm dữ liệu kiểu mảng, biến có chỉ số
- Biết được khái niệm mảng một chiều
- Nhận biết được các thành phần trong khai báo mảng một chiều
- Biết cách viết khai báo mảng đơn giản
II/ CHUẨN BỊ:
- Giáo viên: SGK Tin học 11, SGV Tin học 11, giáo án.
- Học sinh: SGK Tin học 11, vở ghi.
III/ PHƯƠNG PHÁP:
- Tìm hiểu vấn đề
IV/ HOẠT ĐỘNG DẠY VÀ HỌC:
Hoạt động 2: khái niệm mảng một chiều (15 phút)
GV cho HS quan sát VD tính nhiệt độ
ta thường ghép chung bảy biến trên thành
một dãy và đặt cho nó chung một tên và
HS tìm hiểu và phát biểu
HS lắng nghe và ghi vở
Trang 45
§11
Trang 2- Để mô tả mảng một chiều cần xác định
được kiểu của các phần tử và cách đánh
số các phần tử của nó.
Hoạt động 3: khai báo mảng một chiều (20 phút)
GV yêu cầu HS tìm hiểu cách khai báo
mảng một chiều trong SGK
GV giới thiệu cách khai báo gián tiếp:
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à một đoạn số
nguyên (hoặc đoạn kí tự) liên tục, có dạng
n1 n2 với n1, n2 là các biểu thức nguyên
GV yêu cầu HS chuyển các VD trên sang
cách khai báo trực tiếp
GV giới thiệu cách tham chiếu đến từng
phần tử của mảng một chiều:
Tên biến mảng[chỉ số];
GV yêu cầu HS lấy VD
HS thực hiện theo yêu cầu
- Khái niệm mảng một chiều
- GV đưa một số VD để HS luyện tập khai
báo mảng một chiều, nhận biết các thành
phần trong khai báo, nhận biết khai báo
Trang 3Ngày soạn: / / 2010 Tiết 21 – Tuần XXI
KIỂU MẢNG (TT)
I/ MỤC TIÊU:
- Củng cố cho 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 đã học ở lớp 10
- Minh họa và củng cố kiến thức mảng một chiều cho HS
- Hình thành kỹ năng cơ bản về sử dụng kiểu mảng trong chương trình.II/ CHUẨN BỊ:
- Giáo viên: SGK Tin học 11, SGV Tin học 11, giáo án, VD mẫu, máy
chiếu Projector
- Học sinh: SGK Tin học 11, vở ghi.
III/ PHƯƠNG PHÁP:
- Tìm hiểu vấn đề
IV/ HOẠT ĐỘNG DẠY VÀ HỌC:
Hoạt động 1: ổn định lớp và kiểm tra bài cũ (5 phút)
Ổn định lớp
Câu hỏi kiểm tra bài cũ:
- Nêu khái niệm lập trình mảng một chiều.
- Khai báo mảng một chiều gồm 100 số
nguyên.
GV nhận xét và ghi điểm
HS trả lời câu hỏi
HS lắng nghe
Hoạt động 2: bài toán tìm phần tử lớn nhất của dãy số nguyên (15 phút)
GV cho HS quan sát SGK và nhắc lại yêu
cầu của bài toán
GV xác định lại bài toán:
- Input: số nguyên dương N (N ≤ 250) và
dãy số nguyên a 1 ,…, a n , mỗi số a i ≤ 500.
- Output: giá trị lớn nhất và chỉ số của
B4: nếu a i >Max thì Max a i ;
i i+1 rồi quay lại B3;
GV nêu ý tưởng thiết kế chương trình và
hướng dẫn HS sử dụng mảng một chiều
HS thực hiện theo yêu cầu của GV
HS quan sát và lắng nghe
HS lắng nghe và thực hành theo hướng dẫn
Trang 47
§11
Trang 4GV chiếu VD lên máy chiếu và hướng dẫn
HS tìm hiểu từng câu lệnh trong chương
Hoạt động 3: bài toán sắp xếp dãy số nguyên bằng tráo đổi (20 phút)
GV giới thiệu và xác định lại bài toán để
HS nắm rõ yêu cầu:
- Input: số nguyên dương N (N ≤ 250) và
dãy số nguyên a 1 ,…, a n , mỗi số a i ≤ 500.
- Output: Dãy A được sắp xếp lại thành
dãy không giảm.
B6: Nếu i > M thì quay lại B5;
B7: Nếu a i > a i + 1 tráo đổi a i và a i+1 cho
nhau;
B8: Quay lại B5.
GV nêu ý tưởng thiết kế chương trình và
hướng dẫn HS sử dụng mảng một chiều
GV chiếu VD lên máy chiếu và hướng dẫn
HS tìm hiểu từng câu lệnh trong chương
Trang 5Ngày soạn: / / 2010 Tiết 22 – Tuần XXI
IV/ HOẠT ĐỘNG DẠY VÀ HỌC:
Hoạt động 1: ổn định lớp và kiểm tra bài cũ (5 phút)
Ổn định lớp
Câu hỏi kiểm tra bài cũ:
Thực hiện yêu cầu sau:
- Trong chương trình tính điểm,để lưu
điểm trung bình các môn học của một lớp
không quá 60 học sinh, ta phải khai báo
mảng thế nào trong chương trình đó?
GV nhận xét và ghi điểm
HS trả lời câu hỏi
HS lắng nghe
Hoạt động 2: bài toán tìm kiếm nhị phân (35 phút)
GV phát biểu và xác định lại bài toán để
HS nắm rõ yêu cầu:
- Input: số nguyên N (N ≤ 250) và dãy số
nguyên tăng a 1 ,…, a n và số nguyên k.
- Output: chỉ số i mà a i = k hoặc thông
Trang 6GV chiếu VD lên máy chiếu và hướng dẫn
HS tìm hiểu từng câu lệnh trong chương
trình
GV chạy chương trình để HS quan sát kết
quả
HS lắng nghe và thực hành theo hướng dẫn
Trang 7Ngày soạn: / / 2010 Tiết 23 – Tuần XXII
KIỂU MẢNG (TT)
I/ MỤC TIÊU:
- Biết được khái niệm mảng hai chiều
- Nhận biết được các thành phần trong khai báo mảng hai chiều
- Biết cách viết khai báo mảng đơn giản
IV/ HOẠT ĐỘNG DẠY VÀ HỌC:
Hoạt động 1: ổn định lớp (1 phút)
Hoạt động 2: khái niệm mảng hai chiều (15 phút)
GV giới thiệu VD SGK và đưa kết quả ra
màn hình
GV đặt vấn đề;
- Nếu sử dụng kiến thức mảng một chiều
thì cần dùng bao nhiêu mảng để lưu trữ
Trang 8- Tên kiểu mảng.
- Số phần tử trên mỗi chiều.
- Kiểu dữ liệu chung của mọi phần tử.
Hoạt động 3: khai báo mảng hai chiều (20 phút)
GV yêu cầu HS tìm hiểu cách khai báo
mảng hai chiều trong SGK
GV giới thiệu cách khai báo gián tiếp:
type <tên kiểu mảng> = array[kiểu chỉ số
GV yêu cầu HS chuyển các VD trên sang
cách khai báo trực tiếp
GV giới thiệu cách tham chiếu đến từng
phần tử của mảng một chiều:
Tên biến mảng[chỉ số hàng, chỉ số cột];
GV yêu cầu HS lấy VD
HS thực hiện theo yêu cầu
Hoạt động 4: rèn luyện kĩ năng sử dụng kiểu mảng hai chiều (5 phút)
GV giới thiệu đề bài và yêu cầu HS xác
định cách thức tổ chức dữ liệu, chỉ ra các
nhiệm vụ chính của bài toán
GV cho HS quan sát chương trình mẫu để
HS thấy kết quả
GV cho HS quan sát VD2 SGK và giải
thích một số chỗ HS chưa hiểu
GV yêu cầu HS về nhà tìm hiểu thêm
HS quan sát đề bài, theo dõi những yêu cầu cần giải quyết của đề bài
- Dùng một mảng 2 chiều.
- Điền giá trị cho a[i,j]=i*j
- Xuất giá trị a[i,j] theo từng dòng.
HS quan sát và ghi nhớ
HS quan sát chương trình và chú ý giải thích của GV
Trang 9thành phần trong khai báo mảng hai chiều
và nhận biết khai báo hợp lệ
V/ RÚT KINH NGHIỆM:
Trang 53
Trang 10Ngày soạn: / / 2010 Tiết 24 – Tuần XXII
BÀI TẬP Và thực hành 3
I/ MỤC TIÊU:
- Củng cố lại các kiến thức cơ bản về kiểu dữ liệu mả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 trong 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ác phần tử của mảng để xử lí từng phần tử
- Giải bài toán tính tổng các phần tử thỏa mãn điều kiện nào đó
II/ CHUẨN BỊ:
- Giáo viên: SGK Tin học 11, SGV Tin học 11, giáo án, bài tập thực hành,
phòng máy tính có cài đặt phần mềm Turbo Pascal
- Học sinh: SGK Tin học 11, vở ghi.
III/ PHƯƠNG PHÁP:
- Thực hành
IV/ HOẠT ĐỘNG DẠY VÀ HỌC:
Hoạt động 1: ổn định (5 phút)
Ổn định lớp, chia nhóm thực hành HS ngồi theo nhóm đã phân chia
Hoạt động 2: tìm hiểu chương trình (10 phút)
GV đưa chương trình lên và hướng dẫn
HS tìm hiểu từng câu lệnh qua hệ thống
các câu hỏi:
- Khai báo Uses CRT; có ý nghĩa gì?
- MyArray là tên kiểu dữ liệu hay tên
biến?
- Vai trò của nmax và n có gì khác nhau?
- Những dòng lệnh nào dùng để tạo biến
- Lệnh For i:=1 to n do write(a[i]:5); có ý
HS quan sát, lắng nghe và trả lời câu hỏi:
- Khai báo thư viện Crt để sử dụng được thủ tục Clrscr;
- Tên kiểu dữ liệu
- 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
Trang 11HS quan sát.
Hoạt động 3: thực hành (25 phút)
GV cho HS nhập chương trình vào máy
tính và kiểm tra kết quả
GV đưa các câu lệnh cần thêm vào
chương trình ở câu a và hướng dẫn HS tìm
hiểu qua các câu hỏi:
- Ý nghĩa của biến posi, neg?
- Chức năng của lệnh:
If a[i]>0 then posi:=posi+1 Else
If a[i]<0 then neg:=neg+1;
GV hướng dẫn HS thêm nội dung, thực
hiện chương trình và báo cáo kết quả
HS thực hành
HS quan sát, suy nghĩ và trả lời câuhỏi:
- Dùng để lưu số lượng đếm được.
- Đếm số dương hoặc đếm số âm.
Trang 12Ngày soạn: / / 2010 Tiết 25 – Tuần XXIII
- Giáo viên: SGK Tin học 11, SGV Tin học 11, giáo án, bài tập thực hành,
phòng máy tính có cài đặt phần mềm Turbo Pascal
- Học sinh: SGK Tin học 11, vở ghi.
III/ PHƯƠNG PHÁP:
- Thực hành
IV/ HOẠT ĐỘNG DẠY VÀ HỌC:
Hoạt động 1: ổn định (5 phút)
Ổn định lớp, chia nhóm thực hành HS ngồi theo nhóm đã phân chia
Hoạt động 2: tìm hiểu chương trình (10 phút)
GV đưa bài toán tìm giá trị lớn nhất và
yêu cầu HS nêu ý tưởng thuật toán
GV đưa chương trình trang 64 SGK và
hướng dẫn HS tìm hiểu qua các câu hỏi:
- Vai trò của biến j trong chương trình là
GV đưa ra yêu cầu và hướng dẫn HS viết
chương trình đưa ra các chỉ số của các
phần tử có giá trị lớn nhất
GV đưa một vài câu hỏi gợi ý:
- Cần giữ lại đoạn chương trình tìm giá
trị lớn nhất không?
- Cần thêm lệnh nào nữa?
- Vị trí thêm các lệnh đó.
HS quan sát đề, lắng nghe, suy nghĩ
và trả lời câu hỏi:
- So sánh lần lượt từ trái sang phải, giữ lại chỉ số của phần tử lớn nhất.
HS quan sát chương trình, suy nghĩ
- Sau khi tìm được giá trị lớn nhất.
Trang 13GV thực hiện chương trình với bộ dữ liệu
mẫu để HS quan sát
HS quan sát chương trình
Hoạt động 3: thực hành (25 phút)
GV cho HS nhập chương trình vào máy
tính và kiểm tra kết quả
Trang 14Ngày soạn: / / 2010 Tiết 26 – Tuần XXIII
BÀI TẬP Và thực hành 4
I/ MỤC TIÊU:
- Củng cố lại các kiến thức cơ bản khi lập trình với kiểu dữ liệu mảng
- Làm quen với thuật toán sắp xếp đơn giản
- Rèn luyện kĩ năng sử dụng kiểu dữ liệu có cấu trúc, kĩ năng diễn đạt thuật toán bằng chương trình sử dụng dữ liệu kiểu mảng
II/ CHUẨN BỊ:
- Giáo viên: SGK Tin học 11, SGV Tin học 11, giáo án, bài tập thực hành,
phòng máy tính có cài đặt phần mềm Turbo Pascal
- Học sinh: SGK Tin học 11, vở ghi.
III/ PHƯƠNG PHÁP:
- Thực hành
IV/ HOẠT ĐỘNG DẠY VÀ HỌC:
Hoạt động 1: ổn định và kiểm tra bài cũ (5 phút)
Ổn định lớp
Câu hỏi kiểm tra bài cũ:
- Khái niệm mảng hai chiều.
- Khai báo một mảng hai chiều để lưu
bảng cửu chương (1-10).
GV nhận xét và ghi điểm
HS trả lời
HS lắng nghe
Hoạt động 2: tìm hiểu chương trình (15 phút)
GV đưa đề bài tập và gợi ý cho HS thuật
toán sắp xếp tăng dần
GV lấy VD thực tiễn và vạch ra các bước
để sắp xếp các phần tử của một mảng
thành dãy không giảm:
- Lần lượt lấy từng phần tử từ trái qua
phải.
- Cứ mỗi phần tử ta đem so sánh lần lượt
với các phần tử đứng bên phải của nó.
- Nếu nhỏ hơn thì đổi chỗ.
GV đưa chương trình và hướng dẫn HS
tìm hiểu qua hệ thống các câu hỏi:
- Vai trò của biến i, j trong chương trình?
- Mỗi vòng lặp For trong đoạn chương
trình sắp xếp có ý nghĩa gì?
HS chú ý theo dõi những dẫn dắt của GV để trả lời câu hỏi
Trang 15GV thực hiện chương trình, nhập dữ liệu
để học sinh quan sát kết quả chương trình
GV có thể đặt câu hỏi:
Chương trình làm công việc gì?
GV hướng dẫn HS sửa đổi chương trình
để giải quyết bài toán ở câu b:
Khai báo thêm biến nguyên Dem và bổ
sung vào chương trình đoạn 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 In kết quả tìm được ra
màn hình.
GV có thể đặt các câu hỏi:
- Đoạn chương trình nào dùng để thực
hiện tráo đổi giá trị?
- Hãy viết lệnh để đếm số lần tráo đổi.
- Lệnh này được viết ở vị trí nào trong
chương trình?
- Dùng để đổi giá trị của hai phần
tử a[i] với a[i+1].
HS quan sát GV thực hiện chương trình
GV cho HS nhập chương trình vào máy
tính và kiểm tra kết quả
GV đưa ra những bộ dữ liệu khác nhau để
HS kiểm tra và thông báo kết quả
HS thực hành và thông báo kết quả
HS nhập dữ liệu theo yêu cầu của
GV, thực hiện chương trình và thông báo kết quả sau khi thực hiện
Trang 16Ngày soạn: / / 2010 Tiết 27 – Tuần XXIV
- Giáo viên: SGK Tin học 11, SGV Tin học 11, giáo án, bài tập thực hành,
phòng máy tính có cài đặt phần mềm Turbo Pascal
- Học sinh: SGK Tin học 11, vở ghi.
III/ PHƯƠNG PHÁP:
- Thực hành
IV/ HOẠT ĐỘNG DẠY VÀ HỌC:
Hoạt động 1: ổn định (5 phút)
Hoạt động 2: tìm hiểu chương trình (15 phút)
GV đưa bài toán hướng dẫn HS qua các
câu hỏi:
- Xác định dữ liệu vào, dữ liệu ra của bài
toán.
GV giới thiệu chương trình chưa cải tiến
GV thhực hiện chương trình để HS biết
thời gian thực hiện chương trình và kết
quả của chương trình
- Lệnh này được thay lệnh nào trong
chương trình? Viết ở vị trí nào?
HS quan sát bài toán và trả lời câu hỏi:
- Vào: mảng A gồm n phần tử.
- Ra: mảng B gồm n phần tử mà B[i] = A[1]+…+A[i].
Trang 17GV yêu cầu HS sửa chương trình hoàn
thiện vào máy tính và kiểm tra kết quả
GV yêu cầu HS nhận xét thời gian thực
hiện của chương trình đã cải tiến với
chương trình chưa cải tiến
GV đưa kết luận:
Cùng một bài toán, có nhiều cách giải
quyết khác nhau Người lập trình cần
chọn cách sao cho máy thực hiện nhanh
Trang 18Ngày soạn: / / 2010 Tiết 28 – Tuần XXIV
KIỂU xâu
I/ MỤC TIÊU:
- Biết được khái niệm kiểu xâu
- Phân biệt được sự giống và khác giữa kiểu mảng kí tự với xâu kí tự
- Biết được cách khai báo biến, nhập xuất dữ liệu, tham chiếu đến từng kí
tự của xâu
- Biết các phép toán liên quan đến xâu
- Khai báo được biến kiểu xâu trong ngôn ngữ lập trình Pascal
- Biết sử dụng biến xâu và các phép toán trên xâu
IV/ HOẠT ĐỘNG DẠY VÀ HỌC:
Hoạt động 1: ổn định và kiểm tra bài cũ(5 phút)
Ổn định lớp
Câu hỏi kiểm tra bài cũ:
- Trình bày cách khai báo mảng một chiều
và truy cập (tham chiếu) đến phần tử của
mảng.
- Trình bày cách khai báo mảng hai chiều
và truy cập (tham chiếu) đến phần tử của
Hoạt động 2: khái niệm dữ liệu kiểu xâu (10 phút)
GV hướng dẫn HS tìm hiểu ý nghĩa của
xâu kí tự bằng cách chiếu đề bài của bài
toán đặt vấn đề: viết chương trình nhập họ
tên của 30 HS trong lớp và đặt câu hỏi:
- Ta sẽ chọn kiểu dữ liệu như thế nào?
- Khai báo biến như thế nào?
- GV yêu cầu HS viết đoạn lệnh để nhập
HS quan sát, suy nghĩ và trả lời:
- Kiểu mảng một chiều gồm 30 kí tự.
- Khai báo một biến mảng A để lưu
họ tên của một học sinh.
HS thực hiện:
§12
Trang 19và xuất dữ liệu cho từng phần tử.
GV đặt câu hỏi:
- Có những khó khăn gì gặp phải?
GV dẫn dắt:
Dữ liệu kiểu xâu cho phép khắc phục khó
khăn trên bằng cách cho nhập/xuất dữ
liệu cho xâu bằng một lệnh.
GV giới thiệu khái niệm:
- Xâu là dãy các kí tự trong bảng mã
ASCII, mỗi kí tự được gọi là một phần tử
của xâu.
- Số lượng các kí tự trong xâu được goi là
độ dài xâu Xâu có độ dài bằng không là
HS lắng nghe
HS lắng nghe và ghi vở
Hoạt động 3: khai báo xâu (15 phút)
GV giới thiệu cách khai báo xâu:
Var tên_biến: String[n];
Trong đó: n là độ dài lớn nhất của xâu.
GV hướng dẫn HS tìm hiểu qua các câu
hỏi:
- Khi khai báo không có [n] thì số lượng
kí tự tối đa là bao nhiêu?
GV đưa VD và đặt câu hỏi:
VD: ‘Nghia Hanh’
- Xâu trên có bao nhiêu kí tự?
- Xâu chỉ gồm 1 kí tự trống được viết như
thế nào? Số lượng kí tự bao nhiêu?
- Xâu rỗng được viết như thế nào? Số
lượng kí tự bao nhiêu?
GV hướng dẫn HS tìm hiểu nhập/xuất dữ
liệu cho biến xâu trong ngôn ngữ Pascal
- Khi viết lệnh nhập/xuất dữ liệu cho biến
xâu, có gì khá so với biến mảng các kí tự?
GV giới thiệu lệnh gán để nhập giá trị cho
HS chú ý ghi nhớ
HS nêu VD
St := ‘Nguyen Cong Phuong’;
Trang 63
Trang 20GV giới thiệu cấu trúc chung để tham
chiếu đến phần tử của xâu:
Hoạt động 4: các thao tác xử lý xâu (10 phút)
GV yêu cầu HS nhắc lại các phép toán đã
học trên kiểu dữ liệu chuẩn
GV kết luận:
- Phép ghép xâu: kí hiệu là +, được sử
dụng để ghép nhiều xâu thành một xâu
VD: ‘Lap trinh ’ + ‘Pascal’ cho kết quả là
xâu ‘Lap trinh Pascal’
- Các phép so sánh: =, <>, <, <=, >, >=
thực hiện việc so sánh 2 xâu Xâu A được
xem là lớn hơn xâu B nếu như kí tự khác
nhau đầu tiên giữa chúng kể từ trái sang
trong xâu A có chỉ số trong bảng mã
ASCII là lớn hơn Nếu A và B là các xâu
có độ dài khác nhau và A là đoạn đầu của
- Khai báo xâu
- Các phép toán trên xâu
- Chuẩn bị trước phần còn lại của bài
HS chú ý lắng nghe
HS ghi nhớ
V/ RÚT KINH NGHIỆM: