Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Проблемы с калькулятором


Автор: DeadLine 1.12.2007, 17:53
Код

program Project1dpr;
{$APPTYPE CONSOLE}
uses SysUtils;
type TCalculator = class
  operand1, operand2: real; // поля хранят операнды
  sign: char; // поле хранит знак операции
  res: real; // поле хранит результат
  procedure Init(op1, op2:real; s:char);virtual; // метод инициализирует поля объекта
  procedure Plus;virtual;
  procedure Minus;virtual;
  procedure Divide;virtual;
  procedure Multiply;virtual;
  procedure Run;virtual; // метод выполняет нужную операцию
  procedure PrintResult;virtual; // метод печатает результат
  end;
  procedure TCalculator.Init(op1, op2:real; s:char);
  begin
  operand1:= op1;
  operand2:= op2;
  sign:=s;
  end;
   procedure TCalculator.Plus;
   begin
   res:= operand1 + operand2;
   end;
    procedure TCalculator.Minus;
   begin
   res:= operand1 - operand2;
   end;
    procedure TCalculator.Divide;
   begin                    p
   res:= operand1/operand2;
   end;
    procedure TCalculator.Multiply;
   begin
   res:= operand1*operand2;
   end;
   procedure TCalculator.PrintResult;
     begin
   WriteLn ('Result=',res);
     end;
    procedure TCalculator.Run;
    begin
    case sign of
    '+':Plus;
    '-':  Minus;
    '*':  Multiply;
    '/':  Divide;
    else WriteLn ('Wrong operation');
    end;
    PrintResult;
    end;
    type TStep = class (TCalculator)
    procedure Init(op1, op2:real; s:char);override; // метод инициализирует поля объекта
    procedure Stepen;
    procedure Run;override; // метод выполняет нужную операцию
    procedure PrintResult;override; // метод печатает результат
    end;
    procedure Stepen;
    begin
      res:=exp(operand2*ln(operand1));
    end;
    procedure TCalculator.Run;
    begin
    case sign of
    'x':Stepen;
    else WriteLn ('Wrong operation');
    end;
    end;

  {-------------main-------------------}
  var Calc: TCalculator; // объявляем экземпляр класса
  a,b: real;
  c:char;
  begin
 Calc:= TCalculator.Create;  // Вызываем конструктор класса TObject
  WriteLn('Input two operands');
  Readln (a,b);
  Writeln('Input operation');
  Readln(c);
  Calc.Init(a, b, c);
  Calc.Run;
  ReadLn;
  end.

Пишет что необьявлена res.помогите пожалуйста разобраться

Автор: THandle 1.12.2007, 18:19
Ведь procedure Stepen; не метод класса TCalculator.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)