2010-05-10 41 views
0

程序PROG15(輸入,輸出); var invalid_operator:boolean; operator:char; number1,number2,result:real;過載運算符第2行和第3行,不編譯

procedure MULTIPLY; 
begin 
     result := number1 * number2 
end; 

procedure DIVIDE; 
begin 
     result := number1/number2 
end; 

procedure ADD; 
begin 
     result := number1 + number2 
end; 

procedure SUBTRACT; 
begin 
     result := number1 - number2 
end; 

procedure GET_INPUT; 
begin 
     writeln('Enter two numbers and an operator in the format'); 
     writeln(' number1 operator number2'); 
     readln(number1); readln(operator); readln(number2) 
end; 

begin 
     invalid_operator := FALSE; 
     GET_INPUT; 
     case operator of 
      '*': MULTIPLY; 
      '/': DIVIDE; 
      '+': ADD; 
      '-': SUBTRACT; 
     otherwise invalid_operator := TRUE 
     end; 
     if invalid_operator then 
      writeln('Invalid operator') 
     else 
      writeln(number1:4:2,' ', operator,' ', number2:4:2,' is ' 
        ,result:5:2) 
end. 

{Special changes for Turbo are       
     case operator of 
      '*': result := MULTIPLY; 
      '/': result := DIVIDE; 
      '+': result := ADD; 
      '-': result := SUBTRACT; 
     else invalid_operator := TRUE 
     end;   

回答

0

由於運算符重載,運算符可能是保留字。更改其名稱。

結果是沒有保留的afaik(但是函數的僞變量導致Delphi模式),最好給它一個不同的名字。

您可能還想嘗試啓用Turbo模式(-So)

相關問題