Chuỗi (Xâu Kí Tự)

Nơi trao đổi thông tin Văn Lang
Chào mừng bạn đến với nơi trao đổi thông tin của chúng tôi ! Hãy đăng nhập hoặc đăng kí tài khoản để trải nghiệm nhiều điều thú vị tại đây ! Thân ái !
Nơi trao đổi thông tin Văn Lang
Chào mừng bạn đến với nơi trao đổi thông tin của chúng tôi ! Hãy đăng nhập hoặc đăng kí tài khoản để trải nghiệm nhiều điều thú vị tại đây ! Thân ái !
Nơi trao đổi thông tin Văn Lang
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.
Nơi trao đổi thông tin Văn Lang Nơi trao đổi thông tin, tăng cường hợp tác, giải đáp những vướng mắc khi học lập trình Pascal
Trang ChínhTìm kiếm
Tìm kiếm
Display results as : Số bài Chủ đề
Advanced Search Advanced Search
Latest imagesĐăng kýĐăng Nhập
Nơi trao đổi thông tin Văn Lang :: Lí thuyết :: Mảng và xâu
Chuỗi (Xâu kí tự)Go down
3 posters
Tác giảThông điệp
AdminAdminAdminPosts : 122Danh tiếng : 7Join date : 10/11/2014Age : 23Chuỗi (Xâu kí tự) Empty
Bài gửiTiêu đề: Chuỗi (Xâu kí tự) Chuỗi (Xâu kí tự) Icon_minitime15/1/2015, 22:47
I / Định nghĩa : Xâu kí tự là một cấu trúc dữ liệu , quản lý một dãy liên tiếp các kí tự . Số lượng các kí tự của xâu được gọi là độ dài của xâu . Để biểu diễn một hằng là 1 xâu kí tự , người ta viết xâu kí tự này giữa 2 dấu nháy Thí dụ : ‘Tran van Thanh’ là hằng có kiểu xâu kí tự và có độ dài bằng 14. II / Khai báo : Type Tên_Xâu = String[ n] ; { n là độ dài tối đa của xâu có kiểu Tên_Xâu } Var Tên_biến : Tên_Xâu; Thí dụ : Type STR1 = String[28]; Var S1 : STR1; S2 : String;Biến S1 : Có kiểu xâu kí tự độ dài tối đa 28 kí tự . Biến S2 : Có kiểu xâu kí tự độ dài tối đa 255 kí tự .Chú ý Truy nhập kí tự thứ i trong xâu S ( Kể từ trái qua phải ) thông qua S[i] . Đặc biệt có 1 trong 2 cách tổ chức xâu , người ta qui định S[0] là kí tự chỉ độ dài của xâu .Thí dụ :S 1:= ‘Tran van Thanh’ thì S[0] là #14 { Ord( S[0] ) =14 }Kích thước của biến S1 là 12+1=13 Byte ; biến S2 chiếm 255+1=256 Byte.III / Các phép toán - Các thủ tục và hàm xử lí xâu :1 ) Các phép toán : + Phép gán : Hai xâu cùng kiểu có thể gán giá trị cho nhau + Phép cộng : S1 = ‘Trần’; S2 = ‘ văn Thanh’; S = S1+S2 thì S = ‘Trần văn Thanh’ + Các phép so sánh =, >, < @ S1 = S2 nếu chúng cùng kiểu và từng kí tự tương ứng của chúng như nhau @ Xét S1 , S2 cùng kiểu , có độ dài tương ứng là L1,L2 .Ta nói S1<S2 nếu : - Hoặc N <Min{L1,L2} sao cho với mọi i<=N thì S1[i] = S2[i] , và S1[i+1]<S2[i+1] .Thí dụ :’Thanh’<‘Thi’ - Hoặc L1<L2 và với mọi i <=L1 thì S1[i]=S2[i]. Thí dụ :’Than’<‘Thanh’2 ) Các Hàm : + Length(S) Cho giá trị kiểu Integer là độ dài của xâu S . Length(S) = Ord(S[0])-48 Thí dụ X:= Length(‘ABCD’) Thì X=4 + {Function Pos (S1,S2 : String): Byte;} Cho giá trị kiểu Byte là vị trí bắt đầu kể từ trái qua phải thấy S1 trong S2 Thí dụ S2 := ‘ABCDE’ S1 := ‘BC’ Pos(S1,S2) sẽ là 2 + {Function Copy(S: String; I: Integer; N: Integer): String;}Hàm này trả giá trị là một xâu con của xâu S , đó là xâu gồm n kí tự liên tiếp của xâu S , kể từ kí tự thứ i trở đi Thí dụ S1 := ‘ABCDE’ thì Copy(S1,2,3) sẽ là xâu ‘BCD’ + {Function Concat (S1,S2,..,Sn : String): String}Nối các xâu kí tự S1,S2,..,Sn thành 1 xâu Thí dụ S2 := ‘ABCDE’ S1 := ‘BC’ thì Concat(S1,S2) sẽ là ‘BCABCDE’2 ) Các thủ tục : + {Procedure Delete(var S: String; I: Integer; N:Integer)} Xoá N kí tự liên tiếp trong xâu S , kể từ kí tự thứ I + {Procedure Insert (S1,S2 : String; i : Integer)} Chèn xâu S1 vào vị trí thứ i của xâu S2 + { Procedure Str(X [: Width [: Decimals ]]: Kiểu_x; var S:string); Chuyển số x thành xâu kí tự chữ số là S . Kiểu_x là kiểu số + { Procedure Val(S; var x: Kiểu_x; var Code: Integer);} Chuyển xâu S dạng kí tự chữ số thành số x ( Kiểu số ) , code là giá trị thông báo lỗi khi chuyển đổi ở vị trí nào đó trong xâu S . Một số thí dụ :Xử dụng hàm PosThi du : Var S: String; Begin S := ' 123.5 '; { Chuyển kí tự trống thành chữ số 0 } While Pos(' ', S) > 0 do S[Pos(' ', S)] := '0'; End.Xử dụng hàm Copy Uses Crt; Var S: String; Begin S := 'ABCDEF'; Writeln('S = ',S); Writeln('Copy(S, 2, 3) thi S --> ',Copy(S, 2, 3)); { 'BCD' } Readln End.Xử dụng hàm Concat Var S : String; Begin S := Concat('ABC', 'DEF'); { 'ABCDE' } End.Xử dụng thủ tục STR Uses Crt; Var S : String; BEGIN Str(-53.22:10:4,S); Writeln(-5.322,' ',S); Readln; END.{Trên màn hình :-5.3220000000E+00 -53.2200}Xử dụng thủ tục Val Uses Crt; Var Code: Integer; x : real; Begin Val('-5.322E+03', x, Code); If code <> 0 then Writeln('Lỗi tại vị trí : ', Code) Else Writeln('x = ',x:4:0); Readln; End.{Trên màn hình : x = -5322}{Nếu khai báo x : Integer ; thì trên màn hình sẽ thông báo : Lỗi tại vị trí : 3 }Xử dụng thủ tục Delete Var s : string; Begin s := 'Honest Abe Lincoln'; Delete(s,8,4); Writeln(s); { 'Honest Lincoln' } End.Xử dụng thủ tục Insert Var S: String; Begin S := 'Honest Lincoln'; Insert('Abe ', S, Cool; { 'Honest Abe Lincoln' } End.
LikeDislike
Về Đầu Trang Go down
https://forumpascalvanlang.forumvi.com
toxic321Posts : 15Danh tiếng : 2Join date : 21/08/2019Chuỗi (Xâu kí tự) Empty
Bài gửiTiêu đề: Re: Chuỗi (Xâu kí tự) Chuỗi (Xâu kí tự) Icon_minitime28/8/2019, 09:07
uses crt;Const so=['0'..'9'];var s:string; i,j:integer;{}procedure doicho(Var x,y:char);Var t:char;Begin t:=x; x:=y; y:=t;{}End;beginclrscr; write('nhap xau can xu li :');readln(s); while s[1]= ' ' do delete(s,1,1); while s[length(s)]= ' ' do delete(s,length(s),1); for i:=length(s) downto 1 do if (s[i]=' ')and(s[i-1]=' ') then delete(s,i,1); for i:=1 to length(s) do if s[i]in['A'..'Z'] then s[i]:=chr(ord(s[i])+32); for i:=1 to length(s) do s[1]:=upcase(s[1]); for i:=1 to length(s) do if (s[i]=' ') then s[i+1]:=upcase(s[i+1]); If (s[length(S)]<>',') and (s[length(S)]<>'.') then s:=concat(s,'.'); write('chuoi sau khi chuan hoa la: ',s); Writeln; For i:=1 to length(s) do For j:=1 to length(s) do If (s[i] in so) and (s[j] in so) and (s[i]<s[j]) and (i<>j) then doicho(s[i],s[j]); Writeln('Chuoi sau khi sap xep:'); Write(s);readln;end.
LikeDislike
Về Đầu Trang Go down
WatsonPosts : 5Danh tiếng : 0Join date : 26/08/2019Chuỗi (Xâu kí tự) Empty
Bài gửiTiêu đề: Re: Chuỗi (Xâu kí tự) Chuỗi (Xâu kí tự) Icon_minitime28/8/2019, 19:49
uses crt;Var a: array[1..10] of integer;  n: Longint;  i,k:integer;Beginclrscr;   Write('Nhap so: ');Readln(n);   n:=abs(n);   Write('Nhap k: ');Readln(k);   i:=0;   While n>0 do   begin       i:=i+1;       a[i]:=n mod 10;       n:=n div 10;   end;   Write('Chu so thu ',k,'la: ',a[i-k+1]);   Readln;End.
LikeDislike
Về Đầu Trang Go down
WatsonPosts : 5Danh tiếng : 0Join date : 26/08/2019Chuỗi (Xâu kí tự) Empty
Bài gửiTiêu đề: Re: Chuỗi (Xâu kí tự) Chuỗi (Xâu kí tự) Icon_minitime10/9/2019, 08:17
uses crt;var a,b,UC,i:integer;begin clrscr; write('nhap a,b:');readln(a,b); i:=1; while a<>b do if a>b then a:=a-b else b:=b-a; UC:=a; write(UC,' ' ); repeat i:=i+1; until (UC mod i=0); if i=UC then writeln(UC,'day la hai so than thiet') else writeln(UC,'day khong phai la hai so khong than thiet'); readln; end.
LikeDislike
Về Đầu Trang Go down
Sponsored contentChuỗi (Xâu kí tự) Empty
Bài gửiTiêu đề: Re: Chuỗi (Xâu kí tự) Chuỗi (Xâu kí tự) Icon_minitime
Về Đầu Trang Go down
Chuỗi (Xâu kí tự)Về Đầu Trang
Trang 1 trong tổng số 1 trang
Similar topics-
» Tham gia chuỗi tọa đàm trực tuyến: Một tuần làm "Du học sinh kiểu Úc" ngay tại Việt Nam
Permissions in this forum:Bạn không có quyền trả lời bài viết
Nơi trao đổi thông tin Văn Lang :: Lí thuyết :: Mảng và xâu-
Chuyển đến: Chọn Diễn Đàn||--Các chuyên đề hay|--Lí thuyết| |--Làm quen với Pascal| |--Các cấu trúc điều khiển| |--Mảng và xâu| |--Tệp (File)| |--Bài tập| |--Các vòng lặp| |--Cấu trúc điều kiện| |--Mảng| | |--Mảng hai chiều| | |--Mảng một chiều| | | |--Xâu kí tự| |--Tệp (File)| |--Bài tập cơ bản| |--Thảo luận| |--đưa bài| |--Các bộ đề thi|--Thông tin công nghệ|--Các chương trình lớn viết bằng Pascal
Free forum | ©phpBB | Free forum support | Báo cáo lạm dụng | Thảo luận mới nhất

Từ khóa » để Biểu Diễn Thông Tin Dạng Xâu Ký Tự