» »

[Java][Naloga] Skladi

[Java][Naloga] Skladi

bijonda ::

Ciao!
Evo se ene naloge, ki mi dela tezave. Tolkrat se igram s skladi.
#####################
Glavni program:
public class Naloga9 {

public static Sklad sodi(Sklad a) {

// naredimo nov sklad, ki je prazen
Sklad sodiSklad = new Sklad();

// preverjamo, dokler sklad a ni prazen
while(!a.prazen()) {
// ce je stevilo na vrhu sklada sodo, ga damo v sodiSklad

if(Integer.parseInt(a.vrh()) % 2 == 0) {
sodiSklad.vstavi(a.vrh());
}

// v vsakem primeru, iz skalda a odstarnimo vrhni podatek
a.odstrani();
}

// obraèanje za pravilni vrstni red
while(!sodiSklad.prazen()) {
a.vstavi(sodiSklad.vrh());
sodiSklad.odstrani();
}


// vrnemo sodiSklad
return a;
}
}
#########################3
Razred od koder podedujem metode,...
public class Sklad {

private E[] tab;
private int kam; // kazalec na mesto, kjer bomo vstavili nov element
private final static int MAX_V = 20; // privzeta velikost sklada

// kostruktorji (pripravi)

public Sklad() {
tab = (E[]) new Object[MAX_V]; // zal Java ne pusti new E[MAX_V]
kam = 0;
}

public Sklad(int vel) {
tab = (E[]) new Object[vel]; // zal Java ne pusti new E[vel]
kam = 0;
}

// metode

public void vstavi(E pod) throws Exception {
// vstavi podatek pod v sklad
if (kam >= tab.length) throw new Exception("Sklad je poln");
else {
tab[kam] = pod;
kam = kam + 1;
}
}

public void odstrani() throws Exception {
// odstrani podatek iz sklada
if (!prazen())
kam = kam - 1;
else throw new Exception("sklad je prazen");
}

public boolean prazen() {
// ali je sklad prazen
return (kam == 0);
}

public E vrh() throws Exception {
// vrne vrhnji element sklada
if (!prazen())
return tab[kam - 1]; // kam kaže na prvo PROSTO mesto
else throw new Exception("sklad je prazen");
}

public String toString() {
String izp = "";
for (int i = kam - 1; i >= 0; i--)
izp += " -:- " + tab[i];
return izp;
}

///// dodatni metodi

public boolean poln() {
// je sklad poln?
return (kam == tab.length);
}

public void izpis() {
// izpise sklad in ga ohrani
for(int i = kam - 1; i >= 0; i--)
System.out.print(tab[i] + " ");
System.out.println();
}
}

#####################3
testni program:
// testni program pri 9 Domaci nalogi

public class TestSklad {
public static void main(String[] args) {

Sklad testni = new Sklad();

for(int i = 0; i == 10;i++){
testni.vstavi(i);
}

System.out.println("Prvotni sklad: " + testni.toString());
System.out.println("Sodi sklad: " + sodi(testni).toString());
}
}
#########################
Zopet se mi ne prevede program.
Javimi napako:
C:\FAKS\RAC2 05_06\DOMACE_NALOGE\9.DN\Naloga9.java:19: cannot find symbol
symbol : method parseInt(java.lang.Object)
location: class java.lang.Integer
if(Integer.parseInt(a.vrh()) % 2 == 0) {
^
Note: C:\FAKS\RAC2 05_06\DOMACE_NALOGE\9.DN\Naloga9.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
1 error

Tool completed with exit code 1
#################3
Ali kdo ve kako odpraviti napako?
Jaz nisem nic pametnega nasla!

Thx!

Ciao caio
  • spremenilo: snow ()

Bojevnik ::

V argument metode parseInt moras dati objekt tipa int.
Tvoja metoda vrh(), pa vrne tip E

Bojevnik ::

Sorry pomota, parseInt sprejme String

bijonda ::

Sorry nisem stekala, kaj si mi zelel povedati! :O
Kaj bi mi lahko se enkrat povedal, lepo prosim!

Thx!

Bojevnik ::

Napako ti ven vrže ker narobe kličes metodo parseInt.

Če hočeš pravilno klicati metodo parseInt, moraš v argumentu imeti String
Se pravi nekaj takega:
String abc="44";
int a = Integer.parseInt(abc);
//to je pravilno

pri tebi je pa metoda Vrh() definirana tako:
public E vrh() throws Exception {
// vrne vrhnji element sklada
if (!prazen())
return tab[kam - 1]; // kam kaže na prvo PROSTO mesto
else throw new Exception("sklad je prazen");
}


se pravi, pri tebi je metoda vrh() tipa E in ti zato vrze ven napako.

Upam da je sedaj bolj razumljivo:D


Edit: tale koda, ki si jo tukaj nalepila vrže ven še kup drugih napak zato domnevam da ni zadnja verzija, ali pač?

Zgodovina sprememb…

  • spremenilo: Bojevnik ()

bijonda ::

Razumem kaj mi zelis povedati! Thx!

Ne ne je zadnja verzija, samo da sem v drugem pogramu stran dala:
public class Sklad znak za manjse E znak za vecji {

ker mi je javljal napako, nedovoljenaoznaka v html,skratka nisem mogla poslati razred kakor treba!


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[NALOGA][JAVA] oklepaji - skladi

Oddelek: Programiranje
111759 (1590) bijonda
»

JAVA-NALOGA- Pomoc NUJA!!!!!

Oddelek: Programiranje
61646 (1569) bijonda
»

[Naloga][Java] Ulomki

Oddelek: Programiranje
62637 (2485) SkIDiver
»

read integer v javi

Oddelek: Programiranje
91360 (1261) kopernik
»

Java problemček

Oddelek: Programiranje
141427 (1220) Imortales

Več podobnih tem