Übungsaufgabe12.September2013
Array
Aufgabe 1
Probieren Sie das obige Beispiel einmal aus. Versuchen Sie sich auch nicht existierende Array-Elemente ausgeben zu lassen, z.B. das mit Index -1, mit Index 17, mit Index "abc" oder Index 1.5.
Aufgabe 2 Probieren Sie das Beispiel aus und vergewissern Sie sich, dass immer ein Text aus dem Array ausgegeben wird.
Aufgabe 3
Legen Sie ein Array mit den Preisen für drei Produkte an. Erstellen Sie ein Formular, in dem der Benutzer eingibt, wie viel Stück er von jedem der drei Produkte bestellen möchte. Berechnen Sie daraus den Gesamtpreis, den der Benutzer zu zahlen hat. Als kundenfreundliches Unternehmen sollten Sie dem Benutzer natürlich auch schon vor der Bestellung anzeigen, wie viel die Produkte kosten.
Aufgabe 4
Schreiben Sie ein Programm zur Auswertung von Messwerten. Der Benutzer soll in mit prompt() erzeugten Dialogboxen so lange Messwerte eingeben können, bis er auf Abbrechen klickt. Berechnen Sie den Durchschnitt, das Maximum und das Minimum dieser Messwerte und geben Sie die Ergebnisse aus.
Aufgabe 5
Erweitern Sie das Messwerte-Beispiel aus Aufgabe 4 um eine sortierte Ausgabe aller Werte.
Aufgabe 6
Ersetzen Sie die Eingabe in dem Messwerte-Beispiel durch eine Eingabe in einem Formularfeld. Der Benutzer soll nun alle Messwerte jeweils durch ein Komma getrennt in ein Formularfeld eingeben und die Berechnung von Durchschnitt, Maximum und Minimum durch einen Klick auf einen Button auslösen.
Aufgabe 7
Ändern Sie die Ausgabe der sortierten Werte so ab, dass die Methode join() dafür benutzt wird.
Aufgabe 8
Erstellen Sie ein Programm, das einem Lehrer die Eingabe der Namen und Noten seiner Schüler ermöglicht. Das Programm soll dann eine Notenliste und einen Klassenspiegel ausgeben können. Die Ausgabe soll jeweils in einer Dialogbox erfolgen.
Aufgabe 9
Das folgende Programm kopiert Werte aus dem Array b in das Array c
a) Vervollständigen Sie die Bezeichnung der Array-Elemente. b) Tragen Sie bitte den Inhalt des Arrays b nach dem Programmlauf in die Tabelle ein. c) Bringen Sie das Programm zum Laufen und vergleichen Sie die zuvor ermittelten Werte!
var c = new Array(86,24,26,23,76,26,68,65,77,88,9,58,35); var b = new Array(); var i; for( i=0; i<c.length i if b c else for document.write>" ); } </c.length>
| Array-Elemente || Array Inhalt b | |
|---|---|
| b[0] | ............ |
| ............ | ............ |
| ............ | ............ |
| ............ | ............ |
| ............ | ............ |
| ............ | ............ |
| ............ | ............ |
| ............ | ............ |
| ............ | ............ |
| ............ | ............ |
| ............ | ............ |
| ............ | ............ |
| ............ | ............ |
| b[12} | ............ |
Aufgabe 10
Geben Sie jedes zweite Element des folgenden Arrays in einer for-Schleife aus! Nutzen Sie das Attribut length des Arrays zur Längenermittlung für die Bedingung der Schleife!
var staedte = new Array( 1, "Berlin", 2, "Hamburg", 3, "München", 4, "Köln", 5, "Frankfurt", 6, "Stuttgart" );
Haben Sie die Aufgabe verstanden?
Wie soll die Ausgabe Ihres Programms lauten?
Welche Schleife sollen Sie verwenden?
Was bedeutet length?
Zu welchem Zweck soll length hier benutzt werden?
Aufgabe 11
a) Wählen Sie aus dem folgenden Array zufällig ein Haustier aus!
var haustiere = new Array( "Hund", "Katze", "Vogel", "Meerschweinchen", "Hamster", "Kaninchen", "Maus", "Ratte" );
b) Schreiben Sie Ihren Quelltext in eine Funktion und rufen Sie diese über einen Button auf!
c) Nutzen Sie für Ihre Ausgabe ein div-Tag und getElementById mit innerHTML
Aufgabe 12 ?
a) Füllen Sie ein 100-Felder-Array mit Zufallszahlen von 1-6!
b) Zählen Sie das Auftreten der Zahlen in folgendem Array:
var zaehler = new Array( 0, 0, 0, 0, 0, 0 );
c) Werten Sie die Zählerstände aus und geben Sie z.B. die folgende Ausgabe aus:
Die Zahlen 1-6 traten in 100 Würfen in der folgenden Häufigkeit auf: 1:16x 2:17x 3:16x 4:14x, 5:19x, 6:18x
Die Zahl 5 trat am häufigsten auf.
Die Zahl 4 trat am wenigsten auf.
Aufgabe 13
a) Legen Sie ein Array an zwecks Speicherung der Kontostände der letzten 1000 neuen Bankkunden.
b) Ermitteln Sie per Zufallsgenerator zufällige Kontostände zwischen -10.000 und 250.000 Euro und füllen Sie damit das Array.
c) Geben Sie das Array-Feld mit dem niedrigsten Kontostand aus, z.B. konstostaende[3] = -9.173,82 Euro.
d) Geben Sie das Array-Feld mit dem höchsten Kontostand aus, z.B. kontostaende[234] = 963.234,34 Euro
e) Geben Sie den durchschnittlichen Kontostand aus, z.B. so: "Das Guthaben der neuen Bankkunden beträgt durchschnittlich 134.872 Euro".
Aufgabe 14
Youtube verwendet für jedes gespeicherte Video einen Identifier (identification = ID). Sobald Sie sich ein Video ansehen, finden Sie die ID in der URL hinter den beiden Zeichen "v=". Die ID in der URL http://www.youtube.com/watch?v=MlPh_ycy62s ist also "MlPh_ycy62s"
a) Legen Sie ein Array an zwecks Speicherung Ihrer liebsten Videos!
b) Füllen Sie das Array mit mehreren IDs von Youtube-Videos, z.B. mittels prompt!
c) Geben Sie in einer While-Schleife eine Liste aller gespeicherten IDs aus.
d) Erzeugen Sie mit einer Do/While Schleife eine Liste der kompletten URLs aller Videos.
e) Erzeugen Sie mit einer for-Schleife eine Liste von anklickbaren HTML-Links.
Collections
Aufgabe 1 Erstellen Sie eine Seite, in der der Benutzer ein Bild austauschen kann. Er soll in ein Formularfeld den Dateinamen einer Datei mit einem Bild eintragen, das angezeigt wird, wenn er auf den Button klickt.
Funktionen
Aufgabe 1
Überlegen Sie sich, wie Sie mit der Funktion prompt() eine Eingabe vom Benutzer verlangen, wobei in der Eingabezeile nichts vorgegeben werden soll.
Aufgabe 2
Schreiben Sie ein Skript, in dem Sie dem Benutzer den Sinus, Cosinus und Tangens einer Zahl berechnen. Zuerst soll der Benutzer eine Zahl eingeben. Mit Hilfe der Funktionen Math.sin(zahl), Math.cos(zahl) und Math.tan(zahl) können Sie die gewünschten Werte berechnen lassen und dann ausgeben. (Der Benutzer muss dabei beachten, dass die Winkel als Argument für diese Funktionen im Bogenmaß und nicht in Grad anzugeben sind.)
Aufgabe 3
In Übung 3.6 haben Sie den Benutzer zwei Zahlen und ein Rechenzeichen eingeben lassen und dann das Ergebnis dieser Rechnung ausgegeben. Mit Hilfe der Funktion eval() können Sie diese Übung etwas komfortabler gestalten. Fordern Sie den Benutzer auf, eine Rechenaufgabe einzugeben und geben Sie dem Benutzer dann das Ergebnis aus. Testen Sie Ihr Programm, indem Sie verschiedene Rechenaufgaben eingeben, darunter auch etwas kompliziertere mit mehreren Operatoren und Klammern. Denken Sie daran, dass es nicht nur +, -, * und / gibt! Benutzen Sie in Ihrer Rechenaufgabe auch die Funktionen Math.sin(), Math.cos() und Math.tan() aus Aufgabe 2 Geben Sie dann auch eine beliebige andere JavaScript-Anweisung ein, z.B. alert(), document.write() oder das oben erwähnte window.open().
Aufgabe 4
Erweitern Sie die Übung 3.6. Überprüfen Sie, ob es sich bei den vom Benutzer eingegebenen Operanden wirklich um Zahlen handelt. Falls nicht, weisen Sie ihn darauf hin und lassen Sie die Eingabe wiederholen.
Aufagbe 5
Schreiben Sie Ihr erweitertes Rechenprogramm aus Aufgabe 4 und das auf eval() basierende Programm aus Aufgabe 3 in jeweils eine Funktion. Speichern Sie die beiden Funktionen in einer eigenen Datei. Gestalten Sie dann eine HTML-Seite, in der Sie für beide Funktionen einen Link unterbringen, mit dem sie aufgerufen werden können.
Aufgabe 6
...
Probieren Sie das Beispiel aus. Fügen Sie nach jeder Programmzeile in der Funktion eine Ausgabe mit alert() ein, in der Ihnen die verschiedenen Variablen angezeigt werden. Verfolgen Sie so den Ablauf der Funktion und schauen Sie, ob wirklich das richtige berechnet wird.
Aufgabe 7
Schreiben Sie eine Funktion, die einen Primzahltest durchführt. Sie soll eine Zahl als Argument erwarten und liefert true oder false als Rückgabewert, je nachdem ob es sich dabei um eine Primzahl handelt oder nicht.
Anmerkung: Eine Zahl ist eine Primzahl, wenn sie nur durch 1 und sich selbst teilbar ist, d.h. wenn sich beim Teilen der Zahl durch irgendetwas anderes als 1 und sie selbst ein Rest ergibt.
Aufgabe 8
Schreiben Sie eine Funktion, die eine Zahleingabe vom Benutzer entgegen nimmt und sie als Rückgabewert zur Verfügung stellt. Die Funktion soll dabei folgendermaßen ablaufen:
Als Argument erhält sie eine Zeichenkette mit der Eingabeaufforderung an den Benutzer. Die Funktion fordert den Benutzer zu einer Eingabe auf und überprüft, ob es sich bei dieser um eine Zahl handelt. Ist dies der Fall, soll diese Zahl zurückgegeben werden. Andernfalls soll der Benutzer auf seinen Fehler hingewiesen werden und die Eingabe wiederholen können.
Aufgabe 9
Schreiben Sie außerdem ein kleines Hauptprogramm zum Test Ihrer Funktionen aus den Aufgabe 7 und 8. Z.B. können Sie eine Zahl vom Benutzer eingeben lassen und dann ausgeben, ob es sich dabei um eine Primzahl handelt oder nicht.
Aufgabe 10
Schreiben Sie eine Funktion hello(), welche "Hello World" mit alert ausgibt und verwenden Sie diese in Ihrem Programm!
Aufgabe 11
Schreiben Sie eine Funktion, welche eine beliebige Zeichenkette mit alert() ausgibt!
Aufgabe 12
Schreiben Sie eine Funktion, welche die Passwort-Eingabe abprüft und als Ergebnis true oder false zurück gibt!
Schreiben Sie eine Funktion, welche eine Zeichenkette mit aktuellem Datum und ausgeschriebenem Wochentag zurück gibt!
Schreiben Sie eine Funktion, welche als Ergebnis eine Zufallszahl zwischen 1 und 49 (inkl. 1 und 49) zurück gibt!
Aufgabe 13
Schreiben Sie eine Funktion, welche als Ergebnis das Quadrat der übergebenen Zahl zurück gibt!
Aufgabe 14
Schreiben Sie eine Funktion, welche als Ergebnis eine Zufallszahl zwischen x und y (inkl. x und y) zurück gibt!
Schreiben Sie eine Funktion, welche die zwei Parameter X und Y addiert und als Ergebnis zurück gibt!
Aufgabe 15
Rufen Sie in Ihrem Hauptprogramm alle Funktionen nacheinander auf und sorgen Sie dafür, dass das so entstandene Programm fehlerfrei abläuft!
a) Überlegen Sie, wie Sie Funktionen in Ihren bisher geschriebenen Programmen sinnvoll zur besseren Strukturierung einsetzen können!
b) Probieren Sie es aus!
Aufgabe 16
Welche Ausgabe erzeugt das folgende Programm?
...
function nRepeat( n, s )
{
for( var i=0; i<n i document.write s>" );
}
nRepeat( 2, "Halli" );
nRepeat( 3, "Hallo" );
nRepeat( 4, "Trari" );
nRepeat( 3, "Trara" );
nRepeat( 2, "Lalala" );</n>......
Aufgabe 17
Was passiert hier in diesem Quelltext? Überlegen Sie!
Welche Werte für a, b und c werden am Ende des Skriptes ausgegeben?
Beachten Sie die Zustände der lokalen und globalen Variablen!
var a=8;
var b=-5;
var c=3;
function mult1( b, c )
{
// var b,c; Übergabeparameter sind lokale Variablen!
b= c * a;
a = a + b;
return b;
}
function mult2( b, a )
{
var c;
c = b - c;
return a;
}
function rechne( a, b )
{
var a, b;
c = b - c;
return a;
}
a = mult1( c, b );
c = mult2( a, b );
c = rechne( a, c );
document.write( a + " " + b + " " + c );Aufgabe 18
Was passiert hier? Wer kann das erklären?
Download: Beispiel
Tabelle 1 - dynamisch erzeugt
Tabelle 2 - Werte mit Script eingesetzt