qualbeen Skrevet 4. oktober 2006 Del Skrevet 4. oktober 2006 (endret) hm? du skal gange alle tallene fra 1-10 med 10? en måte er jo å skrive System.out.println("1*10 = " + 1*10); System.out.println("2*10 = " + 2*10); System.out.println("3*10 = " + 3*10); System.out.println("4*10 = " + 4*10); System.out.println("5*10 = " + 5*10); System.out.println("6*10 = " + 6*10); System.out.println("7*10 = " + 7*10); System.out.println("8*10 = " + 8*10); System.out.println("9*10 = " + 9*10); System.out.println("10*10 = " + 10*10); Men som du ser er dette en meget dårlig måte å løse oppgaven på, og den ville blitt umulig å følge denne fremgangsmåte hvis man fikk i oppgave å skrive ut tallene opp til en million ganget med 10.. Derfor lager du en løkke som starter på 1 og går opp til 10. For hver runde skriver du ut resultatet for(int i=0; i<=10; i++){ System.out.println(i + "*10 = " + i*10); } Siden tallet her regnes ut inni System.out.println(String)-metoden, er det mulig du må slenge på paranteser rundt selve utregningen. Da vil den bli gjort først, og så blir alt som står inni println() bli gjort om til String. EDIT: ser at sim tolket spørsmålet ditt litt annerledes (og han har sikkert rett), så hvis du skal skrive en tabell med alle tallene fra 1 til 10, ganget med hverandre, er en god løsning å regne ut linje for linje. Altså, først finner du en måte å regne ut 1*1, 1*2, 1*3, ... , 1*9, 1*10. Har du fått til dette, kan du putte alt inn i en forløkke og bytte ut 1-tallet med en variabel som øker med én pr gjennomgang... Endret 4. oktober 2006 av qualbeen Lenke til kommentar
dagjonas Skrevet 4. oktober 2006 Forfatter Del Skrevet 4. oktober 2006 for (int i = 1; i <= 10; i++) { 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. 7000171[/snapback] Får feilmelding på linje=""; Er noe slikt jeg tenker på: Lenke til kommentar
qualbeen Skrevet 4. oktober 2006 Del Skrevet 4. oktober 2006 fordi linje ikke gjennkjennes kanskje? skriv "String linje;" foran for-løkken, slik at programmet ditt vet at linje er av typen String (java må alltid vite typen til en variabel). Lenke til kommentar
sim Skrevet 4. oktober 2006 Del Skrevet 4. oktober 2006 Aah. Skal fikse det. Ikke lett å hoppe fra et språk til et annet ;p Lenke til kommentar
dagjonas Skrevet 4. oktober 2006 Forfatter Del Skrevet 4. oktober 2006 (endret) Takk, det ble jo kjempebra! Nå skal jeg bare få det organisert i en tabell. Edit: noe jeg ikke helt får til, får del det opp i rader, men ikke inn i kolonner, uansett hvor jeg setter out.println("<td>"); og avslutter den. Endret 4. oktober 2006 av dagjonas Lenke til kommentar
sim Skrevet 4. oktober 2006 Del Skrevet 4. oktober 2006 <table> for (int i = 1; i <= 10; i++) { String linje = ""; System.out.println("<tr>\n"); for (int j = 1; j <= 10; j++) { linje += "<td>" + i*j + "</td>"; } System.out.println(linje + "\n"); System.out.println("</tr>\n"); } </table> Lenke til kommentar
qualbeen Skrevet 4. oktober 2006 Del Skrevet 4. oktober 2006 <td> har vel strengt tatt mer med html en java? jeg har iallefall ikke kjennskap til noen <td> i java. Men poenget er vel kun å få utskrift til skjerm? Så lenge det ser ut som en tabell, må vel det holde? Mitt tips: Enten legger du inn passende antall mellomrom mellom hvert tall " 1 2 3 osv ", eller så legger du inn \t i strengen. \t = tabulator \n = ny linje Lenke til kommentar
qualbeen Skrevet 4. oktober 2006 Del Skrevet 4. oktober 2006 Husk at dette er JSP 7000823[/snapback] ah, ok. Kunne ikke jeg vite vel? hehe Hvordan funker JSP da? kan man legge til masse html-koder? (kan ikke jsp jeg) Lenke til kommentar
dagjonas Skrevet 4. oktober 2006 Forfatter Del Skrevet 4. oktober 2006 Flott sim, takk så mye for hjelpen. qualbeen, det står JSP i emnetittelen Lenke til kommentar
qualbeen Skrevet 4. oktober 2006 Del Skrevet 4. oktober 2006 emnetittler? jaja, får vel begynne å lese den heretter da Lenke til kommentar
Paull Skrevet 4. oktober 2006 Del Skrevet 4. oktober 2006 Generelt sett så er String + String gjentatte ganger en dårlig ting, benytt StringBuilder (JDK 1.5+) eller StringBuffer (JDK>1.5) for bedre ytelse, og kall .toString() på denne når Stringen skal printes. Lenke til kommentar
ka1ser Skrevet 7. oktober 2006 Del Skrevet 7. oktober 2006 Øving 5 i it'en ja. Den var litt hard Lenke til kommentar
Cuneax Skrevet 11. oktober 2006 Del Skrevet 11. oktober 2006 Jeg har nå denne koden <% for (int i = 1; i <= 10; i++) { String linje = ""; for (int j = 1; j <= 10; j++) { linje += " " + i*j; } System.out.println(linje + "\n"); } %> <table> <%for (int i = 1; i <= 10; i++) { String linje = ""; System.out.println("<tr>\n"); for (int j = 1; j <= 10; j++) { linje += "<td>" + i*j + "</td>"; } System.out.println(linje + "\n"); System.out.println("</tr>\n"); } %> </table> Men det kommer ingenting i nettleseren... Lenke til kommentar
dagjonas Skrevet 14. oktober 2006 Forfatter Del Skrevet 14. oktober 2006 Jeg følger opp med et nytt spørsmål, jeg skal lage en metode" tilfeldigTall" som tar inn som parameter et heltall. Metoden skal så returnere et tilfeldig heltall mellom 0 og det tallet som kom inn som parameter. Hva gjør jeg galt her: <%! int tilfeldigTall( int (int)(Math.random() * 2) ){ return tilfeldigTall; } %> <% out.println(tilfeldigTall); %> Lenke til kommentar
Cuneax Skrevet 14. oktober 2006 Del Skrevet 14. oktober 2006 Kanskje du må skrive 1+ før (int)(Math.random)? Lenke til kommentar
dagjonas Skrevet 14. oktober 2006 Forfatter Del Skrevet 14. oktober 2006 (endret) Nja, tror ikke det. Uansett tror jeg ikke at det jeg prøvde på tidligere gjør det oppgaven ber om helt, men skjønner heller ikke hvordan jeg skal få den til. Endret 14. oktober 2006 av dagjonas Lenke til kommentar
sim Skrevet 15. oktober 2006 Del Skrevet 15. oktober 2006 <%! int tilfeldigTall(int n) { return (int)(Math.random() * n); } %> <% out.println(tilfeldigTall(10)); %> Math.random gir deg en double mellom 0 og 1. Ganger du denne med n (øvre grense) vil du få et tall mellom 0 og n. Koden over vil skrive ut et tilfeldig tall mellom 0 og 10. Lenke til kommentar
dagjonas Skrevet 15. oktober 2006 Forfatter Del Skrevet 15. oktober 2006 Gjort dette: -Lag først lage en metode tilfeldigTall som tar inn som parameter et heltall. Metoden skal så returnere et tilfeldig heltall mellom 0 og det tallet som kom inn som parameter (eksklusive). -Lag nå en metode finnHoyeste som tar inn som parameter en tabell av typen int. Det denne metoden skal gjøre er å finne det største tallet i den tabellen som kom inn som parameter. Om det er flere elementer i tabellen som deler på å ha høyest verdi, holder det å finne én av disse. Metoden skal så returnere indeksen til den verdien som var høyest. -Først må du lage en tabell av typen String som du kaller partier. Denne skal inneholde navnet på alle de partiene du ønsker å inkludere i valget. -I tillegg til denne trenger du en annen, like stor, tabell som skal inneholde stemmer. Denne tabellen må ha en celle per kandidat. Skal gjøre dette: Simulere stortingsvalg med 200 mennesker. Så kan du la en og en person gå til stemmelokalene for å stemme. For å bestemme hvilken kandidat denne personen stemmer på bruker du metoden tilfeldigTall() som du laget i deloppgave 1 . Det er selvsagt lov å utnytte elektronisk stemmegivning til det ytterste ved å modifisere denne metoden slik at ditt parti vinner. Til slutt må du bruke metoden finnHoyeste() som du lagde i deloppgave 2 for å finne ut hvilket parti som fikk flest stemmer, for så å skrive ut hvem som er vinneren av valget. Kode så langt: <i>Deloppgave 1:</i> <p> <%! int tilfeldigTall(int n) { return (int)(Math.random() * n); } %> <% out.println(tilfeldigTall(11)); %> <p> <i>Deloppgave 2:</i> <p> <%! int finnHoyeste(int[] tab){ int storst = 0; for(int i = 1;i<tab.length;i++){ if(tab[i] > tab[storst]){ storst = i; } } return storst; } %> <% for(int i=0;i<tab.length;i++){ out.println(tab[i] + "<br/>"); } %> <p> <% int hoyeste = finnHoyeste(tab); out.println("Høyest verdi har element nr: " + ID[hoyeste]); %> <p> <i>Deloppgave 3</i> <p> <% String[] partier = {"Ap", "SV", "Sp", "V", "KrF", "H", "FrP"}; int[] tabell = new int[7]; %> Nå står jeg fast. Lenke til kommentar
sim Skrevet 15. oktober 2006 Del Skrevet 15. oktober 2006 <%! int tilfeldigTall(int n) { return (int)(Math.randon() * n); } int finnStorsteIndex(int[] A) { storste = 0; for(int i = 1; i < A.length; i++) { if (A[i] > A[storste]) { storste = i; } } return storste; } %> <% // Vi skal simmulere et stortingsvalg med 200 stemmere. // Oppretter et string-array med partiene String partier = {"Ap", "SV", "Sp", "V", "KrF", "H", "FrP"}; // Oppretter et int-array som skal holde på stemmene. Stemmene til et parti // ligger på samme index som partiet. // Stemmene til Ap vil altså ligge i stemmer[0]. int[] stemmer = new int[partier.length] for(int i = 0; i < 200; i++) { // Genererer et tilfeldigtall mellom 0 og lengden på tabellen (indexer i // stemme-arrayet) // Legger til 1 stemme på denne indexen i stemme-arrayet. stemmer[tilfeldigTall(stemmer.length)]++; // Hvis du skal skrive ut hvilket parti som blir stemt på hver gang noen // stemmer, må du endre litt på denne metoden. } // Skrive ut vinneren av valget out.println("Vinneren av valget ble: " + partier[finnStorsteIndex(stemmer)]) %> 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å