[edit] [comment] [remove] |2006-04-20| e1 # Vorbereitung

Öffnen Sie ein neues Html-Dokument innerhalb von EditPlus und verwenden Sie in den nachfolgenden Aufgaben das bekannte minimale HTML-Gerüst ein:

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


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

[edit] [comment] [remove] |2006-04-20| e2 # Aufgabe 1

Wir gehen von folgenden gegebenen Variablen aus.

var a=5, b="Nacht", c=3.14, d="8", e=-2, f=true;

Sagen Sie nun das Ergebnis nachstehender Ausdrücke aufgrund der jeweiligen Datentypen und der beteiligten arithmetischen Operatoren voraus. Geben Sie die Ergebnisse dann mittels document.write(… + "\n") aus.

a + d
d + a
a + (+d)
a + d*d
a - d/e
d / a
d % a
a + f
b + e + f
2*f - e
c % -e
d - f


Lösungshinweis:

<script type="text/javascript" language="javascript">

var a=5, b="Nacht", c=3.14, d="8", e=-2, f=true;

value = a + d;
document.write(value + "\n");

value = a + (+d);
document.write(value + "\n");

value = a + d*d;
document.write(value + "\n");

value = a - d/e;
document.write(value + "\n");

value = d / a;
document.write(value + "\n");

value = d % a;
document.write(value + "\n");

value = a + f;
document.write(value + "\n");

value = b + e + f;
document.write(value + "\n");

value = 2*f - e;
document.write(value + "\n");

value = c % -e;
document.write(value + "\n");

value = d - f;
document.write(value + "\n");


</script>

Grüße Tobias

Etwas einfacher …

var a=5, b="Nacht", c=3.14, d="8", e=-2, f=true;
document.write("a + d" + " = " + (a + d) + "\n");
// ...
document.write("d - f" + " = " + (d - f) + "\n");

(sg)

[edit] [comment] [remove] |2006-04-20| e3 # Aufgabe 2

Finden und beseitigen Sie die Fehler im folgenden Programmstück

var 1 = x, µ = 10.5, zähler;

if x > µ 
   zähler = x * 100;
else
   zähler = x / 100;

 

Wo ist er?

Wo ist der Fehler? Hilft keiner?


Lösungshinweis:

man darf keine Variablen mit Sonderzeichen(µ) oder öäüß (zähler) benennen!

Grüße Tobias


das kann ich so nich bestätigen bei meinem editor (phase 5) betrachter er nich das sonderzeichen oder den umlaut als fehler, sonder beanstandet die zuweisung der variablen x, so dass es heißen muss "x = 1" und nich "1 = x"

Hallo, ich habe das Programm wie zu sehen, umgeschrieben. Funktioniert. Allerdings ohne "Gewehr" auf Richtigkeit ;O)

<html><body><pre><script type="text/javascript">
var x = 1, µ = 10.5, zähler;
if (x > µ){ 
  document.write(zähler = x * 100);
}
else{
   document.write(zähler = x / 100);
}
</script>
</script></pre></body></html>

Gruß rosemi

Stimmt, die modernen Javascript Interpreter können problemlos mit Unicode umgehen und haben daher mit den Sonderzeichen nicht zwangsläufig ein Problem … trotzdem ist es ratsam, jene zu vermeiden.

(sg)

[edit] [comment] [remove] |2006-04-20| e4 # Aufgabe 3

Programmieren Sie folgende abschnittsweise definierte mathematische Funktion und geben Sie den Funktionswert aus.

     { x^2 - 2x + 3  für x > 1
y =  {
     { 2x - 1        für x <= 1

Hinweis: Verwenden Sie hierfür die if-Anweisung .

 

BSp?

[edit] [comment] [remove] |2006-04-20| e5 # Aufgabe 4

Im nachfolgenden Pseudocode wird ein Algorithmus zur Ermittlung der Anzahl der Tage eines Jahres nach dem Gregorianischen Kalender beschrieben.

1     define new variables year, days;
2     input of year;
3     if (year is not divisible by 4)   {
4        set days to 365;
      }
5     if (year is divisible by 4 and year is not divisible by 100)  {
6        set days to 366;
      }
7     if (year is divisible by 100 and year is not divisible by 400) {
8        set days to 365;
      }
9     if (year is divisible by 400) {
10       set days to 366;
      }
11    output of days;
  1. Wandeln Sie den Pseudocode in gültigen Javascript Code um.
  2. Geben Sie den Ablauf des Programms für die Jahreszahlen 2000 und 2006 anhand der Zeilennummern an.
  3. Optimieren (verkürzen) Sie den Programmcode.

 

I need help!

Ich auch!!!!!!!!!!!!!!!!

Ihr könnt ja nichts ?!?

Jeder kann was, ihr könnt nichts ;-(


Lösungshinweis: (korrigiert .. sg)

var year = parseInt(prompt("Eingabe einer Jahreszahl")), days;

if (year % 4 != 0)
   days = 365;
if (year % 4 == 0 && year % 100 != 0)
   days = 366;
if (year % 100 == 0 && year % 400 != 0)
   days = 365;
if (year % 400 == 0)
   days = 366;

document.write(days);

Grüße Tobias

Hallo,

müsse es nicht heißen

if (divide4!=0){
days=365
}

weil das Jahr nicht durch 4 teilbar sein soll?

rosemi

… richtig … und für die optimierte Fassung können die 366'er Fälle zusammengefasst und die 365'er Fälle in den else-Zweig geschrieben werden .. also

var year = parseInt(prompt("Eingabe einer Jahreszahl")), days;

if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
   days = 366;
else
   days = 365;

document.write(days);

(sg)

[edit] [comment] [remove] |2006-04-20| e6 # Aufgabe 5

Gehen Sie nun von dem folgenden HTML-Grundgerüst aus:

<html><body style="background-color:red"><pre><script type="text/javascript">
var bcolor = "green";

document.body.style.backgroundColor = bcolor;
</script></pre></body></html>
  • Schauen Sie sich das Programm live an.
  • Ändern Sie das Programm so, dass die Hintergrundfarbe mittels window.prompt vom Benutzer eingegeben werden kann.
  • Verwenden Sie nun die Farbdefinition mittels rgb-Werte, indem Sie ein Wertetripel von Dezimalzahlen im Bereich [0 … 255] angeben.
    document.body.style.backgroundColor = "rgb(0,128,255)";
  • Lassen Sie nun die drei Werte mittels dreier window.prompt-Aufrufe eingeben.
  • Stellen Sie sicher, dass die eingegebenen Werte im geforderten Bereich liegen (%-Operator).

 Bitte um Hilfe! Nach ewig langer Probiererei immer noch kein Ergebniss!

var r = parseInt(prompt("Rotwert"),"0"),
    g = parseInt(prompt("Grünwert"),"0"),
    b = parseInt(prompt("Blauwert"),"0");

document.body.style.backgroundColor = "rgb("+r+","+g+","+b+")";

(sg)