Viết chương trình nhập xâu St từ bàn phím

Khách

Hãy nhập câu hỏi của bạn vào đây

Những câu hỏi liên quan

XÂU KÝ TỰ [STRING]I. KHAI BÁO KIỂU STRING TYPE TênKiểu = STRING[Max]; VAR Tên biến : TênKiểu;hoặc khai báo biến trực tiếp: VAR Tên biến : STRING[Max];Trong đó Max là số ký tự tối đa có thể chứa trong chuỗi [Max ∈ [0,255]]. Nếu không có khai báo[Max] thì số ký tự mặ mặc định trong chuỗi là 255.Ví dụ: Type Hoten = String[30]; St80 = String[80]; Var Name : Hoten; Line : St80; St : String; {St có tối đa là 255 ký tự} II. TRUY XUẤT DỮ LIỆU KIỂU STRING - Có thể sử dụng các thủ tục xuất nhập Write, Writeln, Readln để truy xuất các biến kiểuString. - Để truy xuất đến ký tự thứ k của xâu ký tự, ta sử dụng cú pháp sau: Tênbiến[k]. III. CÁC PHÉP TOÁN TRÊN XÂU KÝ TỰ3.1. Phép nối xâu: +3.2. Các phép toán quan hệ: =, , =.Chú ý: Các phép toán quan hệ được so sánh theo thứ tự từ điển. IV. CÁC THỦ TỤC VÀ HÀM VẾ XÂU KÝ TỰ4.1. Hàm lấy chiều dài của xây ký tự LENGTH[St : String]:Integer;4.2. Hàm COPY[St : String; Pos, Num: Byte]: String;Lấy ra một xâu con từ trong xâu St có độ dài Num ký tự bắt đầu từ vị trí Pos .4.3. Hàm POS[SubSt, St :String]:Byte;Kiểm tra xâu con SubSt có nằm trong xâu St hay không? Nếu xâu SubSt nằm trong xâu St thì hàmtrả về vị trí đầu tiên của xâu con SubSt trong xâu St, ngược lại hàm trả về giá trị 0.4.4. Thủ tục DELETE[Var St:String; Pos, Num: Byte];Xoá trong xâu St Num ký tự bắt đầu từ vị trí Pos.4.5. Thủ tục INSERT[SubSt: String; Var St: String; Pos: Byte];Chèn xâu SubSt vào xâu St bắt đầu tại vị trí Pos.4.6. Thủ tục STR[Num; Var St:String];Đổi số nguyên hay thực Num thành dạng xâu ký tự, kết quả lưu vào biến St.4.7. Thủ tục VAL[St:String; Var Num; Var Code:Integer];Đổi xâu số St thành số và gán kết quả lưu vào biến Num. Nếu việc chuyển đổi thành công thì biếnCode có giá trị là 0, ngược lại biến Code có giá trị khác 0 [vị trí của lỗi].BÀI TẬP MẪUBài t ậ p 6.1: 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ữ inhoa rồi in kết quả ra màn hình. Ví dụ :Xâu abcdAbcD sẽ cho ra xâu ABCDABCD.Uses Crt;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.Bài t ậ p 6.2: 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ữthường rồi in kết quả ra màn hình. Ví dụ :Xâu abCdAbcD sẽ cho ra xâu abcdabcd.Uses Crt;Var St:String; i:Byte;Begin Write[‘Nhap xau St: ‘]; Readln[St]; For i:=1 to length[St] do If St[i] IN [‘A’ ’Z’] Then St[i]:=CHR[ORD[St[i]]+32]; Write[‘Xau ket qua: ‘, St]; Readln;End.Bài t ậ p 6.3: Viết chương trình đếm số ký tự chữ số trong một xâu ký tự được nhập vào từ bànphím.Uses Crt;Var St:String; i,d:Byte;Begin Write[‘Nhap xau St: ‘]; Readln[St]; For i:=1 to length[St] do If St[i] IN [‘0’ ’9’] Then d:=d+1; Write[‘So ky tu chu so trong xau: ‘, d]; Readln;End.Bài t ậ p 6.4: Viết chương trình nhập một xâu từ bàn phím. In ra xâu đó sau khi xóa hết các ký tựtrắng thừa trong xâu. [Ký tự trắng thừa là các ký tự trắng đầu xâu, cuối xâu và nếu ở giữa xâucó 2 ký tự trắng liên tiếp nhau thì có 1 ký tự trắng thừa].Uses Crt;Var St:String;Procedure XoaTrangThua[Var St:String];Begin {Xóa các ký tự trắng ở đầu xâu} While St[1]=#32 Do Delete[St,1,1]; {Xóa các ký tự trắng ở cuối xâu} While St[Length[St]]=#32 Do Delete[St,Length[St],1]; {Xóa các ký tự trắng ở giữa xâu} While POS[#32#32,St]0 Do Delete[St,POS[#32#32,St],1];End;Begin Write[‘Nhap xau St: ‘]; Readln[St]; XoaTrangThua[St]; Write[‘Xau sau khi xoa cac ky tu trang thua: ‘, St]; Readln;End.Bài tập 6.5: Viết chương trình liệt kê các từ của một xâu ký tự được nhập vào từ bànphím, mỗi từ phải được viết trên một dòng.Uses Crt;Var St:String;Procedure XoaTrangThua[Var St:String];Begin {Xóa các ký tự trắng ở đầu xâu} While St[1]=#32 Do Delete[St,1,1]; {Xóa các ký tự trắng ở cuối xâu} While St[Length[St]]=#32 Do Delete[St,Length[St],1]; {Xóa các ký tự trắng ở giữa xâu} While POS[#32#32,St]0 Do Delete[St,POS[#32#32,St],1];End;Begin Write[‘Nhap xau St: ‘]; Readln[St]; XoaTrangThua[St]; St:=St+#32; Writeln[‘Liet ke cac tu trong xau: ‘]; While POS[#32,St]0 Do Begin Writeln[Copy[St,1,POS[#32,St]]]; Delete[St,1,POS[#32,St]]; End; Readln;End.Bài t ậ p 6.6: Viết chương trình nhập vào một xâu ký tự từ bàn phím. Tìm xâu đảo ngược của xâuđó rồi in kết quả ra màn hình theo 2 cách: Đệ qui và không đệ qui.Ý tưởng: - Nếu xâu St có 1 ký tự thì xâu đảo = St. - Ngược lại: Xâu đảo = Ký tự cuối + Đệ qui[Phần còn lại của xâu St].Uses Crt;Var St:String;{Giải thuật không đệ qui}Function XauDao[St:String]:String;Var S:String; i:Byte;Begin S:=’’; For i:=Length[St] DowTo 1 Do S:=S+St[i]; XauDao:=S;End;{Giải thuật đệ qui}Function DeQui[St:String]:String;Begin If Length[St]0 Then Writeln[ch,’ : ’,dem[ch]]; Readln;End.Bài t ậ p 6.8: Viết chương trình xóa các ký tự chữ số trong một xâu ký tự được nhập vào từ bànphím.Uses Crt;Var St:String;{Hàm POSNUM kiểm tra xem trong xâu St có ký tự chữ số hay không? Nếu có, hàm trả về vị tríđầu tiên của ký tự chữ số, ngược lại hàm trả về giá trị 0}Function POSNUM[St:String]:Byte;Var OK:Boolean; i:Byte;Begin OK:=False; i:=1; While [iLength[st2] Then For i:=1 To Length[st1]-Length[st2] Do st2:='0'+st2 Else For i:=1 To Length[st2]-Length[st1] Do st1:='0'+st1;End;Function Cong[st1,st2:string]:string;Var i,a,b,c,sodu:Byte; code:integer; st,ch:string;Begin st:=''; sodu:=0; LamDayXau[st1,st2]; {Lấy từng số của 2 xâu: từ phải sang trái} For i:=Length[st1] DownTo 1 Do Begin {Đổi ký tự sang số nguyên} Val[st1[i],a,code]; Val[st2[i],b,code]; {Tính tổng của 2 số a,b vừa lấy ra cho vào biến c} c:=[a+b+sodu] MOD 10; {Lấy phần dư của tổng a+b} sodu:=[a+b+sodu] DIV 10; {Đổi số nguyên c sang xâu ký tự ch} str[c,ch]; {Cộng xâu ch vào bên trái xâu kết quả st} st:=ch+st; End; {Xử lý trường hợp số dư cuối cùng >0} If sodu>0 Then Begin str[sodu,ch]; st:=ch+st; End; Cong:=st;End;Begin Write['Nhap so thu nhat: ']; Readln[so1]; Write['Nhap so thu hai: ']; Readln[so2]; kqua:=Cong[so1,so2]; Writeln['Tong= ',kqua]; Readln;End.BÀI TẬP TỰ GIẢIBài t ậ p 6.11: Viết chương trình nhập vào một xâu ký tự từ bàn phím. Tìm và in ra màn hình mộttừ có độ dài lớn nhất trong xâu.Gợi ý: Tách từng từ để so sánh [xem bài tập 5].Bài t ậ p 6.12: Viết chương trình nhập một xâu ký tự St từ bàn phím và một ký tự ch. In ra mànhình xâu St sau khi xóa hết các ký tự ch trong xâu đó.Gợi ý: While POS[ch,st]0 Do Delete[st,POS[ch,st],1]; Bài t ậ p 6.13: Viết chương trình nhập một xâu vào từ bàn phím và thông báo lên màn hình xâu đócó phải đối xứng không theo 2 cách: Đệ qui và không đệ qui. [Ví dụ: abba, abcba là các xâu đốixứng].Gợi ý: - Nếu xâu Length[st]

Chủ Đề