Untitled

You might also like

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 10

1

TÖL101G TÖLVUNARFRÆÐI

F10.2 Dæmi um hlutbundna klasa

Ebba Þóra Hvannberg


Tvinntölur (complex numbers)

• Tvinntala er tala á forminu a+bi, þar sem a og b eru rauntölur


og i er √−1 (þ.e. i2 = −1)
• Útvíkka talnalínuna yfir í tvær víddir
– raunhluti (Re) og þverhluti (Im)

• Helstu aðgerðir, dæmi:


– Samlagning: (3 + 4i) + (−2 + 3i) = 1 + 7i
– Margföldun: (3 + 4i) * (−2 + 3i) = −18 +
– Tölugildi: i + 4i| =
|3 2  4  5
2
3
• Notkun:
– Eðlisfræði, efnafræði, líffræði,
rafmagnsverkfræði, ...
Gagnatag fyrir tvinntölur
• Getum þá unnið með tvinntölur (næstum því) eins og heiltölur
• Skilgreinum aðgerðirnar samlagningu, margföldun og tölugildi
33design/Complex í
IntroCS
Complex prófunarforrit

public static void main(String[] args) Getum ekki skrifað a+b og


{ Complex a = new Complex( 3.0, 4.0); a*b, því það er ekki hægt
Complex b = new Complex(-2.0, 3.0); að yfirhlaða virkja (operator
StdOut.println("a = " + a); overloading) í Java
StdOut.println("b = " + b);
StdOut.println("a + b = " + a.plus(b));
StdOut.println("a * b = " + a.times(b));
StdOut.println("|a| = " + a.abs());
}

% java Complex
a = 3.0 + 4.0i
b = -2.0 + 3.0i
a + b = 1.0 +
7.0i
a * b = -18.0 +
1.0i
|a| = 5.0
Complex tilviksbreytur og smiður

• Höfum tvær tilviksbreytur, fyrir raunhluta og þverhluta


– Þær eru skilgreindar sem final, svo hver tvinntala er
óbreytanleg
(immutable)
• Smiðurinn setur bara gildi í tilviksbreyturnar Svipað og með aðrar
public class Complex tölur - talan 2 er
{ private final double alltaf talan 2, við
re; private final getum ekki breytt
double im; henni!

public Complex(double real, double imag) {


re = real;
im = imag;
}
...
}
Complex aðferðir
public class Complex {
...
public Complex plus(Complex b) { Búum til nýjan Complex
double real = re + b.re; hlut og skilum tilvísun á
double imag = im + b.im; hann
return new Complex(real, imag);
}
Höfum aðgang að
public Complex times(Complex b) tilviksbreytum b
{ double real = re * b.re - im * b.im og b.re
b.im; double imag = re * b.im + im
* b.re; return new Complex(real,
imag);
}
public double abs()
{ return Math.sqrt(re*re + im*im); }
Útfærslan á Complex.java
public String toString() sem er á heimasíðu bókarinnar
{ return re + " + " + im + "i"; } er með mun fleiri aðferðum
...
}
this merkir hluturinn
sjálfur
main-fall í Complex

Keðjukall á
aðferðir
Takk fyrir

10

You might also like