一道Delphi程序题,求运行结果(急~~~~~~~)

来源:百度知道 编辑:UC知道 时间:2024/05/26 04:33:50
function StrToInt(S: string): integer;
begin
Val(S, Result, Result);
end;

function GetAscii(str:string):LongWord;
var
i:integer;
ii:longword;
begin
ii:=0;
for i:= 1 to length(str) do
ii:=ii+ ord(str[i]);
Result:=ii;
end;

function CalculateCode(SerialNumber, MachineCode: string): string;
//const
// CHART : String = 'ADGE0Z0123U974';
var
i:integer;
ii:longWord;
str,Reg:string;
begin
ii:=0;
ii:=(GetAscii(SerialNumber)-3) * (GetAscii(MachineCode)-1);
str:= inttostr(ii); //计算结果转化为字符串
for i:=1 to Length(str) do
begin
case strtoint(str[i]) of //取字符串第i位转换成数字,
1: Reg:= Reg+ 'A';
2: Reg:= Reg+ 'D';
3: Reg:= Reg+ 'G';
4: Reg:= Reg+ 'E';
5: Reg:= Reg+ '0';

你可以自己运行测试一下~
procedure TForm1.Button1Click(Sender: TObject);
var
ss:string;
begin
ss:=CalculateCode(Edit1.Text,Edit2.Text);
ShowMessage(ss);
end;
要传入的参数应该是两个啊,你的5LS8MF64是不是分成两个“5LS8”和“MF64”
如果是的话,那结果就是“ZZ013”
如果是“5LS8MF64”和空的话,那结果就是“ED2E2ZZ001”

问题不清楚, 没有交代 CalculateCode(SerialNumber, MachineCode: string):中的machineCode 的输入值.