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.