Bài giảng Môn Tin học lớp 11 - Tiết 1 - Bài 1 : Khái niệm lập trình và ngôn ngữ lập trình

Đề: Khai báo biến đếm nguyên Dem và bổ sung vào chương trình những câu lệnh cần thiết để biến Dem tính số lần tráo đổi trong chương trình.

doc97 trang | Chia sẻ: rimokato | Lượt xem: 2069 | Lượt tải: 2download
Bạn đang xem trước 20 trang mẫu tài liệu Bài giảng Môn Tin học lớp 11 - Tiết 1 - Bài 1 : Khái niệm lập trình và ngôn ngữ lập trình, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trê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/bé nhất của mảng và vị trí của nó.
3. Thái độ:
 -Rèn luyện tác phong, tư duy lập trình, tự giác , tích cực, chủ động và sáng tạo trong tìm kiếm kiến thức.
II.Chuẩn bị của giáo viên và học sinh:
1.Giáo viên:
 +Phòng máy vi tính,
 +Một số chương trình cài sẵn trong USB hoặc đĩa mềm,
 +Máy chiếu hoặc bảng phụ,
2.Học sinh:
 +Học bài cũ,
 +Đọc trước bài ở nhà.
III.Phương pháp:
 -Trình chiếu kết hợp đàm thoại.
 -Hướng dẫn học sinh các bước thực hiện một số chương trình.
IV.Tiến trình bài dạy:
1.Hoạt động 1: Kiểm tra bài cũ
 Câu hỏi: Có mấy cách khai báo mảng một chiều? Cho ví dụ.
TG
Hoạt động học sinh
Hoạt động giáo viên
Ghi bảng
5’
-Lắng nghe câu hỏi
-Học sinh trả lời câu hỏi. Cả lớp theo dõi, nhận xét
-Nêu câu hỏi.
-Gọi học sinh lên trả lời.
-Giáo viên nhận xét, cho điểm
 Có hai cách khai báo:
 a/Khai báo trực tiếp:
 Var : array [ kiểu chỉ số ] of ;
 b/ Khai báo gián tiếp
Type : array [ kiểu chỉ số ] of ;
Var : ;
2.Hoạt động 2: Bài tập số 1 sgk/63
TG
Hoạt động học sinh
Hoạt động giáo viên
Ghi bảng
25’
10’
1/HĐTP1:
 Quan sát bảng phụ,
- Lắng nghe câu hỏi và trả lời.
-Theo dõi để nắm hàm Random.
+Câu lệnh cho số ngẫu nhiên có giá trị từ -299 đến 299.
+câu lệnh in ra màn hình giá trị tất cả các phần tử của mảng.
+cộng tất cả các phần tử chia hết cho k.
+Số lần thực hiện lệnh gán đúng bằng số phần tử của mảng chia hết cho k.
-Theo dõi kết quả chạy thử chương trình.
 2/HĐTP2: Sửa chương trính câu a/ để được chương trình giải quyết bài toán câu b/
-Quan sát bảng phụ, theo dõi và trả lời các câu hỏi của GV.
+Nếu a[i] > 0 thì cộng a[i] vào posi; ngược lại nếu a[i] < 0 thì cộng a[i] vào neg.
+Quan sát các lệnh và suy nghĩ vị trí cần sửa trong chương trình câu a/.
+Theo dõi kết quả chạy chương trình.
 Treo bảng phụ có nội dung bài số 1a/ sgk/63 ( có thể sử dụng máy chiếu ). Sau đó đặt câu hỏi cho học sinh trả lờ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 mảng a
-Giáo viên giới thiệu hàm Random cho học sinh.Sau đố đặt câu hỏi:
+ a[i] := Random(300) – Random (300) có ý nghĩa gì?
+ Lệnh for i:=1 to n do
 Write ( a[i] : 5);
 Có ý nghĩa gì? 
+Lệnh For-do cuối cùng thực hiện nhiệm vụ gì?
+Lệnh gán s := s + a[i] ; được thực hiện bao nhiêu lần?
-Thực hiện lại chương trình lần cuối để học sinh thấy được kết quả.
-Treo bảng phụ câu b/ bài tập 1 sgk/64
 Hỏi HS: 
+ Ý nghĩa của biến posi và 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;
là gì?
 +Hướng dẫn học sinh thêm vào vị trí cần thiết để chương trình đếm được số lượng các số âm và các số dương.
+Chạy thử chưong trình để học sinh theo dõi kết quả.
-Khai báo thư viện chương trình con CRT để sử dụng được thủ tục Clrscr;
- Myarray : tên kiểu dữ liệu
- nmax: số phần tử tối đa có thể chứa của biến mảng a,
 n: số phần tử thực tế của a.
-Random(n): cho số ngẫu nhiên từ 0 đến n-1
+posi : đếm số dương trong mảng.
+neg: đếm các số âm trong mảng.
3.Hoạt động 3: Bài tập số 2/sgk/64
TG
Hoạt động học sinh
Hoạt động giáo viên
Ghi bảng
15’
30’
1/HĐTP1: Đưa ra một ví dụ cụ thể .
-Theo dõi, suy nghĩ để nắm thuật toán. 
-Đọc đoạn chương trình sgk. Liên hệ trả lời các câu hỏi mà GV nêu ra. 
+Sửa a[i] > a[j] ; thành a[i] < a[j] ;
+Sửa a[i] > a[j]; thành a[i] >= a[j];
2/HĐTP2: 
-Theo dõi GV chạy chương trình và làm lại trên máy tính.
Ví dụ: Cho mảng gồm 5 phần tử: 1 5 7 5 2 . Tìm phần tử có giá trị lớn nhất và vị trí của nó trong mảng ( số thứ tự )
-Gợi ý , hướng dẫn học sinh thuật toán tìm phần tử lớn nhất và vị trí của nó (kết hợp làm thủ công).
-Cho học sinh đọc đoạn chương trình trong bài 2/64sgk .
 Hỏi HS:
+ Nếu muốn tìm phần tử nhỏ nhất thì cần sửa ở chỗ nào?
 +Nếu muốn tìm phần tử lớn nhất với chỉ số lớn nhất của nó thì ta sửa ổ chỗ nào?
-Chạy thử chưong trình cho học sinh theo dõi
-Theo dõi học sinh thực hiện chương trình và xem kết quả. 
j:=1;
For i:=2 to n do
 If a[i] > a[j] then 
 j:=i;
(Sau khi kết thúc:
 + Giá trị lớn nhất là a[j]
 + vị trí cần tìm j.)
4.Hoạt động 4: Củng cố (3’)
 -Nhắc lại cho học sinh một số kiến thức về:
 + Tính tổng các phần tử các phần tử thoả mãn một điều kiện nào đó.
 + Đếm số các phần tử thoả mãn một điều kiện nào đó.
 + Tìm phần tử lớn nhất/ bé nhất.
5.Bài tập về nhà (2’)
 - Viết một chương trình nhập một mảng một chiều, đếm số phần tử nhỏ hơn một số k nào đó.
Ngày soạn: 30/11/07
Tiết thứ:…..Bài: 	BÀI THỰC HÀNH SỐ 4 
I. Mục tiêu
1. Kiến thức 
- Củng cố kiến thức về dữ liệu kiểu mảng.
- Xây dựng cấu trúc dữ liệu, hiểu thuật toán sắp xếp bằng tráo đổi.
2. Kĩ năng
	- Biết chỉnh sữa lỗi trong chương trình.
	- Tự nhập các bộ dữ liệu để hiểu ý nghĩa một số câu lệnh.
3. Thái độ
- Nghiêm túc thực hiện đúng nội quy phòng máy, tự giác trong khi lập trình.
II.Chuẩn bị
- Gv:Bảng phụ viết sẵn chương trình, phòng máy, project.
- Hs: Sgk, CT đã được viết sẵn.
III. Phương pháp
IV. Tiến hành dạy học
1. Hoạt động 1: Nhắc lại kiến thức đã học liên quan bài thực hành.
Hđ của GV
Hđ của Hs
Hỏi 1: Nêu cách khai báo kiểu mảng 1 chiều.
Hỏi 2: Nhập từ bàn phím xây dựng mảng một chiều A có 6 phần tử.
Tl: có 2 cách
+ gián tiếp:
+ trực tiếp:
TL: For i:= 1 to 6 do
 Begin
 Writeln(‘Nhap phan tu thu ’,i,’=’);
 Readln(A[i]);
 End;
2. Hoạt động 2: Xác định bài toán và tìm hiểu chương trình.
TG
Hđ của GV
Hđ của HS
Ghi bảng
1. Chiếu đề bài lên bảng.
2. Xác định bài toán
Y/cầu hs xác định dữ liệu vào/ra của bài toán?
3. Gv minh hoạ bài toán:
A
5
7
2
8
6
4
1
2
3
4
5
6
 Mảng A đã sắp xếp:
A
2
4
5
6
7
8
1
2
3
4
5
6
- Yêu cầu hs nhắc lại ý tưởng thuật toán(Lớp 10)?
- Chiếu thuật toán đã được liệt kê các bước.
4. Tìm hiểu chương trình
- Vai trò của biến i, j trong CT?
- Đoạn lệnh nào thực hiện tráo đổi giá trị 2 phần tử liền kề của mảng?
- Treo bảng CT chuẩn bị sẵn.
Giải thích một số lệnh của CT.
1. Quan sát đề và lằng nghe câu hỏi của gv.
2. Trả lời câu hỏi.
- Vào: mảng A
- Ra: mảng A đã sắp xếp
3. Theo dãy số minh họa, nhớ lại thuật toán sắp xếp đã học.
- Nhắc lại thuật toán.
- Quan sát, đối chiếu thuật toán liệt kê với CT (SGK).
4. Xem CT và tìm hiểu một số biến, lệnh.
- TL: Dùng làm biến chỉ số.
- TL:3 lệnh: tg := a[i];
 a[i]:= a[i+1];
 a[i+1]:= tg;
 - Chú ý, lắng nghe, quan sát và ghi nhớ.
Đề: Sắp xếp dãy số nguyên bằng thuật toán tráo đổi với các giá trị khác nhau của n số.
CT( SGK/65)
3. Hoạt động 3: Chạy CT câu a.
TG
Hđ của GV
Hđ của HS
Ghi bảng
- Yêu cầu hs tự nhập dữ liệu với CT có sẵn.
- Giúp hs phát hiện và sữa lỗi.
- Thuật toán trên tiến hành đưa số lớn thứ j về đến vị trí j sau mỗi vòng lặp:
For i:= 1 to j-1 do
- Chạy CT, nhập dữ liệu, xm kết quả.
- Chỉnh sữa CT thông qua các thông báo lỗi.
- Chú ý hiểu rõ thêm về CT.
4. Hoạt động 4: Xác định bài toán câu b.
TG
Hđ của GV
Hđ của HS
Ghi bảng
1. Xác định bài toán.
- Y/cầu hs xác I/O bài toán?
- Biến Dem được tăng lên khi nào? 
- Cần đưa câu lệnh tăng Dem vào chỗ nào trong CT trên?
- Câu lệnh khởi tạo Dem:= 0 được đặt vào vị trí nào trong CT?
 + Trước CL đầu tiên:
 For j:= N down to 2 do
 + Trước CL duyệt:
 For i:= 1 to j-1 do
 + Trước 3 CL tráo đổi
 + Sau 3 CL tráo đổi
- Sau CL cuối CT nên đưa CL nào vào để hiển thị giá trị biến Dem ra màn hình.
1. Xác định bài toán:
+ I: mảng a;
+O: mảng a đã sắp xếp, số lần tráo đổi (Dem);
TL: Khi A[i] > A[i+1] 
(tức là biểu thức đk trong CL If đúng)
TL: Trong thân CL If: trước hoặc sau 3 lệnh tráo đổi. 
TL: Chọn một trong hai phương án 3, 4.
Đề: Khai báo biến đếm nguyên Dem và bổ sung vào chương trình những câu lệnh cần thiết để biến Dem tính số lần tráo đổi trong chương trình.
4. Hoạt động 5: Sữa CT câu a để giải bài toán câu b.
TG
Hđ của GV
Hđ của HS
Ghi bảng
- Yêu cầu hs sữa lại CT theo gợi ý đã nêu.
- Hướng dẫn hs chỉnh sữa và chạy CT.
- Đánh giá kết quả của hs.
- Thêm các CL như đã hướng dẫn vào CT.
- Chạy CT.
CT(Phụ lục)
Hoạt động 6: Củng cố
Thuật toán sắp xếp bằng tráo đổi.
Đếm số lần tráo đổi.
Hoạt động 7: Bài tập về nhà
Tìm thêm các thuật toán sắp xếp khác tối ưu hơn.
Cho mảng A và mảng B (là mảng A đã được sắp xếp). Hãy in ra chỉ số của các phần tử mảng A theo mảng B.
Ngày soạn: 02/12/07
Tiết thứ:…..Bài: 	BÀI THỰC HÀNH SỐ 4
I. Mục tiêu
1. Kiến thức 
	Tiếp tục củng cố kiến thức khi lập trình với dữ liệu kiểu mảng.
2. Kĩ năng
	Nhận xét, phân tích và đề xuất các cách giải bài toán sao cho chương trình chạy nhanh hơn.
3. Thái độ
Tự giác, chủ động trong khi lập trình.
II.Chuẩn bị
Gv:Bảng phụ viết sẵn chương trình, phòng máy, project.
Hs: Sgk, CT đã được viết sẵn
III. Phương pháp
IV. Tiến hành dạy học
1. Hoạt động 1:(3') Ôn lại kiến thức chuẩn bị thực hành
Hđ của GV
Hđ của Hs
Hỏi 1: cách khai báo kiểu mảng 1 chiều.
Hỏi 2: (tuỳ từng lớp)
Tl: có 2 cách
+ gián tiếp:
+ trực tiếp:
2. Hoạt động 2:(13') Nêu đề bài toán và tìm hiểu
TG
Hđ của GV
Hđ của HS
Ghi bảng
2'
3'
5'
3'
1. Ghi đề bài lên bảng.
2. Tìm hiểu đề
Y/cầu hs xác định dữ liệu vào/ra của bài toán?
3. Gv lấy ví dụ minh hoạ
A
4
5
1
2
3
7
1
2
3
4
5
6
B
1
2
3
4
5
6
 Ban đầu: mọi B[i] = 0
Hỏi: mỗi B[i] được tạo mới bằng bao nhiêu? 
Tóm lại: B[i] = A[1] + …+ A[i]
 = 
GV minh hoạ một số phần tử: B[1], B[2], B[3]
- Y/cầu hs tìm kết quả mảng B theo ví dụ trên.
4. Viết CT thô
- Y/cầu hs cho biết từng phần của CT cần xây dựng?
Gv tranh thủ ghi lại trên bảng.
H: Bước B2 được cụ thể trong CT như thế nào?
5. Treo bảng CT chuẩn bị sẵn.
Giải thích từng phần của CT tương ứng với phần trả lời được ghi bảng của hs.
1. Quan sát đề và lắng nghe câu hỏi của gv.
2. Trả lời câu hỏi.
- Vào: 
- Ra:
3. Theo dõi ví dụ minh hoạ
Tl: (2-3hs)
Tl: 
B
4
9
10
12
15
22
1
2
3
4
5
6
 4. Lần lượt cho từng hs trình bày
Tl: 
Tl: sử dụng 2 vòng for lồng nhau.
for i:=1 to n do
begin
 b[i]: =0;
 for j:=1 to i do 
 b[i]:=b[i]+a[j];
end;
5. Chú ý, lắng nghe, quan sát và ghi nhớ.
Đề: Cho mảng A gồm n phần tử. Viết CT tạo ra mảng B[1..n]
Khai báo:
 + k/báo mảng
 + biến đơn
Phần thân:
B1: tạo mảng A.
B2: xd mảng B theo A.
B3: In mảng B.
3. Hoạt động 3: (5')Tối ưu chương trình
TG
Hđ của GV
Hđ của HS
Ghi bảng
5'
1. Dựa vào phần phân tích ví dụ thuật toán ở trên.
Gv hỏi: So sánh giá trị B[i] và B[i-1]?
 Đặc biệt: B[1]=?
2. Chta luôn hướng tới thuật toán tối ưu. Đối với bài toán này theo phân tích ở trên ta đã tận dụng được kết quả của việc tính tổng 
i -1 phần tử có sẵn ở bước trước.
- Do vậy ta có được:
+ Số lượng phép toán '+' ít hơn
+Chỉ dùng 1 vòng lặp for
-> chỉ sd 1 biến chỉ số i cho cả 2 mảng A, B.
3. Cải tiến lại chtrình.
Gv treo bảng chtrình được cải tiến.
Tl: B[i]:=B[i-1]+A[i]
Tl: B[1]=A[1]
2. Chú ý theo dõi
{tùy đối tượng hs}
3. Nhìn bảng, tự điều chỉnh hành vi nhận thức.
Đoạn CT cải tiến: Sgk
4. Hoạt động 4: (20') Hs thực hành trên máy theo nhóm
TG
Hđ của GV
Hđ của HS
Ghi bảng
1. Y/cầu hs nhập CT cải tiếnvào máy.
2. Theo dõi quá trình t/hiện của hs. Giải quyết 1 số lỗi nhỏ tại từng nhóm.
1. Hs nhập chtrình vào máy
2. Tự biên dịch và chạy CT với ví dụ trên.
3. Tự lấy Input để chạy lại CT
5. Hoạt động 5: (3') Củng cố, uốn nắn những sai sót thường gặp của Hs.
6. Hoạt động 6: (1') Dặn dò:
	Xem, chuẩn bị trước bài 12: Kiểu xâu. 
Ngày soạn: 06/12/07
Tiết thứ:…..Bài 12: 	KIỂU XÂU 
I.Mục tiêu
1. Về kiến thức
	- Biết được một kiểu dự liệu mới, 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 với kiểu xâu.
 - Biết được cách khai báo biến, nhập/xuất dữ liệu, tham chiếu dến từng kí tự của xâu.
 - Biết các phép toán liên quan đến xâu.
2. Về kĩ năng
 - Khai báo được biến kiểu xâu trong ngôn ngữ lập trình Pascal.
 - Sử dụng biến xâu và các phép toán trên xâu để giải quyết một bài toán đơn giản.
II. Chuẩn bị của GV và HS
1. GV: Máy vi tính, Máy chiếu để giới thiệu ví dụ.
2. HSSGK.	
III. Phương pháp
Thuyết trình, vấn đáp
IV. Tiến trình bài học	
HĐ1: Kiểm tra bài cũ và khởi động bài mới
T/g
HĐ của GV
HĐ của HS
Ghi bảng
10'
Ghi câu hỏi lên bảng
Phát vấn HS tại chỗ
Y/c HS khác nhận xét
Chính xác hóa nội dung
'Viet Nam' là dữ liệu kiểu mảng. Tuy nhiên nó là một kiểu dữ liệu mà tiết này ta sẽ học: KIỂU XÂU
Suy nghĩ, trả lời
Nhận xét
Ghi nhớ kiến thức
Câu hỏi:
Định nghĩa mảng một chiều và cách khai báo.
'Viet Nam' có phải là dữ liệu kiểu mảng một chiều không, Vì sao?
HĐ2: Tìm hiểu về dữ liệu kiểu xâu
T/g
HĐ của GV
HĐ của HS
Ghi bảng
14'
Xâu là gì?
Y/c HS khác nhận xét
Chính xác hóa nội dung
Y/c HS cho VD
Xâu có bao nhiêu kí tự?
Dấu cách là 1 ký tự.
Y/c HS viết xâu có ký tự trống, xâu rỗng, nêu số lượng ký tự của mỗi xâu. 
Giới thiệu cách tham chiếu phần tử
Trả lời
Nhận xét
Hình thành khái niệm Xâu
Cho VD
Trả lời.
Bài 12: KIỂU XÂU
Khái niệm (SGK)
Ttự kiểu mảng
HĐ3: Khai báo dữ liệu kiểu xâu và các thao tác xử lí xâu
T/g
HĐ của GV
HĐ của HS
Ghi bảng
15'
- Hỏi: Ý nghĩa của từ String?
 Độ dài lớn nhất của xâu là bao nhiêu
- Hãy nhắc lại các phép toán đã học trên kiểu dữ liệu chuẩn
- Chiếu chương trình VD
- Hỏi: Kết quả của chương trình in ra màn hình?
Thực hiện chương trình cho HS thấy kết quả
- Y/c HS tìm một số VD khác
- Hỏi: Chức năng của phép cộng
- Chiếu chương trình VD về phép so sánh và y/c HS cho biết kết quả
Lưu ý cho HS
Trả lời
Trả lời 
Quan sát chương trình để dự tính kết qủa
1. Khai báo (SGK)
2. Các thao tác xử lí xâu
Var st:string;
Begin
St:='A' + 'B';
Write(st);
Readln;
End.
VD:
'AB'<'ABC'
'AC'<'ABC'
Lưu ý:
Một xâu có độ dài nhỏ hơn có thể lớn hơn (>) và ngược lại
c) Th
HĐ4: Củng cố(5'):
Nhắc lại những nội dung đã học:
- Khai báo biến 
- Nhập xuất gá trị cho biến xâu
- Tham chiếu từng kí tự trong xâu.
- Phép ghép xâu.
- Các phép so sánh.
HĐ5: Dặn dò (1')
- Về nhà xem phần kiến thức lý thuết còn lại trong bài, bao gồm các thủ tục và hàm liên quan đến xâu, sách giáo khoa trang 70 - 72. 
Ngày soạn: 28/11/07
Tiết thứ:…..Bài 12: 	KIỂU XÂU(TT)
 I: Mục tiêu:
Kiến thức:
Hiểu được lợi ích của các hàm và thủ tục liên quan đến xâu tring ngôn ngữ lập trình Pascal.
Nắm được cấu trúc ching và chức năng của một số hàm liên quan đến xâu.
Kỹ năng:
Bước đầu sử dụng được một số hàm, thủ tục thông dụng về xâu.
Có thể cài đặt được một số chương trình đơn giản có sử dụng xâu
II. Chuẩn bị của GV và HS:
GV: Giáo án, SGK, sách GV, bảng phụ soạn các ví dụ.
HS: Sách GK.
III. Phương pháp:
Đặt vấn đề.
Thuyết trình, vấn đáp.
Diễn giải, dùng bảng để ghi lại các chi tiết quan trọng trong ví dụ
IV. Tiến trình bài học.
Hoạt động 1: 
Tổ chúc lớp: Ổn định và kiểm tra sĩ số.
 Các bước tiến hành:
Hoạt động của thầy
Hoạt động của trò
Nội dung
iểm tra kiến thức cũ.
- Gọi HS :
 Câu 1: Xâu là gì? Cách khai báo biến xâu.
-GV nhận xét cho điểm.
* Giới thiệu bài mới
ĐVĐ: Chúng ta đã biết xâu là gì? Và một số các phép toán trên xâu. Bây giờ chung ta sẽ học về một số thủ tục chuẩn dùng để xử lí xâu.
-Ứng với mỗi thủ tục và hàm giáo viên đưa ra một ví dụ minh hoạ theo sgk.
- Xâu gồm một kí tự trống được viết như thế nào? số lượng kí tự là bao nhiêu?
- Tham số của các hàm và thủ tục chuẩn phải hợp lí, chẳng hạng không thể dùng Insert( S1, S2, 12) khi length(S2)<12.
Hoạt động 2: Rèn luyện kĩ năng vận dụng hàm và thủ tục.
ĐVĐ: Bấy giờ chúng ta sẽ đi sâu hơn về các chức năng của các hàm và thủ tục trong xâu.
- Ý nghiã của hàm Length(b)?
Em nào có thể giải thích câu lệnh 
For i:=k downto 1 do write([i]);
Qua các ví dụ trên ta thấy điêù gì?
Em có nhận xét gì về xâu b được tạo thành.
Tương tự các em xem ví dụ 5
- HS trả lời câu hỏi.
Chú ý quan sát trên bảng.
HS trả lời.
- Kí hiệu cảu xâu gồm 1 kí tự trống là ‘ ‘ xâu này có độ dài là 1.
Quan sát trên bảng
TL: Cho ra số lượng kí tự có trong sâu b.
Quan sát trên bảng
TL: Sử dụng vòng lặp For giá trị cuối downto giá trị đầu để sau đó in ra các kí tự của chuỗi theo chiều ngược lại.
TL: cho thấy hàm length() có thể tham chiếu đến từng kí tự cử một xâu thông qua vị trí của nó.
TL: Xâu b được tạo thành từ một xâu rỗng qua phép ghép xâu.
Quan sát trên bảng
2. Các thao tác sử lí xâu:
Một số thủ tục chuẩn dùng để sử lí xâu.
Delete(St,vt,n) Xoá n kí tự của xâu st bắt đầu từ vị trí vt.
Insert(S1,S2,vt) Chèn xâu S1 vào xâu S2 bắt đầu từ vị trí vt của S2.
Val(St,x,m) Đổi giá trị xâu St thành số ghi giá trị vào biến X, nến không đổi được thì vị trí gây lỗi ghi trong m, nếu đổi thành công thì m = 0
Str(X,St) Chuyển số X thành xâu kí tự lưu trong St.
Một số hàm chuẩn:
- Copy(St, vt, n) Sao chép từ xâu St n kí tự từ vị trí vt.
- Pos(S1, S2) Tìm vị trí xuất hiện đầu tiên của S1 trong S2.
- Length(st) Cho độ dài của xâu St.
- Upcase(ch) Cho chữ cái viết hoa tưng ứng với chữ thường trong ch
Bảng phụ chứa ví dụ 1
Ues crt;
Var a, b: string;
Begin
 Clrscr;
 Write(‘ nhap ho ten thu nhat: ‘);
 Realn (a);
 Write(‘ nhap ho ten thu hai: ‘);
 Realn (b);
 If length(a)>length(b) then
 Write(a) else writer(b);
Realn
End.
Bảng phụ chứa ví dụ 2
Bảng phụ chứa ví dụ 3
Bảng phụ chứa ví dụ 4
Bảng phụ chứa ví dụ 5
Hoạt động 3:
Củng cố: 
Nhắc lại một số hàm và thủ tục liên quan đến xâu.
Nhắc lại cấu trúc câu lệnh.
Bài tập về nhà:
Giải bài tạp số 10 trang 80.
Ngày soạn: 28/11/07
Tiết thứ:…..Bài: 	
Tên bài học: BÀI THỰC HÀNH SỐ 5(2 tiết)
Mục tiêu:
Kiến thức:
Củng cố cho học sinh những kiến thức về xâu ký tự, đặc biệt là các hàm và thủ tục liên quan.
Nắm được một số thuật toán cơ bản : tạo xâu mới, đếm số lần xuất hiện 1 ký tự…
Kỹ năng:
Khai báo được biến kiểu xâu
Nhập, xuất giá trị cho biến xâu.
Duyệt qua được tất cả các ký tự của xâu.
Sử dụng được các hàm và thủ tục chuẩn.
Thái độ: Tự giác, tích cực, chủ động trong thực hành.
Chuẩn bị của giáo viên và học sinh:
GV: - Phòng máy vi tính đã được cài đầy đủ Turbo Pascal.
 - Tổ chức trong phòng máy để HS có được kỹ năng cơ bản khi làm việc với kiểu xâu.
HS: SGK, bài tập chuẩn bị sẵn ở nhà
Phương pháp dạy học: 
Gợi mở, vấn đáp kết hợp hoạt động nhóm.
Tiến trình bài dạy:
Hoạt động 1: Tìm hiểu một chương trình, đề xuất phương án cải tiến
TG
Hoạt động của HS
Hoạt động của GV
Ghi bảng
5’
Quan sát, đọc kỹ đề.
-HS trả lời:
* Là xâu Palidrom: 45654; abccba
* Không là xâu Palidrom: abcdba
- HS nhận xét
HĐTP1: Tìm hiểu đề bài:
 - Giới thiệu nội dung đề bài lên bảng.
 - GV diễn giải: Một xâu được gọi là Palidrom nếu ta đọc các ký tự từ phải sang trái sẽ giống khi đọc từ trái sang phải.
 - Yêu cầu HS cho 1 ví dụ về xâu 
Palidrom và 1 ví dụ không phải là xâu Palidrom
 * Gọi 2 HS trả lời.
 * Gọi HS khác nhận xét.
 * GV chính xác
BÀI THỰC HÀNH SỐ 5
Bài 1: SGK trang 73
TG
Hoạt động của HS
Hoạt động của GV
Ghi bảng
15’
- Quan sát chương trình, suy nghĩ, phân tích để hiểu chương trình.
- HS trả lời:
 * Kiểm tra 1 xâu có phải Palidrom hay không?
 *In ra: ‘ xau la Palidrom’
 ‘xau khong la Palidrom’
- HS nhận xét.
- Quan sát GV thực hiện chương trình, nhập dữ liệu và kết quả của chương trình 
HĐTP2: Tìm hiểu chương trình gợi ý
- GV thực hiện chương trình gợi ý trên máy chủ để HS quan sát.
 * Chức năng của chương trình là gì?
 *Kết quả in ra màn hình như thế nào?
- Gọi 2 HS trả lời.
- Gọi HS khác nhận xét.
- GV chính xác.
- Chạy chương trình trên máy chủ để HS kiểm nghiệm suy luận của mình.
25’
- Chú ý theo dõi yêu cầu của GV và trả lời 1 số câu hỏi dẫn dắt:
 * Các ký tự ở vị trí này giống nhau
*Ký tự thứ i đối xứng với ký tự thứ length( ) – i +1
 * So sánh tối đa length( ) div 2
* Có thể dùng For hoặc While
-Thực hiện soạn thảo chương trình vào máy theo yêu cầu cải tiến của GV
 - Nhập dữ liệu vào và thông báo kết quả
HĐTP3: Cải tiến chương trình
 - GV nêu yêu cầu mới : Viết lại chương trình mà không sử dụng biến trung gian p.
* Nhận xét về các cặp ở vị trí đối xứng nhau trong một xâu Palidrom?
 * Ký tự thứ i đối xứng với ký tự vị trí nào?
* Cần 

File đính kèm:

  • docGiao an tin hoc 11.doc