Viết chương trình pascal để mã hoá và giải mã một xâu ký tự bằng cách đảo ngược các bit của từng ký tự trong xâu. 03/08/2021 Bởi aikhanh Viết chương trình pascal để mã hoá và giải mã một xâu ký tự bằng cách đảo ngược các bit của từng ký tự trong xâu.
Uses crt; Var st:string; {Hàm đảo bit ký tự c} Function DaoBit(c:char):char; Var n,i,s,bitcuoi,Mask:byte; Begin {Đổi ký tự sang số} n:=ORD(c); {s: kết quả đảo bit, Mask: mặt nạ dùng để bật bit thứ i} s:=0; Mask:=128; For i:=1 To 8 Do {duyệt qua 8 bit của n} Begin {Lấy bit cuối cùng của n: bit cực phải} bitcuoi:=n AND 1; n:=n shr 1; {loại bỏ bit cuối cùng: n:=n DIV 2} {Bật bit thứ i lên: từ trái sang phải} if bitcuoi=1 then s:=s OR Mask; Mask:=Mask shr 1; { Mask:= Mask DIV 2} End; DaoBit:=CHR(s); End; Function MaHoa(st:string):string; Var i:Byte; Begin {Đảo bit từng ký tự trong xâu st} For i:=1 To Length(st) Do st[i]:=DaoBit(st[i]); Mahoa:=st; End; Begin Write(‘Nhap xau: ‘); Readln(st); st:=MaHoa(st); Writeln(‘Xau sau khi ma hoa: ‘,st); Readln; st:=MaHoa(st); Writeln(‘Xau sau khi giai ma: ‘,st); Readln; End. CHÚC BẠN HỌC TỐT ^-^ Bình luận
uses crt;var s:string; i:longint;beginclrscr; write(‘Nhap vao 1 xau: ‘);readln(s); write(‘Ket qua: ‘); for i:=length(S) downto 1 do write(s[i]);readlnend. Bình luận
Uses crt;
Var st:string; {Hàm đảo bit ký tự c}
Function DaoBit(c:char):char;
Var n,i,s,bitcuoi,Mask:byte;
Begin
{Đổi ký tự sang số}
n:=ORD(c);
{s: kết quả đảo bit, Mask: mặt nạ dùng để bật bit thứ i}
s:=0; Mask:=128;
For i:=1 To 8 Do {duyệt qua 8 bit của n}
Begin
{Lấy bit cuối cùng của n: bit cực phải}
bitcuoi:=n AND 1;
n:=n shr 1; {loại bỏ bit cuối cùng: n:=n DIV 2}
{Bật bit thứ i lên: từ trái sang phải}
if bitcuoi=1 then s:=s OR Mask;
Mask:=Mask shr 1; { Mask:= Mask DIV 2}
End;
DaoBit:=CHR(s);
End;
Function MaHoa(st:string):string;
Var i:Byte;
Begin
{Đảo bit từng ký tự trong xâu st}
For i:=1 To Length(st) Do st[i]:=DaoBit(st[i]);
Mahoa:=st;
End;
Begin
Write(‘Nhap xau: ‘); Readln(st); st:=MaHoa(st);
Writeln(‘Xau sau khi ma hoa: ‘,st); Readln; st:=MaHoa(st);
Writeln(‘Xau sau khi giai ma: ‘,st);
Readln;
End.
CHÚC BẠN HỌC TỐT ^-^
uses crt;
var s:string; i:longint;
begin
clrscr;
write(‘Nhap vao 1 xau: ‘);readln(s);
write(‘Ket qua: ‘); for i:=length(S) downto 1 do write(s[i]);
readln
end.