Avatar billede gala Nybegynder
04. november 2003 - 12:20 Der er 38 kommentarer og
1 løsning

et lille pinligt kode spørgsmål

Hey!
Jeg har følgende lille kode som jeg ikke kan få til at virke. Det er som om de to filer ikke kan se hinanden, men det er nok bare en dum dum fejl et eller andet sted.

public class Search{
    public Search(){
        husleje = new int [10];   
    }
   
   
    public int getMaxHusleje(int maxHusleje){
        for (int i = 0; i < husleje.length; i++)
            if (husleje[i] < maxHusleje)
                return husleje[i];
   
    }


}
import javax.swing.JOptionPane;

public class SearchTest{
    public static void main (String []a){
        Search husleje = new Search();
        husleje [0] = 1000;
        husleje [1] = 1500;
        husleje [2] = 1800;
        husleje [3] = 2000;
        husleje [4] = 2500;
        husleje [5] = 3000;
        husleje [6] = 3400;
        husleje [7] = 3800;
        husleje [8] = 4000;



        String input = JOptionPane.showInputDialog("Hvad er den maksimale husleje?");
        int max = Integer.parseInt(input);
        husleje.getMaxHusleje(max);
    }
}

Er der ikke en eller anden der kan fortælle mig lige præcis hvor det er jeg har dummet mig denne gang?
Mange tak!
Gala
Avatar billede mikkelbm Nybegynder
04. november 2003 - 12:31 #1
Du behandler din Search klasse som et Array. Det kan vist ikke lade sig gøre...
Du kan vælge at lave en int-tabel og smide med over som parameter.

eks:

public class Search{
    public Search(int[] leje){
        husleje = leje;   
    }

og main:

int[] husleje = new int[antal];
husleje [0] = 1000;
husleje [1] = 1500;
osv...

Search leje = new Search(husleje);


Det ville være mit forslag...
Avatar billede mikkelbm Nybegynder
04. november 2003 - 12:34 #2
og så:

String input = JOptionPane.showInputDialog("Hvad er den maksimale husleje?");
int max = Integer.parseInt(input);
leje.getMaxHusleje(max);
Avatar billede arne_v Ekspert
04. november 2003 - 12:34 #3
public class Search{
    private int[] husleje; // den skal også erklæres
    public Search(int[] leje){
        husleje = leje;   
    }
Avatar billede mikkelbm Nybegynder
04. november 2003 - 12:36 #4
ja, selvfølgelig :)
Avatar billede gala Nybegynder
04. november 2003 - 12:50 #5
mikkel>> tak for svar... Men tror ike det helt har hjulpet. Nu ser koden såedes ud:
import javax.swing.JOptionPane;

public class SearchTest{
    public static void main (String []a){
        int []husleje =  new int[10];
        husleje [0] = 1000;
        husleje [1] = 1500;
        ......
       
        Search leje = new Search(husleje);


        String input = JOptionPane.showInputDialog("Hvad er den maksimale husleje?");
        int max = Integer.parseInt(input);
        leje.getMaxHusleje(max);
    }
}

public class Search{
    public Search(int[]leje){
        husleje = leje;       
    }
   
   
    public int getMaxHusleje(int maxHusleje){
        for (int i = 0; i < husleje.length; i++)
            if (husleje[i] < maxHusleje)
                return husleje[i];
    }
}

Hvad pokker gør jeg nu galt?
Avatar billede mikkelbm Nybegynder
04. november 2003 - 12:52 #6
du skal huske arne_v kommentar...

tabellen skal erklæres...
Avatar billede mikkelbm Nybegynder
04. november 2003 - 12:58 #7
public class SearchTest{
    public static void main (String []a){
        int []husleje =  new int[10];
        husleje [0] = 1000;
        husleje [1] = 1500;
        ......
       
        Search leje = new Search(husleje);


        String input = JOptionPane.showInputDialog("Hvad er den maksimale husleje?");
        int max = Integer.parseInt(input);
        leje.getMaxHusleje(max);
    }
}

public class Search{
    private int[] husleje; /****** HER ******/
    public Search(int[]leje){
        husleje = leje;       
    }
   
   
    public int getMaxHusleje(int maxHusleje){
        for (int i = 0; i < husleje.length; i++)
            if (husleje[i] < maxHusleje)
                return husleje[i];
    }
}
Avatar billede gala Nybegynder
04. november 2003 - 13:00 #8
hvorfor pokker siger den så at den har en missing return statement på getMaxHusleje metoden?
Avatar billede mikkelbm Nybegynder
04. november 2003 - 13:03 #9
det gør den, fordi du kun har en return sætning inde i din if-sætning.

prøv følgende:

public int getMaxHusleje(int maxHusleje){
        for (int i = 0; i < husleje.length; i++)
            if (husleje[i] < maxHusleje)
                return husleje[i];
        return maxHusleje;
    }
Avatar billede mikkelbm Nybegynder
04. november 2003 - 13:04 #10
så returnere den maxHusleje, hvis der ikke er nogle der er mindre...
Avatar billede gala Nybegynder
04. november 2003 - 13:07 #11
underligt. Hvis jeg prøver at compile main kan den ikke se search. Hvis jeg compiler det hele og så kører denm slynger den et tilfældigt tal ud....
(Du siger lige til hvis jeg trækker på din tålmodighed)
Avatar billede mikkelbm Nybegynder
04. november 2003 - 13:11 #12
hvad mener du præcist med at den slynger et tilfældigt tal ud?
Din tabel skal være sorteret - hvilket den tilsyneladende også ser ud til at være.

Din getMaxHusleje metode vil returnere det første tal i tabellen der er under din parameter maxHusleje...
Avatar billede mikkelbm Nybegynder
04. november 2003 - 13:12 #13
og med hensyn til at compile skal du compile Search-klassen inden du compiler din main...
Avatar billede gala Nybegynder
04. november 2003 - 13:16 #14
jeg har godt fået compilet search klassen først. Det dur alligevel ikke.
Den kommer aldrig op med en joptionpane, men udskriver 3000.
Avatar billede mikkelbm Nybegynder
04. november 2003 - 13:22 #15
hvordan ser din main-metode ud nu... kan du ikke lige poste den?
Avatar billede gala Nybegynder
04. november 2003 - 13:23 #16
import javax.swing.JOptionPane;

public class SearchTest{
    public static void main (String []a){
        int []husleje =  new int[10];
        husleje [0] = 1000;
        husleje [1] = 1500;
        husleje [2] = 1800;
        husleje [3] = 2000;
        husleje [4] = 2500;
        husleje [5] = 3000;
        husleje [6] = 3400;
        husleje [7] = 3800;
        husleje [8] = 4000;
        Search leje = new Search(husleje);


        String input = JOptionPane.showInputDialog("Hvad er den maksimale husleje?");
        int max = Integer.parseInt(input);
        System.out.println (leje.getMaxHusleje(max));
    }
}
Avatar billede gala Nybegynder
04. november 2003 - 13:23 #17
du må altså ha mange 1000 tak for hjælpen!
Avatar billede mikkelbm Nybegynder
04. november 2003 - 13:24 #18
ved ikke om det er det, men du har kun 9 elementer i dit Array som har plads til 10 elementer... det kan måske godt drille lidt...
Avatar billede gala Nybegynder
04. november 2003 - 13:26 #19
nope, ikke derfor...
Avatar billede mikkelbm Nybegynder
04. november 2003 - 13:27 #20
hvis du nu skriver maxhusleje til at være 2000
hvad skal output så være?

jeg skal lige være helt med på hvad der skal ske :)
Avatar billede gala Nybegynder
04. november 2003 - 13:28 #21
jamen den kommer aldrig op med en joptionpane, det er lidt det der er problemet
Avatar billede mikkelbm Nybegynder
04. november 2003 - 13:30 #22
hmmm okay... det lyder underligt. jeg har lige prøvet koden og den kører fint her ved mig.

Er det stadig et problem med at klasserne ikke kan finde hinanden?
Avatar billede gala Nybegynder
04. november 2003 - 13:31 #23
ja....can det være min compiler der brokker sig igen? synes ellers lige at jeg endelig har fået den til at køre ordentligt...
Avatar billede mikkelbm Nybegynder
04. november 2003 - 13:33 #24
nu ved jeg ikke hvilket ide du udvikler i, men du er sikker på at java-filerne ligger i samme bibliotek/mappe???
Avatar billede mikkelbm Nybegynder
04. november 2003 - 13:34 #25
får du nogle fejlmeldinger når du compiler og hvis det er tilfældet, så prøv at poste den her...
Avatar billede gala Nybegynder
04. november 2003 - 13:34 #26
som hinanden? ja. og jeg bruger en j2sdk...som jeg vist nok ar fået min ultra edit til at æde
Avatar billede mikkelbm Nybegynder
04. november 2003 - 13:44 #27
nu kender jeg ikke noget til Ultra Edit, men kan du ikke poste de fejlmeldinger du får??
Avatar billede gala Nybegynder
04. november 2003 - 13:47 #28
hvis man dog bare kunne copy paste dem!
nå, here goes

searchtest.java:16: cannot resolve symbol
search leje.....
det er search den ikke kan finde
Avatar billede mikkelbm Nybegynder
04. november 2003 - 13:56 #29
som sagt kender jeg ikke Ultra Edit, men jeg ved at man i andre editorer kan oprette projekter og workspaces. hvis man gør det laver den et nyt bibliotek til hele projektet, og hvis man laver en ny java-fil skal man sørge for at den er knyttet dertil.

Prøv lige at tjekke at begge filer ligger i samme bibliotek
altså Search.java og SearchTest.java

Mht. din fejlmelding går jeg ud fra at det er fordi du har skrevet af og ikke copy-paste, at det hele er med små bogstaver???
Avatar billede gala Nybegynder
04. november 2003 - 13:57 #30
ja det er det....kunne være at man skulle forsøge dig med en anden editor.....hvad anbefaler du?
Avatar billede mikkelbm Nybegynder
04. november 2003 - 14:01 #31
jeg bruger selv JCreator:

http://www.jcreator.com/

Men der er flere der er udviklet i java, som også er meget fine...
Avatar billede gala Nybegynder
04. november 2003 - 14:03 #32
tak, jeg prøver...men tag da lige og lag et svar så du i det mindste kan få pointene. Ked af at ha taget så meget af din tid og mange tak!
Avatar billede mikkelbm Nybegynder
04. november 2003 - 14:14 #33
et sidste forsøg kan være at gå ud i kommando-prompten og compile og køre dine filer...

javac Search.java //compiler den
javac SearchTest.java

Og for at køre dem

java Search.class
eller
java Search
Avatar billede gala Nybegynder
04. november 2003 - 14:15 #34
den har samme problem i jcreator skal jeg lige hilse at sige...så det er et eller andet dumt i koden
Avatar billede arne_v Ekspert
04. november 2003 - 14:16 #35
java Search.class

virker næppe - brug java Search
Avatar billede mikkelbm Nybegynder
04. november 2003 - 14:17 #36
Disse to klasser compiler fint for mig i JCreator og jeg kan også køre dem...
Så det lyder underligt... meget underligt!

import javax.swing.JOptionPane;

public class SearchTest{
    public static void main (String []a){
        int []husleje =  new int[10];
        husleje [0] = 1000;
        husleje [1] = 1500;
        husleje [2] = 1800;
        husleje [3] = 2000;
        husleje [4] = 2500;
        husleje [5] = 3000;
        husleje [6] = 3400;
        husleje [7] = 3800;
        husleje [8] = 4000;
        husleje [9] = 4500;
        Search leje = new Search(husleje);


        String input = JOptionPane.showInputDialog("Hvad er den maksimale husleje?");
        int max = Integer.parseInt(input);
        System.out.println (leje.getMaxHusleje(max));
    }
}

public class Search{
    private int[] husleje;
    public Search(int[]leje){
        husleje = leje;       
    }
   
   
    public int getMaxHusleje(int maxHusleje){
        for (int i = 0; i < husleje.length; i++)
            if (husleje[i] < maxHusleje)
                return husleje[i];
        return maxHusleje;
    }
}
Avatar billede arne_v Ekspert
04. november 2003 - 14:18 #37
searchtest.java:16

ser iøvrigt forkert ud !

Klasse navne og fil navne skal matche.

Search i Search.java

SearchTest i SearchTest.java
Avatar billede gala Nybegynder
04. november 2003 - 14:20 #38
det gør den også nu - må have ændret i filen et elelr andet sted.
Du må ha tak! Gi en adresse så sender jeg en kage*G*
Gala
Avatar billede mikkelbm Nybegynder
04. november 2003 - 14:21 #39
Bare glad for at kunne hjælpe :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester