Zum Inhalt springen

Prüfung und Probleme bei 2 einfachen JavaScript Programmen


SilentHunter

Empfohlene Beiträge

Hallo Gemeinde,

ich muss am Freitag im Rahmen meines Studiums eine Klausur schreiben wo einfaches Javascript verlangt wird.

Ich habe 2 Probleme mit 2 Unterschiedlichen Programmen.

Programm 1:

Das Programm soll einfach nur sagen, ob alles Ziffern sind oder nicht. Nach langen probieren, muss der Fehler irgendwo in der Logik dieser Zeile "if(inhalt < '0' || inhalt > '9')" liegen. Denn wenn ich statt dem "<" ein "=" mache, dann geht er in die If bedingung hinein, wenn ich eine 0 eingebe.

Quelltext:

<html>

<head>

<title>For-Schleife</title>

<script type="text/javascript">

function gebeMeldung()

{

var inhalt=document.Eingabe.Textfeld.value;

var i=0;

var j=1;

while(i < inhalt.length && j == 1)

{

if(inhalt < '0' || inhalt > '9')

{

j=0;

alert("nur ZZZiffern"+j);

}

i++;

}

if (j==1)

{

alert ("Nur Ziffern");

}

else

{

alert("Nicht nur Ziffern");

}

}

</script>

</head>

<body>

<h1>Eingabe</h1>

<form name="Eingabe">

<input type="text" name="Textfeld"></input>

<input type="submit" value="Push" onClick="gebeMeldung()"></input>

</form>

</body>

</html>

Programm 2:

Es sollen Matrikelnummern in ein eindimensionales Array "gespeichert" werden und ausgegeben werden. Das funktioniert auch tadellos.

Dann soll einfach die erste Zahl ersetzt werden. Sprich aus der Matrikelnummer 12345678 soll 22345678 werden. Er macht es nicht und schreibt es einfach hinter die Matrikelnummer.

Quelltext:

<html>

<head>

<title>Array</title>

</head>

<body>

<script type="text/Javascript">

var matrikel=new Array();

matrikel[0]="12345678";

matrikel[1]="12345679";

matrikel[2]="12345680";

var i=0;

for(i=0; i < matrikel.length; i++)

{

document.write(matrikel +"<br>");

}

document.write("<br>");

var i=0

for(i=0; i < matrikel.length; i++)

{

matrikel=matrikel +parseInt(10000000);

document.write(matrikel +"10000000" +"<br>");

}

</script>

</body>

</html>

Beide Lösungen sind Lösungen aus der Vorlesung (Mitschrift) und müssen demnach bei meinem Dozenten funktioniert haben. Ich würde beides sehr ähnlich programmieren. Um nicht zu sagen exakt.

Kann mir da jemand dabei helfen? Nach möglichkeit ohne das ich 3 neue Befehle und 5 weitere Verschachtelungen habe? Wie gesagt es sind ganz einfache Basics und ich bin froh wenn ich die so verstehe, dass ich sie mal auf ein anderes Beispiel anwenden kann

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo SilentHunter,

also zu "Programm 1":

ich verstehe nicht so ganz, warum an dieser Stelle ein Alert gemacht werden soll:


while(i < inhalt.length && j == 1)

{

    if(inhalt[i] < '0' || inhalt[i] > '9')

    {

        j=0;

        alert("nur ZZZiffern"+j);

    }

    i++;

}

Lösungsvorschlag 1 wäre dieser:

function gebeMeldung()

{

	var inhalt=document.Eingabe.Textfeld.value;

	var i=0;

	var j=1;


	while(i < inhalt.length && j == 1)

	{

		if(inhalt[i] < '0' || inhalt[i] > '9')

			j=0;


		i++;

	}


	if (j==1)

		alert ("Nur Ziffern");

	else

		alert("Nicht nur Ziffern");

}

Mein zweiter Vorschlag wäre dieser:

function gebeMeldung()

{

	var inhalt=document.Eingabe.Textfeld.value;

	var i=0;


	while(i < inhalt.length)

	{

		if(inhalt[i] < '0' || inhalt[i] > '9')

		{

			alert ("Nicht nur Ziffern");

			return;

		}

		i++;

	}


	//Falls die Schleife die Funktion nicht vorzeitig beendet hat, haben wir nur Zahlen in "inhalt"

	alert ("Nur Ziffern");

}

Zweiteres ist zwar nicht unbedingt super schön, für diesen Zweck jedoch kurz und bündig ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Zu "Programm 2":

Hier ist eigentlich nur das Problem, das du im Array die Matrikelnr als String speicherst. Somit hängst du einfach nur eine Zahl, in dem Fall die 10000000 and den String im jeweiligen Matrikel-Array-Index hinten dran.

So wäre es richtig, wenn du die Matrikelnummer als String im Array hast:


var i=0;


var matrikel=new Array();

matrikel[0]= "12345678";

matrikel[1]= "12345679";

matrikel[2]= "12345680";


document.write("<b>Vorher:</b><br />");

for(i; i < matrikel.length; i++)

{

	document.write(matrikel[i] +"<br>");

}


document.write("<b>Nachher:</b><br />");

for(i=0; i < matrikel.length; i++)

{

	matrikel[i] = parseInt(matrikel[i]) + parseInt("10000000");

	document.write(matrikel[i] + "<br />");

}

Greetz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...