Forum » Programiranje » [C#] Preoblaganje operatorjev
[C#] Preoblaganje operatorjev

GangStarr ::
Pozdravljeni!
Potrebujem vašo pomoč. Naredil sem program z razredom za dvodimenzionalno točko. Težavo imam pri metodi, ki vrne razdaljo med dvema točkama (RazdaljaTocka). Kaj moram narediti, da je izpis lahko takšen:
Razred ima naslednje lastnosti:
- 2 podatka (celi števili),
- privzeti, kopirni in pretvorbeni konstruktor,
- metodo RazdaljaIzhodisce, ki izračuna razdaljo od koordinatnega izhodišča do točke,
- metodo RazdaljaTocka, ki izračuna razdaljo med dvema točkama,
- metodo, ki spremeni koordinato x,
- metodo, ki vrne koordinato x,
- lastnost, ki spremeni in vrne koordinato y,
- metodo za izpis obeh koordinat.
V glavnem programu:
- štiri točke A, B, C in D
- pri prvi točki - privzete vrednosti, za drugo in tretjo točko vnese vrednosti uporabnik. Četrta je kopija točke B.
- izpis točke A in x koordinate točke C
- sprememba koordinat točke C na vrednost (3,-1)
- izpis razdalje med izhodiščem in točko C
- izpis razdalje med točko A in točko B
- polje E za 15 točk, kjer imajo vse točke vrednost (10, 10)
- polje F za 20 točk, z vrednostmi v prvi točki (1, 1), v drugi (2,2)...
Koda:
Hvala!!!
Potrebujem vašo pomoč. Naredil sem program z razredom za dvodimenzionalno točko. Težavo imam pri metodi, ki vrne razdaljo med dvema točkama (RazdaljaTocka). Kaj moram narediti, da je izpis lahko takšen:
Console.Write( X1.RazdaljaTocka( X2 )Poskušal sem že s preoblaganjem operatorjev, vendar mi ne uspe...
Razred ima naslednje lastnosti:
- 2 podatka (celi števili),
- privzeti, kopirni in pretvorbeni konstruktor,
- metodo RazdaljaIzhodisce, ki izračuna razdaljo od koordinatnega izhodišča do točke,
- metodo RazdaljaTocka, ki izračuna razdaljo med dvema točkama,
- metodo, ki spremeni koordinato x,
- metodo, ki vrne koordinato x,
- lastnost, ki spremeni in vrne koordinato y,
- metodo za izpis obeh koordinat.
V glavnem programu:
- štiri točke A, B, C in D
- pri prvi točki - privzete vrednosti, za drugo in tretjo točko vnese vrednosti uporabnik. Četrta je kopija točke B.
- izpis točke A in x koordinate točke C
- sprememba koordinat točke C na vrednost (3,-1)
- izpis razdalje med izhodiščem in točko C
- izpis razdalje med točko A in točko B
- polje E za 15 točk, kjer imajo vse točke vrednost (10, 10)
- polje F za 20 točk, z vrednostmi v prvi točki (1, 1), v drugi (2,2)...
Koda:
class Tocka { private int x; private int y; public Tocka() { x = 2; y = 5; } public Tocka(int a, int b) { this.x = a; this.y = b; } public Tocka(Tocka A) { this.x = A.x; this.y = A.y; } public void RazdaljaIzhodisce() { int izhodisceX = 0; int izhodisceY = 0; int razdaljaX = izhodisceX + x; int razdaljaY = izhodisceY + y; Console.WriteLine(razdaljaX + ", " + razdaljaY); } public void RazdaljaTocka() { /*??????????????????????????????*/ } public void SpremeniX(int X) { this.x = X; } public void IzpisX() { Console.WriteLine(x); } public int KoordinataY { get { return this.y; } set { this.y = value; } } public void IzpisTocke() { Console.WriteLine("Koordinata x: " + x); Console.WriteLine("Koordinata y: " + y); } static void Main(string[] args) { Console.WriteLine("Vnesi vrednost koordinate x pri točki B: "); int a = int.Parse(Console.ReadLine()); Console.WriteLine("Vnesi vrednost koordinate y pri točki B: "); int b = int.Parse(Console.ReadLine()); Console.WriteLine("Vnesi vrednost koordinate x pri točki C: "); int c = int.Parse(Console.ReadLine()); Console.WriteLine("Vnesi vrednost koordinate y pri točki C: "); int d = int.Parse(Console.ReadLine()); Tocka A = new Tocka(); Tocka B = new Tocka(a, b); Tocka C = new Tocka(c, d); Tocka D = new Tocka(B); A.IzpisTocke(); C.IzpisX(); C.SpremeniX(3); C.KoordinataY = -1; C.RazdaljaIzhodisce(); Tocka[] E = new Tocka[15]; for (int i = 0; i < E.Length; i++) { E[i] = new Tocka(); E[i].SpremeniX(10); E[i].KoordinataY = 10; } Tocka[] F = new Tocka[20]; for (int i = 0; i < F.Length; i++) { for (int j = 1; j <= F.Length; j++) { F[i] = new Tocka(); F[i].SpremeniX(j); F[i].KoordinataY = j; } } } }
Hvala!!!
Semper Fi

Ziga Dolhar ::
Tole mi ni povsem jasno. Bi rad "preobložil" (overloadal?) operator, ali metodo?
Če metodo - RazdaljaTocka() zgleda kot edina verzija metode (pa še ta je prazna in ima vprašaje notr). Si zihr, da bi jo rad overloadal, al bi rad le napisal notri kodo, ki bo izračunala razdaljo med dvema točkama? :)
Če metodo - RazdaljaTocka() zgleda kot edina verzija metode (pa še ta je prazna in ima vprašaje notr). Si zihr, da bi jo rad overloadal, al bi rad le napisal notri kodo, ki bo izračunala razdaljo med dvema točkama? :)
https://dolhar.si/

amacar ::
public void RazdaljaIzhodisce() { int izhodisceX = 0; int izhodisceY = 0; int razdaljaX = izhodisceX + x; int razdaljaY = izhodisceY + y; Console.WriteLine(razdaljaX + ", " + razdaljaY); }
Tole ni pravilna koda za razdaljo do izhodišča! (http://www.purplemath.com/modules/distf... )
Pri metodi RazdaljaTocka() izračunaj na enak način (http://www.purplemath.com/modules/distf... ) ampak metoda naj vrne string ali double...
Zgodovina sprememb…
- spremenil: amacar ()

DaMachk ::
Overloadaš lahko metodo, ki že obstaja v nadrazredu...
Če jo zgolj napraviš, je to običajna deklaracija.
Če jo zgolj napraviš, je to običajna deklaracija.
No signiature, as you see..
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | križci krožci c # (strani: 1 2 )Oddelek: Programiranje | 12890 (11549) | Yacked2 |
» | [c#] Ustvarjanje objekta v drugem razreduOddelek: Programiranje | 1733 (1678) | Cvenemir |
» | c sharp LinkedList - NalogaOddelek: Programiranje | 1987 (1938) | Msatir |
» | Konec programaOddelek: Programiranje | 1082 (864) | alexa-lol |
» | Java ObjektiOddelek: Programiranje | 2359 (2053) | Mavrik |