Gå til innhold

JSP - tabeller, løkker og behadling av data


Anbefalte innlegg

Skrevet

Flott, med forklaring og alt!

Dersom jeg nå vil ha skrevet ut at:

Velger "ID" går til urnen og stemmer "parti", vil det gjøre det mye mer innviklet?

Videoannonse
Annonse
Skrevet

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.

Skrevet (endret)

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
Skrevet

å 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 :)

Skrevet (endret)

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
Skrevet
*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?

Skrevet

Første feilmeldingen er nok fordi det er skrevet «randon» i stedet for «random». De andre kommer nok av at det mangler noen semikoloner.

Skrevet

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.

Skrevet

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  |  
   |--------------------------------|

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...