Tin học Thắc mắc thủ tục delete

Lê Quang Đông

Banned
Banned
Thành viên
10 Tháng mười 2018
771
1,039
161
Đồng Tháp
trường TRUNG HỌC CƠ SỞ THANH BÌNH
Delete(ST,VT,N) trong đó xâu ST, giá trị N và VT nhập từ bàn phím. Đưa ra màn hình xâu trước và sau khi xoá.
cái này em tìm được trên mạng nè anh!
 

kimyen65

Học sinh
Thành viên
4 Tháng chín 2018
222
47
41
Bắc Ninh
Du học sinh
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 á
 

Trâm Nguyễn Thị Ngọc

Giải Nhất event Thế giới Sinh học 2
Thành viên
13 Tháng mười 2018
1,523
1,339
216
18
Quảng Trị
Trường TH&THCS Hải Ba
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 á
Có cách đâu chị, vẫn bình thường mà.
upload_2019-2-20_18-24-31.png
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 đó
 
  • Like
Reactions: kimyen65

kimyen65

Học sinh
Thành viên
4 Tháng chín 2018
222
47
41
Bắc Ninh
Du học sinh

Trâm Nguyễn Thị Ngọc

Giải Nhất event Thế giới Sinh học 2
Thành viên
13 Tháng mười 2018
1,523
1,339
216
18
Quảng Trị
Trường TH&THCS Hải Ba
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
Mà nói chung là:
VD:s1='ab12'
s2='cd'
Insert(s2,s1,3);
In ra là s1='abcd12'
Vì vị trí cần chèn là 3 nên khi chèn nó sẽ đẩy 1 lên vị trí số 4 để xâu s2 là cd chèn vào đó
 

kimyen65

Học sinh
Thành viên
4 Tháng chín 2018
222
47
41
Bắc Ninh
Du học sinh
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
 

Trâm Nguyễn Thị Ngọc

Giải Nhất event Thế giới Sinh học 2
Thành viên
13 Tháng mười 2018
1,523
1,339
216
18
Quảng Trị
Trường TH&THCS Hải Ba
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
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:
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
 
Last edited:
  • Like
Reactions: kimyen65

kimyen65

Học sinh
Thành viên
4 Tháng chín 2018
222
47
41
Bắc Ninh
Du học sinh
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:
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
ok e, cảm ơn em nhiều
 

kimyen65

Học sinh
Thành viên
4 Tháng chín 2018
222
47
41
Bắc Ninh
Du học sinh
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ỉ
 

Trâm Nguyễn Thị Ngọc

Giải Nhất event Thế giới Sinh học 2
Thành viên
13 Tháng mười 2018
1,523
1,339
216
18
Quảng Trị
Trường TH&THCS Hải Ba
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ỉ
Em xin lỗi chị nhiều. Em nói nhầm nãy giờ rồi chị
 

Trâm Nguyễn Thị Ngọc

Giải Nhất event Thế giới Sinh học 2
Thành viên
13 Tháng mười 2018
1,523
1,339
216
18
Quảng Trị
Trường TH&THCS Hải Ba
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ị
Mã:
For i:=length(s) downto 1 do
  s1:=s1+s[i];
Nãy h em cứ tưởng là for i:=1 to lenghth(s) do nên mới xài cách của em
Cách của em là:
Mã:
For i:=1 to length(s) do
  s1:=s[i]+s1;
:>(:>(,chị chọn cách nào cũng đc nha chị.
VD: abcd
Cách 1: :dcba
Cách 2: dcba
Nhưng khác 1 cái là: C1 thì lấy từ phải sang (downto)
C2 từ trái sang nhưng phải là s1:=s[ i ] +s1 để lấy được xâu đảo
 
Top Bottom