dagjonas Skrevet 25. september 2006 Del Skrevet 25. september 2006 (endret) En tabell med en kolonne kan skrives og gis verdier slik: int[] temperatur = new int[]{13,14,20,19,15}; Men hva med en tabell med tre kolonner, hvorfor blir ikke det: int[][][] tre = new int[][][]{13,14,20,19,15}{1,2,3,4,5}{2,3,4,5,6}; ? Endret 3. oktober 2006 av dagjonas Lenke til kommentar
qualbeen Skrevet 25. september 2006 Del Skrevet 25. september 2006 (endret) En tabell med en kolonne kan skrives og gis verdier slik:int[] temperatur = new int[]{13,14,20,19,15}; Men hva med en tabell med tre kolonner, hvorfor blir ikke det: int[][][] tre = new int[][][]{13,14,20,19,15}{1,2,3,4,5}{2,3,4,5,6}; ? 6937586[/snapback] fordi det er en tabell, ikke tre uavhengige. Prøv med klammeparantes rundt det hele, altså: { {1,2,3} , {4,5,6} , {7,8,9} } Når jeg skal oprette en tabell med verdier jeg allerede kjenne, pleier jeg å gjøre det litt annerledes, jeg har ikke med "new int[]", altså blir det slik: int[] tabell = {1,2,3,4,5,6}; Skal man opprette en tabell uten å angi hva som er i hver celle, må man derimot ha med "new int[lengde];" Endret 25. september 2006 av qualbeen Lenke til kommentar
dagjonas Skrevet 25. september 2006 Forfatter Del Skrevet 25. september 2006 (endret) OK, takk skal du ha. Edit: Oppfølgingsspørsmål, jeg har nå en tallmenge gitt i den tabellen, fra disse skal jeg lage en for-løkke som sjekker hvilken verdi som er størst, der står jeg litt fast. Endret 25. september 2006 av dagjonas Lenke til kommentar
rusolvan Skrevet 26. september 2006 Del Skrevet 26. september 2006 Hvis det er en 3dimesnjonal tabell du har må du lage 3 for-løkker for å traversere denne tabellen. Altså, en for løkke, med en for løkke, med en for løkke inni hvsi du skjønner. int[][][] tabell = {.....}; int storsteverdi = 0; for (int i = 0; i<tabell.length; i++){ for (int j = 0; i<tabell.length; i++){ for (int k = 0; i<tabell.length; i++){ if(tabell[j][k] > storsteverdi){ storsteverdi=tabell[j][k]; } } } } noe slikt... veldig fort gjort, så kan være endel feil her.. bruker sjelden slike tabeller da de tar både plass og tid å gå gjennom... dette er ingen rask "algoritme" hvis det avr det du var ute etter. Lenke til kommentar
qualbeen Skrevet 26. september 2006 Del Skrevet 26. september 2006 (endret) for (int i=0; i<tab.length; i++){ for (int j=0; j<tab[i].length; j++){ for (int k=0; k<tab[i][j].length; k++){ //for å få ut det som ligger på plass 'k' int l = tab[i][j][k]; } } } foreta samme sjekk som står skrevet i innlegget over Endret 26. september 2006 av qualbeen Lenke til kommentar
dagjonas Skrevet 1. oktober 2006 Forfatter Del Skrevet 1. oktober 2006 Blir ikke så jeg får til dette gitt. La oss si at tabellen min ser slik ut: Opprettet slik: <% int[] filmID = {101,102,103,104,105}; int[] pris = {(int)(50 + Math.random() *100),(int)(50 + Math.random() *100),(int)(50 + Math.random() *100),(int)(50 + Math.random() *100),(int)(50 + Math.random() *100)}; int[] karakter = {1+(int)(Math.random() *6),1+(int)(Math.random() *6),1+(int)(Math.random() *6),1+(int)(Math.random() *6),1+(int)(Math.random() *6)}; %> Da vil jeg ha skrevet ut: "Filmen med den høyeste prisen er filmnr: x, med prisen: x". Her er hva jeg har prøvd så langt (så langt bare sjekket pris): <% int hoyestePris = 0; for (int i=0;i<pris.length;i++){ if(pris[i] > hoyestePris){ hoyestePris=pris[i]; out.println("Filmen med den høyeste prisen er filmnr:" + "" + "x"+ "med prisen:" + pris[i]); } } %> Og det blir ikke helt bra. Lenke til kommentar
_Xorcist Skrevet 1. oktober 2006 Del Skrevet 1. oktober 2006 Hvorfor ikke lage en Film-klasse og lag èn array med instanser av denne klassen? Det er mye ryddigere. Lenke til kommentar
dagjonas Skrevet 2. oktober 2006 Forfatter Del Skrevet 2. oktober 2006 I'm making progress! Fått til å finne den største verdien nå: <%! int hoyestePris(int[] tab){ int storst = tab[0];; for(int i = 1;i<tab.length;i++){ if(tab[i] > storst){ storst = tab[i]; } } return storst; } %> <% int svar = hoyestePris(pris); out.println("Filmen med den høyeste prisen er" + " " + "x" + " " + "som koster" +" " + svar); %> Nå er spørsmålet hvordan jeg skal få assosiert den høyeste prisen med ID-nummeret, noen som kan vise meg? (tabellen med film-IDene heter filmID, se litt legre opp) Lenke til kommentar
qualbeen Skrevet 2. oktober 2006 Del Skrevet 2. oktober 2006 (endret) ... masse annet ... out.println("Filmen med den høyeste prisen er" + " " + "x" + " " + "som koster" +" " + svar); 6985587[/snapback] Hvorfor ikke endre det du skriver ut til out.println(""Filmen med den høyeste prisen er " + variabelHer + " som koster " + svar); Edit: trøbbel med noe quoting :-/ Endret 2. oktober 2006 av qualbeen Lenke til kommentar
dagjonas Skrevet 2. oktober 2006 Forfatter Del Skrevet 2. oktober 2006 Hm, er ikke sikkert jeg skjønner hva du mener, men prøvde å sette inn filmID for "x", men det blir ikke rett. Jeg skjønner ikke hvordan koden skal finne ut hvilken ID som er tilordnet den høyeste prisen. Lenke til kommentar
sim Skrevet 2. oktober 2006 Del Skrevet 2. oktober 2006 (endret) I'm making progress! Fått til å finne den største verdien nå: <%! int hoyestePris(int[] tab){ int storst = tab[0]; for(int i = 1;i<tab.length;i++){ if(tab[i] > storst) { storst = tab[i]; } } return storst; } %> <% int svar = hoyestePris(pris); out.println("Filmen med den høyeste prisen er" + " " + "x" + " " + "som koster" +" " + svar); %> Nå er spørsmålet hvordan jeg skal få assosiert den høyeste prisen med ID-nummeret, noen som kan vise meg? (tabellen med film-IDene heter filmID, se litt legre opp) 6985587[/snapback] Hvis du returnerer indexen til det største elementet i stedet for prisen så er det mye enklere. <%! int hoyestePris(int[] tab){ int storst = 0; for(int i = 1;i<tab.length;i++){ if(tab[i] > tab[storst]){ storst = i; } } return storst; } %> <% int hoeyestePrisIndex = hoyestePris(pris); out.println("Filmen med den høyeste prisen er" + " " + hoyestePrisIndex + " " + "som koster" + " " + pris[hoyestePrisIndex]); %> Endret 2. oktober 2006 av sim Lenke til kommentar
dagjonas Skrevet 3. oktober 2006 Forfatter Del Skrevet 3. oktober 2006 (endret) Takk, er litt nærmere nå da. <% int hoyestePrisIndex = hoyestePris(pris); out.println("Filmen med den høyeste prisen er filmnr:" + " " + hoyestePrisIndex + " " + "som koster" + " " + pris[hoyestePrisIndex]); %> returnerer "Filmen med den høyeste prisen er filmnr: 3 som koster 136", her er det dog en liten "feil", filmnr. blir returnert som tall fra 0-4, iom. at tabellen inneholder 5 tall, 101-105, hvordan kan jeg få ID-nummeret der i stedet for hvilken rad-1 det er i tabellen? Edit: -kan legge til 101 foran "hoyestePrisIndex", men det synes jeg er en litt klønete måte å gjøre det på hvis jeg kan få gjort det annerledes. Endret 3. oktober 2006 av dagjonas Lenke til kommentar
sim Skrevet 3. oktober 2006 Del Skrevet 3. oktober 2006 Har du filmnummerene i en annen tabell med samme rekkefølge på elementene, kan du trekke ut elementet med index lik hoyestePrisIndex. Hvis ikke er nok det å plusse på 101 den greieste løsningen. Lenke til kommentar
dagjonas Skrevet 3. oktober 2006 Forfatter Del Skrevet 3. oktober 2006 Det har jeg, er slik: int[] filmID = {101,102,103,104,105}; int[] pris = {(int)(50 + Math.random() *100),(int)(50 + Math.random() *100),(int)(50 + Math.random() *100),(int)(50 + Math.random() *100),(int)(50 + Math.random() *100)}; Hvordan blir det da? Lenke til kommentar
sim Skrevet 3. oktober 2006 Del Skrevet 3. oktober 2006 <% int hoyestePrisIndex = hoyestePris(pris); out.println("Filmen med den høyeste prisen er filmnr:" + " " + filmID[hoyestePrisIndex] + " " + "som koster" + " " + pris[hoyestePrisIndex]); %> Lenke til kommentar
dagjonas Skrevet 3. oktober 2006 Forfatter Del Skrevet 3. oktober 2006 Tusen takk, kjempegreier! Jeg jobber med å få til en gangetabell, men det får jeg spørre om senere. Lenke til kommentar
qualbeen Skrevet 3. oktober 2006 Del Skrevet 3. oktober 2006 unødvendig og legge til mellomrom mellom to strenger, det kan man da putte rett inn i strengen (som jeg prøvde å nevne tidligere). Derfor ville jeg har gjort det slik <% int hoyestePrisIndex = hoyestePris(pris); out.println("Filmen med den høyeste prisen er filmnr: " + filmID[hoyestePrisIndex] + " som koster " + pris[hoyestePrisIndex]); %> Lenke til kommentar
dagjonas Skrevet 3. oktober 2006 Forfatter Del Skrevet 3. oktober 2006 Smart, takk skal du ha. Lenke til kommentar
dagjonas Skrevet 4. oktober 2006 Forfatter Del Skrevet 4. oktober 2006 Da er vi på'n igjen, denne gangen skal jeg lage en gangetabell, 10-gangen. Da har jeg skjønt at jeg må ha to for-løkker inni hverandre, og det er vel det. Lenke til kommentar
sim Skrevet 4. oktober 2006 Del Skrevet 4. oktober 2006 (endret) for (int i = 1; i <= 10; i++) { String linje = ""; for (int j = 1; j <= 10; j++) { linje += " " + i*j; } System.out.println(linje + "\n"); } Denne skal fungere tror jeg. Har ikke fått testa, så det kan være at byggingen av linje-strengen ikke fungerer skikkelig. Endret 4. oktober 2006 av sim Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå