f4 pascal programming

2007-04-12 5:00 am
我想問如果輸入一組字
之後一組字入面每一個字向下移一個位

應該點??

例: 入yahoo 出zbipp

回答 (1)

2007-04-12 5:56 am
✔ 最佳答案
其實我唔多想答"程式語言"的問題, 尤其是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經過處理的內容, 通過原本的相反規則, 得到原本的資料內容。例如, 你原本將所有字加一格, 要還原的話就將所有字減一格。呢個係最簡單的規則,一亦係最易被人看穿的。
參考: 多年編寫程式經驗


收錄日期: 2021-04-12 21:11:36
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20070411000051KK05633

檢視 Wayback Machine 備份