

Delete(st,vt,n) trong đó st, vt, n là gì vậy mọi người ơi
Là xóa trong xâu st tại vt có n ký tự đó chịDelete(st,vt,n) trong đó st, vt, n là gì vậy mọi người ơi
Có cách đâu chị, vẫn bình thường mà.ok. thank 2 bạn nha. Còn đối với thủ tục insert
Giả sử ta cho:
Giá trị của xâu s1: PC
Giá trị của xâu s2:IBM486
Thao tác insert(s1,s2,4)
Chèn sâu s1 vào sâu s2 bắt đầu từ vị trí thứ 4 sau nó lại thành IBM PC 486 mà sao nó lại không thay thế thành IBMPC486 mà nó lại cách vậy á
ak ak, hay quá e ơi. Cứ vị trí số 5 là đếm đến vị trí số 5 đặt vào là đúng phải ko eCó cách đâu chị, vẫn bình thường mà.
View attachment 102244
Nó chỉ cách trừ khi cái xâu s1 mà chị nhập vào là :_PC_ thôi
Tức là có 2 khoảng trắng ở hai bên đó
Em không hiểu ý của chị lắmak ak, hay quá e ơi. Cứ vị trí số 5 là đếm đến vị trí số 5 đặt vào là đúng phải ko e
Mà nói chung là:ak ak, hay quá e ơi. Cứ vị trí số 5 là đếm đến vị trí số 5 đặt vào là đúng phải ko e
Hình như code bị sai một chút thì phải, phải là: p:=p+a[ i ] chứ chị. Với lại, p:=a[ i ]+p nha chị. Vì nếu p:=a[ i ]+p thì nó đúng hơn chị ạ. Nó sẽ lấy như này:program vd2;
uses crt;
var
i,x:byte;
a,p:string;
begin
clrscr;
write('nhap xau:');
readln(a);
x:=length(a);
p:='';
for i:=x downto 1 do
p:=p+a;
if a=p then
write('xau la palindrome')
else
write('xau khong phai la palindrome');
readkey;
end.
Chỗ mà
for i:=x downto 1 do
p:=p+a;
Nếu độ dài của xâu a mình vừa tính được trong x:=length(a); giả sử nó là 3 thì vòng lặp for
sẽ là for i:=3 downto 1 do. Câu lệnh p:=P+a; nó tạo đảo ngược kiểu gì e ơi
ok e, cảm ơn em nhiềuHình như code bị sai một chút thì phải, phải là: p:=p+a[ i ] chứ chị. Với lại, p:=a[ i ]+p nha chị. Vì nếu p:=a[ i ]+p thì nó đúng hơn chị ạ. Nó sẽ lấy như này:
Vd: abcab
Nó sẽ lấy theo thứ tự a->a->c->b->a, nó cộng, s1=b sau đó thêm vào phía bên trái là a thành ab chứ không phải ba .
P/s:có gì chị bấm nút trả lời để e nhận đc thông báo nha chị chứ không chị gọi em ơi thì em không có nghe được đâu
khúc này chị vẫn còn chưa hiểu lắm em ơi, là sao thế nhiNó sẽ lấy theo thứ tự a->a->c->b->a, nó cộng, s1=b sau đó thêm vào phía bên trái là a thành ab chứ không phải ba .
ak ak, thank emNói vậy hơi khó hiểu phải không chị, cách tốt nhất là vào TB rồi chạy từng bước là dễ thấy nhất đó chị
CTRL +F7
View attachment 102309
Rồi f7 để chạy từng bước là ok
ak ak, thank em
Em xin lỗi chị nhiều. Em nói nhầm nãy giờ rồi chịNếu chương trình đó chị giải thích: ban đầu giả sử ta nhập abcd thì length(a)=4 và 4 được gán vào biến x
Rồi từ vòng lặp nó đếm theo dạng lặp lùi, từ 4 nó tiến về 1, cái ban đầu nó đêm từ 1 về 4 là từ a-->b-->c-->d, cái sau là 4 tiến về 1 thì ngược lại d--->c--->b-->a thì nó tạo thành xâu đảo ngược nhau. Vậy đúng ko em nhỉ
Cái cách đầu tiên của chị đúng rồi đó chịNếu chương trình đó chị giải thích: ban đầu giả sử ta nhập abcd thì length(a)=4 và 4 được gán vào biến x
Rồi từ vòng lặp nó đếm theo dạng lặp lùi, từ 4 nó tiến về 1, cái ban đầu nó đêm từ 1 về 4 là từ a-->b-->c-->d, cái sau là 4 tiến về 1 thì ngược lại d--->c--->b-->a thì nó tạo thành xâu đảo ngược nhau. Vậy đúng ko em nhỉ
For i:=length(s) downto 1 do
s1:=s1+s[i];
For i:=1 to length(s) do
s1:=s[i]+s1;