Program klasy (obliczanie pola, obwodu i przekątnej)

0

Witam
Mam do napisania, a raczej napisałem program którego zadaniem jest wprowadzenie z klawiatury boków a i b prostokąta, a następnie obliczenie jego obwodu, pola i przekątnej, wyświetlenie tych danych i zapisanie do pliku ()zapis funkcja zewnętrzna.
Jest to moje pierwsze zerknięcie z klasami i kompilator wywala mi 8 błędów typów, wiem, że mam to źle (pewnie inne rzeczy też :/), ale nie wiem co dokładnie i na co poprawić. Jeżeli ktoś byłby chętny pomóc, byłbym naprawdę bardzo wdzięczny :)

program klasa;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils;

TYPE
  RECTANGLE = class
  private
    a:integer;
    b:integer;
  public
    procedure input(a,b:integer);    //wprowadz boki
    procedure outputa (a:integer);   //wyswietl a
    procedure outputb (b:integer);   // wyswietl b
    procedure perimeter(o:integer);  // oblicz obwod
    procedure area (p:integer);      // oblicz pole
    procedure diagonal (d:real);     // oblicz przekatna
    constructor create;              //konstruktor
  end;

  procedure RECTANGLE.input(a: integer; b: integer);
  begin
    Writeln ('Podaj bok "a" prostokata ');
    Readln (a);
    Writeln ('Podaj bok "b" prostokata');
    Readln (b);
  end;

  procedure RECTANGLE.outputa(a: integer);
  begin
    Writeln ('Dlugosc boku "a" wynosi: ', a);
  end;

  procedure RECTANGLE.outputb(b: integer);
  begin
    Writeln ('Dlugosc boku "b" wynosi: ', b);
  end;

  procedure RECTANGLE.perimeter(o: integer);
  begin
    o:=(2*a)+(2*b);
    Writeln ('Obwod prostokata wynosi: ', o);
  end;

  procedure RECTANGLE.area(p: integer);
  begin
    p:=a*b;
    Writeln ('Pole prostokata wynosi: ',p);
  end;

  procedure RECTANGLE.diagonal(d: real);
  begin
    d:=sqrt(sqr(a)+sqr(b));
    Writeln ('Przekatna prostokata wynosi:',d:0:3 );
  end;

  procedure zapisz (a,b,o,p:integer; d:real);
  VAR
    plik:TextFile;
  begin
    AssignFile(plik,'plik.txt');
    Rewrite (plik);
    Writeln (plik,'Boki prostokata maja dlugosci: ',a,b);
    Writeln (plik,'Obwod prostokata ma dlugosc: ',o);
    Writeln (plik,'Pole prostokata ma dlugosc: ',p);
    Writeln (plik,'Przekatna prostokata ma dlugosc: ',d);
    CloseFile(plik);
  end;

VAR
  a,b,o,p,d,x:RECTANGLE;
begin
  a:=RECTANGLE.create;
  b:=RECTANGLE.create;

  x.input(a,b);
  a.outputa(a);
  b.outputb(b);
  o.perimeter(o);
  p.area(p);
  d.diagonal(d);

  zapisz (a,b,o,p,d);

  readln;
end.
0

zwróć uwagę na typ parametrów jaki zadeklarowałeś w procedurze input.
następnie spójrz jakiego typu zmienne podajesz przy wywołaniu tej procedury.
a na koniec zmień typ tych zmiennych na taki jaki powinien być (taki jak oczekuje procedura)

podpowiedz:
liczba nie jest prostokątem

1 użytkowników online, w tym zalogowanych: 0, gości: 1