PASCAL高手进
在战场上为了保障军事情报不被敌人窃取,军事家们发明了军事密码。小华是一个军事迷,他很想试试用军事密码与好朋友交流信息。于是他与小林约好平时用两个人约定的密码转换方式来交流...
在战场上为了保障军事情报不被敌人窃取,军事家们发明了军事密码。小华是一个军事迷,他很想试试用军事密码与好朋友交流信息。于是他与小林约好平时用两个人约定的密码转换方式来交流彼此的秘密。他们是这样编写密码的:空格不变,其余每个字符的ASCII码值增加3后得到新的相应的字符。ASCII码范围在32 ~ 255之间,若新的码值超过255,应将代码值减255再加32。为此他们还专门编写了一个密码转换程序,输入一个英文字符串,然后按编码方法将原字符串转变为新字符串。
如输入:1+2= three 输出:4.5@ wkuhh
分析:
1、逐一将字符串的字符取出进行判断,如果是空格则不变,否则按规则转换成字符。
2、利用ORD函数求出字符的ASCII码,然后加3,再判断新的代码是否超过255,若新的代码值超过255,应将代码值减去255再加32.
3、利用CHR函数求出新代码对应的字符,再将其连成的一个新字符串存于ns中。
试修改程序,使程序实现还原密码的功能。 展开
如输入:1+2= three 输出:4.5@ wkuhh
分析:
1、逐一将字符串的字符取出进行判断,如果是空格则不变,否则按规则转换成字符。
2、利用ORD函数求出字符的ASCII码,然后加3,再判断新的代码是否超过255,若新的代码值超过255,应将代码值减去255再加32.
3、利用CHR函数求出新代码对应的字符,再将其连成的一个新字符串存于ns中。
试修改程序,使程序实现还原密码的功能。 展开
2个回答
展开全部
偷懒都没有好果子,代码要自己写,我都拿你的题来练:
Free Pascal代码
=========
program testcase;
const shift:byte=3;
var src,encode,decode:string;
ch:char;
cv:integer;
begin
write('Input the password: ');
readln(src);
encode:='';
for ch in src do
begin
cv:=ord(ch)+shift;
if cv>255 then cv:=cv-255+32;
encode:=encode+chr(cv);
end;
writeln('Encrypted as: ',encode);
decode:='';
for ch in encode do
begin
cv:=ord(ch)-shift;
decode:=decode+chr(cv);
end;
writeln('Decrypted as: ',decode);
writeln('Press ENTER to end...');
readln();
end.
=================
输出
Input the password: 1+2=three hello world
Encrypted as: 4.5@wkuhh#khoor#zruog
Decrypted as:1+2=three hello world
Press ENTER to end...
Free Pascal代码
=========
program testcase;
const shift:byte=3;
var src,encode,decode:string;
ch:char;
cv:integer;
begin
write('Input the password: ');
readln(src);
encode:='';
for ch in src do
begin
cv:=ord(ch)+shift;
if cv>255 then cv:=cv-255+32;
encode:=encode+chr(cv);
end;
writeln('Encrypted as: ',encode);
decode:='';
for ch in encode do
begin
cv:=ord(ch)-shift;
decode:=decode+chr(cv);
end;
writeln('Decrypted as: ',decode);
writeln('Press ENTER to end...');
readln();
end.
=================
输出
Input the password: 1+2=three hello world
Encrypted as: 4.5@wkuhh#khoor#zruog
Decrypted as:1+2=three hello world
Press ENTER to end...
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询