Bài 1. Biến đổi xâu
Cho xâu kí tự St có N kí tự đc lấy từ tập các ký tự 'a'...'z', 'A'...'Z', '0'...'9' (0 < N ≤ 255). Phép biến đổi xâu (p, q) (1 ≤ p, q ≤ N) đc thực hiện bằng cách hoán đổi kí tự ở vị trí p với ký tự ở vị trí q trong xâu St. Ví dụ cho xâu St= 'abcdefgh' và phép biến đổi xâu (3, 5) thì ta có xâu St mới là: 'abedcfgh'.
Thực hiện lần lượt K phép biến đổi xâu \(\left(p_1,q_1\right),\left(p_2,q_2\right),....,\left(p_k,q_k\right)\) trên xâu St thì sẽ thu đc một xâu mới (1 ≤ K ≤ 50).
Yêu cầu: Hãy tìm xâu St sau khi thực hiện lần lượt K phép biến đổi xâu.
Dữ liệu vào: Nhập xâu ký tự St, số K và các cặp số \(\left(p_1,q_1\right),\left(p_2,q_2\right),...,\left(p_k,q_k\right)\) từ bàn phím.
Dữ liệu ra: In ra màn hình xâu St sau khi thực hiện xong K phép biến đổi xâu.
program bien_doi;
uses crt;
var St:string;
p,q,k,i:byte;
procedure Swap(var St:string;p,q:byte);
var x,y:char;
begin
x:=St[p];
y:=St[q];
delete(St,p,1);
delete(St,q-1,1);
insert(y,St,p);
insert(x,St,q);
end;
begin
clrscr;
write('Nhap xau St: '); readln(St);
write('Nhap K: ');readln(K);
for i:=1 to k do
begin
write('Nhap p',i,': '); readln(p);
write('Nhap q',i,': '); readln(q);
Swap(St,p,q);
end;
write(St);
readln
end.