Gå til innhold

JSP - tabeller, løkker og behadling av data


Anbefalte innlegg

Videoannonse
Annonse

Neida. Du må bare endre for-løkken som simulerer stemmingen litt.

 

for(int i = 1; i <= 200; i++) {
  int partistemme = tilfeldigTall(stemmer.length);
  stemmer[partistemme]++;
  out.println("Velger " + i + " går til urnen og stemmer " + parti[partistemme])
}

 

Koden gjør nesten det samme, men vi må lagre det tilfeldige tallet i en variabel siden vi skal bruke det mer enn én gang. Vi får et tilfeldigtall partistemme som representerer det partiet vi stemmer på. Deretter plusser vi 1 på dette partiet i stemmearrayet. Så skriver vi ut "Velger 'i' går til urnen og stemmer 'parti'".

 

Hvis noe er uklart får du bare spørre igjen.

Lenke til kommentar

Gikk greit, var noen semikolon å slenge på før gikk det på plass.

Så nå får jeg en fin liste med 200 velger som går og stemmer, og resultatet til slutt.

Eneste jeg har å utsette er at vinneren ikke blir Ap, men det skal visst la seg gjøre å fikse litt på det i koden slik at man kan få den vinneren man selv ønsker? :cool:

 

Og ja, koden kan sikkert endres slik at man får oppsummert hvor mange som stemte på de enkelte partiene også vil jeg tro..

 

Igjen, tusen takk for hjelpen.

Endret av dagjonas
Lenke til kommentar

å oppsummere antall stemmer på hver pari er gjort ganske enkelt det og siden du har 2 tabeller som "kobles sammen" v.h.a index'en i de 2 tabellene... eks. : om du skal skrive ut stemmene som parti på index 1 fikk, skriver du:

 

out.println(parti[1]+" fikk tilsammen "+stemmer[1]+" stemmer");

 

Kjører du dette i en for-løkke gjør denne jobben for deg:

 

for(int i = 0; i<stemmer.length; i++){

out.println(parti+" fikk tilsammen "+stemmer+" stemmer");

}

 

Men for å få dette til å se litt mer "fancy" ut kan du jo sette opp resultatet i en html-tabell, noe som er mye mer oversiktelig og tar seg bedre ut på en html-side.

 

Du kan bruke koden:

out.println("<br/><br/><font size=\"10\"><strong>Resultatet av stemmene: </strong></font><br/><br/>");

out.println("<table width=\"400\"><th>Parti</th><th>Stemmer</th><th>%-andel</th>");

for(int i = 0; i < stemmer.length; i++){
float prosent = stemmer[i];
prosent =(prosent/200)*100;
out.println("<tr><td align=\"center\">"+partier[i]+"</td><td align=\"center\">"+stemmer[i]+"</td><td align=\"center\">"+prosent+"</td></tr>");

}

out.println("</table><br/><br/>");

 

her tok jeg likså godt med prosentandel ved 200 velgere i tabellen :)

Arti med jsp igjen :)

Lenke til kommentar

Alternativt så kan du bruke det at du jobber i en JSP, ikke i en servlet

//...antar at det er java kode her...
%>
<br/>
<br/>
<font size="10">
 <strong>Resultatet av stemmene: </strong>
</font>
<br/>
<br/>

<table width="400">
 <th>Parti</th>
 <th>Stemmer</th>
 <th>%-andel</th>

 <%
 for(int i = 0; i < stemmer.length; i++){
   float prosent = stemmer[i];
   prosent =(prosent/200)*100;
 %>
 <tr>
   <td align="center"><%=partier[i]%></td>
   <td align="center"><%=stemmer[i]%></td>
   <td align="center"><%=prosent%></td>
 </tr>

<%}%>
</table>
<br/>
<br/>
<%
// ... antar at det er javakode her

 

Nå er java koden og html koden skillt litt mer, slik at du kan redigere html-en i en vanlig html editor. Det er ihvertfall hakket mer lettlest og man slipper å escape html'en som gjør den klønete å vedlikeholde.

Endret av blackbrrd
Lenke til kommentar
*kode*

7075699[/snapback]

Denne koden returnerer en feilmelding for meg...

 

An error occurred at line: 23 in the jsp file: /Oving6/stortingsvalg.jsp

Generated servlet error:

The method randon() is undefined for the type Math

 

An error occurred at line: 23 in the jsp file: /Oving6/stortingsvalg.jsp

Generated servlet error:

storste cannot be resolved

 

og

 

An error occurred at line: 41 in the jsp file: /Oving6/stortingsvalg.jsp

Generated servlet error:

Syntax error, insert ";" to complete LocalVariableDeclarationStatement

 

An error occurred at line: 41 in the jsp file: /Oving6/stortingsvalg.jsp

Generated servlet error:

Syntax error, insert "ArrayInitializer" to complete ArrayCreationWithArrayInitializer

 

An error occurred at line: 41 in the jsp file: /Oving6/stortingsvalg.jsp

Generated servlet error:

Syntax error, insert ";" to complete Statement

 

osv...

 

Hvorfor funker det ikke?

Lenke til kommentar

Nytt spørsmål, denne koden:

 

int[][] tabell = new int[10][10];
for (int i = 0; i < 10; i++) {
 for (int j = 0; j < 10; j++) {
   if (((i + j) % 10) == 0) {
     out.println ("Summen av " + i + " og " + j + " er delelig med 10.");
     tabell[i][j] = 1;
   } else {
     out.println ("Summen av " + i + " og " + j + " er ikke delelig med 10.");
   }
 }
}

 

Jeg skal beskrive hva denne gjør, ser jo at den skriver ut at x + y er delelig med 10 dersom x+y blir et heltall, og hvis ikke skriver ut at x +y ikke er delelig med 10, men vet ikke hvordan jeg skal beskrive det mer presist, det står jo i koden, trenger ikke kunne spesielt mye for å se det.

 

Jeg skjønner bl.a. ikke hva if (((i + j) % 10) == 0) betyr, prosent-tegn og dobbel ==? og den raden med tabell[j] = 1; har for noe funksjon.

Lenke til kommentar

tabell[][] kan sees på som en matrise. I denne matrisen setter du inn 1 på plassene i og j, der i + j er delelig med 10.

 

%-tegnet er operatoren for modulo i JSP. Hvis et tall a er delelig med et tall b blir a % b = 0. Den returnerer altså resten av en divisjon.

 

I JSP (og en del andre språk) er det forskjell på = og ==. = brukes for å sette en verdi til en variabel, mens == brukes for å sammenligne verdier.

 

Ganske viktig å vite forskjellen på disse.

 

Matrisen (tabell[]) vil vel se noenlunde slik ut:

 

   _ 0  1  2  3  4  5  6  7  8  9 _
0  |  0  0  0  0  0  0  0  0  0  0  |
1  |  0  0  0  0  0  0  0  0  0  1  |
2  |  0  0  0  0  0  0  0  0  1  0  |
3  |  0  0  0  0  0  0  0  1  0  0  |
4  |  0  0  0  0  0  0  1  0  0  0  |
5  |  0  0  0  0  0  1  0  0  0  0  |
6  |  0  0  0  0  1  0  0  0  0  0  |
7  |  0  0  0  1  0  0  0  0  0  0  |
8  |  0  0  1  0  0  0  0  0  0  0  |
9  |  0  1  0  0  0  0  0  0  0  0  |  
   |--------------------------------|

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...