回 帖 发 新 帖 刷新版面

主题:帮我看看这个程序哪里有问题啊,怎么编译都通不过

我找了半天,都不知道哪里出问题了。。帮个忙谢谢。
procedure ex8_6;
var sou,tar,tas,ts,tt:string;
    ch:char;
procedure passin(tp:string);
var i,d:byte;
begin
  for i:=1 to length(tp) do
    begin
      d:=ord(tp[i]);
      d:=(d-32+length(tp)+i)mod 223+32;
      tar:=tar+chr(d);
    end;{for}
end;{passin}

procedure passout(tp:string);
var i,d:integer;
begin
  for i:=1 to length(tp) do
    begin
      d:=ord(tp[i]);
      d:=(d+32) mod 223-32-length(tp)-i;
      tas:=tas+chr(d);
    end;{for}
end;{passout}

procedure encrypt;
begin
  write('Please Input the Source String:');
  readln(sou);tar:=' ';
  ts:=sou+' ';
  while (pos(' ',ts))<>0 do
    begin
      tt:=copy(ts,1,pos(' ',ts)-1);
      delete(ts,1,pos(' ',ts));
      if tt<>' ' then passin(tt);
      tar:=tar+' ';
    end;{while}
  delete(tar,length(tar),1);
  write('The Password String is:');writeln(tar);
end;{encrypt}

procedure menu;
begin
  writeln('  --------------------');
  writeln('  |   1.  Encrypt     |');
  writeln('  |   2.  Decrypt     |');
  writeln('  |   3.  Quit        |');
  writeln('  --------------------');
  writeln;writeln;
  write('Choice:');
end;{menu}

procedure decrypt;
begin
  write('Please Input Password String:');
  readln(tar);tas:=' ';
  ts:=tar+' ';
  while (pos(' ',ts)<>0) do
    begin
      tt:=copy(ts,1,pos(' ',ts)-1);
      delete(ts,1,pos(' ',ts));
      if tt<>' ' then passout(tt);
      tas:=tas+' ';
    end;{while}
  delete(tas,length(tas),1);
  write('The Source String is:');writeln(tas);
end;{decrypt}

begin
  repeat
    menu;
    readln(ch);
    if not(ch in['1'..'3']) then writeln('Input Error!');
    writeln;
    write('Press enter ...');readln;
  until ch='3';
end.{main}

回复列表 (共5个回复)

沙发

咳,其实......你不过是犯了个小小的错误......
你不觉得那个procedure应该是program么?
[color=red]procedure[/color] ex8_6;
......

板凳


真的是很感谢。。真是个笑话。。只顾着检查分号和begin end。。
很感谢。。。。。。

3 楼

只要查看一下错误,光标就会停在出错的那一行,很容易查的~~~

4 楼

[quote]只要查看一下错误,光标就会停在出错的那一行,很容易查的~~~[/quote]

口胡,那光标停在end.那一行.

5 楼

你用的是FP吧,试试TP.

我来回复

您尚未登录,请登录后再回复。点此登录或注册