✔ 最佳答案
其實我唔多想答"程式語言"的問題, 尤其是Pascal, 因為好多人投票都係為左加分, 而投票的人又不懂Pascal, 結果經常將錯的答案變了知識, 不過咁o岩路過見到, 就答一下啦, 如果今次都係咁, 我以後再唔會答程式語言的問題。
呢是好明顯係考ord和chr的配合使用, 達到將文字起一個簡單的加密作用
var s:string;
i:integer;
p:byte;
begin
p:=1;
readln(s);
for i:=1 to length(s) do
s[i]:=chr(ord(s[i])+p);
writeln(s);
end.
其中ord(s[i])是求字串s的第i個字符的ASCII碼, 把得到的數再加p, 形成新的數值, chr(新的數值), 就會得到移p位後的字符。
2007-04-12 10:43:14 補充:
BYTE是比Integer小的類型, 取值範圍為0--255之間的整數,剛好與ASCII碼的範圍一樣。上面俾出的程式就係encode, 密碼為p, 上面定左p係1, 亦可以改為readln(p), 如果要decode即係同佢剛好相反, 將用來加密果句程式修改, 本來加的變成減, 但我諗你應該自己做一做, 因為我已俾左好明顯的提示。投票的問題: 我係話有d人問完問題到期後, 會俾人投票決定邊個答案先係知識, 因為投票時yahoo會加一分, 所以有d人根本唔睇內容, 亂咁投, 尤其是係程式。上面果位, 我睇得出你係有心幫人的。
2007-04-12 10:48:05 補充:
或者我再解釋清楚d, 所謂encode, 就係將原本的資料或文字, 通過一d 規則去改頭換面, 令人不易睇出內容。所謂decode就係將一d經過處理的內容, 通過原本的相反規則, 得到原本的資料內容。例如, 你原本將所有字加一格, 要還原的話就將所有字減一格。呢個係最簡單的規則,一亦係最易被人看穿的。