Kĩ năng - Biết được các thành phần trong khai báo kiểu mảng một chiều; - Biết được định danh của một phần tử kiểu mảng một chiều xuất hiện trong một chương trình; - Biết cách khai báo
Trang 1Ngày soạn: Tiết PPCT: 20 Ngày dạy:
CHƯƠNG III KIỂU DỮ LIỆU CÓ CẤU TRÚC
BÀI 11: KIỂU MẢNG (t1)
I MỤC TIÊU
1 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 mảng một chiều, cách khai báo biến kiểu mảng một chiều
2 Kĩ năng
- Biết được các thành phần trong khai báo kiểu mảng một chiều;
- Biết được định danh của một phần tử kiểu mảng một chiều xuất hiện trong một chương trình;
- Biết cách khai báo mảng đơn giản với chỉ số miền con của kiểu nguyên;
- Biết cách tham chiếu đến các phần tử của mảng một chiều
3 Năng lực cần phát triển
- Nắm khái quát chung về dữ liệu kiểu mảng, cách khai báo biến mảng 1 chiều và xuất nhập dữ liệu trong mảng 1 chiều
II PHƯƠNG PHÁP DẠY HỌC TRÊN LỚP
1 Phương pháp: - Đặt vấn đề, gợi mở thuyết giảng.
2 Phương tiện: Bảng + máy chiếu
III CÔNG TÁC CHUẨN BỊ
1 Giáo viên: Giáo án, SGK, sơ đồ cấu trúc mảng 1 chiều
HS: Đưa ra các phương án để trả lời
cho 3 câu hỏi trên
GV: Các ngôn ngữ lập trình thường
cung cấp một số kiểu dữ liệu được xây
dựng từ những kiểu dữ liệu chuẩn gọi
là kiểu dữ liệu có cấu trúc Chương
này chúng ta sẽ tìm hiểu một số kiểu
dữ liệu trong ngôn ngữ Pascal để trả
lời 3 câu hỏi trên
Có thể sử dụng ví dụ trongSGK, Vở ghi để học sinh dễ theodõi, gõ trước chương trình để có thể
sử dụng cho các phần tiếp theo
Trong lập trình thường có 2 loại mảng:
Với mảng một chiều ta quan
Trang 2GV: Đưa ra ví dụ, cần lập trình xử lý
một dãy số nguyên, hãy tìm cách lưu
trữ một dãy số nguyên trong khi lập
trình?
(A3) Bằng cách nào để lưu trữ được
thông tin dưới dạng bảng khi lập trình?
HS: Đưa ra ý kiến.
GV: Đánh giá ý kiến của học sinh, sau
đó đưa ra mục đích của việc sử dụng
cấu trúc mảng trong chương trình
GV: Đưa ra khái niệm mảng một chiều
và một số yếu tố liên quan trong lập
trình nói chung
GV: Đi sâu phân tích hai chương trình
để cho học sinh nhận thấy sự tiện lợi
khi sử dụng mảng
HS: Trong khi giáo viên phân tích hai
chương trình, học sinh sẽ đưa ra ý kiến
nhận xét về 2 chương trình
Hoạt động 2:Tìm hiểu khai báo
mảng một chiều
GV: Đưa ra cách khai báo mảng một
chiều trong ngôn ngữ Pascal, giải thích
ý nghĩa của các từ khóa mới
(A2) Khai báo bằng cách nào tiện lợi
hơn?
HS: Thường thì học sinh trả lời cách 1
tiện lợi hơn ?
- Kiểu dữ liệu của phần tử
-Cách khai báo biến mảng mộtchiều
- Cách truy cập vào từng phần tử
của mảng: tên mảng[chỉ số].
Xét ví dụ: Nhập vào nhiệt độ trung
bình mỗi ngày trong tuần Tính vàđưa ra màn hình nhiệt độ trung bìnhcủa cả tuần và đếm số ngày có nhiệt
độ lớn hơn nhiệt độ trung bình này
Quan sát hai chương trình viếtbằng ngôn ngữ Pascal cùng để giảibài toán trên
- Chương trình 1: Không sử dụngkiểu mảng
- Chương trình 2: Sử dụng kiểumảng một chiều
a./ Khai báo mảng một chiều
Trong ngôn ngữ Pascal, mảng mộtchiều được khai báo bằng hai cáchnhư sau:
- Kiểu thành phần là kiểu dữliệu của phần tử mảng
- Để truy cập vào phần tử mảng
ta viết :
Trang 3GV: Sử dụng một số hình ảnh trực
quan minh họa cho học sinh cấu trúc
mảng và chỉ số của phần tử
Chỉ
Giá
trị 53 81 62 18 26 41
(A3) Em hãy khai báo biến cho ví dụ
trên theo 2 cách?
HS Lên bảng viết.
Đưa ra một số khai báo mảng trong
Pascal
- <Tên biến mảng>[Chỉ số]
Ví dụ:
A[20]: Truy cập phần tử mang chỉ
số 20 trong mảng A
Ví dụ : Khai báo biến mảng thông qua kiểu mảng:
Type Array Integer=Array[1 100] of Integer;
Array Real=Array[1.50] of Real;
Var A: Array[1 50];
B: Array[1 50] of Real; Khai báo mảng trực tiếp : Var A: Array[1 100] of Integer ; B: Array[1 50] of Real ; 4 Câu hỏi và bài tập kiểm tra, đánh giá: - Khái niệm mảng 1 chiều ? (A1) - Cách khai báo mảng 1 chiều? (A2) - Viết khai báo 1 mảng số nguyên có tên là A gồm 100 phần tử? (A3) 5 Giao nhiệm vụ về nhà: - Làm bài tập 1, 2, 3, 4 trang 79 - Xem trước ví dụ tìm phần tử lớn nhất mảng Ký duyệt của tổ chuyên môn
Trang 4
Ngày soạn: Tiết PPCT: 21 Ngày dạy:
- Viết được chương trình tìm số lớn nhất, nhỏ nhất sử dụng kiểu mảng
II PHƯƠNG PHÁP DẠY HỌC TRÊN LỚP:
1 Phương pháp: - Thuyết trình, vấn đáp, gợi mở giải quyết vấn đề.
2 Phương tiện: bảng + máy chiếu
III CÔNG TÁC CHUẨN BỊ:
1 Giáo viên: giáo án, bảng phụ, SGK, vở ghi
2 Học sinh: SGK, vở ghi
IV TIẾN TRÌNH LÊN LỚP
1 Ổn định lớp:- Cán bộ lớp báo cáo sĩ số.
2 Kiểm tra bài cũ:
- Viết cấu trúc khai báo biến một chiều theo 2 cách và cho ví dụ.(A2) (7p)
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 Y/cầu hs xác định những nội dung
chính cần viết trong chương trình
HD: +Khai báo biến
(A4) Viết chương trình trên bảng?
GV Yêu cầu học sinh lên bảng viết
- Input: Số nguyên dương N và
dãy số A1, A2, … , AN
- Output: Chỉ số và giá trị của số
lớn nhất trong dãy
- Ý tưởng:
+ Đặt số A1 là số lớn nhất(max)
+ Cho i lặp từ 2 đến N, nếuA[i]> max thì đổi max = A[i]
B3: Nếu i > n thông báo giá trịMax rồi kết thúc
B4:
B41: Nếu a > Max thì Max = a
Trang 5readln(A[i]) ;
End ;
(A3) Làm thế nào để tìm phần tử lớn
nhất và chỉ số của phần tử lớn nhất?
GV Yêu cầu học sinh lên bảng viết
phần tìm phần tử lớn nhất mảng và vị trí
của phàn từ đó
HS Lên bảng viết:
max := a[1] ; csmax := 1 ;
For i := 2 to n do
If a[i] > max then
Begin
max := a[i] ; csmax :=i ;
End ;
GV Yêu cầu học sinh lên bảng viết
phần đưa kết quả ra màn hình
HS Lên bảng viết:
Writeln('Gia tri lon nhat : ',max) ;
Writeln('chi so ptu lon nhat : ',csmax) ;
GV Yêu cầu học sinh lên bảng viết
phần khai báo mảng và hoàn tất chương
trình
HS Lên bảng viết:
Program timmax ;
Uses crt ;
var a : array[1 250] of integer ;
n, i, max, csmax: Integer ;
GV Đưa ra màn hình chương trình hoàn
chỉnh và chạy chương trình cho học sinh
xem kết quả
Với n=5, A=2 44 7 23 8 9
N=8, A=2 6 8 12 56 7 23 4 B42: tăng i = i + 1 rồi quay lại B3 Chương trình như sau: 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 := 1 to n do Begin Write('a[',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 lon nhat : ',max) ; Writeln('chi so ptu lon nhat : ',csmax) ; Readln ; End 4 Câu hỏi và bài tập kiểm tra, đánh giá: - Thay đổi chương trình tìm giá trị lớn nhất ở trên thành chương trình tìm phần tử bé nhất ? (A4) 5 Giao nhiệm vụ về nhà: - Bài 5,6 trang 79 - Xem trước ví dụ 2 sắp xếp để được dãy không giảm Ký duyệt của tổ chuyên môn
Trang 6
Ngày soạn: Tiết PPCT: 22 Ngày dạy:
- Viết được chương trình sắp xếp để được dãy tăng, giảm sử dụng kiểu mảng
II PHƯƠNG PHÁP DẠY HỌC TRÊN LỚP:
1 Phương pháp: - Đặt vấn đề, gợi mở thuyết giảng.
2 Phương tiện: bảng + máy chiếu
III CÔNG TÁC CHUẨN BỊ:
1 Giáo viên: giáo án, bảng phụ, SGK, vở ghi
2 Học sinh: SGK, vở ghi
IV TIẾN TRÌNH LÊN LỚP
1 Ổn định lớp:- Cán bộ lớp báo cáo sĩ số.
2 Kiểm tra bài cũ:
- Viết chương trình tìm phần tử bé nhất mảng.(A3) (10p)
3 Bài mới:
30p Hoạt động 1: Tìm hiểu ví dụ 2
GV: Đưa ra ví dụ: Cho dãy A=a1, a2, a3,…
an gồm n số nguyên dương (n<=250) Viết
chương trình sắp xếp dãy A để được dãy
không giảm
(A1) Hãy xác định bài toán?
HS Trả lời
(A2) Xây dựng 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)
(A4) Viết chương trình trên bảng?
Ví dụ 2: Sắp xếp dãy số nguyên
theo bằng 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 được sắp xếp
theo thứ tự không giảm
- Ý tưởng:
+ Đổi để đưa số lớn nhất về
vị trí cuối cùng + Làm tương tự đối vớinhững số còn lại
* Thuật toán
+ a) Cách liệt kê
+ Bước 1: Nhập N, và dãya1, a2, , aN;
+ Bước 2: M N;
+ Bước 3: Nếu M < 2 thìđưa ra dãy A đã được sắpxếp rồi kết thúc;
+ Bước 4: M M – 1, i 0;+ Bước 5: i i + 1;
+ Bước 6: Nếu i > M thìquay lại bước 3;
+ Bước 7: Nếu ai > ai+1 thì
Trang 7TL Hoạt động của Gv & Hs Nội dung
GV Yêu cầu học sinh lên bảng viết phần
(A3) Làm thế nào để tráo đổi giá trị 2 biến
cho nhau (a[i] và a[i+1])?
HS sử dụng thêm biến trung gian t:
GV Yêu cầu học sinh lên bảng viết phần
khai báo mảng và hoàn tất chương trình
GV Đưa ra màn hình chương trình hoàn
chỉnh và chạy chương trình cho học sinh
xem kết quả
đổi chỗ ai và ai+1 chonhau;
+ Bước 8: Quay lại bước 5
Chương trình như sau :
Program sapxep ;Uses crt ;
var A : Array[1 250] of integer ; n,i,j,tg : Integer ;
Begin clrscr ; Write('Nhap so phan tu mang n
= ') ; Readln(n) ; For i := 1 to n do Begin
Write('A[',i,'] = ') ; readln(A[i]) ; End ;
For i := 1 to n-1 do For j := i+1 to n do
If A[i] > A[j] then Begin
tg := A[i] ; A[i] := A[j] ; A[j] := tg ; End ;
Writeln('day sau khi sap xep : ') ; For i := 1 to n do
write(a[i]:8) ; readln ;End
4 Câu hỏi và bài tập kiểm tra, đánh giá:
Trang 8- Viết chương trình sắp xếp để được dãy không tăng? (A4)
5 Giao nhiệm vụ về nhà:
- Bài 7 trang 79
Ký duyệt của tổ chuyên môn
Trang 9
Ngày soạn: Tiết PPCT: 23 Ngày dạy:
BÀI TẬP
I MỤC TIÊU
1 Kiến thức
- Củng cố những kiến thức, hiểu biết về kiểu dữ liệu mảng
- Biết biết cách khai báo và sử dụng mảng một chiều
2 Kỹ năng
- Nhận biết được các thành phần trong khai báo mảng trong ngôn ngữ Pascal
- Cài đặt được thuật toán giải 1 số bài toán đơn giản với dữ liệu kiểu mảng 1 chiều
- Viết được chương trình sử dụng kiểu mảng
II PHƯƠNG PHÁP DẠY HỌC TRÊN LỚP:
1 Phương pháp:
- Đặt vấn đề, gợi mở thuyết giảng.
- Kết hợp các phương pháp dạy học như: giảng giải, minh hoạ, học theo nhóm
2 Phương tiện: bảng + phấn
III CÔNG TÁC CHUẨN BỊ:
1 Giáo viên: SGK, Vở ghi; SGV; Giáo án.
2 Học sinh: SGK, Vở ghi; Vở ghi chép.
IV TIẾN TRÌNH LÊN LỚP
1 Ổn định tổ chức: Kiểm tra sỹ số
2 Bài cũ: Giáo viên gọi một HS lên bảng trả lời câu hỏi:
- Viết cấu trúc khai báo mảng một chiều? (A2) (8p)
HS Sử dụng phép toán chia lấy phần dư
(a[i] mod 2=0 thì a[i] là số chẳn)
(A1) Hãy xác định bài toán?
- Input: Số nguyên dương N và
dãy số A1, A2, …, AN
Trang 10TL Hoạt động của GV và HS Nội dung
10p
(A4) Yêu cầu học sinh lên bảng viết phần
tính tổng các phần tử chẳn trong mảng
HS Lên bảng viết:
s:=0;
for i:=1 to n do
if a[i] mod 2=0 then s:=s+a[i];
(A3) Yêu cầu học sinh lên bảng viết phần
đưa mảng ra màn hình
HS Lên bảng viết:
writeln('tong chan s:',S:4);
(A3) Yêu cầu học sinh lên bảng viết phần
khai báo mảng và hoàn tất chương trình
HS Lên bảng viết:
program tongchan;
USES CRT;
var a:array[1 100] of integer;
n,i,s:integer;
GV Đưa ra màn hình chương trình hoàn
chỉnh và chạy chương trình cho học sinh
xem kết quả với dãy A=3,6,1,8,3,7
Hoạt động 2:
(A4) Sửa lại chương trình trên để có
chương trình tính tổng các phần tử lẻ?
Với A =2, 6, 7, 3, 8 S=?
HS Lên bảng làm
begin clrscr;
write('nhap n:'); readln(n); for i:=1 to n do
begin write('A[',i,']=');
readln(a[i]);
end;
s:=0;
for i:=1 to n do
if a[i] mod 2=0 then s:=s+a[i];
writeln('tong chan s:',S:4); readln;
END
if a[i] mod 2<>0 then s:=s+a[i]; 4 Câu hỏi và bài tập kiểm tra, đánh giá: - Viết chương trình nhập vào một mảng số nguyên A gồm N phần tử Tinh tổng các phần tử là số lẻ? (A3) 5 Giao nhiệm vụ về nhà: - Cho mảng B gồm k phần tử Viết chương trình tính: + Tổng các phần tử ở vị trí chẳn.(A3) - Tham khảo các bài tập trong SBT - Xem trước bài thực hành 3 Ký duyệt của tổ chuyên môn
Trang 11
Ngày soạn: Tiết PPCT: 24 Ngày dạy:
- Viết được chương trình sử dụng kiểu mảng
II PHƯƠNG PHÁP DẠY HỌC TRÊN LỚP:
1 Phương pháp: Hoạt động nhóm
2 Phương tiện: máy tính, máy chiếu
III CÔNG TÁC CHUẨN BỊ:
1 Giáo viên: Giáo án, phòng máy vi tính.
2 Học sinh: Sách giáo khoa, vở ghi chép.
IV TIẾN TRÌNH LÊN LỚP
1 Ổn định tổ chức: Nắm sĩ số.
- Phân công học sinh theo nhóm : 2 học sinh/ 1 máy tính
2 Kiểm tra bài cũ: Thực hiện trong quá trình thực hành.
HS trả lời câu hỏi
GV Yêu cầu học sinh mở sách giáo
khoa và giải thích các lệnh trong
chương trình
- Hàm random(n): cho giá trị là số
nguyên ngẫu nhiên trong [0 n-1]
- Thủ tục Randomize khởi tạo cơ chế
sinh số ngẫu nhiên
- Câu lệnh tạo ngẫu nhiên 1 mảng gồm
a, Hãy tìm hiểu, gõ và chạy thử chương trình sau đây.
Học sinh chuẩn bị theo hướng dẫncủa giáo viên
Trang 12(A3) Chương trình gồm những công
việc chính nào?
HS trả lời câu hỏi:
- Khai báo mảng A có 100 số
nguyên
- Nhập mảng A ngẫu nhiên
- Nhập k từ bàn phím
- Tính tổng các số chia hết cho k
(A4) Gõ chương trình vào máy, sửa
lỗi và chạy chương trình với dãy
A=45,65,12,7,9,10 và K=5 Đọc kết
quả
HS S=120.
(A4) Hãy đưa các lệnh sau đây vào
những vị trí cần thiết nhằm sửa đổi
chương trình trong câu a để chương
trình đưa ra số lượng số dương và số
lượng số âm trong mảng.
posi, neg: Integer;
posi := 0; neg := 0;
If A[i] > 0 then Posi := posi +1
else
if A[i] < 0 then Neg := neg + 1;
Writeln (posi:4, Neg: 4);
(A4) Chạy thử chương trình với dãy
A=3,-7,8,4,-9,-2,45,-12 rồi đọc kết
quả
HS thực hành theo hướng dẫn của giáo viên
Kq: posi=60; neg=30
writeln;
write('nhap k:');readln(k);
s:=0;
for i:=1 to n do
if a[i] mod k=0 then s:=s+a[i];
writeln('tong can tinh s:',S:4); readln;
END
program tongchan;
USES CRT;
var a:array[1 100] of integer;
posi, neg,n,i:integer;
begin clrscr; randomize;
write('nhap n:'); readln(n); for i:=1 to n do a[i]:=random(301)-random(301);
for i:=1 to n do write(a[i]:4);
posi := 0; neg := 0; If A[i] > 0 then Posi := posi +1 else if A[i] < 0 then Neg := neg + 1; Writeln (posi:4, Neg: 4 ); readln; END 4 Câu hỏi và bài tập kiểm tra, đánh giá: - Cho mảng A gồm n số nguyên (n<=100), mỗi số theo trị tuyệt đối không vượt quá 100 Tính tổng các phần tử của mảng là số chẵn Hiển thị kết quả ra màn hình? (A4) 5 Giao nhiệm vụ về nhà: Xem trước bài 2 Ký duyệt của tổ chuyên môn
Trang 13
Ngày soạn: Tiết PPCT: 25 Ngày dạy:
- Các kỹ năng cơ bản làm việc với kiểu mảng trong lập trình:
+ Khai báo biến mảng
+ Nhập dữ liệu cho mảng
+ Đưa ra màn hình chỉ số và giá trị của các phần tử của mảng
+ Duyệt qua tất cả các các phần tử của mảng để xử lý từng phần tử của mảng
3 Năng lực cần phát triển
- Rèn luyện tác phong, phẩm chất của người lập trình như: tính cẩn thận, nghiêm túc,rèn luyện thói quen kiểm tra, thử nghiệm, đánh giá và ghi nhớ kiến thức
- Viết được chương trình sử dụng kiểu mảng
II PHƯƠNG PHÁP DẠY HỌC TRÊN LỚP:
1 Phương pháp: Hoạt động nhóm
2 Phương tiện: máy tính, máy chiếu
III CÔNG TÁC CHUẨN BỊ:
1 Giáo viên: Giáo án, phòng máy vi tính.
2 Học sinh: Sách giáo khoa, vở ghi chép.
IV HOẠT ĐỘNG DẠY HỌC
1 Ổn định tổ chức
- Điểm diện học sinh
- Phổ biến nội dung công việc của buổi thực hành
- Phân công học sinh theo nhóm 2 học sinh / 1 máy tính
2 Kiểm tra bài cũ: Thực hiện trong quá trình thực hành
3 Bài mới:
TL Hoạt động của giáo viên, học sinh Nội dung
20p Hoạt động 1: Làm bài tập 2
(A3) Giáo viên yêu cầu học sinh gõ, tìm
hiểu chương trình trong sách giáo khoa
rồi thực hiện chương trình
HS Học sinh chuẩn bị theo hướng dẫn
của giáo viên
GV Chạy chương trình với N=5
A=3, 6, 1, 8, 9
Bài 2 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ử với chỉ số nhỏ nhất.
Program Maxelement;
Const nmax=100Type Myarray = [1 nmax] ofinteger;
Trang 1420p Hoạt động 2: Viết lại chương trình
b Viết lại chương trình trên để đáp ứng
yêu cầu sau:
Đưa ra các chỉ số của các phần tử có
cùng giá trị lớn nhất
GV Hướng dẫn học sinh sửa đổi
chương trình
HS.thực hành theo hướng dẫn của giáo
viên
(A4) Kiểm tra lỗi, sửa lỗi và chạy
chương trình với n=6, A=5,2,4,5,2,5
HS Thực hành trên máy.
write('A[',i,']=');
readln(a[i]);
end;
j:=1;
for i:=2 to n do
if a[i] >a[j] then j:=i;
Writeln(‘Chi so la’,j,’gia tri:’,a[i]:4);
Readln;
End
Program maxEement;
Const nmax = 100;
Type Myarray = [1 nmax] of integer;
Var A: Myarray; N,i,j ,max: Integer; Begin
Writeln(‘ Nhap n = ‘);Readln(n); For i:= 1 to n do
begin write('A[',i,']=');
readln(a[i]);
end;
Max:= A[1];
For i:= 2 To n Do
If A[i] > max Then Max:= A[i];
For i := 1 to n do
If A[i] = max Then Writeln(‘Chi so la’,i);
Readln;
End
4 Câu hỏi và bài tập kiểm tra, đánh giá:
- Bài tập và thực hành này các em cần nắm vững những nội dung sau đây:
+ Biết cách khai báo mảng, Biết cách duyệt mảng
5 Giao nhiệm vụ về nhà:
- Viết lại chương trình vào vở và xem trước bài thực hành 4 câu 1
Ký duyệt của tổ chuyên môn
Trang 15
Ngày soạn: Tiết PPCT: 26 Ngày dạy:
3 Năng lực cần phát triển
- Rèn luyện tác phong, phẩm chất của người lập trình như: tính cẩn thận, nghiêm túc,rèn luyện thói quen kiểm tra, thử nghiệm, đánh giá và ghi nhớ kiến thức
- Viết được chương trình sử dụng kiểu mảng
II PHƯƠNG PHÁP DẠY HỌC TRÊN LỚP:
1 Phương pháp: Hoạt động nhóm
2 Phương tiện: máy tính, máy chiếu
III CÔNG TÁC CHUẨN BỊ:
1 Giáo viên: Giáo án, phòng máy vi tính.
2 Học sinh: Sách giáo khoa, vở ghi chép.
IV TIẾN TRÌNH LÊN LỚP
1 Ổn định tổ chức
- Điểm diện học sinh
- Phân công học sinh theo nhóm 2 học sinh / 1 máy tính
2 Kiểm tra bài cũ: Thực hiện trong quá trình thực hành
HS Thực hành trên máy và trả lời.
HS: Nhận xét về thời gian chạy chương
trình
Bài 1 Viết chương trình sắp xếp các phần tử của mảng theo thứ tự không giảm.
Program cau1;
Uses crt;
Const nmax=250;
Type arrint=array[1 nmax] ofinteger;
Var A: arrint; i,n,j,t: integer;
Begin Clrscr; Randomize;
Write(‘nhap n=’); readln(n); For i:=1 to n do
random(300);
For i=1 to n do writeln(a[i]:6); Writeln;
For j:=n downto 2 do For i:=1 to j-1 do
Trang 1620p Hoạt động 2: Sửa đổi chương trình ở bài
tập 1
(A4) Khai báo biến nguyên Dem và bổ
sung câu lệnh vào chương trình để tính số
lần thực hiện tráo đổi
Var A: arrint; i,n,j,t: integer;
Begin Clrscr; Randomize;
Write(‘nhap n=’); readln(n); For i:=1 to n do
random(300);
For i=1 to n do writeln(a[i]:6);Writeln;
dem:=0;
for i:=1 to n-1do for j:=i+1 to n do
if a[i]>a[j] then begin
t:=a[i];
a[i]:=a[j];a[j]:=t;dem:=dem+1; end;
writeln('day a tang dan la:');
for i:=1 to n do writeln(a[i]:2); write('so lan hoan doi:',dem:3); readln;
end
Kq: dem=5
4 Câu hỏi và bài tập kiểm tra, đánh giá:
- Viết chương trình sắp xếp các phần tử của mảng theo thứ tự không tăng? (A3)
5 Giao nhiệm vụ về nhà:
- Viết lại chương trình vào vở và xem trước câu 2.
Ký duyệt của tổ chuyên môn
Trang 17
Ngày soạn: Tiết PPCT: 27
3 Năng lực cần phát triển
- Rèn luyện tác phong, phẩm chất của người lập trình như: tính cẩn thận, nghiêm túc,rèn luyện thói quen kiểm tra, thử nghiệm, đánh giá và ghi nhớ kiến thức
- Viết được chương trình sử dụng kiểu mảng
II PHƯƠNG PHÁP DẠY HỌC TRÊN LỚP:
1 Phương pháp: Hoạt động nhóm
2 Phương tiện: máy tính, máy chiếu
III CÔNG TÁC CHUẨN BỊ:
1 Giáo viên: Giáo án, phòng máy vi tính.
2 Học sinh: Sách giáo khoa, vở ghi chép.
IV TIẾN TRÌNH LÊN LỚP
1 Ổn định tổ chức
- Điểm diện học sinh
- Phân công học sinh theo nhóm 2 học sinh/ 1 máy tính
2 Kiểm tra bài cũ: Thực hiện trong quá trình thực hành
3 Bài mới:
20p Hoạt động 1: Gõ chương trình ở bài 2
(A1) Gõ và thực hiện chương trình
program subsum;
const nmax=100;
type myarray=array[1 nmax] of integer;
var B,A:myarray; n,i,j:integer;begin
Trang 1820p Hoạt động 2: Thay đổi chương trình
(A2) Thay đoạn chương trình
For i:= 1 to n do
Begin
B[i]:= 0;
For j:= 1 To i Do B[i]:= B[i] +
A[j];
End;
Bằng đoạn chương trình sau:
B[1] := A[1];
For i:= 2 To n Do B[i] := B[i-1] +
A[i];
Rồi thực hiện lại chương trình
(A3) Rút ra nhận xét về thời gian chạy
của chương trình
HS Sau khi thay bởi đoạn chương trình
mới thì chương tình sẽ chạy nhanh hơn,
hiệu quả hơn vì máy tính phải thực hiện
ít phép tính hơn
GV Như vậy, trong khi lập trình cần
chọn giải thuật nào hiệu quả hơn để cài
đặt chương trình
begin B[i]:=0;
for j:=1 to i do b[i]:=b[i] +a[j];
end;
for i:=1 to n do writeln(b[i]:4); readln;
end
program subsum;
const nmax=100;
type myarray=array[1 nmax] of integer;
var B,A:myarray; n,i,j:integer; begin
randomize;
write('nhap so luong phan tu:');
readln(n);
for i:=1 to n do a[i]:=random(301)-random(301);
for i:=1 to n do writeln(a[i]:5); writeln;
B[1]:=A[1];
for i:=2 to n do b[i]:=b[i-1]+a[i];
for i:=1 to n do writeln(b[i]:4); readln;
end
4 Câu hỏi và bài tập kiểm tra, đánh giá:
- 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ích của i phần tử đầu tiên của A ? (A4)
5 Giao nhiệm vụ về nhà:
- Viết lại chương trình vào vở và xem trước bài 12: Kiểu xâu
Ký duyệt của tổ chuyên môn
Trang 19
Ngày soạn: Tiết PPCT: 28 Ngày dạy:
Bài 12: KIỂU XÂU (t1)
I MỤC TIÊU
1 Kiến thức
- Biết xâu là một dãy kí tự Biết cách khai báo xâu, truy cập phần tử của xâu
- Các phép so sánh trên xâu Sử dụng được một số thủ tục, hàm thông dụng về xâu
2 Kỹ năng
- Khai báo được biến kiểu xâu trong ngôn ngữ lập trình Pascal
- Có thể nhập hay xuất giá trị của một biến kiểu xâu
- So sánh xâu, sử dụng biến xâu, các phép toán và các hàm, thủ tục chuẩn trên xâu đểgiải quyết một bài toán đơn giản
3 Năng lực cần phát triển
- Sử dụng được các hàm và thủ tục trong xâu, khai báo biến xâu
II PHƯƠNG PHÁP DẠY HỌC TRÊN LỚP:
1 Phương pháp: - Kết hợp phương pháp giảng dạy như thuyết trình, vấn đáp
2 Phương tiện: Bảng + phấn
III CÔNG TÁC CHUẨN BỊ:
1 Giáo viên: - Sách giáo viên, SGK, Vở ghi, giáo án tin 11
2 Học sinh: - SGK, Vở ghi, Vở ghi tin 11
IV TIẾN TRÌNH LÊN LỚP
1 Ổn định tổ chức: Nắm sĩ số.
2 Kiểm tra bài cũ
Câu hỏi: Viết chương trình cho phép nhập và in ra màn hình họ tên của một hs trong
lớp Với yêu cầu trên ta sẽ sử dụng kiểu dữ liệu đã học nào? Và khai báo ra sao? (A2) (10p)
- Kiểu dữ liệu mảng một chiều và kiểu các phần tử là kiểu kí tự
- Var hoten : array [1 50] of char
3 Bài mới
10p Hoạt động 1: Giới thiệu mục đích
bài dạy và một số khái nệm về kiểu
xâu.
GV: Bài toán đặt vấn đề: Viết chương
trình nhập và in ra màn hình họ tên của
một học sinh trong lớp
(A2): Ta sẽ sử dụng kiểu dữ liệu đã học
nào? Khai báo ra sao?
HS: Kiểu mảng 1 chiều Khai báo:
Var A:array[1 50] of char;
(A2): Khai báo cho phép nhập vào họ
tên của 50 học sinh? Giải quyết bài toán
trên gặp phải khó khăn gì?
HS: Chương trình giải quyết dài dòng
Khó khăn khi nhập dữ liệu
==> Để giải quyết vấn đề này, chúng ta
- Tên kiểu xâu.
- Số lượng phần tử trong xâu
Trang 20TL HOẠT ĐỘNG CỦA GV, HS NỘI DUNG
10p
20p
tìm hiểu một kiểu dữ liệu mới – kiểu
xâu.
(A2): Vậy xâu là gì? Yêu cầu HS cho
một số vd về xâu Độ dài của xâu là bao
nhiêu? Có thể xem xâu là mảng một
chiều được không? Tham chiếu như thế
nào?
GV trình bày khái niệm, ví dụ và giới
thiệu các thành phần của xâu, cách tham
chiếu đến các kí tự
Hoạt động 2: Khai báo biến kiểu xâu
GV: Trình bày cách khai báo xâu Giải
thích các thành phần trong cấu trúc
HS: nghiêm túc lắng nghe, trả lời và ghi
chép
Lưu ý: Có thể bỏ qua phần khai báo
độ dài của xâu Xâu được tạo thành bởi
các kí tự, trong đó có thể có dấu cách
Dấu cách thể hiện trong văn bản là
phần trống ngăn cách giữa hai từ viết
liên tiếp
(A3) Yêu cầu HS khai báo biến Hoten
và biến Lop thuộc kiểu xâu
HS Lên bảng viết.
GV: Đưa ra quy ước đối với : Xâu chỉ
gồm một dấu cách được viết như thế
nào? Số lượng kí tự là bao nhiêu? Xâu
rỗng được viết như thế nào? Số lượng
kí tự là bao nhiêu?
HS: Nghe giảng và ghi chép.
Hoạt động 3: Các thao tác xử lý xâu:
GV Trình bày thao tác ghép xâu và
lấy ví dụ minh họa
- Cách tham chiếu đến phần tử trong xâu
<Tên biến xâu>[chỉ số] vd: Biến Lop lưu trữ giá trị hằng xâu ‘Lop11A5’ thì Lop[6] cho ta
kí tự thứ 6 là ‘A’.
* Chú ý:
+ Có thể xem xâu là mảng một chiều mà mỗi phần tử là một kí tự.Các kí tự của xâu được đánh số thứ tự, thường bắt đầu từ 1
2 Khai báo biến xâu:
Var <tên biến>: string[độ dài lớn
nhất của xâu];
vd: var Hoten : string [30];
Var Lop: string [5];
var Mahs : string;
Lưu ý:
+ Giá trị hằng xâu được đặt
trong dấu nháy đơn ‘’.
+ Độ dài lớn nhất của xâu là 255
+ Nếu không khai báo độ dài lớnnhất của xâu thì ngầm định là 255.+ Xâu rỗng, có độ dài là 0 Kí
hiệu là ‘’.
3 Các thao tác xử lý xâu:
a Phép ghép xâu:
+ Kí hiệu: (+), sử dụng để ghép nhiều xâu thành một
Vd: ‘Ha’ + ‘Noi’ + ‘ - ’+ ‘Viet
Nam’
‘Ha Noi - Viet Nam’
b Phép so sánh:
Các phép so sánh: bằng (=), khác (<>), nhỏ hơn (<), lớn hơn (>),
Trang 21TL HOẠT ĐỘNG CỦA GV, HS NỘI DUNG
(A3) Lấy ví dụ minh họa và yêu cầu
học sinh cho kết quả ?
(A3) Lấy ví dụ minh họa và yêu cầu
học sinh cho kết quả ?
(A3) Lấy ví dụ minh họa và yêu cầu
học sinh cho kết quả ?
+ A và B có độ dài khác nhau và
A là đoạn đầu của B thì A < B + A = B nếu A và B giống nhau hoàn toàn
Lưu ý: Một xâu có độ dài nhỏ hơn
có thể lớn hơn (>) xâu có độ dài lớn hơn
Vd: ‘AC’ > ’ABC’
c Một số hàm và thủ tục xử lý xâu:
vd: s:= ‘Bai Kieu Xau’
copy (s, 5,8) ‘Kieu Xau’
Hàm length(s): cho giá trị là
độ dài xâu
Vd: s:= ‘Lap trinh Pascal’
length(s) =16
Hàm pos(s1,s2): cho vị trí xuất hiện đầu tiên của xâu s1
Trang 22TL HOẠT ĐỘNG CỦA GV, HS NỘI DUNG
trong xâu s2
Vd: S2:= ‘Lop 11A5 co 45 HS’
Pos(’45 HS’, S2) 13
Pos (‘b’, S2) 0
Hàm upcase(ch): cho chữ cái
in hoa ứng với chữ cái trong
ch Vd: ch:= ‘h’ ‘H’
4 Câu hỏi và bài tập kiểm tra, đánh giá:
- Cho xâu S=’ Chao cac ban’
Hãy cho biết kết quả sau khi thực hiện các thao tác sau: (A3)
a) Delete(s,6,3)
b) Copy(s, 10, 3)
5 Giao nhiệm vụ về nhà
- Xem và chuẩn bị mục 3 SGK trang 71
Ký duyệt của tổ chuyên môn
Trang 23
Ngày soạn: Tiết PPCT: 29 Ngày dạy:
Bài 12: KIỂU XÂU (t2)
I MỤC TIÊU
1 Kiến thức
- Biết xâu là một dãy kí tự Biết cách khai báo xâu, truy cập phần tử của xâu
- Các phép so sánh trên xâu Sử dụng được một số thủ tục, hàm thông dụng về xâu
- Hiểu một số chương trình đơn giản có sử dụng xâu
- Viết được chương trình đơn giản có sử dụng các hàm và thủ tục trong xâu
II PHƯƠNG PHÁP DẠY HỌC TRÊN LỚP:
1 Phương pháp: - Kết hợp phương pháp giảng dạy như thuyết trình, vấn đáp
2 Phương tiện: Bảng + phấn
III CÔNG TÁC CHUẨN BỊ:
1 Giáo viên: - Sách giáo viên, SGK, Vở GHI, giáo án tin 11
2 Học sinh: - SGK, Vở GHI, Vở ghi tin 11
IV TIẾN TRÌNH LÊN LỚP
1 Ổn định tổ chức : Kiểm diện
2 Kiểm tra bài cũ:(7p)
1) Viết cấu trúc các hàm trong xâu và cho ví dụ ? (A2)
2) Viết cấu trúc các thủ tục trong xâu và cho ví dụ? (A2)
3 Bài mới
30p Hoạt động 1: Một số ví dụ
GV: Viết chương trình cho nhập họ
tên của hai người vào hai biến xâu và
đưa ra xâu dài hơn, nếu bằng nhau thì
đưa ra xâu nhập sau
(A3) Làm thế nào để xác định độ dài
(A3): Cần sử dụng cấu trúc nào để so
sánh độ dài của xâu?
HS Trả lời
(A4) Gọi học sinh lên bảng viết
chương trình
4 Một số ví dụ:
Ví dụ 1: Viết chương trình cho
nhập họ tên của hai người vào hai biến xâu và đưa ra xâu dài hơn, nếu bằng nhau thì đưa ra xâu nhập sau.Program Vi_du_1;
Uses Crt;
Var a,b : string;
Begin write(‘Ho ten thu nhat: ’);
Trang 24TL HOẠT ĐỘNG CỦA GV, HS NỘI DUNG
HS Lên bảng viết.
GV Sửa lỗi trên bài HS và chạy
chương trình trên máy (đã chuẩn bị
trước) để HS quan sát
HS Quan sát và ghi chép.
GV: Viết chương trình nhập hai xâu từ
bàn phím và kiểm tra ký tự đầu tiên
của xâu thứ nhất có trùng với ký tự
cuối cùng của xâu thứ hai không
(A3) Xác định các hàm, thủ tục cần sử
dụng trong chương trình?
HS Trả lời.
(A3): Cần sử dụng cấu trúc nào để so
sánh ký tự đầu tiên của xâu thứ nhất
(a[1]) với ký tự cuối cùng của xâu thứ
GV Sửa lỗi trên bài HS và chạy
chương trình trên máy (đã chuẩn bị
(A3): Cần sử dụng cấu trúc nào để
đưa ra xâu đảo ngược của xâu cần
GV Sửa lỗi trên bài HS và chạy
chương trình trên máy (đã chuẩn bị
trước) để HS quan sát
HS Quan sát và ghi chép.
write(b);
readlnEnd
Ví dụ 2: Viết chương trình nhập hai
xâu từ bàn phím và kiểm tra ký tự đầu tiên của xâu thứ nhất có trùng với ký tự cuối cùng của xâu thứ hai không
write(‘Nhap xau mot: ’);
else write(‘Khac nhau’);
readlnEnd
Ví dụ 3: Viết chương trình nhập
vào một xâu từ bàn phím và đưa ra màn hình xâu đó nhưng được viết theo thứ tự ngược lại
for i:= k downto 1 do write(a[i]);
readln
Trang 25TL HOẠT ĐỘNG CỦA GV, HS NỘI DUNG
GV Sửa lỗi trên bài HS và chạy
chương trình trên máy (đã chuẩn bị
GV Sửa lỗi trên bài HS và chạy
chương trình trên máy (đã chuẩn bị
Ví dụ 5: Viết chương trình nhập
vào xâu ký tự s1 từ bàn phím, tạoxâu s2 gồm tất cả các chữ số cótrong s1 (giữ nguyên thứ tự xuấthiện của chúng) và đưa kết quả ramàn hình
write (‘Nhap vao xâu s1: ’);
readln(s1);
s2:= ‘’;
for i:= 1 to length(s1) do If(‘0’<= s1[i]) and (s1[i]<=‘9’)then
s2:=s2 + s1[i];
writeln(‘Ket qua: ’,s2);
readln;
End
4 Câu hỏi và bài tập kiểm tra, đánh giá:
- Viết chương trình nhập vào một xâu từ bàn phím, xóa tất cả các kí tự trắng thừa ởgiữa xâu (A4)
Trang 265 Giao nhiệm vụ về nhà:
- Bài 10 SGK trang 80
- Xem và chuẩn bị bài thực hành số 5
Ký duyệt của tổ chuyên môn
Trang 27
Ngày soạn: Tiết PPCT: 30 Ngày dạy:
- Khai báo biến kiểu xâu, nhập, đưa xâu ra màn hình, truy cập đến phần tử của xâu
- Sử dụng được một số hàm và thủ tục xửa lí xâu
3 Năng lực cần phát triển
- Viết được chương trình có sử dụng hàm và thủ tục trong xâu, khai báo được biếnxâu
II PHƯƠNG PHÁP DẠY HỌC TRÊN LỚP:
1 Phương pháp: - Kết hợp phương pháp giảng dạy như thuyết trình, vấn đáp
2 Phương tiện: Bảng + phấn
III CÔNG TÁC CHUẨN BỊ:
1 Giáo viên: - Sách giáo viên, SGK, Vở GHI, giáo án tin 11
2 Học sinh: - SGK, Vở GHI, Vở ghi tin 11
IV TIẾN TRÌNH LÊN LỚP
1 Ổn định tổ chức: Nắm sĩ số.
2 Kiểm tra bài cũ: Viết cấu trúc khai báo kiểu xâu? Cho ví dụ (7p)
3 Giảng bài mới
- Duyệt qua từng kí tự trong xâu
Kiểm tra nếu là kí tự số thì đếm và
cộng vào xâu rỗng
- Xuất kết quả
(A2) Trong chương trình cần sử dụng
các thủ tục hay hàm nào trong xâu?
(A3) Xác định các công việc phải
Bài tập 10 - SGK-Trang 80: Viết chương trình nhập một xâu kí tự S
từ bàn phím có độ dài không quá
100 Hãy cho biết có bao nhiêu chữ
số xuất hiện trong xâu S Thông báo kết quả ra màn hình.
Program xau;
uses crt;
var s:string[100]; demso,i:byte;
begin clrscr;
writeln('moi ban nhap vao mot xau:');
readln(s);
demso:=0;
for i:=1 to length(s) do
if ('0'<=s[i]) and (s[i] <= '9') then demso:=demso+1;
writeln('so luong chu so trong xa:', demso);
readlnend
Bài tập 1: Viết chương trình nhập một xâu kí tự S từ bàn phím có độ
Trang 28TL HOẠT ĐỘNG CỦA GV - HS NỘI DUNG
- Duyệt qua từng kí tự trong xâu
Kiểm tra nếu là kí tự chữ cái thì đếm
và cộng vào xâu rỗng Lưu ý: không
phân biệt chữ hoa, chữ thường
- Xuất kết quả
(A4) Vận dụng chương trình trên,
sửa lại để được chương trình đếm
liên tiếp ở giữa xâu thì xóa đi 1 kí tự
- Chuyển kí tự ở đầu xâu thành chữ
hoa
(A4) Vận dụng chương trình trên,
sửa lại để được chương trình
chuẩn hóa xâu.
for i:=1 to length(s) do
if ('A'<=s[i]) and (s[i] <= 'Z') or ('a'<=s[i]) and
(s[i]<='z') then begin
Bài tập 2: Viết chương trình nhập một xâu kí tự S từ bàn phím có độ dài không quá 100 Chuẩn hóa xâu (Xóa các kí tự trắng thừa trong xâu
và in hoa chữ cái đầu xâu) {cau c: chuan hoa xau}
program xoadaucach;
uses crt;
var s:string; I,vt:byte;
begin clrscr;
writeln('nhap xau s='); readln(s); while s[1]=' ' do delete(s,1,1); while s[length(s)]=' ' do delete(s,length(s),1);
While pos(#32#32,s)<>0 do Begin
Vt:=pos(#32#32,s);
Delete(s,vt,1);
End;
S[1]:=upcase(s[1]);
Trang 29TL HOẠT ĐỘNG CỦA GV - HS NỘI DUNG
write(‘xau duoc chuan hoa:’,s); readln
end
4 Câu hỏi và bài tập kiểm tra, đánh giá:
- Viết chương trình nhập vào một xâu kí tự S từ bàn phím Xóa tất cả các ký tự là chữ
số ở trong xâu? (A3)
5 Giao nhiệm vụ về nhà:
- BTVN : tự làm lại bài và thực hành trên máy
- Chuẩn bị bài thực hành 5 câu 1
Ký duyệt của tổ chuyên môn
Trang 30
Ngày soạn: Tiết PPCT: 31Ngày dạy:
BÀI TẬP VÀ THỰC HÀNH 5 (t1)
I MỤC TIÊU
1 Kiến thức
- Nắm lại cấu trúc các hàm và thủ tục trong xâu và cách sử dụng chúng
- Cung cấp một vài thuật toán cơ bản và đơn giản thường gặp khi xử lí văn bản
2 Kỹ năng
- Giúp học sinh có được các kỹ năng cơ bản làm việc với xâu trong lập trình:
+ Khai báo kiểu xâu, nhập dữ liệu cho xâu, đưa ra màn hình giá trị của xâu
+ Truy cập phần tử của xâu, sử dụng các hàm và thủ tục xử lí xâu
3 Năng lực cần phát triển
- Viết được chương trình kiểu xâu và sử dụng các hàm, thủ tục trong xâu
II PHƯƠNG PHÁP DẠY HỌC TRÊN LỚP:
1 Phương pháp: Hoạt động nhóm.
2 Phương tiện: Máy tính, máy chiếu
III CÔNG TÁC CHUẨN BỊ:
1 Giáo viên: - Sách giáo viên, SGK, giáo án tin 11
2 Học sinh: - SGK, Vở ghi tin 11
IV TIẾN TRÌNH LÊN LỚP
GV Cho 2 ví dụ về hai xâu khác
nhau để cho học sinh hiểu thế nào là
xâu palindrome?
VD S=’abcdcba’
GV Xâu Palindrome có tính chất:
Đọc nó từ trái sang phải cũng thu
được kết quả giống như đọc từ phải
sang trái
GV Yêu cầu học sinh gõ chương
trình trong SGK trang 73, chạy
chương trình và xem kết quả
HS Thực hành trên máy.
Hoạt động 2: Sửa lại chương trình
(A3) Sửa lại chương trình trên và
không sử dụng biến p
HS Viết chương trình câu 1b, sửa
lỗi và xem kết quả
program xauso;
uses crt;
var s,p:string[50]; i:integer;
begin write('nhap xau s:'); readln(s); p:='';
for i:= length(s) downto 1 do p:=p+s[i];
if s=p then write('xau la palindrome')
else writeln('xau khong la palindrome');
Trang 31TL HOẠT ĐỘNG CỦA GV – HS NỘI DUNG
GV: Quan sát, hướng dẫn học sinh
if palin then write('xau la palindrome') else writeln('xau khong la
palindrome');
readln;
end
4 Câu hỏi và bài tập kiểm tra, đánh giá:
- Làm bài tập 1 theo cách khác? (A4)
5 Giao nhiệm vụ về nhà:
- Viết lại chương trình vào vở bài tập
- Xem tiếp bài BÀI TẬP VÀ THỰC HÀNH 5: bài 2, bài 3 trang 73 trong SGK, VởGHI
Ký duyệt của tổ chuyên môn
Trang 32
Ngày soạn: Tiết PPCT: 32 Ngày dạy:
BÀI TẬP VÀ THỰC HÀNH 5 (t2)
I MỤC TIÊU
1 Kiến thức:
- Nắm lại cấu trúc các hàm và thủ tục trong xâu và cách sử dụng chúng
- Cung cấp một vài thuật toán cơ bản và đơn giản thường gặp khi xử lí văn bản
2 Kỹ năng
- Làm quen với việc tìm kiếm, thay thế và biến đổi xâu
3 Năng lực cần phát triển
- Viết được chương trình kiểu xâu và sử dụng các hàm, thủ tục trong xâu
II PHƯƠNG PHÁP DẠY HỌC TRÊN LỚP:
1 Phương pháp: Hoạt động nhóm.
2 Phương tiện: Máy tính, máy chiếu
III CÔNG TÁC CHUẨN BỊ:
1 Giáo viên: - Sách giáo viên, SGK, Vở GHI, giáo án tin 11
2 Học sinh: - SGK, Vở GHI, Vở ghi tin 11
IV TIẾN TRÌNH LÊN LỚP
Kết quả của đoạn chương trình trên là gì? (A3) (3p)
Câu 2 Thủ tục Delete(st,vt,n) và Insert(s1,s2,vt) thực hiện công việc gì? Cho ví dụ
minh hoạ (A3) (5p)
HS Nghe giảng và ghi chép.
(A4) Yêu câu HS gõ chương trình
lên máy, sửa lỗi và chạy chương
trình
HS Thực hành trên máy.
Bài tập 2: Viết chương trình nhập
vào 1 xâu kí tự S từ bàn phím và thông báo ra màn hình số lần xuất hiện của mỗi chữ cái tiếng Anh trong
S (Không phân biệt chữ hoa hay chữ thường)
Program bai2;
Var a: array['A' 'Z'] of Integer;
s: String; i: Integer; c: Char;
BeginFor c:= 'A' to 'Z' do a[c]:= 0;
Write('Nhap chuoi S: '); Readln(s);
Trang 33TL HOẠT ĐỘNG CỦA GV –HS NỘI DUNG
15p Hoạt động 2: Làm bài tập 3
GV Hướng dẫn học sinh viết phần
thân
HS Nghe giảng và ghi chép.
(A4) Yêu câu HS gõ chương trình
lên máy, sửa lỗi và chạy chương
ReadlnEnd
While pos (‘anh’, st ) <>0 do Begin
Vt: = pos ( ‘ anh ‘, st );
Detele ( st, vt, 3);
Insert (‘ em ‘, st, vt) End;
Write ( st );
Readln;
End
4 Câu hỏi và bài tập kiểm tra, đánh giá:
- Nhắc lại các thao tác để tìm và thay thế sự xuất hiện một từ bằng một từ kháctrong toàn bộ văn bản
- Nhắc lại cho học sinh một số kiến thức về: Khai báo biến xâu, các hàm và thủ tụcvới xâu
5 Giao nhiệm vụ về nhà:
- Ghi lại 2 chương trình vào vở bài tập
- Xem lại toàn bộ kiến thức về xâu và mảng
Ký duyệt của tổ chuyên môn
Trang 34
Ngày soạn: Tiết PPCT: 33 Ngày dạy:
- Viết được chương trình kiểu xâu, kiểu mảng
II PHƯƠNG PHÁP DẠY HỌC TRÊN LỚP:
1 Phương pháp: - Kết hợp phương pháp giảng dạy như thuyết trình, vấn đáp
2 Phương tiện: Bảng + phấn
III CÔNG TÁC CHUẨN BỊ:
1 Giáo viên: - Sách giáo viên, SGK, giáo án tin 11
2 Học sinh: - SGK, Vở ghi tin 11
IV TIẾN TRÌNH LÊN LỚP
1 Ổn định tổ chức: Điểm danh
2 Kiểm tra bài cũ: Kiểm tra trong quá trình học
3 Nội dung bài mới:
- Duyệt qua tuần tự các phần tử
trong mảng Nếu là số dương thì
dừng và in ra màn hình
(A4) Viết chương trình trên máy,
kiểm tra lỗi, chạy chương trình và
write('n='); readln(n);
for i:=1 to n do Begin
write('a[',i,']='); readln(a[i]); end;
i:=1;
while a[i]<=0 do Begin
i:=i+1; duong:=a[i]; csduong:=i; end;
writeln('so duong dau tien trong mang la: ',duong:3);
Trang 35TL HOẠT ĐỘNG CỦA GV - HS NỘI DUNG
- Thông báo kết quả
(A4) Viết chương trình trên máy,
kiểm tra lỗi, chạy chương trình và
Bài 2: Thêm một phần tử vào mảng.
write('n='); readln(n);
for i:=1 to n do begin
write('a[',i,']='); readln(a[i]); end;
write('nhap vi tri can chen ');
4 Câu hỏi và bài tập kiểm tra, đánh giá:
- Thực hiện bài 2 bằng cách khác (A4)
5 Giao nhiệm vụ về nhà:
- Tự làm lại bài và thực hành trên máy
- Học bài, ôn lại kiến thức chương 2, 3, 4
Ký duyệt của tổ chuyên môn
Trang 36
Ngày soạn: Tiết PPCT: 34 Ngày dạy:
- Vận dụng được kiến thức đã học để giải quyết những bài toán tương tự
- Vận dụng được kiến thức 1 cách linh hoạt và có sáng tạo trong lập trình
3 Năng lực cần phát triển
- Viết được các chương trình sử dụng kiểu dữ liệu mảng và xâu
II PHƯƠNG PHÁP DẠY HỌC TRÊN LỚP:
1 Phương pháp: - Kết hợp phương pháp giảng dạy như thuyết trình, vấn đáp
2 Phương tiện: Bảng + phấn
III CÔNG TÁC CHUẨN BỊ:
1 Giáo viên: - Sách giáo viên, SGK, Vở GHI, giáo án tin 11
2 Học sinh: - SGK, Vở GHI, Vở ghi tin 11
IV TIẾN TRÌNH LÊN LỚP
1 Ổn định tổ chức: Điểm danh
2 Kiểm tra bài cũ: trong quá trình giảng bài
3 Giảng bài mới:
20p Hoạt động 1: Ôn tập phần lý thuyết
(A1+2) Viết cấu trúc của khai báo
biến kiểu mảng theo 2 cách trực tiếp
và gián tiếp Mỗi cấu trúc cho 1 ví dụ
HS Lên bảng viết.
(A1) Viết cấu trúc câu lệnh nhập mảng
1 chiều cho mảng A gồm n phần tử
HS Lên bảng viết.
(A1) Viết cấu trúc của khai báo biến
kiểu xâu và cách tham chiếu đến phần
* Nhập dữ liệu cho mảng 1 chiều
Write(‘A[‘,I,’]=’);readln(A[i]);
End;
* Cách truy cập vào từng phần tử
của mảng: tên mảng[chỉ số].
b Kiểu xâu:
Trang 37TL HOẠT ĐỘNG CỦA GV - HS NỘI DUNG
20p
(A2) Viết cấu trúc các hàm và thủ tục
trong xâu, nêu ý nghĩa của các hàm và
thủ tục
HS Lên bảng viết.
(A1) Nhắc lại một số thao tác khi thực
hành trên máy (lưu, mở, kiểm tra lỗi,
chạy chương trình)
HS Trả lời.
Hoạt động 2: Bài tập
II Bài tập
(A3) Trong ngôn ngữ lập trình Pascal,
đoạn chương trình sau đưa ra màn hình
kết quả gì?
For i:=5 downto 1 Do Write (i,’ ’);
HS Trả lời
(A3) Trong ngôn ngữ lập trình Pascal,
đoạn chương trình sau thực hiện công
(A3) Trong ngôn ngữ lập trình Pascal,
với câu lệnh như sau :
Writeln (‘ Tong so hoc sinh cua truong
* Cách tham chiếu đến phần tử trong xâu.
<Tên biến xâu>[chỉ số]
* Khai báo biến xâu:
Var <tên biến>: string[độ dài lớn
nhất của xâu];
* Một số hàm và thủ tục xử lý xâu:
+ Delete(st,vt,n)+ Insert(s1,s2,vt) + Copy (S, vt, N)
+ Hàm length(s)
+ Hàm
pos(s1,s2)+ Hàm upcase(ch)
c Một số thao tác trên máy.
Trang 38TL HOẠT ĐỘNG CỦA GV - HS NỘI DUNG
THPT Quang Trung la: ‘, hs);
(A4) Trong ngôn ngữ lập trình Pascal,
viết câu lệnh để xóa đi kí tự đầu tiên
của xâu kí tự S?
HS Lên bảng viết
(A4) Trong ngôn ngữ lập trình Pascal,
để đổi giá trị hai phần tử mảng 1 chiều
A tại 2 vị trí i và j, ta viết mã lệnh như
thế nào?
HS Lên bảng viết
(A3) Trong ngôn ngữ lập trình Pascal,
đoạn chương trình thực hiện việc việc
gì? (A là mảng có N phần tử)
S:=0 ;
For i:= 1 to N do S:=S+ A[i] ;
HS Trả lời
(A4) Trong ngôn ngữ lập trình Pascal,
viết đoạn chương trình tính tích các
Bài 7:
Tính tổng các phần tử trongmảng
Bài 8:
S:=1;
For i:=1 to n do
If i mod 2<>0 then s:=s*a[i];
4 Câu hỏi và bài tập kiểm tra, đánh giá:
- Viết chương trình nhập vào một mảng số nguyên A gồm N phần tử Tính tổng cácphần tử ở vị trí chẵn.(A4)
- Viết chương trình nhập vào một xâu In hoa tất cả các kí tự đầu tiên của mỗi từ.(A4)
5 Giao nhiệm vụ về nhà:
- Chuẩn bị tiết sau kiểm tra thực hành
Ký duyệt của tổ chuyên môn
Trang 39
Ngày soạn: Tiết PPCT: 35 Ngày dạy:
KIỂM TRA 1 TIẾT
Lưu bài làm bằng số máy của nhóm Ví dụ: học sinh ngồi máy số 18 thì lưu tên
bài: máy 18.1(câu 1), máy 18.2 (câu 2).
Trang 40If I mod 2 = 0 then S:=S+A[i];
Write (‘Tong=’ S);
Readln
End
Câu 2: (2đ)
Cho xâu S=‘Chuc ban hoc gioi’
Hãy cho biết kết quả sau khi thực hiện các thủ tục và hàm sau
Câu 1 Dòng 1:Program baitap;
Dòng 3:Var A : Array[1 100] of integer;
Câu 3 program cau1;
var s: string[30]; vt: byte;
Câu 4 program cau2;
var B: array [1 100] of integer;