Übungsaufgabe
Inhaltsverzeichnis |
Allgemeine Fragen
Was ist ein Script ?
Was bedeutet es "ein Skript zu interpretieren" ?
Was ist Quelltext, Sourcecode, Programmcode, Programmtext ?
Woran erkennt man ein Script in einer HTML-Seite ?
Wo findet man Javascript-Quelltext in einer HTML-Seite ?
Zu welchem Zeitpunkt wird das Javascript ausgeführt (gestartet)? Bedenken Sie, dass der Browser (z.B. Firefox) die HTML-Seite vom Server als Stream lädt. Alle bereits empfangenen Zeichen können vom Browser also verwendet werden (z.B. Anzeige von HTML, Ausführen von Skripten).
Was sind Anweisungen? Was sind Blöcke ?
Wozu benötigt man Variablen ?
Einbindung von JavaScript in HTML
Aufgabe 1
Probieren Sie das Beispiel aus der Vorlesung aus: Benutzen Sie einen beliebigen Editor und tippen Sie das Beispieldokument ab. Speichern Sie die Datei unter erstesJavaScriptProgramm.html und schauen Sie sich das Resultat im Browser an.
Aufgabe 2
Wenn Sie eigene Dokumente mit eingebetteten JavaScript-Anweisungen schreiben, kommt es immer wieder vor, dass Sie einmal kleinere Schreibfehler machen. Deshalb sollen Sie jetzt probeweise einige Fehler ganz bewusst in das Dokument einbauen, um später mit den Auswirkungen bei der Darstellung im Browser etwas anfangen zu können. Bauen Sie nacheinander an verschiedenen Stellen der gerade angelegten HTML-Datei Schreibfehler in das öffnende
- Deaktivieren Sie die Ausführung von JavaScript in Ihrem Browser.
- Lassen Sie die schließenden HTML-Kommentarzeichen weg.
- Fügen Sie ein einzeiligen Kommentar in das Script ein und lassen Sie das zweite /-Zeichen weg
- Fügen Sie ein mehrzeiligen Kommentar in das Script ein und lassen Sie ein *-Zeichen weg
- Lassen Sie das -Tag weg
JavaScript in separaten Dateien
Aufgabe 3
Probieren Sie auch dieses Beispiel aus der Vorlesung aus! Benutzen Sie einen beliebigen Editor und tippen Sie das Beispieldokument ab. Speichern Sie die Dateien unter zweitesJavaScriptProgramm.html und zweitesJavaScriptProgramm.js und schauen Sie sich das Resultat im Browser an.
document.write("Begruessungstext: ...");Variablen
Was sind Variablen?
Was kann man in Variablen speichern?
Gibt es Unterschiede zwischen den zu speichernden Werten? Welche?
Nennen Sie umgangssprachlich vier verschiedene Typen von Variablenwerten!
Nennen Sie die in der Fachsprache üblichen Bezeichnungen für verschiedene Typen von Variablenwerten!
Was sind Literale?
Unterstreichen Sie alle Text-Literale: abc, "abc", "X", "4+5", 4+"5"
Unterstreichen Sie alle Wahrheitswert-Literale: true, True, "false", "56 == 93", false
Unterstreichen Sie alle Zahlen-Literale: 2.7, -65, 5+6, sechs, "8", "siebzehn"
Unterstreichen Sie alle gültigen Javascript-Ausdrücke: 5+6, 56==93, 8*"sieben", 5>34, 5=5, "5" * "4"
Kann eine Javascript-Variable Daten unterschiedlichen Typs speichern?
Wie reagiert ein Javascript-Programm auf Typfehler?
Werten Sie die folgenden Javascript-Ausdrücke aus und geben Sie den Typ an:
| Ausdruck || Wert || Typ | ||
|---|---|---|
| 8-5.6 | ............ | ............ |
| false && true | ............ | ............ |
| 45>5.6 | ............ | ............ |
| false && (2==2) | ............ | ............ |
| "34" + "67" | ........... | ............ |
| "Programmier" + "richtlinien" | ........... | ............ |
Bedingungen
Aufgabe 1
Jede der gleich folgenden Fragen liefert als Ergebnis entweder wahr oder falsch (true oder false). Formulieren Sie die Fragen als Bedingungen für den Einsatz in Ihrem Computerprogramm!
a. Ist die Variable x kleiner als y?
b. Ist y identisch mit x?
c. Ist das Vierfache von x größer als y?
d. Liegt x zwischen 50 und 75?
e. Liegt x zwischen -23 und 123?
f. Liegt 25 zwischen x und y?
g. Entspricht das Produkt oder die Summe von x und y der Zahl 100?
h. Liegt y nicht zwischen 3 und 13?
Schleifen
Aufgabe 1
Geben Sie folgende Zahlen jeweils mit einer while und einer do/while-Schleife aus:
1,2,3,4,5,6,7,8,9,10
2,4,6,8,10
2,7,12,17,22
49,42,35,28,21
1,2,4,8,16,32,64,128,256,512,1024
8,13,18 ... 58
Aufgabe 2 Programmieren Sie eine Passwortabfrage! Verlassen der Schleife nach richtiger Eingabe bzw. dem dritten falschen Eingabeversuch!
Aufgabe 3
Berechnung der Summe aller Zahlen von 1 bis 100 Schreiben Sie jeweils ein Programm mit do-while und while-Schleife, welches die Summe aller Zahlen von 1 bis 100 berechnet.
Aufgabe 4
Programmieren Sie die Ziehung der Lottozahlen "6 aus 49"!
Doppelt ermittelte Zahlen sollen in der dieser ersten Lösung ignoriert werden.
Die Zufallszahlen können Sie ermitteln wie auf folgender Seite beschrieben: http://javascriptbasics.wikispaces.com/Zufallszahlen
Ergänzung 1: Die Wiederholung der Ziehung soll möglich sein. (Funktion und Button im Programm verwenden)
Ergänzung 2: Gestalten Sie die Seite ansprechend, z.B. mit Hilfetexten für den Anwender.
Aufgabe 5
Prüfen Sie den Zufallsgenerator! Kommen alle Zahlen wirklich gleich oft vor?
Nutzen Sie wenige Zahlen zur Prüfung (z.B. nur 1, 2 und 3).
Beweisen Sie, dass alle auszugebenden Zahlen gleich häufig auftreten.
Verwenden Sie zum Zählen der Zufallszahlen die 'switch'-Anweisung.
Zählen Sie die Zahlen z.B. in den Variablen ZaehlerEins, ZaehlerZwei und ZaehlerDrei.
Aufgabe 6 Schreiben Sie jeweils ein kleines Javascript-Programm, welches ...
1. ... die ganzen Zahlen von 0 bis 10 in Einerschritten nebeneinander auf dem Bildschirm ausgibt.
2. ... die ganzen geraden Zahlen von 10 bis 30 untereinander auf dem Bildschirm ausgibt.
3. ... die ganzen ungeraden Zahlen von 51 bis 73 untereinander auf dem Bildschirm ausgibt.
4. ... die Zahlen von 100 bis 0 in Fünferschritten rückwärts zählend untereinander auf dem Bildschirm ausgibt.
5. ... die Zahlen von +1 bis -1 in Schritten von 0,3 rückwärts zählend untereinander auf dem Bildschirm ausgibt.
6. ... den Anwender auffordert, zwei ganze Zahlen einzugeben (Zweite Zahl größer als die Erste):
Das Programm soll folgende Ausgabe liefern (Beispielhaft mit 5 und 10 als eingegebene Zahlen):
Die erste eingegebene Zahl war 5.
Die zweite eingegebene Zahl war 10.
Die ganzen Zahlen zwischen 5 und 10 betragen: 6, 7, 8, 9
Aufgabe 7
... die Summe der ganzen Zahlen zwischen 1 und 10 berechnet und folgendermaßen ausgibt. Die Summe der Zahlen zwischen 1 und 10 beträgt 55
Aufgabe 8
Wie die zuvorige Aufgabe, jedoch soll die Anfangs- und Endzahl vom Anwender frei wählbar sein.
Aufgabe 9
... die Fakultäten der ganzen Zahlen zwischen 1 und 10 berechnet und folgendermaßen ausgibt
Fakultät von 4 ist z.B. 1 * 2 * 3 * 4 also 24
Ausgabe: ..... 2! = 2 3! = 6 4! = 24 5! = 120 .... usw.
Aufgabe 10
Wie Aufgabe 9, jedoch soll die Endzahl vom Anwender frei wählbar sein.
Aufgabe 11
a. Bringen Sie den folgenden Quellcode in einem Javascript-Programm zum funktionieren:
var x; var s=0; for(x=1; x<3; x++) alert((s+=x)+" ");
Benennen Sie die Variablen sinnvoll.
Ergänzen Sie sinnvoll Klammern, fügen Sie Leerzeilen ein, rücken Sie richtig ein, beseitigen Sie Fehler.
Lösen Sie die Kurzschreibweisen - z.B. x++ - in einfache Ausdrücke - z.B. x=x+1 - auf.
Testen Sie das Programm.
Beschreiben Sie in einem kurzen Text die Funktion des Programms und fügen Sie diesen als Kommentar oben in den Javascript-Quellcode ein.
b. Wandeln Sie Ihren Quelltext in eine While-Schleife um. Die Funktion soll identisch erhalten bleiben.
c. Wandeln Sie Ihren Quelltext in eine Do-While-Schleife um. Die Funktion soll identisch erhalten bleiben.
d. Erstellen Sie von Ihrer Lösung ein Struktogramm! (auf einem Blatt Papier!)
Aufgabe 12
Welche Ausgabe erzeugt der folgende in der nächsten Aufgabe folgende Quelltext? (Nicht zuerst ausprobieren, sondern erst einmal nachdenken!)
Aufgabe 13
Wandeln Sie folgenden Quelltext in eine While-Schleife um, lösen Sie dabei die Java-Abkürzungen (z.B. x++) in einfache Ausdrücke (z.B. x=x+1) auf.
function aufgabe2()
{
int x, s=1;
for(x=2; x<=5; alert((s*=x++)+" "));
}Aufgabe 14 Schreiben Sie ein Programm, welches ...
a) entsprechend einer Eingabe des Nutzers eine beliebige Anzahl von '*' ausgibt.
b) nach 40 Sternchen automatisch einen Zeilenumbruch einfügt.
c) jede weitere Zeile um ein Sternchen verkürzt ausgibt.
d) erst nach Eingabe eines Passwortes die Funktion des Programms ermöglicht.
e) Überlegen Sie sich eine Lösung zur Ausgabe von Dreiecken mit verschiedenen Kantenlängen.
Aufgabe 15
Erstellen Sie für alle Entwicklungsstufen immer zuerst ein Struktogramm.
Verstehen Sie den folgenden Quelltext? Was wird auf dem Bildschirm ausgegeben?
a)
var x,y,i;
x=0;
y=4;
i=4;
document.write( i + " " );
while( x<28 )
{
x=y*i;
document.write( x + " " );
i++;
}
document.write( i + " " )b)
for (var i=8; i>6; i-=2)
{
document.write( i + " " );
}
document.write( i + "." );
c)
var i=10;
document.write(i + " ");
while( i>5)
{
i--;
document.write(i + " ");
}
document.write(i + ".");d)
var i=2;
do
{
i=3+i;
document.write( i + " " );
} while( i<16 );
document.write( i + "." );Aufgabe 16
Ergänzen Sie den Quelltext, damit bei der Ausführung des Programms folgende Ausgabe erscheint: 8 5 2 .
for( )
{
document.write(i + " ");
}
document.write(".");Switch
Aufgabe 1
Erstellen Sie einen Automaten, der Geld wechselt
Anforderungen:
Als Eingabe in den Automaten sind 2 oder 5 oder 10 Euro möglich.
Bei Auswahl 2 wird 2 mal 1 Euromünze ausgegeben.
Bei Auswahl 5 werden 2 Euromünzen und 1 Euromünze ausgegeben.
Bei Auswahl 10 werden 2 mal 5 Euro herausgegeben.
Alles andere ist eine falsche Eingabe.
Aufgabe 1
Anforderungen:
Es soll ein Währungsrechner programmiert werden, der US-Dollar in Euro oder HongKong Dollar in Euro umrechnet.
Eingabe der Währung als USD oder HKD.
Umrechnungsfaktoren:
1Euro = 1,30 USD
1Euro = 10,12 HKD
Aufgabe 3
Schreiben Sie ein Programm, das nach Eingabe von drei beliebigen Zahlen die größte, die mittlere und die kleinste Zahl ausgibt.
Aufgabe 4
Dem Computer werden drei natürliche Zahlen a, b und c eingegeben. Der Rechner soll prüfen, ob die drei Zahlen die Seiten eines Dreiecks bilden können. Bedingungen dazu:
a+b>c und b+c>a und c+a>b
Aufgabe 5
Erstellen Sie ein Programm das bei Eingabe des Radius eines kreises dessen Kreisfläche und den Umfang auf 23 Stellen hinter dem Komma gerundet ausgibt.
Aufgabe 6
Es sollen 10 Messwerte einer Messreihe eingelesen und deren Mittelwert berechnet werden.
Aufgabe 7
Mit der Anweisung zufallszahl = Math.ceil( Math.random()*6); soll ein Würfel simuliert werden. Dazu sollen zu den einzelnen Zahlen die passenden Würfelbilder angezeigt werden.
Erstes Programm
Schreiben Sie ein Programm zum Testen der Entwicklungsumgebung! Bevor man so richtig loslegen kann, muss man immer zuerst einmal testen, ob die Programmierumgebung richtig funktioniert.
Dazu gehört in unserem Fall:
- ein funktionierender Editor (das Programm, mit dem wir die Programme schreiben),
- ein Browser zum Anzeigen der Seiten und zum Ausführen der Skripte (z.B. Firefox) und
- ein ganz einfaches Programm, welches uns zeigt, ob wir auf dem richtigen Weg sind.
Vorgaben:
Unser Programm soll den Titel "Hello Welt!" bekommen (title tag). Die Datei soll hellowelt.html heißen. Das Programm gibt auf dem Bildschirm den Text "Hello World!" mit dem Javascript-Befehl alert aus.
Zweites Programm
Schreiben Sie ein Javascript-Programm, welches die 3 Zeichenketten Vorname, Nachname und Telefonnummer aneinander hängt (mit Leerzeichen dazwischen) und ausgibt!
- Legen Sie vier Variablen an für die 3 Zeichenketten und das Ergebnis.
- Eingabe:
- Lesen Sie die 3 Zeichenketten Vorname, Nachname und Telefonnummer mit prompt ein.
- Verarbeitung:
- Verknüpfen Sie Vorname, Nachname und Telefonnummer und schreiben Sie die neue Zeichenkette in die Variable ergebnis.
- Ausgabe:
- Geben Sie das Ergebnis mit alert aus.
Drittes Programm
Schreiben Sie ein Javascript-Programm, welches 2 Zahlen addiert!
- Legen Sie vier Variablen an für die Eingabezeichenkette von prompt, zwei Zahlen und das Ergebnis.
- Eingabe:
- Lesen Sie die 2 Zahlen mit prompt ein (Zeichenketten!) und wandeln Sie diese gleich mit parseFloat um in Zahlen, welche in den Variablen für die zwei Zahlen gespeichert werden.
- Verarbeitung:
- Berechnen Sie das Ergebnis.
- Ausgabe:
- Geben Sie das Ergebnis mit alert aus.
Aufgaben zum Üben
Aufgabe 1
Schreiben Sie ein Programm, welches zwei Kommazahlen addiert, welche Sie zuvor mittels prompt eingegeben haben!
Aufgabe 2
Eine in Celsius (C) eingegebene Temperatur soll in Fahrenheit (F) und in Kelvin (K) umgerechnet und ausgegeben werden.
F = C * 9/5 + 32
K = C + 273,15
Als Ausgabe soll z. B. erscheinen: 20° Celsius sind 68° Fahrenheit und 293.15° Kelvin.
Aufgabe 3
Schreiben Sie ein Programm, welches Euro-Geldbeträge in Dollar umrechnet.
Der Umrechnungskurs ist 1 € = 1.28030 $.
Eingabe: 45
Ausgabe: 45 Euro sind 57.6135 Dollar.
Die Stellenanzahl ist beliebig.
Aufgabe 4
Schreiben Sie ein Programm, welches 2 ganze Zahlen einliest (Stunden und Minuten) und als Ergebnis die Zeitangabe in Stunden und Minuten als Kommazahl in Stunden ausgibt.
Beispiel:
Eingabe: 2
Eingabe: 45
Ausgabe: 2 Stunden und 45 Minuten sind 2.75 Stunden.
Aufgabe 5
Ein Steuerberechnungsprogramm soll eine Eingabe des Bruttolohnes und die Eingabe der Kinderanzahl erwarten.
Der Nettobetrag eines Bruttomonatslohn errechnet sich wie folgt:
- Lohnsteuer: 5% vom Bruttolohn
- Krankenversicherung: (11% - Anzahl der Kinder * 1 %) vom Bruttolohn (z.B. eine Familie mit 3 Kindern hat 8% zu zahlen)
- Kirchensteuer: 3% der Lohnsteuer vom Bruttolohn
- Solidaritätsabgabe: 1% der Lohnsteuer vom Bruttolohn
- Pflegeversicherung: 20 % der Krankenversicherung vom Bruttolohn
Das Programm soll alle Abzüge vom Bruttolohn angeben.
Aufgabe 6
Schreiben Sie ein Programm, welches die Fläche eines Rechtecks mit den Seiten a und b berechnet. Geben Sie als Ergebnis folgende Meldung aus: "Das Rechteck mit den Seiten a cm und b cm hat die Fläche F cm2".
Aufgabe 7
Das Programm soll nach Eingabe der Länge, der Breite und der Höhe folgende Ausgabe machen: Ein Quader mit der Höhe 2 m , der Breite 5 m und der Länge 7 m hat ein Volumen von 70 m³ einen Oberflächeninhalt von 118 m² die Kantenlänge von 56 m
Aufgabe 8
Ein Programm soll 2 Brüche einlesen und die Summe, die Differenz, das Produkt und den Quotient errechnen.
1.Zaehler 1
1.Nenner 2
2. Zaehler 6
2. Nenner 3
Beispiele:
1/2 + 6/3 = 15/6
1/2 - 6/3 = -9/6
1/2 * 6/3 = 6/6
1/2 / 6/3 = 3/12
Die Ergebnisse müssen nicht gekürzt werden!
Aufgabe 9
Ein Programm soll 2 Widerstandswerte einlesen. Es soll der Wert des Gesamtwiderstandes für die Reihenschaltung und die Parallelschaltung berechnet und angezeigt werden.
Hinweise
Aneinanderreihen von Zeichenketten funktioniert mit dem '+' - Zeichen!
Die Methode parseFloat wandelt eine zu übergebene Zeichenkette in eine Zahl um und gibt diese als nummerischen Wert (Zahl) zurück. Wenn sich die Zahl als Kommazahl interpretieren lässt, wird dies berücksichtigt. Als Dezimalzeichen wird jedoch nur der Punkt interpretiert. Gibt NaN (Not a Number) zurück, wenn die Zeichenkette mit Zeichen beginnt, die sich nicht als Teil einer Zahl interpretieren lassen. Wenn die Zeichenkette weiter hinten ungültige Zeichen enthält, wird die Zahl bis zum ersten ungültigen Zeichen interpretiert & der interpretierte Teil ausgegeben. Syntax:parseFloat(Zeichenkette);
Die Methode promppt zeigt ein Dialogfenster mit einem Eingabefeld, einem Button "Ok" und einem Button "Abbrechen" an.
Der Nutzer kann in dem Eingabefeld etwas eintragen und die Methode liefert diesen eingetragenen Wert zurück.
prompt() erwartet zwei Parameter:
1. Aufforderungstext = Text, der beschreibt, was der Anwender eingeben soll.
2. Feldvorbelegung = Text, mit dem das Eingabefeld vorbelegt wird. Wenn Sie ein leeres Eingabefeld wollen, übergeben Sie dafür eine leere Zeichenkette "".
Syntax:prompt("Aufforderungstext", "Feldvorbelegungstext");
