Tin 11 tuan 13 15 tiet 23 28

20 50 0
Tin 11 tuan 13 15 tiet 23 28

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

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.Về thái độ:.[r]

(1)

Tuần: 13 - Tiết PPCT: 23 Ngày dạy:

I MỤC TIÊU: 1 Về kiến thức:

Học sinh sau tiết học sẽ:

 Củng cố lại kiến thức kiểu liệu mảng 2 Về kỹ năng:

 Nâng cao kĩ sử dụng số lệnh kiểu liệu mảng chiều:  Khai báo kiểu liệu mảng chiều

 Nhập, xuất liệu mảng

 Duyệt qua tất phần tử mảng 3 Về thái độ :

 Rèn luyện cho học sinh thái độ tích cực, sáng tạo, chủ động việc tìm kiếm kiến thức

 Hứng thú việc viết chương trình giải toán II CHUẨN BỊ:

1 Giáo viên:

 Sách giáo viên, máy vi tính cài đặt Turbo Pascal 2 Học sinh:

 Xem 11 Kiểu mảng

 Xem trước BÀI TẬP VÀ THỰC HÀNH III PHƯƠNG PHÁP:

 Phương pháp giảng dạy: nêu vấn đề giải vấn đề  Vấn đáp, gợi mở để học sinh tham gia tích cực vào học IV TIẾN TRÌNH DẠY HỌC:

1 Ổn định tổ chức: kiểm diện 2 Kiểm tra cũ:

 GV đặt câu hỏi:

+ Trình bày thao tác nhập, xuất mảng chiều + Trình bày thao tác nhập, xuất mảng chiều

 GV nhận xét cho điểm

(2)

3 Giảng mới:

Hoạt động thầy, trò Nội dung

GV: khai báo crt; có ý nghĩa gì? Khai báo thư viện chương trình để sử dụng thủ tục clrscr;

GV: MyArray tên biến hay tên kiểu liệu?

Tên kiểu liệu

GV:vai trò nmax va n có khác nhau?

nmax số phần tử tối đa mảng, n số phần tử thực tế mảng (n<=nmax)

GV khai báo randomize; có tác dụng gì?

Khởi tạo chế sinh số ngẫu nhiên

GV: lệnh gán A[i]:=random(300)-random(300); có tác dụng gì? Sinh ngẫu nhiên giá trị cho mảng khoảng -299 đến 299

GV: lệnh for cuối thực nhiệm vụ gì?

Cộng phần tử chia hết cho k GV: lệnh s:=s+A[i]; thực lần?

Số lần thực số phần tử mảng chia hết cho k

Thực chương trình với k,n khác để học sinh thấy kết

Quan sát giáo viên thực chương trình

Đặt câu hỏi giúp học sinh hiểu câu lệnh cần thêm vào giúp học sinh xác định vị trí cần thêm

1 Bài 1: Tạo mảng A gồm n (n<=100) số nguyên, số có trị tuyệt đối khơng vượt q 300 Tính tổng phần tử mảng bội số số nguyên dương k cho trước

a Tìm hiểu chạy chương trình sau: program Sum1;

uses crt;

const nmax=100;

type MyArray =array[1 nmax] of integer;

var A: MyArray; s,n,i,k: integer; begin

clrscr; randomize;

write('Nhap n= '); readln(n);

{ Tạo ngẫu nhiên mảng gồm n số nguyên }

for i:=1 to n do

A[i]:=random(300)-random(300); for i:=1 to n do

write(A[i]:5); {In mảng vừa tạo} 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 la: ',s); readln;

(3)

chính xác dễ dàng

Quan sát, ý câu hỏi giáo viên đặt ra, tìm câu trả lời, phát biểu ý kiến

GV: khai báo thêm biến posi neg có ý nghĩa gì?

Suy nghĩ, tìm vị trí cần thêm vào chương trình

posi lưu số số dương, neg lưu số số âm đếm mảng

b Thêm lệnh vào vị trí cần thiết nhằm sửa đổi chương trình trong câu a) để có chương trình đưa số số dương số 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); 4.Củng cố luyện tập:

 Nhắc lại kiến thức quan trọng cần nắm

- Sử dụng hàm random(n) để lấy giá trị ngẫu nhiên tử đến n – 1, để tạo giá trị âm dùng random(n) – random(n)

5.Hướng dẫn học sinh chuẩn bị nhà:

 Cho tập nhà: Viết lại chương trình cách nhập liệu từ bàn phím

 Chuẩn bị tiếp thực hành V RÚT KINH NGHIỆM:

+ Chương trình SGK: + Học sinh: + Giáo viên: Nội dung: Phương pháp: Tổ chức:

Tuần: 13 - Tiết PPCT: 24 Ngày dạy:

I MỤC TIÊU: 1 Về kiến thức:

Học sinh sau tiết học sẽ:

(4)

2 Về kỹ năng:

 Nâng cao kĩ sử dụng số lệnh kiểu liệu mảng chiều  Giải số toán thường gặp

 Tính tổng phần tử thỏa mãn điều kiện  Đếm số phần tử thỏa mãn điều kiện  Tìm phần tử lớn nhất, nhỏ

3 Về thái độ :

 Rèn luyện cho học sinh thái độ tích cực, sáng tạo, chủ động việc tìm kiếm kiến thức

 Hứng thú việc viết chương trình giải tốn II CHUẨN BỊ:

1 Giáo viên:

 Sách giáo viên, máy vi tính cài đặt Turbo Pascal 2 Học sinh:

 Xem 11 Kiểu mảng

 Xem trước BÀI TẬP VÀ THỰC HÀNH (tt) III PHƯƠNG PHÁP:

 Phương pháp giảng dạy: nêu vấn đề giải vấn đề  Vấn đáp, gợi mở để học sinh tham gia tích cực vào học IV TIẾN TRÌNH DẠY HỌC:

1 Ổn định tổ chức: kiểm diện

2 Kiểm tra cũ: trình giảng bài 3 Giảng mới:

Hoạt động thầy,

trò Nội dung

GV: câu lệnh if else if có tác dụng gì?

Kiểm tra số dương, số âm đếm

GV: nên chèn câu lệnh vào vị trí chương trình câu a?

Yêu cầu học sinh gõ lại chương trình, thực

2 Bài 2: Viết chương trình tìm phần tử có giá trị lớn mảng, đưa hình số giá trị phần tử tìm Nếu có nhiều phần tử có giá trị lớn đưa phần tử có số nhỏ

a Hãy tìm hiểu chương trình sau đây: program MaxElement;

const Nmax=100;

(5)

xem kết

Chỉ vị trí cần chèn

Thực yêu cầu giáo viên báo cáo kết Viết chương trình chạy thử

Đặt câu hỏi tới đâu, giải thích chương trình tới giúp học sinh khắc sâu kiến thức

Quan sát, ý, suy nghĩ trả lời

GV:Vai trò biến i, j chương trình?

i:biến điều khiển.

j: lưu số phần tử có giá trị lớn

GV: Muốn tìm phần tử nhỏ cần sửa chỗ nào?

Thay câu lệnh so sánh A[i] > A[j] A[i]< A[j]

GV:muốn tìm phần tử lớn với số lớn làm sao?

Thay câu lệnh for i:=1 to n for i:=n-1 to do Chú ý: Nếu có thời gian, thực thay đổi chạy chương trình cho học sinh quan sát

GV: cần giữ lại đoạn chương trình khơng? Cần

GV: cần thêm lệnh

var A:MyArray; n,i,j: integer; begin

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; j:=1;

for i:=2 to n do

if A[i] > A[j] then j:=i;

write('Chi so: ',j,' Gia tri: ',A[j]:4); readln

end.

b Chỉnh sửa chương trình để đưa ra chỉ số phần tử có giá trị lớn nhất. Program MaxElement;

Const Nmax = 100;

Type MyArray = array[1 Nmax] of integer;

Var A: MyArray;

n, i, j: integer; Begin

Write(‘Nhap so luong phan tu cua day so, N= ‘);

Readln(N);

For i:=1 to N Begin

write(‘Phan tu thu ‘, i, ‘=’);

readln(A[i]); End;

(6)

nào? Vị trí cần thêm?

yêu cầu học sinh hoàn thiện chương trình, chạy thử báo cáo kết

Thêm lệnh in số phần tử có giá trị giá trị lớn Thêm vào sau tìm giá trị lớn

for i:=2 to N if A[i] > A[j] then j:=I;

write(‘Phan tu lon nhat la ‘, A[j]);

write(‘Cac chi so la’); for i:=1 to N

if A[i] = A[j] then writeln(i);

Readln End Củng cố luyện tập:

- Cấu trúc chương trình: {Khai báo biến}

Phần thân:

Nhập giá trị N cho biết số lượng phần tử mảng

Khởi tạo giá trị cho tất phần tử mảng (sử dụng vòng lặp for-do lệnh readln hàm random)

Các câu lệnh xử lý phần tử mảng Xuất liệu theo đề yêu cầu

4. Hướng dẫn học sinh chuẩn bị nhà:

 Cho tập nhà: Viết lại chương trình cách nhập liệu từ bàn phím

 Chuẩn bị

V RÚT KINH NGHIỆM:

(7)

Tuần: 14 - Tiết PPCT: 25 Ngày dạy:

I MỤC TIÊU:

1.Về kiến thức: Học sinh sau tiết học sẽ:

-Biết xâu dãy kí tự Biết cách khai báo xâu, truy cập phần tử xâu -Các phép so sánh xâu Sử dụng số thủ tục, hàm thông dụng xâu

-Cài đặt số chương trình đơn giản có sử dụng xâu Phân biệt giống khác kiểu mảng với xâu

2.Về kỹ năng:

- Khai báo biến kiểu xâu ngơn ngữ lập trình Pascal - Có thể nhập hay xuất giá trị biến kiểu xâu

- So sánh hai xâu Sử dụng biến xâu, phép toán hàm, thủ tục chuẩn xâu để giải toán đơn giản

3.Về thái độ:

- Tiếp tục xây dựng lịng ham thích lập trình, nhằm giải tóan máy tính

II CHUẨN BỊ: 1.Giáo viên:

- Sách giáo viên

- Dặn dò học sinh xem trước nhà 2.Học sinh:

- Xem trước 12: “ Kiểu xâu” III PHƯƠNG PHÁP:

Diễn giảng, nêu vấn đề IV TIẾN TRÌNH DẠY HỌC:

1 Ổn định tổ chức : Kiểm diện 2 Kiểm tra cũ:

Câu hỏi: Viết chương trình cho phép nhập in hình họ tên hs lớp Với yêu cầu ta sử dụng kiểu kiệu học nào? Và khai báo sao?

- Kiểu liệu mảng chiều kiểu phần tử kiểu kí tự - Var hoten : array [1 50] of char

(8)

3 Giảng mới:

Hoạt động thầy trò Nội dung

Hoạt động 1: Giới thiệu mục đích bài dạy số khái nệm kiểu xâu.

GV toán đặt vấn đề: Viết chương trình nhập in hình họ tên của học sinh lớp.

GV: Ta sử dụng kiểu liệu học nào? Khai báo sao?

HS: Kiểu mảng chiều Khai báo: Var A:array[1 50] of char;

GV: Khai báo cho phép nhập vào họ tên 50 học sinh? Giải tốn gặp phải khó khăn gì? HS: Chương trình giải dài dịng Khó khăn nhập liệu ==> Để giải vấn đề này, tìm hiểu kiểu liệu – kiểu xâu.

GV: Vậy xâu gì? Yêu cầu HS cho số vd xâu Độ dài xâu bao nhiêu? Có thể xem xâu mảng chiều không? Tham chiếu nào?

GV trình bày khái niệm, ví dụ giới thiệu thành phần xâu, cách tham chiếu đến 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 Yêu cầu học sinh giải thích ý nghĩa string

HS: nghiêm túc lắng nghe, trả lời ghi chép

Lưu ý: bỏ qua phần khai báo

I Khái niệm:

- Xâu dãy kí tự mã ASCII

- Mỗi kí tự gọi phần tử xâu

- Số lượng kí tự xâu gọi độ dài xâu

- Xâu có độ dài gọi xâu rỗng

vd: ‘Lop11A5’, độ dài ‘Pascal’, độ dài Chú ý :

+ Có thể xem xâu mảng chiều mà phần tử kí tự Các kí tự xâu đánh số thứ tự, thường

+ Tham chiếu tới phần tử xâu: <Tên biến xâu>[chỉ số]

vd: Biến Lop lưu trữ giá trị xâu ‘Lop11A5’ Lop[6] cho ta kí tự thứ ‘A’

II Khai báo biến xâu: Khai báo:

Var <tên biến>: string[độ dài lớn xâu];

vd: var Hoten : string [30]; Var Lop: string [5]; var Mahs : string; Lưu ý:

+ Giá trị xâu đặt dấu nháy đơn ‘’

(9)

độ dài xâu Xâu tạo thành kí tự, có dấu cách Dấu cách thể văn phần trống ngăn cách hai từ viết liên tiếp

GV yêu cầu HS khai báo biến Hoten biến Lop thuộc kiểu xâu

GV: Xâu gồm dấu cách viết nào? Số lượng kí tự bao nhiêu? Xâu rỗng viết nào? Số lượng kí tự bao nhiêu?

HS: Nghiên cứu SGK, trả lời ghi chép

GV trình bày ngồi cách nhập giá trị xâu mà ta học, sử dụng lệnh gán để nhập giá trị cho biến xâu

GV yêu cầu HS cho vd lệnh gán giá trị cho xâu

GV trình bày vd cho HS nhận xét lệnh đúng?giải thích

HS: Quan sát chương trình, suy nghĩ trả lời Chú ý quan sát ghi chép Hoạt động 3: Các thao tác xử lý xâu:

GV trình bày thao tác xử lý xâu Em hiểu ghép xâu?

HS: Trả lời ghi chép GV lắng nghe nhận xét

GV: Gọi HS cho vd ghép xâu. GV: Gọi HS nêu phép so sánh đã biết

Mức độ ưu tiên phép ghép xâu, hơn?

GV: Trình bày quy tắc so sánh. HS: Chú ý quan sát, nghe giảng

+ Xâu rỗng, có độ dài Kí hiệu ‘’.

2 Gán giá trị cho biến xâu:

Tên_biến_xâu:= xâu; Vd: st:= ‘Nguyen Trai’;

Hoten:= ‘Nguyen Van Cuong’;

Chú ý: “Khi sử dụng lệnh gán, ta có thể gán trị kí tự cho biến xâu kí tự việc gán trị xâu kí tự cho biến kiểu kí tự khơng hợp lệ dù xâu có độ dài 1.”

Vd

: Var st: string[1]; c : char; Begin

c := st[1]; {1} 

c := st; {2}  Sai

End

III Các thao tác xử lý xâu: 1 Phép ghép xâu:

+ Kí hiệu: (+), sử dụng để ghép nhiều xâu thành

Vd: ‘Ha’ + ‘Noi’ + ‘ - ’+ ‘Viet Nam’  ‘Ha Noi - Viet Nam’

2 Phép so sánh:

Các phép so sánh: (=), khác (<>), nhỏ (<), lớn (>), nhỏ (<=), lớn (>=)

Có thứ tự ưu tiên thấp phép ghép xâu

 Theo quy tắc:

+ A> B kí tự khác chúng từ trái sang xâu A có mã ASCII lớn

+ A B có độ dài khác A đoạn đầu B A < B

+ A = B A B giống hoàn toàn

(10)

ghi chép

GV: Hai xâu gọi nhau?

GV: Đưa vd để HS so sánh.

GV: Giới thiệu số thủ tục xử lý xâu

GV: Trình bày thủ tục Delete.Gọi HS giải thích ý nghĩa thủ tục tham số thủ tục

HS: Nghiên cứu SGK trả lời. GV: Đưa vd gọi HS trả lời kết

GV: Em hiểu thủ tục insert?

HS: Nghiên cứu SGK trả lời

GV: Trình bày thủ tục Insert.Đưa vd gọi HS cho kết thủ tục HS: Trả lời ghi chép.

thể lớn (>) xâu có độ dài lớn Vd: ‘AC’ > ’ABC’

3 Một số hàm thủ tục xử lý xâu: a) Thủ tục:

 Delete(st,vt,n) : thực xóa n kí tự biến xâu st vị trí vt Vd: st1:= ‘Tay Ninh’

Delete(st1,4,5)  ‘Tay’ St2:= ‘Nam Bo’

Delete(st2,4,3)  ‘Nam’

 Insert(s1,s2,vt): chèn xâu s1 vào xâu s2, bắt đầu vị trí vt

Vd: s1:= ‘.’

S2:= ‘TPHCM’

Insert(s1,s2,3)  ‘TP.HCM’

4 Củng cố luyện tập:

Cách khai báo biến kiểu xâu : Var <tên biến>: string[n]; n độ dài lớn xâu (có thể khơng khai báo giá trị ngầm định 255)

Các thao tác xâu: ghép xâu, so sánh xâu theo thứ tự từ điển Những hàm thủ tục liên quan đến xâu :

+ Thủ tục Delete(st, vt,n); + Thủ tục Insert(st1,st2,vt); Hướng dẫn học sinh chuẩn bị nhà:

Học làm lại ví dụ sách giáo khoa máy Xem chuẩn bị tiếp 12 KIỂU XÂU

V- RÚT KINH NGHIỆM:

(11)

Tuần: 14 - Tiết PPCT: 26 Ngày dạy:

I MỤC TIÊU:

1.Về kiến thức: Học sinh sau tiết học sẽ:

-Biết xâu dãy kí tự Biết cách khai báo xâu, truy cập phần tử xâu -Các phép so sánh xâu Sử dụng số thủ tục, hàm thông dụng xâu

-Cài đặt số chương trình đơn giản có sử dụng xâu Phân biệt giống khác kiểu mảng với xâu

2.Về kỹ năng:

- Khai báo biến kiểu xâu ngơn ngữ lập trình Pascal - Có thể nhập hay xuất giá trị biến kiểu xâu

- So sánh hai xâu Sử dụng biến xâu, phép toán hàm, thủ tục chuẩn xâu để giải toán đơn giản

3.Về thái độ:

- Tiếp tục xây dựng lịng ham thích lập trình, nhằm giải tóan máy tính

II CHUẨN BỊ: 1.Giáo viên:

- Sách giáo viên

- Dặn dò học sinh xem trước nhà 2.Học sinh:

- Xem tiếp 12: “ Kiểu xâu” III PHƯƠNG PHÁP:

Diễn giảng, nêu vấn đề IV TIẾN TRÌNH DẠY HỌC:

1 Ổn định tổ chức : Kiểm diện

2 Kiểm tra cũ: trình giảng bài 3 Giảng mới:

Hoạt động thầy trò Nội dung

Hoạt động 1: Các hàm xử lý xâu (tiếp theo)

GV: Trình bày hàm xử lý

3 Một số hàm thủ tục xử lý xâu (tt) : b) Hàm xử lý xâu:

(12)

xâu

GV: Trình bày hàm copy. HS: ý nghe giảng ghi chép

GV: Gọi HS giải thích ý nghĩa tham số hàm

GV: Đưa xâu hàm copy yêu cầu HS đưa kết

GV: Em hiểu hàm length?Gọi HS cho vd hàm length.

HS: nghiên cứu SGK nghiêm túc trả lời

GV: Em hiểu hàm pos? Gọi HS cho vd

GV: Em hiểu hàm upcase?Cho vd?

HS: Nghiên cứu SGK trà lời. GV: Giới thiệu số thủ tục xử lý xâu

Hoạt động 2: Một số ví dụ

GV: Viết chương trình cho nhập họ tên hai người vào hai biến xâu đưa xâu dài hơn, đưa xâu nhập sau

GV: Hỏi học sinh: làm để xác định độ dài chuỗi?

HS: Nêu lên cách giải vấn đề

GV: Nhận xét câu trả lời HS. GV: Sau xác định độ dài hai chuỗi ta dùng phép so sánh câu lệnh If để xuất chuỗi hình theo yêu cầu

tự liên tiếp vị trí vt xâu S Copy (S, vt, N)

vd: s:= ‘Bai Kieu Xau’

copy (s, 5,8)  ‘Kieu Xau’

 Hàm length(s) : cho giá trị độ dài xâu

Vd: s:= ‘Lap trinh Pascal’  length(s) =16  Hàm pos(s1,s2) : cho vị trí xuất

đầu tiên xâu s1 xâu s2 Vd: S2:= ‘Lop 11A5 co 45 HS’

Pos(’45 HS’, S2)  13 Pos (‘b’, S2) 

 Hàm upcase(ch): cho chữ in hoa ứng với chữ ch

Vd: ch:= ‘h’  ‘H’ IV Một số ví dụ :

Ví dụ 1: Viết chương trình cho nhập họ tên hai người vào hai biến xâu đưa ra xâu dài hơn, đưa xâu nhập sau.

Program Vi_du_1; Uses Crt;

Var a,b : string; Begin

write(‘Ho ten thu nhat: ’); readln(a);

write(‘Ho ten thu hai: ’); readln(b);

if length(a) > length(b) Then

write(a); else

write(b); readln

End

(13)

của tốn

GV: Viết chương trình nhập hai xâu từ bàn phím kiểm tra ký tự xâu thứ có trùng với ký tự cuối xâu thứ hai không

GV: Xác định độ dài xâu b để biết vị trí cuối xâu b Sau so sánh ký tự xâu thứ (a[1]) với ký tự cuối xâu thứ hai (b[x]) để tìm kết

GV: Viết chương trình nhập vào xâu từ bàn phím đưa hình xâu viết theo thứ tự ngược lại

GV: Dùng biến k để xác định chiều dài xâu a Dùng vịng lặp for chạy từ vị trí cuối đến vị trí xâu a xuất kết cần tìm

GV: Viết chương trình nhập vào xâu từ bàn phím đưa

xâu thứ có trùng với ký tự cuối của xâu thứ hai không.

Program Vi_du_2; Uses Crt;

Var x: byte;

a,b : string; Begin

write(‘Nhap xau mot: ’); readln(a);

write(‘Nhap xau hai: ’); readln(b);

x:=length(b);

if a[1]=b[x] then

write(‘Trung nhau’); else

write(‘Khac nhau’); readln

End

Ví dụ 3: Viết chương trình nhập vào xâu từ bàn phím đưa hình xâu đó viết theo thứ tự ngược lại. Program Vi_du_3;

Uses Crt;

Var i,k: byte; a: String; Begin

write(‘Nhap xau: ’); readln(a);

k:= length(a);

for i:= k downto write(a[i]);

readln End

Ví dụ 4: Viết chương trình nhập vào xâu từ bàn phím đưa hình xâu thu sau loại bỏ dấu cách có.

(14)

màn hình xâu thu sau loại bỏ dấu cách có

GV: Gán biến k để chứa độ dài xâu a, khởi tạo b với giá trị rỗng (xâu dùng để chứa xâu kết xuất hình)

GV: Dùng vịng lặp for quét toàn xâu a loại bỏ dấu cách, sau gán lấn lượt kết vào cho xâu b

GV: Xâu b kết xuất màn hình

GV: Viết chương trình nhập vào xâu ký tự s1 từ bàn phím, tạo xâu s2 gồm tất chữ số có s1 (giữ nguyên thứ tự xuất chúng) đưa kết hình

GV: Sau nhập vào xâu s1, ta khởi tạo cho xâu s2 rỗng nhằm gán số tìm xâu s1 vào xâu s2

GV: Cho vòng lặp for chạy từ vị

Uses Crt;

Var i, k : Byte; a,b : string; Begin

write(‘Nhap xau: ’); readln(a);

k := length(a); b := ‘’;

for i := to k

if a[i] <> ‘ ’ then b := b + a[i];

write(‘Ket qua: ’,b);

readln End

Ví dụ 5: Viết chương trình nhập vào xâu ký tự s1 từ bàn phím, tạo xâu s2 gồm tất cả các chữ số có s1 (giữ nguyên thứ tự xuất chúng) đưa kết ra màn hình.

Program Vi_du_5; Uses Crt;

Var s1, s2 :string; i: byte;

Begin

Clrscr;

write (‘Nhap vao xâu s1: ’);

readln(s1); s2:= ‘’;

for i:= to length(s1)

If(‘0’<= s1[i]) and (s1[i]<=‘9’) then

s2:=s2 + s1[i]; writeln(‘Ket qua: ’,s2); readln;

(15)

trí đến vị trí cuối xâu s1, tìm thấy số xâu s1 nằm khoảng từ đến đưa vào xâu s2

GV: Xuất xâu s2 hình 4 Củng cố luyện tập:

Những hàm liên quan đến xâu :

+ Hàm Copy(st, vt, n); + Hàm Length(st); + Hàm Pos(st1, st2); + Hàm UpCase(ch); Hướng dẫn học sinh chuẩn bị nhà:

Học làm lại ví dụ sách giáo khoa máy Xem chuẩn bị Bài BÀI TẬP VÀ THỰC HÀNH SỐ Chuẩn bị số tập để thực hành

V- RÚT KINH NGHIỆM:

+ Chương trình SGK: + Học sinh: + Giáo viên: Nội dung: Phương pháp: Tổ chức:

Tuần:15 - Tiết PPCT: 27 Ngày dạy:

I MỤC TIÊU: 1 Về kiến thức:

Học sinh sau tiết học sẽ:

- Củng cố cho học sinh hiểu biết sâu

- Cung cấp vài thuật toán đơn giản thường gặp xử lí văn

2 Về kỹ năng:

- Giúp học sinh có kỹ làm việc với xâu lập trình

- Khai báo kiểu xâu

(16)

- Nhập liệu cho xâu, đưa hình giá trị xâu - Sử dụng hàm thủ tục chuẩn trình bày SGK 3 Về thái độ :

 Có tư đắn việc áp dụng kiểu xâu để giải toán đơn

giản

 Tạo lòng ham muốn giải số tập tính tốn đơn giản

ngơn ngữ Pascal II CHUẨN BỊ:

1 Giáo viên:

 Sách giáo viên, máy vi tính cài đặt Turbo Pascal 2 Học sinh:

 Sách giáo khoa, tập Xem lại KIỂU XÂU  Xem trước BÀI TẬP VÀ THỰC HÀNH

III PHƯƠNG PHÁP:

Phương pháp vấn đáp, kết hợp tạo tình có vấn đề IV TIẾN TRÌNH DẠY HỌC:

1 Ổn định tổ chức: kiểm diện 2 Kiểm tra cũ:

Câu Var

St : string;

i, L : integer; Begin

St :='Hoc thay khong tay hoc ban’; L:=Length(St);

For i := to L

If (St[i] >= 'a') and (St[i] <= 'z') then St[i]:=

Upcase (St[i]);

Write (St);

End

Kết đoạn chương trình gì? (2đ)

Câu Thủ tục Delete(st,vt,n)và Insert(s1,s2,vt) thực cơng việc gì? Cho ví dụ minh hoạ.(6đ)

3 Giảng mới:

Hoạt động của

(17)

Bài tập 1

Giáo viên : Cho ví dụ hai xâu khác học sinh hiểu xâu palindrome?

Học sinh: Xem chương trình bài1 giải thích lệnh

Giáo viên đặt câu hỏi: a Nhận xét cặp kí tự vị trí đối xứng xâu

palindrome ?

b Kí tự vị trí i đối xứng với kí tự vị trí nào?

c Phải so sánh bao

nhiêu cặp kí tự xâu để biết xâu có palindrome hay khơng? Giải thích

a Kí tự đầu xâu đối xứng với kí tự cuối xâu, kí tự thứ xâu đối xứng với kí tự đứng trước kí tự cuối xâu

b Giả sử chiều dài xâu x kí tự vị trí thứ I đối xứng với kí tử vị trí thứ

x-i+1

c Phải so sánh x/2 cặp kí tự xâu để biết

1 Định nghĩa xâu palindrome: * Ý tưởng:

- Nhập vào xâu a.

- Tạo xâu p từ xâu a có thứ tự ngược lại. - So sánh xâu p với xâu a:

+ Nếu xâu p = xâu a thơng báo xâu a xâu palindrome

+ Ngược lại thông báo không xâu palindrome

* Chương trình tập 1.a (SGK/ 73) * Chương trình 1.b

* Ý tưởng b:

- Trong xâu palindrome:

+ s[i] = s[length(s) – i + 1];

+ Dùng vòng lặp để thực phép so sánh cặp kí tự

+ Nếu cặp kí tự vị trí đối xứng nhau khác kết luận xâu khơng palindrome

+ Dùng biến lôgic để ghi nhận phát hiện

Var i, x: byte; a: string;

palin: boolean; Begin

Write (‘ Nhap vao xau: ‘); Readln ( a );

x: = length ( a ) ; // xác định độ dài xâu

palin:= true; // khởi tạo palin, tạm coi xâu a palindrome

For i:= to x div // so sánh cặp kí tự đối xứng

(18)

xâu có palindrome hay khơng

Học sinh: Viết chương trình câu 1b

If palin then writeln (‘ Xau la palindrome’)

Else Writeln ( ‘ Xau khong la xau palindrome’)

readln; End

4 Củng cố luyện tập :

- Nhắc lại kỹ thuật đặt cờ hiệu lập trình. Hướng dẫn học sinh chuẩn bị nhà:

 Xem tiếp BÀI TẬP VÀ THỰC HÀNH V RÚT KINH NGHIỆM:

+ Chương trình SGK: + Học sinh: + Giáo viên: Nội dung: Phương pháp: Tổ chức:

Tuần:15 - Tiết PPCT: 28 Ngày dạy:

I MỤC TIÊU: 1 Về kiến thức:

– Củng cố kiến thức có lập trình với kiểu liệu xâu

– Biết vài thuật toán đơn giản thường gặp xử lí văn 2 Về kỹ năng:

Biết khai báo xâu, nhập liệu cho xâu, đưa hình giá trị xâu Biết duyệt qua tất kí tự xâu để thực xử lí tương ứng với

từng kí tự

Sử dụng hàm thủ tục chuẩn trình bày sách giáo khoa Biết tạo xâu từ xâu ban đầu

(19)

Tìm kiếm thay xuất từ từ khác toàn bô văn

3 Về thái độ :

Có ý thức viết chương trình với khối lượng tính tốn Tích cực học tập, hình thành rèn luyện tư lập trình, tác phong

người lập trình II CHUẨN BỊ:

1 Giáo viên:

 Sách giáo viên, máy vi tính cài đặt Turbo Pascal 2 Học sinh:

 Xem tiếp BÀI TẬP VÀ THỰC HÀNH III PHƯƠNG PHÁP:

Phương pháp vấn đáp, kết hợp tạo tình có vấn đề IV TIẾN TRÌNH DẠY HỌC:

1 Ổn định tổ chức: kiểm diện 2 Kiểm tra cũ:

Viết chương trình cho phép nhập in hình họ tên, lớp, trường học sinh (10đ)

3 Giảng mới:

Hoạt động thầy,

trò Nội dung

Bài tập 2

Giáo viên : Hướng dẫn cho học sinh phần khai báo mảng đếm Học sinh: Về nhà hoàn thiện chương trình

Bài tập 3

Giáo viên: Gợi ý { Phần khai báo}

begin

{ Nhập xâu S }

{ Chừng tìm thấy xâu “

* Chương trình 2 { Phần khai báo} Begin

{ Nhập xâu S } N: = Length (s);

{ Khởi trị cho mảng đếm} For i:= to N

{ Nếu s[i] chữ đếm tăng cho s[i] } For c: = ‘ A ‘ to ‘ Z ’

{ thông báo số lần xuất c} End

(20)

anh” xâu S làm việc sau:

_ Tìm vị trí bắt đầu xâu “ anh “

_ Xóa xâu “anh” vừa tìm thấy _ Chèn xâu “ em “ vào xâu S vị trí trước xuất xâu “ anh”

{ In kết xâu S } End

Học sinh: Về nhà hồn thiện chương trình

Var vt: byte; st: string; Begin

Write (‘ Nhap vao mot xau: ‘ ); Readln (st);

While pos (‘anh’, st ) <>0 Begin

Vt: = pos ( ‘ anh ‘, st ); Detele ( st, vt, 3);

Insert (‘ em ‘, st, vt) End;

Write ( st ); Readln;

End Củng cố luyện tập :

- Nhắc lại thao tác để tìm thay xuất từ từ khác toàn văn

5 Hướng dẫn học sinh chuẩn bị nhà:

 Xem trước 13 KIỂU BẢN GHI V RÚT KINH NGHIỆM:

Ngày đăng: 20/04/2021, 04:37

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan