I början av Januari 2014 låstes Whoa och du kan alltså ej logga in eller skriva något nytt i forumen. Innehåll i forum osv kommer finnas tillgängligt. Läs Mer »

   

2006-10-18 20:42

Java-fråga

Har en uppgift kvar av min läxa i Java, och jag förstår inte riktigt vad de är ute efter. Någon som kan förklara vad de menar ?

Gör två implementationer, en iterativ och en rekursiv, av en metod som returnerar det maximala värdet i en vektor. Metoden ska ha följande signatur:

public int max(int v)

Förstår inte ens vart jag ska börja :S

cva ?

2006-10-18 23:16


vektorn är en lista med massa tal.  int  v.

du skall gå igenom listan för att hitta det största talet.
Detta skall du göra på två sätt.

a) iterativ.     med loop.
b) rekursivt, genom att funktionen (metoden?) anropar sig själv.

fattar du nu, eller behöver du mer ledtrådar? ;)






2006-10-19 07:33
Hm ok.. Förstår inte hur jag ska göra den rekursiv bara då... Den var inte så svår att göra iterativ.
cva ?

2006-10-19 16:54

hm.   vet du hur det funkar när det är rekursivt?

om du har en metod:

balle (int x)


så ska den anropa sig själv för att vara rekursiv.

tex;

public void balle(int kuk)
    if kuk < 3
        balle(kuk+1)


----
det här vore ju en ganska dum funktion eftersom den skulle hålla på i all evighet.
så därför måste man ha ett basfall när man gör rekursivt... och skulle tex kunna göra så här;

public void balle(int kuk)
    if kuk < 3
       balle(kuk+1)
    else
       NÅGOTKUL


nu kommer balle alltså anropa sig själv tills kuk är större än tre. Sen händer något kul.   
typ som en while loop, fast villkoret ligger inne i metoden.






2006-10-20 04:44

nått i den här stilen kanske?

function p = RecArr(array);

if (length(array) == 1)
    p = array;
else
    F = RecArr(array(2:length(array)));
    if array(1) < F
        p = F;
    else p = array;
    end
end

return;

nu behöver du bara översätta till Java.. dessutom 3 nördpoäng till den icke-teknolog som gissar rätt "språk".

mensvärk är livets krydda.

2006-10-20 04:46
oj, indenteringen funkade.. big upp till nya whoa!
mensvärk är livets krydda.

2006-10-20 13:27

jag hitta ett feeeel.  tror jag.  jag har nämligen inga nördpoäng.  Men jag kan tänka mig att skaffa.

 


2006-10-20 15:56
ja, det borde väl stå

else p = array(1);

om det var den du menade?

För att sparka igång matlab måste jag starta om datorn.. så jag har inte orkat testa koden
mensvärk är livets krydda.

2006-10-20 18:58
mm det var det.
matlab säger du? tur att jag inte kände igen koden, det betyder att min förträngningsprocess fungerar som den skall.