Bài 12. Kiểu xâu
Chia sẻ bởi Phạm Thị Thúy Hằng |
Ngày 10/05/2019 |
59
Chia sẻ tài liệu: Bài 12. Kiểu xâu thuộc Tin học 11
Nội dung tài liệu:
Tiết 27
Bài 12: Dữ Liệu Kiểu Xâu
SVTH: Nhóm 7
Câu 1:
Viết chương trình nhập vào một mảng gồm Các số nguyên sau đó hãy tính tổng các phần tử đó?
KIỂM TRA BÀI CŨ
Giải
Sử dụng những kiểu dữ liệu đã học, các em cho biết để khia báo biến “tên”,chúng ta nên sử dụng kiểu dữ liệi nào?
Chúng ta có thể khai báo 1 mảng kiểu char
Với cách khai báo biến tên là một mảng các phần tử
kiếu char như trên. Vấn đề đặt ra là :
Nếu bài toán yêu cầu nhập vào danh sách của
lớp gồm 20 người thì gặp khó khăn gì?
Việc khai báo nhiều biến làm cho chương trình dài dòng,nhiều biến dễ nhầm lẫn.
Chúng ta phải khai báo chiều dài của mảng đủ để chứa đươc tên của người có tên dài. Vì vậy khi nhập tên có ít kí tự sẽ phải nhập vào các kí tự trống.
Để giải quyết khó khăn trên cần có kiểu dữ liệu mới
cho phép chúng ta nhập xuất dữ liệu trên. Đó là dữ liệu
kiểu xâu.
ĐẶT VẤN ĐỀ
1. Khai báo
Kiểu Xâu
Một số khái niệm
Xâu là dãy các kí tự trong bảng 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 gọi là độ dài cua xâu. Xâu có đọ dài bằng 0 là xâu rỗng.
Ví dụ: ‘Môn Tin hoc’
‘tap the lop 11’
‘Môn Tin hoc’ có độ dài là 11
‘Lop 11A2’ có độ dài là 8
Độ dài của xâu
Khai báo
Các Thao tác
Củng cố
1. Khai báo
Kiểu Xâu
VAR:;
VAR : STRING[độ dài xâu];
Theo quy tắc đặt tên của TP
Cách khai báo biến kiểu xâu
Độ dài lúc này là lớn nhất, nhận giá trị ngầm định là 255 kí tự.
Độ dài xâu
không vượt quá 255 kí tự.
Ví dụ:
VAR name1: STRING[30];
VAR name2: STRING;
TYPE = STRING[độ dài xâu];
Từ Khóa
Gián tiếp:
Trực tiếp:
VAR : STRING;
Khai báo
Các Thao tác
Củng cố
Kiểu Xâu
Cách tham chiếu đến một phần tử của xâu:
Tên xâu[chỉ số]
Ví dụ: VAR name: STRING[6];
name=‘TinHoc’
Phép ghép xâu: S1+S2+…+Sn.
S1 + S2
S1 = ‘Hoa ’
S2 = ‘hong’
‘
’
Hoa
hong
Phép so sánh: =, < >, >, <, >=, <=
Độ dài thực sự của xâu
- Xâu A được gọi lớn hơn xâu B nếu như ký tự đầu tiên khác nhau giữa chúng kể từ trái sang trong xâu A có mã ASCII lớn hơn xâu B.
Ví dụ: A=‘do ban’;B=‘do anh’
name[5]=‘o’
2. Các thao tác xử lý xâu
name
Khai báo
Các Thao tác
Củng cố
Kiểu Xâu
n
a
b
o
d
6
5
4
3
2
1
0
Phép so sánh:
h
n
a
o
d
6
5
4
3
2
1
0
B
A
- Hai xâu được gọi bằng nhau nếu giống nhau hoàn toàn.
Ví dụ: ‘TIN HOC’ = ‘TIN HOC’.
Chú ý: Khi so sánh hai xâ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 .
Ví dụ: ‘Anh’ <‘Ba’.
Có mã thập phân là 66
Có mã thập phân là 65
2. Các thao tác xử lý xâu
Khai báo
Các Thao tác
Củng cố
Kiểu Xâu
Các thủ tục, hàm chuẩn
Thủ tục Delete(st,vt,n);
Xoá n kí tự của xâu St bắt đầu từ vị trí vt
Ví dụ:
Delete(St,4,3);
St = ‘Tin Hoc’
St= ‘Tin
Hoc’
c’
Thủ tục Insert(S,St,vt);
Chèn xâu S vào xâu St bắt đầu từ vị trí vt.
Ví dụ:
S = ’Abc’
St = ’def’
Insert(S,St,1);
St =
’
‘
Abc
def
Chú ý: Delete và Insert đều làm thay đổi xâu St
2. Các thao tác xử lý xâu
Khai báo
Các Thao tác
Củng cố
Kiểu Xâu
Các thủ tục, hàm chuẩn
Hàm Copy(S,vt,n)
Tạo xâu gồm n kí tự liên tiếp bắt đầu từ vị trí vt của xâu S
S = ‘hoa hong’
Ví dụ:
S1 = copy(s,5,4);
S1 = ‘ ’
hong
Hàm Length(S)
Cho giá trị là độ dài của xâu S.
S = ‘acd5’
Ví dụ:
M=Length(S)
M =
1
2
3
4
4
2. Các thao tác xử lý xâu
Khai báo
Các Thao tác
Củng cố
Kiểu Xâu
Các thủ tục, hàm chuẩn
Hàm Pos (S1,S2)
Cho vị trí xuất hiên đầu tiên của xâu S1 trong xâu S2.
Ví dụ:
S2=’abcde’
M1=pos(‘Cd’,S2);
Cd
1
2
Cd
3
Cd
4
Cd
5
Cd
M1 = 0
S2=’abCde’
M2=pos(‘Cd’,S2);
M2 =
Cd
1
2
Cd
3
Cd
Hàm Upcase(ch)
Cho chữ viết hoa ứng với chữ cái trong ch.
Ví dụ: ch = upcase(‘d’);
Ch = ’D’
Chú ý: ch phải là một phần tử của xâu hay là một kí tự
2. Các thao tác xử lý xâu
Khai báo
Các Thao tác
Củng cố
Kiểu Xâu
Hệ thống kiến thức
Cách khai báo kiểu dữ liệu xâu:
Các thủ tục và hàm chuẩn: Delete, Insert, Copy, Length,…
Cách truy xuất đến các phần tử của xâu và các thao tác xử lí xâu.
VAR:;
VAR : STRING[độ dài xâu];
TYPE = STRING[độ dài xâu];
Gián tiếp:
Trực tiếp:
VAR : STRING;
Khai báo
Các Thao tác
Củng cố
Kiểu Xâu
Hệ thống kiến thức
Bài tập
Bài 1: Những khai báo nào sau đây sai?
Var St:String[265];
b. Type St=String[30];
Var St1,St2:St;
c. Var St1,St2:String[30];
S,St:String;
d. Type St:String[25];
Var St:String[25];
Khai báo
Các Thao tác
Củng cố
Kiểu Xâu
Hệ thống kiến thức
Bài tập
Bài 2: Điền vào dấu ... trong bảng sau:
a. 2
b. 4
d. 3
c. ‘JK’
Khai báo
Các Thao tác
Củng cố
Kiểu Xâu
Hệ thống kiến thức
Bài tập về nhà
Bài 3: Nhập vào một xâu bất kỳ sau đó in ra màn hình hai xâu: xâu chữ số và xâu các kí tự còn lại.
Hướng giải quyết:
Nhập xâu S, khởi tạo St1:=‘’ và St2:=‘’. Duyệt từ phần tử thứ nhất đến phần tử cuối cùng của xâu S. Kiểm tra điều kiện nếu S[i] là chữ số thì cộng dồn vào xâu St1 còn không thì cộng dồn vào xâu St2
Khai báo
Các Thao tác
Củng cố
Var St1,St2:string;i:Byte;
BEGIN
St1:= ‘’;
For i:=1 to Length(s) Do
If (‘0’<=S[i])And(S[i]<=‘9’)Then
St1:=St1+S[i]
S:=St2;
END.
a12b3c4d
Writeln(‘Nhap vao motxau:’);
Readln(s);
Writeln(‘Xau Chu La:’,S);
Var s:string;
Programe LocXau;
Else
St2:=St2+S[i];
Writeln(‘Xau So La:’, St1);
a
3
b
2
1
c
d
4
S
ST1
1
2
3
4
St2:= ‘’;
ST2
a
b
c
d
Xin Chân Thành Cảm Ơn!
Bài 12: Dữ Liệu Kiểu Xâu
SVTH: Nhóm 7
Câu 1:
Viết chương trình nhập vào một mảng gồm Các số nguyên sau đó hãy tính tổng các phần tử đó?
KIỂM TRA BÀI CŨ
Giải
Sử dụng những kiểu dữ liệu đã học, các em cho biết để khia báo biến “tên”,chúng ta nên sử dụng kiểu dữ liệi nào?
Chúng ta có thể khai báo 1 mảng kiểu char
Với cách khai báo biến tên là một mảng các phần tử
kiếu char như trên. Vấn đề đặt ra là :
Nếu bài toán yêu cầu nhập vào danh sách của
lớp gồm 20 người thì gặp khó khăn gì?
Việc khai báo nhiều biến làm cho chương trình dài dòng,nhiều biến dễ nhầm lẫn.
Chúng ta phải khai báo chiều dài của mảng đủ để chứa đươc tên của người có tên dài. Vì vậy khi nhập tên có ít kí tự sẽ phải nhập vào các kí tự trống.
Để giải quyết khó khăn trên cần có kiểu dữ liệu mới
cho phép chúng ta nhập xuất dữ liệu trên. Đó là dữ liệu
kiểu xâu.
ĐẶT VẤN ĐỀ
1. Khai báo
Kiểu Xâu
Một số khái niệm
Xâu là dãy các kí tự trong bảng 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 gọi là độ dài cua xâu. Xâu có đọ dài bằng 0 là xâu rỗng.
Ví dụ: ‘Môn Tin hoc’
‘tap the lop 11’
‘Môn Tin hoc’ có độ dài là 11
‘Lop 11A2’ có độ dài là 8
Độ dài của xâu
Khai báo
Các Thao tác
Củng cố
1. Khai báo
Kiểu Xâu
VAR
VAR
Theo quy tắc đặt tên của TP
Cách khai báo biến kiểu xâu
Độ dài lúc này là lớn nhất, nhận giá trị ngầm định là 255 kí tự.
Độ dài xâu
không vượt quá 255 kí tự.
Ví dụ:
VAR name1: STRING[30];
VAR name2: STRING;
TYPE
Từ Khóa
Gián tiếp:
Trực tiếp:
VAR
Khai báo
Các Thao tác
Củng cố
Kiểu Xâu
Cách tham chiếu đến một phần tử của xâu:
Tên xâu[chỉ số]
Ví dụ: VAR name: STRING[6];
name=‘TinHoc’
Phép ghép xâu: S1+S2+…+Sn.
S1 + S2
S1 = ‘Hoa ’
S2 = ‘hong’
‘
’
Hoa
hong
Phép so sánh: =, < >, >, <, >=, <=
Độ dài thực sự của xâu
- Xâu A được gọi lớn hơn xâu B nếu như ký tự đầu tiên khác nhau giữa chúng kể từ trái sang trong xâu A có mã ASCII lớn hơn xâu B.
Ví dụ: A=‘do ban’;B=‘do anh’
name[5]=‘o’
2. Các thao tác xử lý xâu
name
Khai báo
Các Thao tác
Củng cố
Kiểu Xâu
n
a
b
o
d
6
5
4
3
2
1
0
Phép so sánh:
h
n
a
o
d
6
5
4
3
2
1
0
B
A
- Hai xâu được gọi bằng nhau nếu giống nhau hoàn toàn.
Ví dụ: ‘TIN HOC’ = ‘TIN HOC’.
Chú ý: Khi so sánh hai xâ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 .
Ví dụ: ‘Anh’ <‘Ba’.
Có mã thập phân là 66
Có mã thập phân là 65
2. Các thao tác xử lý xâu
Khai báo
Các Thao tác
Củng cố
Kiểu Xâu
Các thủ tục, hàm chuẩn
Thủ tục Delete(st,vt,n);
Xoá n kí tự của xâu St bắt đầu từ vị trí vt
Ví dụ:
Delete(St,4,3);
St = ‘Tin Hoc’
St= ‘Tin
Hoc’
c’
Thủ tục Insert(S,St,vt);
Chèn xâu S vào xâu St bắt đầu từ vị trí vt.
Ví dụ:
S = ’Abc’
St = ’def’
Insert(S,St,1);
St =
’
‘
Abc
def
Chú ý: Delete và Insert đều làm thay đổi xâu St
2. Các thao tác xử lý xâu
Khai báo
Các Thao tác
Củng cố
Kiểu Xâu
Các thủ tục, hàm chuẩn
Hàm Copy(S,vt,n)
Tạo xâu gồm n kí tự liên tiếp bắt đầu từ vị trí vt của xâu S
S = ‘hoa hong’
Ví dụ:
S1 = copy(s,5,4);
S1 = ‘ ’
hong
Hàm Length(S)
Cho giá trị là độ dài của xâu S.
S = ‘acd5’
Ví dụ:
M=Length(S)
M =
1
2
3
4
4
2. Các thao tác xử lý xâu
Khai báo
Các Thao tác
Củng cố
Kiểu Xâu
Các thủ tục, hàm chuẩn
Hàm Pos (S1,S2)
Cho vị trí xuất hiên đầu tiên của xâu S1 trong xâu S2.
Ví dụ:
S2=’abcde’
M1=pos(‘Cd’,S2);
Cd
1
2
Cd
3
Cd
4
Cd
5
Cd
M1 = 0
S2=’abCde’
M2=pos(‘Cd’,S2);
M2 =
Cd
1
2
Cd
3
Cd
Hàm Upcase(ch)
Cho chữ viết hoa ứng với chữ cái trong ch.
Ví dụ: ch = upcase(‘d’);
Ch = ’D’
Chú ý: ch phải là một phần tử của xâu hay là một kí tự
2. Các thao tác xử lý xâu
Khai báo
Các Thao tác
Củng cố
Kiểu Xâu
Hệ thống kiến thức
Cách khai báo kiểu dữ liệu xâu:
Các thủ tục và hàm chuẩn: Delete, Insert, Copy, Length,…
Cách truy xuất đến các phần tử của xâu và các thao tác xử lí xâu.
VAR
VAR
TYPE
Gián tiếp:
Trực tiếp:
VAR
Khai báo
Các Thao tác
Củng cố
Kiểu Xâu
Hệ thống kiến thức
Bài tập
Bài 1: Những khai báo nào sau đây sai?
Var St:String[265];
b. Type St=String[30];
Var St1,St2:St;
c. Var St1,St2:String[30];
S,St:String;
d. Type St:String[25];
Var St:String[25];
Khai báo
Các Thao tác
Củng cố
Kiểu Xâu
Hệ thống kiến thức
Bài tập
Bài 2: Điền vào dấu ... trong bảng sau:
a. 2
b. 4
d. 3
c. ‘JK’
Khai báo
Các Thao tác
Củng cố
Kiểu Xâu
Hệ thống kiến thức
Bài tập về nhà
Bài 3: Nhập vào một xâu bất kỳ sau đó in ra màn hình hai xâu: xâu chữ số và xâu các kí tự còn lại.
Hướng giải quyết:
Nhập xâu S, khởi tạo St1:=‘’ và St2:=‘’. Duyệt từ phần tử thứ nhất đến phần tử cuối cùng của xâu S. Kiểm tra điều kiện nếu S[i] là chữ số thì cộng dồn vào xâu St1 còn không thì cộng dồn vào xâu St2
Khai báo
Các Thao tác
Củng cố
Var St1,St2:string;i:Byte;
BEGIN
St1:= ‘’;
For i:=1 to Length(s) Do
If (‘0’<=S[i])And(S[i]<=‘9’)Then
St1:=St1+S[i]
S:=St2;
END.
a12b3c4d
Writeln(‘Nhap vao motxau:’);
Readln(s);
Writeln(‘Xau Chu La:’,S);
Var s:string;
Programe LocXau;
Else
St2:=St2+S[i];
Writeln(‘Xau So La:’, St1);
a
3
b
2
1
c
d
4
S
ST1
1
2
3
4
St2:= ‘’;
ST2
a
b
c
d
Xin Chân Thành Cảm Ơn!
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...
Người chia sẻ: Phạm Thị Thúy Hằng
Dung lượng: |
Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)