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中。

试修改程序,使程序实现还原密码的功能。
展开
 我来答
百度网友9308069
2011-06-18 · TA获得超过1万个赞
知道大有可为答主
回答量:3947
采纳率:89%
帮助的人:1921万
展开全部
偷懒都没有好果子,代码要自己写,我都拿你的题来练:
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...
虹why
2011-06-18 · TA获得超过2.8万个赞
知道小有建树答主
回答量:403
采纳率:100%
帮助的人:154万
展开全部
意思是你要一个根据密码翻原文的程序么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式