viết chương trình pascal Hoán vị ký tự theo khóa - Tên chương trình GRCAE.???
Nhập vào xâu S chỉ chứa các ký tự là chỉ cái in thường và khoảng trắng.
Cho trước khóa m là một hoán vị của n số (2<n<18). Để mã hóa một xâu ký tự ta có thể chia xâu thành từng nhóm từ trái sang phải mỗi nhóm có n ký tự; nếu nhóm cuối không đủ n ký tự thì ta có thể thêm các ký tự trắng vào sau cho đủ. Sau đó hoán vị các ký tự trong...
Đọc tiếp
viết chương trình pascal Hoán vị ký tự theo khóa - Tên chương trình GRCAE.???
Nhập vào xâu S chỉ chứa các ký tự là chỉ cái in thường và khoảng trắng.
Cho trước khóa m là một hoán vị của n số (2<n<18). Để mã hóa một xâu ký tự ta có thể chia xâu thành từng nhóm từ trái sang phải mỗi nhóm có n ký tự; nếu nhóm cuối không đủ n ký tự thì ta có thể thêm các ký tự trắng vào sau cho đủ. Sau đó hoán vị các ký tự trong từng nhóm theo khóa, ghép các nhóm xâu lại theo thứ tự ta được một xâu đã mã hóa. Hãy viết chương trình mã hóa một xâu kí tự cho trước.
Ví dụ: Với n=8 và khóa m=87345621, thực mã hóa xâu S = “hello every body” như sau:
Tách xâu S thành các xâu mỗi xâu có 8 ký tự:
S1 = “hello ev”; S2 = “ery o body”
Thực hiện mã hóa xâu S1, S2 theo khóa m ta được S1’ và S2’:
S1’ = “vello eh”; S2’ =”ydy bore”
Input: GRCAE.INP
· Dòng 1: số nguyên n (2<n<18) và m (m là số nguyên có n chữ số).
· Dòng 2: ghi xâu cần mã hóa (độ dài xâu <=10^5).
Ouput: GRCAE.OUT
· Mỗi dòng ghi 1 xâu có n ký tự đã được mã hóa.
Ví dụ:
GRCAE.INP GRCAE.OUT
8 87345621
hello every body vello eh ydy bore
Câu 1:
uses crt;
var s,k,tam:string;
dem,i:integer;
begin
clrscr;
write('nhap xau S:'); readln(s);
dem:= 1;
for i:=2 to length(s) do
begin
if s[i]=s[i-1] then inc(dem);
if s[i]<>s[i-1] then
begin
str(dem,tam);
if dem>1 then k:=k+tam+s[i-1]
else k:=k+ s[i-1];
dem:= 1;
end;
if i=length(s) then
begin
str(dem,tam);
if dem >1 then k:=k+tam+s[i]
else k:=k+s[i];
end;
end;
for i:=1 to length(k) do
write(k[i]);
readln;
end.
Phạm Thị Diệu Huyền, mình ko biết đc tài trợ ko