• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Warum läuft dieses Script nicht - bitte Hilfe !

torstenv

New member
Hallo Community,

ich muss für eine Hausaufgabe (bin blutiger Anfänger !!!!) ein Script ergänzen, das Primzahlen erkennt und ausgibt.
Leider muss ich das so umständlich machen..
Aber wo ist mein Fehler, ich bekomme überhaupt keine Ausgabe hin :-(
Ich versuche es schon mehrere Tage, habe aber einen Knoten im Kopf...

Vielen Dank für Eure Hilfe !

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
<title>Primzahlen</title>
</head>

<body>
<p>Hier werden Primzahlen ermittelt</p>


<script language="javascript">
<!---

//Hier wird das Array für die zu prüfende Zahl angelegt
var zahl = new Array (10);
var zahl[0] = 7;
var zahl[1] = 15;
var zahl[2] = 23;
var zahl[3] = 77;
var zahl[4] = 83;
var zahl[5] = 51;
var zahl[6] = 46;
var zahl[7] = 17;
var zahl[8] = 3;
var zahl[9] = 12;

var n=10;
var flag=0;

while (n < 1)
{
for (i=2; i <= zahl[83] / 2; i++)
{
if (zahl[n]%i == 0)
flag true;
}
if (flag==0)
document.write(zahl[1]+ " ist eine Primzahl + " n ");
else
document.write(zahl[0]+ " ist keine Primzahl + " flag ");

flag=true;
n++
}
//-->
</script>

</body>
</html>
 
Das hier
Code:
var n=10;
while (n < 1)
ist nicht erfüllt; Du musst n > 1 nehmen.
Hier: for (i=2; i <= zahl[83] / 2; i++) hast Du dich wohl verschrieben, es muss zahl[n] heißen.
Und hier: flag true; fehlt das "=".
Besser durchgängig true und false verwenden:
Statt flag=0; flag=false;
Statt if (flag==0) if (!flag)
 
Vielen Dank für die Antwort !

Aber irgendwo muss noch ein Fehler sein, ich bekomme noch immer keine Ausgabe hin :-(
Lt. Vorgabe soll aber while (n < x) benuzt werden.
"x" ist ein wert, den ich selber suchen soll, und da habe ich mich für die "1" entschieden - kann sein, das dies falsch ist und ein anderer Wert eingegeben werden muss...


Danke Für Eure Hilfe !

torsten

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
<title>Primzahlen</title>
</head>

<body>
<p>Hier werden Primzahlen ermittelt</p>


<script language="javascript">
<!---

//Hier wird das Array für die zu prüfende Zahl angelegt
var zahl = new Array (10);
var zahl[0] = 7;
var zahl[1] = 15;
var zahl[2] = 23;
var zahl[3] = 77;
var zahl[4] = 83;
var zahl[5] = 51;
var zahl[6] = 46;
var zahl[7] = 17;
var zahl[8] = 3;
var zahl[9] = 12;

var n=10;
var flag=0;

while (n > 1)
{
for (i=2; i <= zahl[n] / 2; i++)
{
if (zahl[n]%i == 0)
flag = true;
}
if (flag==0)
document.write(zahl[1]+ " ist eine Primzahl + " n ");
else
document.write(zahl[0]+ " ist keine Primzahl + " flag ");

flag=true;
n++
}
//-->
</script>

</body>
</html>
 
Bei den Zuweisungen an das Array ist das "var" zuviel:
Code:
//Hier wird das Array für die zu prüfende Zahl angelegt
var zahl = new Array (10);
var zahl[0] = 7;
var zahl[1] = 15;
var zahl[2] = 23;
var zahl[3] = 77;
var zahl[4] = 83;
var zahl[5] = 51;
var zahl[6] = 46;
var zahl[7] = 17;
var zahl[8] = 3;
var zahl[9] = 12;
Lt. Vorgabe soll aber while (n < x) benuzt werden.
Dann ist sicher dies gemeint:
Code:
var n=0;
var flag=false;

while (n < zahl.length)
(Muss ohnehin so sein, weil Du weiter unten n++ hast.)

- - - Aktualisiert - - -

Und weiter unten hast Du Probleme mit den Hochkommas und der Indizierung. So ist es richtig:
Code:
if (!flag)
document.write(zahl[n] + " ist eine Primzahl " + n);
else
document.write(zahl[n] + " ist keine Primzahl " + n);
 
Zuletzt bearbeitet:
Hi,

Vielen Dank für Deine Hilfe !!! - aber:

ich verzweifle :-( :-( :-(

Geht immer noch nicht, es kommt keine Ausgabe ...
 
Zurück
Oben