1. Trang chủ
  2. » Công Nghệ Thông Tin

Bai 12 Kieu xau

13 33 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 13
Dung lượng 15,76 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Cách thức tiến hành hoạt động: Bài toán: Viết chương trình vào từ bàn phím xâu kí tự S1, tạo xâu S2 gồm tất cả các chữ số có trong S1 có giá trị lớn nhất và đưa kết quả ra màn hình.. Dự [r]

Trang 1

I Thông tin chung

1 Trường: THPT Kỳ Sơn

2 Môn học: Tin học

3 Thông tin nhóm:

II Nội dung:

TÊN CHỦ ĐỀ: KIỂU XÂU

Lớp: 11 Thời lượng dạy học: 02 Tiết (Tiết 30,31)

I MỤC TIÊU

1 Kiến thức

- Biết xâu là một dãy ký tự (có thể coi xâu là mảng một chiều)

- Biết cách khai báo xâu, truy cập phần tử của xâu

2 Kỹ năng

- Sử dụng được một số thủ tục, hàm thông dụng về xâu

- Viết được một số chương trình đơn giản có sử dụng xâu

3 Năng lực hướng tới:

- Kĩ năng, hiểu biết về phần mềm, thiết bị CNTT-TT: Gõ đúng quy cách Có khả

năng xác định và giải quyết các vấn đề đơn giản đối với dữ liệu kiểu xâu

- Mô hình hóa các tình huống thực tiễn xảy ra phụ thuộc vào cấu trúc kiểu xâu

trong tin học

- Sử dụng CNTT-TT trong giao tiếp: Sử dụng thuật ngữ CNTT-TT chính xác

- Đạo đức, hành vi phù hợp khi sử dụng CNTT-TT: Phân biệt giữa thế giới thực và thế giới ảo

II MÔ TẢ CÁC MỨC ĐỘ NHẬN THỨC VÀ NĂNG LỰC ĐƯỢC HÌNH

THÀNH

Nội dung Loại câu

hỏi/bài tập

Nhận biết Thông hiểu Vận dụng

thấp

Vận dụng cao

Mở đầu Câu hỏi/bài

tập định tính

HS nhận ra các kiểu dữ liệu đã học;

phân biệt được sự khác nhau cơ bản giữa xâu và mảng một

Trang 2

1 Khai

báo

Câu hỏi/bài tập định tính

Hs lấy được một số ví dụ

về xâu kí tự đơn giản trong thực tế

Câu hỏi ND1.DT.NB1

Hs chỉ ra được dạng kí tự xâu trong tình huống thực tế

Câu hỏi ND1 DT TH1 Bài tập

định lượng Bài tập thực hành

2 Các

thao tác

xử lí xâu

Câu hỏi/bài tập định tính

Hs mô tả cấu trúc các thao tác xử lí xâu

Câu hỏi ND2.DT.NB1

Hs chỉ ra được các thành phần trong các thao tác xử lí xâu cụ thể

Câu hỏi ND2.DT.TH1

Bài tập định lượng

Hs biết cơ chế hoạt động của hàm và thủ tục trong kiểu xâu để chỉ ra được hoạt động một lệnh dạng cụ thể

Câu hỏi ND2.DL.NB1

Hs hiểu ý nghĩa các hàm

và thủ tục trong xâu để giải thích được hoạt động cụ thể

Câu hỏi ND2.DL.TH1

Hs viết được câu lệnh trong kiểu xâu để thực hiện một tình huống quen thuộc

Câu hỏi ND2.DL.VDT 1

Bài tập thực hành

Hs sửa lỗi lệnh

về thao tác trong chương

Trang 3

trình quen thuộc có lỗi

Câu hỏi ND2.TH.TH1

3 Một số

ví dụ

Câu hỏi/bài tập định tính

Hs mô tả cấu trúc, ý nghĩa lệnh của kiểu xâu

Câu hỏi ND3.DT.NB1

Hs chỉ ra được các thành phần của hàm và thủ tục cụ thể

Câu hỏi ND3.DT.TH1 Bài tập

định lượng Bài tập thực hành

Hs sửa lỗi lệnh của kiểu xâu trong chương trình quen thuộc

Câu hỏi ND3.TH.TH1

Hs vận dụng các lệnh của kiểu xâu kết hợp câu lệnh

đã học để viết chương trình đơn giản

Câu hỏi ND3.TH.VDT 1

III CÂU HỎI VÀ BÀI TẬP

1 Nhận biết

Câu MD1.DT.NB1 Em hãy cho biết kiểu dữ liệu có thể khai báo cho các dữ liệu tương ứng sau:

2007

10.5

True

2007 la nam Quy Suu

Câu MD2.DT.NB2 Em hãy lấy một ví dụ xâu kí tự đơn giản trong đời sống? Câu MD3.DT.NB3 Phân biệt sự khác nhau giữa xâu và mảng?

Câu ND1.DT.NB1 Có nhất thiết khai báo độ dài lớn nhất của xâu không?

Trang 4

Câu ND2.DT.NB1 Trong lập trình Pascal, xâu kí tự không có kí tự nào gọi là ?

A Xâu không;

B Xâu rỗng;

C Xâu trắng;

D Không phải là xâu kí tự;

Câu ND2.DL.NB1 Trong ngôn ngữ lập trình Pascal, khai báo nào trong các khai

báo sau là sai khi khai báo xâu kí tự ?

E S : string;

F X1 : string[100];

G S : string[256];

H X1 : string[1];

Câu ND3.DT.NB1 Trình bày cấu trúc, ý nghĩa hàm sao chép?

Câu ND3.DL.NB1 Trong ngôn ngữ lập trình Pascal, để tìm vị trí xuất hiện đầu

tiên của xâu ‘hoa’ trong xâu S ta có thể viết bằng cách nào trong các cách sau ?

I S1 := ‘hoa’ ; i := pos(S1, ‘hoa’) ;

J i := pos(‘hoa’, S) ;

K i := pos(S, ’hoa’) ;

L i := pos(‘hoa’, ‘hoa’) ;

2 Thông hiểu

Câu ND1.DT.TH1 Trong ngôn ngữ lập trình Pascal, cách khai báo xâu kí tự nào sau đây là đúng ?

M.S : char ;

N S : string[300];

O S : string;

P Cả 3 câu đều đúng ;

Câu ND2.DT.TH1 Độ dài tối đa của xâu kí tự trong PASCAL là

Câu ND2.DL.TH1 Trong ngôn ngữ lập trình Pascal, hàm Length(S) cho kết quả

gì ?

A Độ dài xâu S khi khai báo;

B Số ký tự hiện có của xâu S không tính các dấu cách;

C Số ký tự của xâu không tính dấu cách cuối cùng

D Số ký tự hiện có của xâu S

Câu ND2.TH.TH1 Hãy chỉ ra lỗi trong chương trình sau:

i := pos(‘’, S); { ‘ ’ là 2 dấu cách }

while i <> 0 do

Begin

Delete(S, i, 1) ;

Trang 5

i := pos(‘ ’, S) ; End;

Câu ND3.DT.TH1 Trong ngôn ngữ lập trình Pascal, để xóa đi ký tự đầu tiên của xâu ký tự S ta viết :

Q Delete(S, 1, 1);

R Delete(S, i, 1); { i là biến có giá trị bất kỳ }

S Delete(S, length(S), 1);

T Delete(S, 1, i); { i là biến có giá trị bất kỳ }

Câu ND3.DL.TH1 Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau thực hiện công việc gì ?

X := length(S) ;

For i := X downto 1 do

If S[i] = ‘ ’ then Delete(S, i, 1) ; { ‘ ’ là một dấu cách }

U Xóa dấu cách đầu tiên trong xâu ký tự S

V Xóa dấu cách thừa trong xâu ký tự S

W.Xóa dấu cách tại vị trí cuối cùng của xâu S

X Xóa mọi dấu cách của xâu S

Câu ND3.TH.TH1 Hãy sửa lỗi sai trong đoạn chương trình sau:

S1 := ‘anh’ ;

S2 := ‘em’ ;

i := pos(S2, S) ;

While i <> 0 do

Begin

Delete(S, i, 2) ; Insert(S1, S, i) ;

i := pos(S2, S) ; End

3 Vận dụng

Câu ND2.DL.VDT1 Viết câu lệnh đưa ra kết quả độ dài xâu s?

Câu ND3.TH.VDT1 Viết chương trình chèn xâu s1 vào xâu s2?

4 Vận dụng cao

IV KẾ HOẠCH THỰC HIỆN CHỦ ĐỀ

Nội dung Hình thức tổ Thời Thời Thiết bị DH, Học Ghi chú

Trang 6

chức dạy học lượng điểm liệu

Kiểu xâu Tại lớp 2 tiết 30,31 SGK, máy chiếu

V THIẾT KẾ TIẾN TRÌNH DẠY HỌC

Hoạt động 1 Khởi động/mở bài

1 Mục tiêu: Tạo nhu cầu tìm hiểu về 1 kiểu dữ liệu mới – Kiểu xâu.

2 Nhiệm vụ học tập của học sinh: Nhập các số từ bàn phím theo yêu cầu của GV.

3 Cách thức tiến hành hoạt động: Chia lớp thành 4 nhóm.

a) Nhập N là 1 số kiểu Integer, N=687

b) Không thể nhập 1 số như câu a.

Nhập vào từ bàn phím rồi đưa ra màn hình các số sau:

a) 687 b) 123456789101112131415

- Có thể dùng kiểu mảng nhưng dài dòng;

- Chạy chương trình dùng kiểu xâu để học sinh thấy chương trình sẽ rất ngắn gọn.

Hoạt động 2 Hình thành kiến thức mới

1 Mục tiêu:

- Biết xâu là một dãy ký tự (có thể coi xâu là mảng một chiều)

- Biết cách khai báo xâu, truy cập phần tử của xâu

- Sử dụng được một số thủ tục, hàm thông dụng về xâu

2 Nhiệm vụ học tập của học sinh: Tham gia các hoạt động giáo viên giao.

3 Cách thức tiến hành hoạt động: Chia lớp thành 4 nhóm

Bước 2 Thực hiện nhiệm vụ được giao

Các nhóm nghiên cứu SGK.

Bước 1 Giao nhiệm vụ:

Các nhóm nghiên cứu SGK và cho biết:

- Xâu là gì?

- Cách tham chiếu đến phần tử của

Trang 7

Bước 3 Báo cáo kết quả và thảo luận

- Xâu là một dãy 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 kí tự trong xâu được gọi là độ

dài của xâu

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

- Tham chiếu tới phần tử trong xâu được

xác định thông qua chỉ số của phần tử

trong xâu

- Chỉ số phần tử trong xâu thường được

đánh số từ 1

- Trong ngôn ngữ Pacal, tham chiếu tới

phần tử thường được viết :

<Tên biến xâu>[chỉ số];

Khai báo

- Pascal sử dụng từ khóa STRING để khai

báo xâu Độ dài tối đa của xâu được viết

trong [ ] sau từ khóa STRING Khai báo

như sau :

Var <tên biến> : String[độ dài lớn nhất của

xâu] ;

Ví dụ :

Var Ten : String[10] ;

Ho_dem : String[50] ;

Que : String;

xâu?

- Nêu cách khai báo xâu trong Pascal

và cho 1 số ví dụ?

Bước 4 Đánh giá kết quả

Chú ý :

- Nếu không khai báo độ dài tối

đa cho biến xâu kí tự thì độ dài ngầm định của xâu là 255

- Độ dài lớn nhất của xâu là 255

ký tự

Trang 8

- Hằng xâu kí tự được đặt trong

cặp nháy đơn ‘ ’.

Bước 2 Thực hiện nhiệm vụ được giao

Các nhóm nghiên cứu SGK.

Bước 3 Báo cáo kết quả và thảo luận

- Với các xâu kí tự có các phép phép xâu

và phép so sánh hai xâu kí tự

* Phép ghép xâu : Kí hiệu bằng dấu cộng +

- Ý nghĩa: Ghép nhiều xâu thành một

- Có thể ghép xâu với các hằng và biến xâu

Ví dụ : ‘Ha’ + ‘Noi’ cho kết quả là ‘Ha Noi’

* Phép so sánh : <, <=, >, >=, = , <>, Pascal

tự động so sánh lần lượt từ kí tự từ trái sang

phải

- Quy tắc so sánh xâu: SGK

Ví dụ : ‘AB’ < ‘AC’, ‘ABC’ > ‘ABB’,

‘ABC’ <’ABCD’

Ta có các thủ tục và hàm chuẩn sau:

* Thủ tục delete(st,vt,n): Xoá n kí tự của biến

st bắt đầu từ vị trí vt

'abcdef' delete(st,5,2); 'abcd'

'

ong

Hong'

delete(st,1,5); 'Hong'

* Thủ tục insert(s1,s2,vt): Chèn xâu s1 vào

xâu s2 từ vị trí vt

quả 'PC' 'IBM486' ins

rt(s1,s2,4);

'IBM

PC 486

Bước 1 Giao nhiệm vụ:

Các nhóm nghiên cứu SGK và cho biết có các thao tác xử lý xâu nào?

Trang 9

'1' 'Hinh 2' insert(s1,s2,6); 'Hinh

1.2'

* Thủ tục Copy(s,vt,n): Tạo xâu gồm n kí tự

liên tiếp bắt đầu từ vị trí của xâu s

'Bai hoc

thu 9'

copy(s,9,5); 'thu 9'

* Hàm length(s): Cho giá trị là độ dài xâu s

Biểu thức Kết quả

'500 ki tu' length(s); 9

* Hàm pos(s1,s2): Cho vị trí xuất hiện đầu

tiên của xâu s1 trong xâu s2

'abcdef' Pos('cd',s2); 3

'abcdef' Pos('k',s2); 0

* Hàm upcase(ch): Cho chữ cái in hoa ứng

với chữ cái trong ch

'd' upcase(ch) 'D'

'e' upcase(ch) 'E'

Bước 4 Đánh giá kết quả

Hoạt động 3 Luyện tập

1 Mục tiêu: Củng cố khái niệm về xâu, cách khai báo xâu và các thao tác xử lí xâu.

2 Nhiệm vụ học tập của học sinh: Thực hiện các bài tập theo yêu cầu của GV.

3 Cách thức tiến hành hoạt động: Chia lớp thành 4 nhóm

Trang 10

Bước 2 Thực hiện nhiệm vụ được giao

Các nhóm nghiên cứu SGK.

Bước 3 Báo cáo kết quả và thảo luận

* Ví dụ 1:

Nhập họ và tên của hai người, in ra màn hình

xâu dài hơn, nếu bằng nhau thì đưa ra xâu

nhập trước:

var

a,b:string;

begin

write('nhap ho ten thu nhat:');

readln(a);

write('nhap ho ten thu hai:');

readln(b);

if length(a)=length(b) then

write(a)

readln

Bước 1 Giao nhiệm vụ:

- Nhóm 1, nhóm 2 nghiên cứu ví dụ 1,

4 SGK rồi sửa lại chương trình theo yêu cầu:

+ Ví dụ 1 sửa nếu 2 xâu bằng nhau thì đưa ra xâu nhập trước.

+ Ví dụ 4 hãy đưa ra màn hình số kí tự trắng có trong xâu.

- Nhóm 3, nhóm 4 nghiên cứu ví dụ 2,

5 SGK rồi sửa lại chương trình theo yêu cầu:

+ Ví dụ 2 sửa kiểm tra xem kí tự cuối cùng của xâu thứ nhất có bằng kí tự cuối cùng của xâu thứ hai không? + Ví dụ 5 sửa tạo xâu s2 gồm tất cả các chữ cái in hoa có trong xâu s1?

Trang 11

* Ví dụ 2:

Nhập hai xâu từ bàn phím và kiểm tra kí tự cuối của xâu thứ nhất có trùng kí tự cuối cùng của xâu thứ hai không

var

a,b: string;

begin

write('nhap xau thu nhat:');

readln(a);

wrtie('nhap xau thu hai:');

readln(b);

if a[length(a)]=b[length(b)] then

Write(‘Trung nhau’)

else write('khong trung nhau');

readln

and.

* Ví dụ 4:

Nhập một xâu và in ra màn số kí tự trắng có trong xâu?

var i,k,dem:byte;

a:string;

begin

write('nhap xau:'); readln(a);

k:=length(a);

dem:=0;

for i:=1 to k do

if a[i]=’ ' then dem:=dem+1;

writeln('ket qua:',dem);

readln

end.

* Ví dụ 5:

Nhập kí tự từ bàn phím vào xâu 1, tạo xâu 2 với các kí tự in hoa của xâu 1 và in ra màn hình kết quả

Trang 12

var s1,s2:string;

i:byte;

begin

write('nhap xau s1:');

readln(s1);

s2:=’’;

for i:=1 to length(s1) do

if ('A'=>s1[i]) and (s1[i]<='Z') then

s2:=s2+s1[i];

writeln('ket qua:'s2);

readln

end.

Hoạt động 4 Vận dụng

1 Mục tiêu: Vận dụng kiểu xâu để viết chương trình 1 số bài đơn giản về xâu.

2 Nhiệm vụ học tập của học sinh: Vận dụng kiến thức để viết chương trình.

3 Cách thức tiến hành hoạt động:

Bài toán: Dùng thủ tục Delete() để giải quyết bài toán ví dụ 4?

Dự kiến kết quả:

var i,k:byte;

a,b:string;

begin

write('nhap xau:'); readln(a);

k:=length(a);

b:=a;

for i:=1 to k do

if b[i]=’ ' then Delete(b,i,1);

writeln('ket qua:',b);

readln

end.

Hoạt động 5 Tìm tòi mở rộng

Trang 13

1 Mục tiêu: Vận dụng kiểu xâu để viết chương trình giải quyết 1 số bài toán phức tạp hơn.

2 Nhiệm vụ học tập của học sinh: Vận dụng kiến thức để viết chương trình.

3 Cách thức tiến hành hoạt động:

Bài toán: Viết chương trình vào từ bàn phím xâu kí tự S1, tạo xâu S2 gồm tất cả các chữ

số có trong S1 có giá trị lớn nhất và đưa kết quả ra màn hình.

Dự kiến kết quả:

var s1,s2,s3:string;

i,j:byte; k:char;

begin

write('nhap xau s1:');

readln(s1);

s2:=’’;

for i:=1 to length(s1) do

if ('0'=>s1[i]) and (s1[i]<='9') then

s2:=s2+s1[i];

s3:=’’;

for k:=’9’ downto ‘0’ do

for i:=1 to length (s2) do

if s2[i]=k then s3:=s3+s2[i];

writeln('ket qua:'s3);

readln

end.

Ngày đăng: 12/10/2021, 00:38

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w