[edit] [comment] [remove] |2006-05-03| e1 # Aufgabe 1

Der gegebene Code-Abschnitt berechnet in einer while-Schleife die Fakultät einer positiven natürlichen Zahl.

<html><body><pre><script type="text/javascript">

var n = 6, i = 1, fak = 1;
while (i <= n) {
   fak *= i;
   i++;
}
document.write(n + "! = " + fak); 

</script></pre></body></html>
  1. Verändern Sie n.
  2. Formulieren Sie das Programmstück unter Verwendung der for - Schleife um.
  3. Verändern Sie das Programm so, dass die Fakultät nicht aufsteigend mittels 1·2·3·4·5·6 sondern absteigend per 6·5·4·3·2·1 berechnet wird.
 

[edit] [comment] [remove] |2006-05-03| e2 # Aufgabe 2

Erstellen Sie ein Programm nach folgendem Algorithmus:

  1. Benutzereingabe eines Zeichens (window.prompt)
  2. Fehlermeldung, wenn mehr als ein Zeichen eingegeben wurde (string.length , window.alert)
  3. Erkennungsmeldung, wenn das Zeichen ein Vokal, also Element der Menge _[aeiouAEIOU]_ ist (string.charAt(0) , window.alert).

Verwenden Sie in Schritt 3. zuerst die if .. else Anweisung und anschliessend die switch Verzweigungsanweisung.

 

[edit] [comment] [remove] |2006-05-03| e3 # Aufgabe 3

Nachfolgend sehen wir ein einfaches Programm zur zeichenweise Stringanalyse:

<html><body><pre><script type="text/javascript">

var str = "Hallo Welt", out = "\n";
for (var i=0; i<str.length; i++) {
   out += str.charAt(i) + "\n";
}
document.write(out);
</script></pre></body></html>
  1. Geben Sie das Programm ein und lassen Sie es laufen.
  2. Ändern Sie den Programmcode so, dass der String rückwärts ausgegeben wird.
  3. Ändern Sie weiterhin den Programmcode dahingehend, dass nur Konsonanten und Leerzeichen (also keine Vokale) ausgegeben werden.

Aufgabenteil b Nachfolgend aufgelisteter Programmcode sollte richtig sein!

<html><body><pre><script type="text/javascript">

var str = " Hallo Welt", out = "\n";
for (var i=str.length;i>0; i--){
out+= str.charAt(i) + "\n";
}
document.write(out);

</script></pre></body></html>

Viel Spaß beim Probieren.

rosemi


die Schleife muss korrekt lauten

for (var i=str.length-1;i>=0; i--)

da die Indizes bei einem angenommenen 10-Zeichen String von 9 bis 0 laufen müssen.

(sg)


Aber bewirke ich nicht den gleichen Effekt, wenn ich anstelle >=0 nur >0 schreibe?

rosemi

zu Aufg. c:

Hallo,

weiß jemand, wie man die Schleife so umschreibt, dass bei der Ausgabe alle Vokale - und nicht nur der erste (a) ausgeblendet sind? Könnte es ggf. an einer Doppelbelegung der Variable out liegen? Nachfolgend der noch fehlerhafte Programmcode:

<html><body><pre><script type="text/javascript">

var str = "Hallo Welt", out = "\n", b="a" || "e" || "i" || "o" || "u" || "A" || "E" || "I" || "O" ||"U";

for (var i=0;i<=str.length; i++){
	if (str.charAt(i)==b)
	{out;
	}
	else if (str.charAt(i)!=b)
	{
	out+= str.charAt(i) + "\n";
	}
}
document.write(out);
</script></pre></body></html>

Vielen Dank schonmal für Anregungen. Grüße

rosemi

[edit] [comment] [remove] |2006-05-03| e4 # Aufgabe 4

Wir gehen nun das Zitat

Loriot

Das Schmieren von Politikern ist turnusmäßig durchzuführen, damit eine festgefahrene Politik immer mal wieder ins Rutschen kommt…

zeichenweise von vorne nach hinten durch und zählen die Leerzeichen. Hierzu lehnen wir uns an folgenden Pseudocode an:

define new variables n = 0, i=0, str = "Das Schmieren von ...";
while (i less than length of str) {
   if (character at position i is blank)
      increment n;
   increment i;
}
output of n;
  1. Vervollständigen Sie die rudimentäre Zeichenkette im Pseudocode auf das gesamte Zitat. Beachten Sie dabei, dass innerhalb eines Strings keine neue Zeile angefangen werden kann! Wie behelfen wir uns?
  2. Verwenden Sie an den entsprechenden Stellen im Programm die Eigenschaft length und die Methode charAt eines Strings.
 

[edit] [comment] [remove] |2006-05-03| e5 # Aufgabe 5

Wir wollen nun eine Multiplikationstafel für unseren Neffen in der 3. Klasse programmieren. Diese sieht für n = 4 etwa so aus:

-1234
11234
22468
336912
4481216

Der dazugehörige HTML-Code lautet:

<table style="border:1px solid black;">
  <tr><th>-</th><th>1</th><th>2</th><th>3</th><th>4</th></tr>
  <tr><th>1</th><td>1</td><td>2</td><td>3</td><td>4</td></tr>
  <tr><th>2</th><td>2</td><td>4</td><td>6</td><td>8</td></tr>
  <tr><th>3</th><td>3</td><td>6</td><td>9</td><td>12</td></tr>
  <tr><th>4</th><td>4</td><td>8</td><td>12</td><td>16</td></tr>
</table>
  1. Lassen Sie die Dimension n der Tabelle vom Benutzer (Neffen) eingeben (window.prompt).
  2. Überlegen Sie sich eine geeignete Vorgehensweise (Algorithmus) für ein beliebiges ganzzahlig positives n.
  3. Erzeugen Sie mittels Javascript den HTML-Code der zugehörigen Tabelle zunächst ohne die <th> - Elemente.
  4. Fügen Sie nun die äusseren fetten <th> - Elemente als Zeilen- und Spaltenkopfzellen hinzu.
  5. Fangen Sie mit einer geeigneten Fehlermeldung (window.alert) eine unsinnige Eingabe von n ab.

Hinweis: Verwenden Sie zwei ineinandergeschachtelte for - Schleifen.