Ví dụ 1: Viết chương trình nhập vào một xâu kí tự. Xâu nhập vào có thể chứa dấu cách ở đầu xâu. Cho hiển thị lên màn hình xâu đã nhập sau khi xóa hết dấu cách ở đầu xâu. Ví dụ 2: Viết chương trình nhập vào hai xâu kí tự s1 và s2. Chèn xâu s1 vào xâu s2 bắt đầu từ vị trí thứ 5. Viết kết quả của xâu s2 ra màn hình.
Trang 2? Em hãy cho biết chương trình sau có ý nghĩa gì?
Program vi_du;
Var A: array [1 100] of integer;
n, i,T:integer;
Begin
Write (‘nhap so phan tu n=’); readln (n);
For i:=1 to n do
begin Write (‘nhap phan tu thu ‘, i, ‘=’);
Readln (A[i]);
End;
T:=0;
For i:=1 to n do T:= T + A[i];
Writeln (‘Tong la:’, T);
Readln
End.
Trang 3ý nghĩa chương trình :
Nhập vào một số nguyên dương n (n<=100) Sau đó nhập vào một dãy gồm n số nguyên và đưa
ra màn hình tổng các số trong dãy
Trang 4Nhập vào họ tên của hai học sinh, in ra màn hình họ tên dài hơn?
H n
a N
A H
P
m y N
e y
u G
N
A
B
Hãy xác định kiểu dữ liệu của hai biến
A,B?
Bài toán đặt vấn đề:
Trang 5Bµi 12
Gi¸o ¸n ®iÖn tö tin häc líp 11
Trang 6Xâu là dãy các kí tự trong bộ mã ASCII.
A
Trong đó:
Khi tham chiếu đến kí tự thứ i của xâu ta viết A[i]
Ví dụ: A[5]= H ‘ ’
Tên xâu: A ;
Mỗi kí tự gọi là một phần tử của xâu;
Ví dụ:
Độ dài của xâu (số kí tự trong xâu): 7 ;
H
1 Khái niệm
- Xâu rỗng là xâu ‘’
Trang 72 Khai báo kiểu dữ liệu xâu (trong Pascal)
Var <tên biến> : String [độ dài lớn nhất] ;
Ví dụ: Var ho_ten: String[26];
Khi khai báo xâu có thể bỏ qua phần khai báo [độ dài lớn nhất], khi đó độ dài lớn nhất của xâu sẽ nhận giá trị ngầm định là 255.
Ví dụ: Var chu_thich :String;
Trang 83 Các thao tác xử lí xâu
a Phép toán đối với xâu:
Ví dụ: Ha + Noi ‘ ’ ‘ ’ Ha Noi‘ ’
* Phép so sánh: =, <>, <, <=, >, >=
‘Ha Noi ’> Ha N‘ am ’
* Quy ướ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.
‘Tin hoc’ = ‘Tin hoc ’
+ Xâu B là đoạn đầu của xâu A ‘Viet Nam > Viet’ ‘ ’
Trang 9VÝ dô: So s¸nh c¸c x©u sau ®©y:
a) ‘ Anh ’ ‘ Em ’
b) ‘ abc ’ ‘ acb ’
d) ‘ Tin häc ’ tin ‘ ’
<
<
>
<
Trang 10b Các thủ tục và hàm chuẩn xử lí xâu
S1= 1 S2= Hinh 2‘ ’ ‘ ’
Insert(s1,s2,6) ’Hinh 1.2’
Chèn xâu S1 vào xâu S2 từ vị trí vt
Insert (S1,S2,vt)
S = Song Hong‘ ’
Delete(S,1,5) ‘Hong’
Xóa n kí tự trong xâu S từ vị trí vt
Ví dụ
Ý nghĩa Thủ tục
* Các thủ tục xử lý xâu:
Trang 11• Ví dụ 1: Viết chương trình nhập vào một xâu kí
tự Xâu nhập vào có thể chứa dấu cách ở đầu xâu Cho hiển thị lên màn hình xâu đã nhập sau khi xóa hết dấu cách ở đầu xâu.
Program vi_du;
Uses crt;
Var s:string;
Begin
Writeln(‘nhap xau s’); Readln(s);
While s[1]= ‘ ‘ do Delete(s,1,1);
Writeln(‘xau sau khi loai bo dau cach o dau la:’, s);
Readln;
End.
Trang 12• Ví dụ 2: Viết chương trình nhập vào hai xâu kí tự s1
và s2 Chèn xâu s1 vào xâu s2 bắt đầu từ vị trí thứ
5 Viết kết quả của xâu s2 ra màn hình.
Program vi_du;
Uses crt;
Var s1, s2 : string;
Begin
Writeln(‘nhap xau s1’); Readln(s1);
Writeln(‘nhap xau s2’); Readln(s2);
Insert (s1,s2,5);
Writeln(‘xau s2 sau khi chen xau s1 o vi tri thu 5 la:’, s2);
Readln;
End.
Trang 13Ch= a‘ ’
UPCase(ch) = A‘ ’
Chuyển kí tự ch thành chữ hoa
4 UPCase(ch)
S1= 1 S2= Hinh ‘ ’ ‘
1.2’
Pos(S1,S2) = 6
Cho vị trí đầu tiên của xâu
S1 trong xâu S2
3 Pos(S1,S2)
S = Xin chao‘ ’
Length(S) = 8
Cho giá trị là độ dài của xâu S
2 Length(S)
VÝ dô
ý nghÜa Hµm
S = Tin hoc‘ ’
Copy(S,5,3)= hoc‘ ’
Tạo xâu gồm N kí tự liên tiếp từ vị trí vt của xâu S
1 Copy(S,vt,n)
* Các hàm xử lý xâu:
Trang 14H·y nhí!
Xâu là dãy kí tự trong bộ mã
ASCII
Khai báo: Tên xâu, độ dài lớn
nhất của xâu
Tham chiếu đến phần tử của
xâu:
Tên xâu[chi số];
Các thao tác xử lí xâu thường
dùng:
+ Phép ghép xâu, so sánh xâu + Các hàm và thủ tục liên quan
‘Xin chao cac ban!’
Var S : string[30]
S[1] = ‘ X ’