Bài 12. Kiểu xâu

Chia sẻ bởi Việt Phương | Ngày 10/05/2019 | 50

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:

Chương IV. Kiểu dữ liệu có cấu trúc
Bài 11. Kiểu mảng
Bài thực hành số 3, 4
Bài 12. kiểu xâu
Bài 13. kiểu bản ghi
Bài thực hành số 5
bài 12. kiểu xâu
i. kh¸i niÖm x©u vµ khai b¸o x©u
ii. các thao tác xử lí xâu
iii. một số ví dụ về xâu
Viết chương trình nhập họ tên của các học sinh trong lớp.
Ta nên chọn kiểu dữ liệu nào? Bài toán sẽ có những khó khăn gì?
i. kh¸i niÖm x©u vµ khai b¸o x©u
1. xét ví dụ
Ta có thể chọn kiểu khai báo mảng Một chiều để lưu tên
của từng học sinh. Với kiểu phần tử của mảng là kiểu kí tự
Var hoten:array[1..40] of char;
Nhưng sẽ gặp những khó khăn đó là chương trình viết sẽ rất dài
- Xâu là dãy các kí tự trong bộ mã ASCII;
- Mỗi kí tự là 1 phần tử của xâu, được đánh chỉ số bắt đầu từ 1;
- Độ dài của xâu bằng số lượng phần tử trong xâu;
- Xâu rỗng là xâu có độ dài bằng 0;
- Tham chiếu đến 1 phần tử của xâu: Tên biến[chỉ số]
i. kh¸i niÖm x©u vµ khai b¸o x©u
1. Khái niệm xâu
? ` Chiem Hoa ` ? ` `
? `2009` ? ``
Ví dụ
Giả sử biến Hoten lưu giữ giá trị hằng xâu `Nguyen Van A` ? Hoten[8] ?
VAR
: string[ độ dài lớn nhất của xâu ] ;
i. kh¸i niÖm x©u vµ khai b¸o x©u
2. Khai báo xâu
Ví dụ
VAR
Hoten : string[ 26 ] ;
Chuthich : string ;
Chú ý: Độ dài của xâu được khai báo từ 1 đến 255
i. kh¸i niÖm x©u vµ khai b¸o x©u
3. Nhập/xuất dữ liệu cho biến xâu
VAR
Hoten : string[ 26 ];
Chuthich : string ;
BEGIN
Readln(hoten) ;
Chuthich:=`hoc sinh truong PTTH Chiem Hoa` ;
Writeln(hoten,chuthich);
readln
END.
VAR
Hoten : string[ 26 ];
Chuthich : string ;
BEGIN
Readln(hoten) ;
Chuthich:=`hoc sinh truong PTTH Chiem Hoa` ;
Writeln(hoten,chuthich);
readln
END.
Nguyen Van Ahoc sinh truong PTTH Chiem Hoa
ii. Các thao tác xử lí xâu
1. Phép ghép xâu
Sử dụng kí hiệu "+" để ghép nhiều xâu thành một xâu
Ví dụ
? `Ha` + ` ` + `Noi`
? `Ha Noi`
? Hoten + chuthich
? `Nguyen Van Ahoc sinh truong PTTH Chiem Hoa`
ii. Các thao tác xử lí xâu
2. Các phép so sánh xâu
Sử dụng kí hiệu = , <> , < , <= , > , >= để so sánh xâu
Qui ước:

? Xâu A = B nếu chúng giống hệt nhau.

? Xâu A > B nếu:
+ Kí tự đầu tiên khác nhau giữa chúng
ở xâu A có mã ASCII lớn hơn ở xâu B.

+ Xâu B là đoạn đầu của xâu A.

? `Tin hoc` `Tin hoc`
? `Ha Noi` `Ha Nam`
? `Xau` `Xau ki tu`
=
>
<
ii. Các thao tác xử lí xâu
3. Một số thủ tục làm việc với xâu
Ví dụ
st := `Song Hong`;
Delete(st,1,5);
s1:=`1`; s2:=`Hinh .2`;
Insert(s1,s2,6);
ý nghĩa
Xoá n kí tự
của xâu st
bắt đầu từ vị trí vt.
Chèn xâu s1 vào xâu s2 bắt đầu từ vị trí vt.
Thủ tục
a. Delete(st,vt,n)
b. Insert(s1,s2,vt)
? st = `Hong`
? s2 = `Hinh 1.2`
ii. Các thao tác xử lí xâu
3. Một số thủ tục làm việc với xâu
Ví dụ
st := `Song Hong`;
St :=`Chiem Hoa`; Length(St) = ?
ý nghĩa
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
Cho giá trị là độ dài của xâu S
Thủ tục
c. Copy(S,vt,n)
d. Length(S)
?Copy(st,6,4)=` `
? Length(St) = 8
Hong
ii. Các thao tác xử lí xâu
3. Một số thủ tục làm việc với xâu
Ví dụ
S1=`1` S2=`Hinh 1.2`
Pos(S1,S2) = ?
Ch=`a`
UPCase(Ch) = ?
ý nghĩa
Cho vị trí xuất hiện đầu
tiên của xâu S1 trong
xâu S2
Chuyển kí tự ch thành chữ hoa
Thủ tục
e. Pos(S1,S2)
b. UPCase(ch)
? Pos(S1,S2) = 6
? UPCase(Ch) = `A`
Củng cố kiến thức
1. Xâu là dãy các kí tự trong bộ mã ASCII có độ dài từ 0 đến 255;
2. Các phần tử của xâu được đánh chỉ số bắt đầu từ 0;
3. Xâu rỗng là xâu chỉ có 1 kí tự cách trống;
4. Tham chiếu đến kí tự đầu tiên của xâu là: biếnxâu[1];
5. Có thể khai báo xâu thông qua cấu trúc: array[1..30] Of char;
6. Khai báo biến xâu st có độ dài tối đa 30 là: Var st :string[30];
7. Có thể ghép nhiều xâu để được xâu có độ dài lớn hơn 255;
8. Nhập dữ liệu cho biến xâu chỉ có 1 cách: Readln(biếnxâu);
9. In giá trị của biến xâu ra màn hình là: Write(biếnxâu);
10. `Tin Hoc` < `Tin hoc`
Những phát biểu sau, phát biểu nào đúng, phát biểu nào sai ?
Đ
s
s
Đ
s
Đ
s
s
Đ
Đ
Củng cố bài học
- Xâu là dãy các kí tự trong bộ mã ASCII;
- Mỗi kí tự là 1 phần tử của xâu, được đánh chỉ số bắt đầu từ 1;
Độ dài của xâu bằng số lượng phần tử trong xâu;
? Khai báo: tên biến, độ dài lớn nhất của xâu.
Var : STRING[ độ dài lớn nhất của xâu];
Hãy nhớ!
bài tập về nhà
1) Ôn lại kiến thức đã học về kiểu xâu;
2) Hãy nêu sự giống và khác nhau giữa mảng một chiều và xâu;
3) Xem trước một số ví dụ trang 71, 72 trong sgk.
Kết thúc tiết học!
câu hỏi số 1
Với khai báo
Var a : array[1..10] of byte;
câu lệnh nào dưới đây là hợp lệ?

A. a[2] := true; B. a[3] := - 255;
C. a[1] := 255; D. a[10] := `z`;
câu hỏi số 2
Với khai báo như sau câu lệnh nào dưới đây là hợp lệ?
Type mang = array[1..100] of integer;
Var a, b : mang;
c : array[1..100] of char;

A. a := b; B. b := c;
C. c := b; D. a := c;
* 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ẻ: Việt Phươ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)