Archivlink: javarea.de Forum > JavaScript > Mehrheit bilden
Vollständigen Link anzeigen: javarea.de Forum > JavaScript > Mehrheit bilden

Pages: [1]

geschrieben von Hawk am 19.12.2005 - 23:02
Hallo zusammen,

Wie kann ich bei einen Array herausfinden welche beiden oder mehre Zahlen größer sind als 66 und wenn es mehrere optionen gibt soll es auch mit angezeigt werden. Das array enthält Zahlen ist es auch möglich herauszufinden welche parteien diese Bedingung erfüllen.

PHP-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 

<?
var partei = new Array();
    
partei[0] = Math.round(document.f.s0.value);
    
partei[1] = Math.round(document.f.s1.value);
    
partei[2] = Math.round(document.f.s2.value);
    
partei[3] = Math.round(document.f.s3.value);
    
partei[4] = Math.round(document.f.s4.value);
    
partei[5] = Math.round(document.f.s5.value);
    
partei[6] = Math.round(document.f.s6.value);
    
partei[7] = Math.round(document.f.s7.value);
    
partei[8] = Math.round(document.f.s8.value);
    
partei[9] = Math.round(document.f.s9.value);
?>



Dank im voraus

geschrieben von okley am 20.12.2005 - 07:34
Naja also du kannst natürlich eine Schlaufe machen.

var minValue = 66;
var biggerThan66 = "";
for(var elIndex=0;elIndex<array.length;elIndex++){
if(array[elIndex] > == minValue){
biggerThan66 += array[elIndex]
}
}

Es gibt wohl noch andere Wege, das gleiche herauszufinden, aber diese ist sicher eine der einfachsten.

geschrieben von Hawk am 20.12.2005 - 10:00
Hallo Okley,

Habe das mal getestetwas Du gepostet hast. Ergab mi esrst einen fehler.

Ich habe das umgebastelt. Hier al der gesamt Code damit Du Dir einen Überblick verschaffen kannst was ich meine.

PHP-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
29: 
30: 
31: 
32: 
33: 
34: 
35: 
36: 
37: 
38: 
39: 
40: 
41: 
42: 
43: 
44: 
45: 
46: 
47: 
48: 
49: 
50: 
51: 

<?
function koa() {
   var 
partei = new Array();
    
partei[0] = Math.round(document.f.s0.value);
    
partei[1] = Math.round(document.f.s1.value);
    
partei[2] = Math.round(document.f.s2.value);
    
partei[3] = Math.round(document.f.s3.value);
    
partei[4] = Math.round(document.f.s4.value);
    
partei[5] = Math.round(document.f.s5.value);
    
partei[6] = Math.round(document.f.s6.value);
    
partei[7] = Math.round(document.f.s7.value);
    
partei[8] = Math.round(document.f.s8.value);
    
partei[9] = Math.round(document.f.s9.value);

    var 
minValue 65;
    var 
biggerThan66 "";
    for(var 
elIndex=0;elIndex<partei.length;elIndex++){
     if(
partei[elIndex] > minValue){
     
biggerThan65 += partei[elIndex]
    }
    }

    
alert(biggerThan65);


  
ausgabe = ("<HEAD><TITLE>Sitze</TITLE></HEAD>");
  
ausgabe = (ausgabe "<BODY BGCOLOR='#FFFFFF' onBlur='setTimeout(\"self.focus()\",250)'><P><BR>");
  
ausgabe = (ausgabe "Sitzverteilung im Parlament<P>");
  
ausgabe = (ausgabe "<div>");
  
ausgabe = (ausgabe "<table><tr><td>Partei 1&nbsp;</td><td width="+partei[0]+" height=20 bgcolor=#ff0000></td><td>"+partei[0]+" Sitze</td></tr></table>");
  
ausgabe = (ausgabe "<table><tr><td>Partei 2&nbsp;</td><td width="+partei[1]+" height=20 bgcolor=#f08080></td><td>"+partei[1]+" Sitze</td></tr></table>");
  
ausgabe = (ausgabe "<table><tr><td>Partei 3&nbsp;</td><td width="+partei[2]+" height=20 bgcolor=#ffff00></td><td>"+partei[2]+" Sitze</td></tr></table>");
  
ausgabe = (ausgabe "<table><tr><td>Partei 4&nbsp;</td><td width="+partei[3]+" height=20 bgcolor=#008000></td><td>"+partei[3]+" Sitze</td></tr></table>");
  
ausgabe = (ausgabe "<table><tr><td>Partei 5&nbsp;</td><td width="+partei[4]+" height=20 bgcolor=#00ced1></td><td>"+partei[4]+" Sitze</td></tr></table>");
  
ausgabe = (ausgabe "<table><tr><td>Partei 6&nbsp;</td><td width="+partei[5]+" height=20 bgcolor=#9370db></td><td>"+partei[5]+" Sitze</td></tr></table>");
  
ausgabe = (ausgabe "<table><tr><td>Partei 7&nbsp;</td><td width="+partei[6]+" height=20 bgcolor=#ffa500></td><td>"+partei[6]+" Sitze</td></tr></table>");
  
ausgabe = (ausgabe "<table><tr><td>Partei 8&nbsp;</td><td width="+partei[7]+" height=20 bgcolor=#bc8f8f></td><td>"+partei[7]+" Sitze</td></tr></table>");
  
ausgabe = (ausgabe "<table><tr><td>Partei 9&nbsp;</td><td width="+partei[8]+" height=20 bgcolor=#d2rf8c></td><td>"+partei[8]+" Sitze</td></tr></table>");
  
ausgabe = (ausgabe "<table><tr><td>Partei10</td><td width="+partei[9]+" height=20 bgcolor=#2e8b57></td><td>"+partei[9]+" Sitze</td></tr></table>");
  
ausgabe = (ausgabe "<div align=center><a href=javascript:close();>Schliessen</a></div>");
  
ausgabe = (ausgabe "</div>");
  
ausgabe = (ausgabe "</BODY></HTML>");

  
neuesFenster=window.open("","Fenster","width=350,height=350")

  
neuesFenster.document.writeln(ausgabe)

  
neuesFenster.document.close();

 }
?>


In den Fenster was aufgeht soll angezeigt werden welche Parteien zusammen eine Mehrheit haben.

geschrieben von weisnix am 20.12.2005 - 11:31
Beim durchsehen ein paar Unstimmigkeiten entdeckt.

Wenn du var biggerThan66 = ""; schreibst, dann solltest du bei der Variablen bleiben und nicht biggerThan65 draus machen.

Bei neuesFenster=window.open("","Fenster","width=350,height=350") sollte ein about:blank als Dateiname rein. (entspricht leer Seite)

Dann in die Seite schreiben mit var neudoc = neuesFenster.document; dann das Dokument öffnen, schreiben, schließen.
neudoc.open();
neudoc.writeln(ausgabe)
neudoc.close();


So am Rande: “Was soll das geben?”

geschrieben von Hawk am 20.12.2005 - 12:16
@ weisnix,

Zu der frage was soll das bringen.

Es interessiert mich wie mann erreichen kann, das die werte im Array irgendwie eine Mehrheit bilden und das es Ausgegeben wird welche Parteien dies sind und wenn dies mehere sind soll das auch ausgegeben werden.

Ich hatte schon probiert mit

PHP-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 

<?
for(parteien.length;i++)
 if( 
partei[i] + partei[i] > 65){
  
alert(partei[i] + " und " partei[i]+ "konnen koalieren");
}
?>



aber das functioniert nicht so richtig.

dann habe ich das noch ausprobiert.

PHP-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 

<?
for(parteien.length;i++)
 if( 
partei[0] + partei[i] > 65){
  
alert(partei[0] + " und " partei[i]+ "konnen koalieren");
}
?>



Ist aber alles nicht das wahre, es muß doch aber eine Lösung dafür geben.

geschrieben von weisnix am 20.12.2005 - 16:04
ich habe da mal etwas zusammen gesetzt, so als Anhalspunkt wie ich das Lösen würde.

Das Array wird gleich so aufgebaut, dass man (Frau auch) alle Angaben zur Verfügung hat.

Dann Schreibt die Schleife das gesamte Array. Oder in der 2.Schleife mit einer Abfrage nur die, die größer als 66 sind.

HTML-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
29: 
30: 
31: 
32: 
33: 
34: 
35: 
36: 
37: 
38: 
39: 
40: 
41: 
42: 
43: 
44: 
45: 
46: 
47: 
48: 
49: 
50: 
51: 
52: 
53: 
54: 
55: 
56: 
57: 
58: 
59: 
60: 
61: 
62: 
63: 
64: 
65: 
66: 
67: 
68: 
69: 
70: 
71: 
72: 
73: 
74: 
75: 
76: 
77: 
78: 
79: 
80: 
81: 
82: 
83: 
<html><head><title>Test</title>
</head><body>
<form name="f">
  <p><input type="text" name="s0" size="20" value="10"></p>
  <p><input type="text" name="s1" size="20" value="10"></p>
  <p><input type="text" name="s2" size="20" value="10"></p>
  <p><input type="text" name="s3" size="20" value="66"></p>
  <p><input type="text" name="s4" size="20" value="10"></p>
  <p><input type="text" name="s5" size="20" value="10"></p>
  <p><input type="text" name="s6" size="20" value="75"></p>
  <p><input type="text" name="s7" size="20" value="10"></p>
  <p><input type="text" name="s8" size="20" value="10"></p>
  <p><input type="text" name="s9" size="20" value="10"></p>
</form>
<script type="text/javascript">
var partei = new Array();

partei[0] = new Object();
partei[0]["Partei"] = "CDU";
partei[0]["Sitze"] = parseInt(document.f.s0.value);
partei[0]["Farbe"] = "#ff0000";

partei[1] = new Object();
partei[1]["Partei"] = "SPD";
partei[1]["Sitze"] = parseInt(document.f.s1.value);
partei[1]["Farbe"] = "##f08080";

partei[2] = new Object();
partei[2]["Partei"] = "FDP";
partei[2]["Sitze"] = parseInt(document.f.s2.value);
partei[2]["Farbe"] = "#ff0088";

partei[3] = new Object();
partei[3]["Partei"] = "CSU";
partei[3]["Sitze"] = parseInt(document.f.s3.value);
partei[3]["Farbe"] = "#00aa12";

partei[4] = new Object();
partei[4]["Partei"] = "PDS";
partei[4]["Sitze"] = parseInt(document.f.s4.value);
partei[4]["Farbe"] = "#232323";

partei[5] = new Object();
partei[5]["Partei"] = "BRD";
partei[5]["Sitze"] = parseInt(document.f.s5.value);
partei[5]["Farbe"] = "#888800";

partei[6] = new Object();
partei[6]["Partei"] = "GÜL";
partei[6]["Sitze"] = parseInt(document.f.s6.value);
partei[6]["Farbe"] = "#008888";

partei[7] = new Object();
partei[7]["Partei"] = "ZDG";
partei[7]["Sitze"] = parseInt(document.f.s7.value);
partei[7]["Farbe"] = "#0000ff";

partei[8] = new Object();
partei[8]["Partei"] = "UPS";
partei[8]["Sitze"] = parseInt(document.f.s8.value);
partei[8]["Farbe"] = "#00ff00";

partei[9] = new Object();
partei[9]["Partei"] = "FHZ";
partei[9]["Sitze"] = parseInt(document.f.s9.value);
partei[9]["Farbe"] = "#55ee00";

var minValue = 65;

for (var i = 0; i < partei.length; i++) {
  document.write("<table><tr><td width=120 align='right'>Partei &nbsp;" + (i + 1) + "&nbsp;&nbsp;&nbsp;" + partei[i]['Partei'] + "&nbsp;<\/td>");
    document.write("<td width="+partei[i]['Sitze']+" height=20 bgcolor="+partei[i]['Farbe']+"><\/td><td>" + partei[i]['Sitze'] + "<\/td>");
  document.write("<\/tr><\/table>");
  }

for (var i = 0; i < partei.length; i++) {
if(partei[i]['Sitze'] > minValue){
  document.write("<table><tr><td width=120 align='right'>Partei &nbsp;" + (i + 1) + "&nbsp;&nbsp;&nbsp;" + partei[i]['Partei'] + "&nbsp;<\/td>");
    document.write("<td width="+partei[i]['Sitze']+" height=20 bgcolor="+partei[i]['Farbe']+"><\/td><td>" + partei[i]['Sitze'] + "<\/td>");
  document.write("<\/tr><\/table>");
}}
</script>
</body></html>

geschrieben von Hawk am 20.12.2005 - 16:38
Hallo weisnix,

Danke Dir für die Mühe, werde es gleich mal ausprobieren.

geschrieben von René am 20.12.2005 - 16:45
HTML-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
29: 
30: 
31: 
32: 
33: 
34: 
35: 
36: 
37: 
38: 
39: 
40: 
<html>
<head>

<script language="JavaScript" type="text/javascript">
<!--
function wer_kann()
{
	var partei = new Array();

	partei[0] = new Array('Partei 1', 10);
	partei[1] = new Array('Partei 2', 15);
	partei[2] = new Array('Partei 3', 20);
	partei[3] = new Array('Partei 4', 25);
	partei[4] = new Array('Partei 5', 30);
	partei[5] = new Array('Partei 6', 35);
	partei[6] = new Array('Partei 7', 40);
	partei[7] = new Array('Partei 8', 45);
	partei[8] = new Array('Partei 9', 50);
	partei[9] = new Array('Partei 10', 55);

	var out = '';

	for (var i = 0; i < partei.length; i++)
		for (var j = 0; j < partei.length; j++)
			if ((j != i) && (j > i))
				if ((partei[j][1] + partei[i][1]) > 65)
					out += (partei[i][0] + ' und ' + partei[j][0] + ' k&ouml;nnen koalieren<br />');

	document.getElementById('koali').innerHTML = out;
}
//-->
</script>

</head>
<body onload="wer_kann();">

<span id="koali">&nbsp;</span>

</body>
</html>

geschrieben von Hawk am 20.12.2005 - 17:18
@Rene,

Ich komm nicht ganz klar mit dem Array. Kannst Du mir das erklären.

Was noch fehlt ist das im neuen Fenster unter der Angabe der Sitze eine Tabelle geschrieben wird die die möglichen Koalition ausgibt.




geschrieben von Hawk am 20.12.2005 - 18:06
@Rene,

Habe noch eine Frage, er prüft ja jetzt ob zwei Parteien mit ein ander koalieren können, wenn das nicht der fall ist gib er ja auch nichts aus. Kann mann das weiter ausbauen das er das mit drei Parteien macht und wenn das nichts bring auch mit vier.

Ich habe das jetzt mal eingesetzt und es funktioniert auch, aber wenn er eine Möglichkeit gefunden hat hört er auf. Geht das das eralle Möglichkeiten ausgibt.

geschrieben von René am 20.12.2005 - 21:01

geschrieben von Hawk am 21.12.2005 - 09:43

geschrieben von Hawk am 21.12.2005 - 09:44
Hier der Zweite Teil der Seite.

HTML-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
29: 
30: 
31: 
32: 
33: 
34: 
35: 
36: 
37: 
38: 
39: 
40: 
41: 
42: 
43: 
44: 
45: 
46: 
47: 
48: 
49: 
50: 
51: 
52: 
53: 
54: 
55: 
56: 
57: 
58: 
59: 
60: 
61: 
62: 
63: 
64: 
65: 
66: 
67: 
</HEAD>
  <BODY bgcolor="#DCDCDC" onload="document.f.z0.focus();">
  <center>
    <h1> Wahlergebnisrechner</h1>
<font color="red"><b>Hinweis:</b></font>    Kommastellen bitte mit einen Punkt eingeben<br>
    6,5 Falsch<br>
    6.5 Richtig
<form name="f">

<table><tr><td>
<table cellpadding=3>
<tr><td></td><td>Zweitstimmen</td><td>Sitzverteilung</td></tr>

<tr><td bgcolor="#ff0000">1. Partei</td>
<td><input name="z0" size=10 value="" tabindex=1>%</td>
<td><input name="s0" size=10 readonly>Sitze</td></tr>
<tr><td bgcolor="#f08080">2. Partei</td>
<td><input name="z1" size=10 value="" tabindex=2>%</td>
<td><input name="s1" size=10 readonly>Sitze</td></tr>
<tr><td bgcolor="#ffff00">3. Partei</td>
<td><input name="z2" size=10 value="" tabindex=3>%</td>
<td><input name="s2" size=10 readonly>Sitze</td></tr>
<tr><td bgcolor="#008000">4. Partei</td><td>
<input name="z3" size=10 value="" tabindex=4>%</td>
<td><input name="s3" size=10 readonly>Sitze</td></tr>
<tr><td bgcolor="#00ced1">5. Partei</td>
<td><input name="z4" size=10 value="" tabindex=5>%</td>
<td><input name="s4" size=10 readonly>Sitze</td></tr>
<tr><td bgcolor="#9370db">6. Partei</td>
<td><input name="z5" size=10 value="" tabindex=6>%</td>
<td><input name="s5" size=10 readonly>Sitze</td></tr>
<tr><td bgcolor="#ffa500">7. Partei</td>
<td><input name="z6" size=10 value="" tabindex=7>%</td>
<td><input name="s6" size=10 readonly>Sitze</td></tr>
<tr><td bgcolor="#bc8f8f">8. Partei</td>
<td><input name="z7" size=10 value="" tabindex=8>%</td>
<td><input name="s7" size=10 readonly>Sitze</td></tr>
<tr><td bgcolor="#d2rf8c">9. Partei</td>
<td><input name="z8" size=10 value="" tabindex=9>%</td>
<td><input name="s8" size=10 readonly>Sitze</td></tr>
<tr><td bgcolor="#2e8b57">10. Partei</td>
<td><input name="z9" size=10 value="" tabindex=10>%</td>
<td><input name="s9" size=10 readonly>Sitze</td></tr>
<tr>
<td>% Gesamt</td>
<td id="ztgesamt"></td>
<td id="stgesamt"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td><input type=button class=button value="Berechnen" onclick="javascript:sitze()"><br>
    <input type=button class=button value="Koalitionen" onclick="javascript:koa()">
</td>
</tr>
</table>
</td>
<td>&nbsp;&nbsp;&nbsp;</td>
<td style="text-align:center">
<p style="text-align:center">
<table><tr><td>Zu vergebene Sitze:</td><td><input name="S" value=125 size=5 readonly></td></tr></table></p>
</form>
</center>


</BODY>
</HTML>

geschrieben von René am 22.12.2005 - 12:02

geschrieben von Hawk am 22.12.2005 - 14:36
@Rene,

Danke für die Hilfe, hilft mir weiter.


Powered by: JBB v.2.0.4 Copyright ©2000-2006, www.javarea.de.