Podstawy Informatyki - Laboratorium
Politechnika Świętokrzyska, Wydział Elektrotechniki, Automatyki i Informatyki
Turbo Pascal
Instrukcja laboratoryjna nr 14
Opracował: dr inż. Grzegorz Słoń
kwiecień 2005 r.
Programowanie obiektowe - cz. 1
Napisać program zawierający definicję klasy liczb zespolonych TComplex oraz metody umożliwiające wprowadzanie i wyświetlanie wartości liczby zespolonej.
program z14_1;
uses Crt;
type TComplex = object
re,im: real;
procedure UstawAlg(x,y: real);
procedure WprowadzAlg;
procedure WyswietlAlg;
end;
var x:TComplex;
{-----}
procedure TComplex.UstawAlg(x,y:real);
begin
re:=x; im:=y;
end;
{-----}
procedure TComplex.WprowadzAlg;
var x:byte;
begin
x:=WhereX;
write('Re = '); readln(re);
GoToXY(x+20,WhereY-1);
write('Im = '); readln(im);
end;
{-----}
procedure TComplex.WyswietlAlg;
begin
write(re:4:2);
if im>=0 then write(' +',im:4:2,'i')
else write(' -',-im:4:2,'i');
end;
{-----}
begin
ClrScr;
writeln('Wprowadz liczbe zespolona w postaci algebraicznej:');
x.WprowadzAlg;
writeln('Wprowadzono nastepujaca liczbe: ');
write(`Postac algebraiczna: `); x.WyswietlAlg;
writeln;
writeln('Nacisnij dowolny klawisz ...');
ReadKey;
end.
Uzupełnić program z poprzedniego punktu o metody służące do wprowadzania i wyświetlania wartości liczby zespolonej w postaci wykładniczej.
uzupełnienie deklaracji klasy TComplex:
procedure WyznaczWyk(var Modul,fi: real);
procedure WyswietlWyk;
uzupełnienie definicji metod:
{-----}
procedure TComplex.WyznaczWyk(var Modul,fi: real);
begin
Modul:=sqrt(sqr(re)+sqr(im));
if re<>0 then if im<>0 then fi:=arctan(im/re)
else if re>=0 then fi:=0
else fi:=pi
else if im>0 then fi:=pi/2
else if im<0 then fi:=-pi/2
else fi:=0;
end;
{-----}
procedure TComplex.WyswietlWyk;
var m,f: real;
begin
WyznaczWyk(m,f);
write(m:4:2,' exp(',f:4:2,'i)');
end;
{-----}
uzupełnienie części głównej programu:
write('Postac wykladnicza: '); x.WyswietlWyk;
writeln;
Umieścić klasę TComplex w module CPLX i zmodyfikować program z poprzedniego punktu tak, aby wykorzystywał moduł CPLX.
Opracować nowy moduł o nazwie CPLX1, zawierający definicję klasy TCplx, będącej pochodną klasy TComplex umieszczonej w module CPLX. Nowa klasa powinna zawierać dodatkowe metody: WprowadzWyk - umożliwiającą wprowadzenie liczby zespolonej w postaci wykładniczej oraz WyznaczAlg - umożliwiającą dokonanie konwersji z postaci wykładniczej do algebraicznej. Zmodyfikować program z poprzedniego punktu tak, aby mógł korzystać z klasy TCplx.
Wykorzystując moduł CPLX1 napisać program, którego zadaniem będzie wykonywanie podstawowych operacji arytmetycznych na dwóch liczbach zespolonych.
Wykorzystać poniższe zależności:
jeżeli:
oraz
to:
jeżeli:
oraz
to:
str. 2/2 Turbo Pascal - Instrukcja nr 14
Turbo Pascal - Instrukcja nr 14 str. 3/1