Tải bản đầy đủ (.pptx) (18 trang)

Bài giảng Nhập môn Tin học: Chương 4 - Ngô Quang Thạch

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (396.65 KB, 18 trang )

Chương 4
DỮ LIỆU KIỂU CHUỖI

NGÔ QUANG THẠCH


5/21/21


• Kiểu chuỗi (STRING)
• Khái niệm
• Khai báo chuỗi
• Các thao tác trên String
• Một số hàm và thủ tục

NỘI DUNG
5/21/21


• Một chuỗi dữ liệu là một loạt các ký tự được định nghĩa
bằng từ khố STRING.
• Có thể khai báo kiểu String gián tiếp hoặc trực tiếp
• Khai báo trực tiếp 
VAR <Tên biến>  :  STRING [độ dài của chuỗi] ; 
• Khai báo gián tiếp
TYPE <Tên kiểu String> = STRING [hằng nguyên] ;

VAR <Tên biến> : <Tên kiểu String> ; 

KIỂU CHUỖI
5/21/21




• TYPE TenSV = STRING [25] ;  {định độ dài tối đa là
25}
Diachi = STRING;  {mặc nhiên có độ dài tối đa là 255}
• VAR HT : TenSV ;
DC : Diachi ; 
• VAR   HT : STRING [25] ;
DC : STRING;   

Ví dụ:
5/21/21


• VAR DH: STRING[15]
DH:= CONG THUONG;
0

1

2

3

4

C ONG

5


6

7

8

9

10 11 12 13 14 15

T HUONG

Chuỗi: ‘CONG THUONG’ có độ dài 11 ký tự
Ký tự thứ

0 chứa ký tự độ dài thực của chuỗi CHR(11)

PHÉP GÁN

5/21/21


HoTen := Nguyen Van A ;
DiaChi := 291 Phan Dinh Phung, QN ; 
• Thực hiện nối chuỗi bằng dấu Cộng (+)
• HoTen+DiaChi = Nguyen Van A 291 Phan Dinh Phung,
QN
• Chú ý: Khơng có phép trừ, nhân, chia trong chuỗi ký tự.

PHÉP CỘNG

5/21/21


• Gồm có:
• = ; > ; >= ; <> ; < ; <=

• So sánh từng cặp một từ trái sang phải theo giá trị của bảng
mã ASCII
• Ví dụ:
•   'Hello'  =  'Hello'   
•   'Hello'  >  'Hella'   
•   'Hello'  <  'Hellu'   
• ‘Lan'  <  ‘Lang'

CÁC PHÉP SO
SÁNH
5/21/21


• Thủ tục xóa một phần
• Cú pháp: DELETE (St, Pos, Num)

• Ví dụ:
VAR  st : string [20];
 BEGIN
          St := 'CONG CHA NGHIA ME'; 
Writeln (St) ;
           DELETE (St, 10, 6); 
Writeln(St); 
Readln ;

  END.

St: Chuỗi ban đầu
Pos: Vị trí cần xố
Num: Số ký tự cần xoá

CÁC THỦ TỤC VÀ
HÀM

CONG CHA NGHIA ME
CONG CHA ME

5/21/21


• Thủ tục chèn một chuỗi
• Cú pháp: INSERT (Obj, St, Pos)

• Ví dụ:
VAR  St : string [25];
Obj: Chuỗi cần chèn
 BEGIN
St: Chuỗi gốc ban đầu
          St := 'CONG CHA NGHIA ME'; 
Pos: Vị trí cần chèn
Writeln (St) ;
           INSERT(‘ CHU THAY’, St, 18); 
CONG CHA NGHIA ME
Writeln(St); 
CONG CHA NGHIA ME CHU

Readln ;
THAY
  END.

5/21/21


• Hàm LENGTH (St)
•  Cho kết quả là một số nguyên chỉ độ dài của chuỗi ký tự St

VAR     St : String[80];
 BEGIN
        Write(' Nhập vào một câu : '); 
Readln(St) ;
Writeln(‘Độ dài của câu: ‘, length(St)) ;
         Readln ;
END. 

5/21/21


• Thủ tục STR (S [: n[: m]], St): Chuyển số S thành chuỗi
rồi gán cho St
• Thủ tục VAL(St, S, Code): Chuyển chuỗi St thành số rồi
gán cho S, Code sẽ nhận giá trị lỗi
• Hàm COPY (St, Pos, Num): Sao chép ra một chuỗi từ vị
trí Pos và có độ dài Num
• Hàm CONCAT (St1, St2, ..., StN): Nối các chuỗi lại với
nhau (giống phép +)


MỘT SỐ THỦ TỤC VÀ
HÀM
5/21/21


• Thủ tục STR (S [: n[: m]], St)
VAR     S: real;
St: string[10];
BEGIN
         S:= 12345.6718;
         Writeln(S:5:2);
         Str(S:6:2:St);
Writeln(St);
         Readln;
END. 

5/21/21


• Truy xuất từng ký tự trong chuỗi
PROGRAM DoiChu;
 VAR     St:String;
i: integer; 
BEGIN
          Write('Hãy nhập tên của bạn : ');
Readln(St);
           FOR i:= 1 TO Length(St) DO
                  Write(Upcase(St[i]:3));
             (*Hàm Upcase đổi ký tự thành chữ in hoa*)
Readln;

END. 

5/21/21


• Viết chương trình nhập vào một xâu ký tự từ bàn phím.
Đổi xâu ký tự đó sang chữ hoa rồi in kết quả ra màn hình.
• Ví dụ :Xâu abcdAbcD sẽ cho ra xâu ABCDABCD.
• Ý tưởng: Lặp từ đầu đến hết chuỗi, dung hàm
Upercase() để chuyển ký tự thường sang ký tự hoa

Bài tập:
5/21/21


Var St:String;
i:Byte;
Begin
Write(‘Nhap xau St: ‘); Readln(St);
For i:=1 to length(St) do
St[i]:=Upcase(St[i]);
Write(‘Xau ket qua: ‘, St);
Readln;
End.

5/21/21


• Viết chương trình nhập từ bàn phím một chuỗi ký tự và in
ra màn hình chuỗi ký tự ngược lại:

VD: CONG HOA XA HOI CHU NGHIA VIET NAM
MAN TEIV AIHGN UHC IOH AX AOH GNOC
Ý tưởng: Xuất chuỗi từ cuối chuỗi đến đầu chuỗi

5/21/21


Program DaoChuoi;
Var
Cau : String[80];
i : Byte;
Begin
Write(‘ Nhap vao mot cau : ‘);
Readln(Cau);
For i := Length(Cau) DownTo 1 do
Write(Cau[i]);
Readln;
End.

5/21/21


Thank You !
5/21/21



×