Lösungen zu den Javascript-Aufgaben von der Seite Highscore.de

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Hey.

    Sorry, da hab ich wohl nur auf Aufgabe 6 geantwortet und 5 übersehen :D.

    Folgendes:
    Du führst in Zeile 13 & 16 zwei... schwachsinnige Überprüfungen durch :P.
    isNaN() ist eine Methode. Sie erwartet die zu überprüfene Variable als Parameter.
    In diesem Fall möchtest du überprüfen, ob Zahl1 einen nicht-numerischen Wert enthält. Das erhältst du über: isNaN(Zahl1) (wenn der Aufruf true zurückgibt, dann ist es kein numerischer Wert).

    In Zeile 16... möchtest du überprüfen, ob es eine Kommazahl ist?
    Das brauchst du nicht. Wie gesagt, überprüfst du a) schon in Zeile 13 auf numerische Werte (zu denen auch Kommazahlen gehören).
    Und b) machst du den gleichen "Fehler" wie später bei Aufgabe 6: Bereits in Zeilen 11 + 12 wandelst du die Eingabe in Kommazahlen um ;). Es können also gar keine Fehlermeldungen aufkommen, da du zum Zeitpunkt der Überprüfung (z.B. Zeile 13) bereits nur numerische Werte besitzt ;D.
  • HI Daniel!

    Ich habe keinen zweifel daran das der Job das richtige für dich ist wenn es dir spaß macht dann ist alles ok ... ja du hast recht man muss nicht unbedingt der Freak sein um in dieser Branche zu arbeiten ich kann dich aufjeden fall beruhigen angenommen du würdest das Studieren da denkt man nämlich auch man hat vorkenntnisse allerdings fällt einem dann ziehmlich schnell auf das man keine Vorkenntnisse hat :) Nun ja das mit dem Privatleben und Job trenen geht nicht immer weil manchmal hat man so komplexe Aufgaben mit denenn beschäftigt man sich vielleicht auch mal am Wochenende das bringt der Beruf eben mit sich aber ist auch nicht bei jedem so und ist abhängig von Firma und bereich in dem man arbeitet du wirst sicher auch bald die Erfahrung machen sobald du das Programmieren drauf hast wird es sowas wie nen Hobby dann fängst du zuhause selbst mit deinen eigenen Projekten an usw :) so gings mir zumindest ich wünsch dir noch weiterhin viel erfolg !
  • Guten Morgen SargTex und old_pirate.

    Erstmal zu SargTex. Danke nochmals für deinen Tipp, ich hab jetzt das Programm so geändert, dass wenn ich einen Buchstaben eingebe, eine Fehlermeldung bekomme(wie ich es ja will):D. Jedoch gibt es bei parseFloat() keine Fehlermeldung, wenn ich eine "Nicht-Kommazahl" einfüge. Aber bei selfhtml steht auch folgendes zu parseFloat() "parseFloat()

    "Wandelt eine zu übergebende Zeichenkette in eine Zahl um und gibt diese als numerischen Wert zurück. Wenn sich die Zahl als Kommazahl interpretieren lässt, wird dies berücksichtigt."

    Kann ich auch i-wie anders eine Fehlermeldung erzeugen, dass Ganzzahlen wie (z.B 2, 12,55) nicht angenommen werden und nur Kommazahlen?

    Nun zu Pirat :)

    Danke für deine Worte und ich hab mich echt darüber gefreut, als ich deinen Comment gelesen habe. Ich bin echt motiviert diesen Beruf zu lernen und auch sehr verbissen :D Deshalb denke ich auch, dass spätestens mit Beginn der Ausbildung im August richtig heiß darauf bin, meine eigenen Programme zu programmieren :D

    Gruß Daniel

    P.S. Es kommen noch viel mehr Aufgaben, womit ich euch nerve :P
  • Hallo Daniel schön das du dich über meine Beiträge freust :)

    Heute halte ich dir mal keine "predigt"sondern komm mit einer Lösung für deine Aufgabe 5 an :)

    also schau dir das mal an :

    Quellcode

    1. <html>
    2. <head>
    3. <title>Lösungen</title>
    4. <script type="text/javascript">
    5. function rechne()
    6. {
    7. var x, y;
    8. var regex = /.*\..*/; // regulärer Ausdruck zur Überprüfung der Eingabe
    9. x = prompt("Bitte geben Sie eine Kommazahlen ein!" ,"");
    10. y = prompt("Bitte geben Sie eine zweite Kommazahl ein, die mit der Vorherigen addiert werden soll!","");
    11. if( x.match(regex) && y.match(regex) )
    12. {
    13. document.write(parseFloat(x) + parseFloat(y) );
    14. }
    15. else
    16. {
    17. alert ("Bitte geben Sie eine Kommazahl ein");
    18. rechne();
    19. }
    20. if ( isNaN(x, y)) {
    21. alert("Sie haben leider keine Kommazahlen eingeben, versuchen Sie es erneut!");
    22. rechne();
    23. }
    24. }
    25. </script>
    26. </head>
    27. <body onload="rechne()"> <!-- onload ruft Funktion bei öffnen der Seite auf -->
    28. </body>
    29. </html>
    Alles anzeigen


    also erstmal var summe und zahl hab ich rausgeschmißen die brauchst du ja gar nciht wenn du es so rechnest:

    Quellcode

    1. document.write(parseFloat(x) + parseFloat(y) )


    So nun wolltest du ja das er nur noch kommazahlen annimmt und keine ganzenzahlen mehr ich hab das ganze jetzt mit regulären Ausdrücken gelöst ! Es gibt sicher noch einen anderen weg aber ich mir ist eben dieser grade eingefallen.

    zu den Regulären Ausdrücken mit diesen kannst du Zeichenketten auf verschiedene Musterüberprüfen das ist nüztlich wenn man wie in deinem Fall Benutzereingaben überprüfen möchte oder mehrer Datein nach bestimmten Worten Mustern etc durchsuchen möchte aber das ist ein anderes Thema!

    Ich habe dir oben eine var regex angelegt :

    Quellcode

    1. var regex = /.*\..*/;


    sieht etwas kompliziert aus ist es aber gar nicht die beiden "/ /" sind sogenannte Delimiter die den Ausdruck begrenzen der erste "." steht für ein beliebiges zeichen das "*" für beliebig oft
    "\." steht für den Punkt an sich "also es muss ein punkt folgen " auf deutsch du suchst hier nach einem Ausdruck der mit einem Beliebigen Zeichen beginnt das Beliebig oft vorkommen kann oder auch ein anderes folgen kann danach muss ein punkt folgen und nach dem Punkt können nochmals beliebige zeichen folgen also zum Beispiel 44.7

    also du suchst nach einer Kommazahl wenn keine Kommazahl eingeben wird wird die function rechne() erneut aufgerufen es ist übrigens immer sinnvoll functionen zu machen und möglichst Globale Variablen zu vermeiden nur so am rande

    dann schau dir auch nochmal unden beim body den tag "onload" an das bedeutet das sobald die seite geladen wird die fuction die hinter diesem "onload" aufgerufen wird ausgeführt wird ok das ist nicht ganz richtig die funktion wird erst aufgerufen wenn der Browser das endtag des body gelesen hat heißt also hättest du ziwschen <body> und </body> noch etwas stehen würde erst dieser code ausgeführt werden und erst dann die fucktion rechne() aber das geht so schnell das es für dich eh den anschein macht als würde es sofort aufgerufen werden aber das nur zu info

    Die lösung ist sicher etwas verbesserungswürdig kannst ja selbst noch weng rumprobieren und testen. Ich hoffe du hast alles Verstanden wenn nicht dann einfach fragen und schau dir mal die Regulären Ausdrücke an die sind ganz wichtig für Scriptsprachen wie JS usw.

    danielfett.de/internet-und-ope…ikel,regulaere-ausdruecke

    finde hier sind sie ganz gut erklärt !

    Frohes schaffen noch !
  • Hallo old_pirate
    Ich danke dir für deine Mühe, aber ich bin gerade eben selber auf die regulären Ausdrücke bekommen und hab mein Programm selber fertig gestellt. Dennoch finde ich deine Lösung auch sehr interessant und werde deine Tipps befolgen. Ich hab mir die regulären Ausdrücke bei selfhtml angeguckt, aber dein Link schaut noch besser aus :P
    Für deine Mühe danke ich dir sehr :)

    Ich poste auch meine Lösung rein, villt können ja welche daran noch Kritik(positiv wie auch negativ) ausüben. Ich würde mich über ein Statement von dir über meine Lösung freuen :)

    Quellcode

    1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    2. "http://www.w3.org/TR/html4/strict.dtd">
    3. <html>
    4. <head>
    5. <title>Lösung</title>
    6. </head>
    7. <body>
    8. <script type="text/javascript">
    9. var input1 ;
    10. var input2 ;
    11. var expression = /^\d+\.?\d+$/ ;
    12. var result1 ;
    13. var result2 ;
    14. var Summe = input1 + input2;
    15. input1 = prompt("Bitte geben Sie eine Zahl ein", "");
    16. input2 = prompt("Bitte geben Sie die zweiter Zahl ein","");
    17. if (isNaN(input1) || isNaN(input2)) {
    18. alert("Bitte geben sie eine Zahl ein!")
    19. }
    20. result1 = expression.test(input1);
    21. result2 = expression.test(input2);
    22. if (result1 == true && result2 == true) {
    23. Summe = parseFloat(input1) + parseFloat(input2) ;
    24. document.write(Summe);
    25. } else {
    26. alert("Bitte geben Sie eine Kommazahl ein!");
    27. }
    28. </script>
    29. </body>
    30. </html>
    Alles anzeigen

    Achja, ich hab test() genommen und du match(), beides funktioniert. Ist match() geläufiger oder ist das jedem selbst überlassen?
    Gruß Daniel
  • So Daniel !

    Also zuerst einmal bin ich erhlich gesagt beeindruckt von deiner Lösung wenn du da wirklich von selbst drauf gekommen bist dann hast du schon vorher erkannt worauf ich hinauswollte als ich meinte die lösung wäre etwas verbesserungs würdig :)

    Dein regulärer Ausdruck ist nämlich besser als meiner und sparrt dir etwas Arbeit jedoch habe ich einiges zu bemengeln schau dir das mal an

    Quellcode

    1. <?xml version="1.0" encoding="iso-8859-1"?>
    2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    3. "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    4. <html xmlns="http: // www.w3.org/1999/xhtml" xml:lang="en">
    5. <head>
    6. <title>Lösung</title>
    7. <script type="text/javascript">
    8. function rechne()
    9. {
    10. var input1 ;
    11. var input2 ;
    12. var expression = /^\d+\.\d+$/ ;
    13. input1 = prompt("Bitte geben Sie eine Zahl ein", "");
    14. input2 = prompt("Bitte geben Sie die zweiter Zahl ein","");
    15. if (input1.match(expression) && input2.match(expression)) {
    16. document.write(parseFloat(input1) + parseFloat(input2));
    17. } else {
    18. alert("Bitte geben Sie eine Kommazahl ein!");
    19. rechne();
    20. }
    21. }
    22. </script>
    23. </head>
    24. <body onload="rechne()">
    25. </body>
    26. </html>
    Alles anzeigen


    so erstmal zum Doctype es ist lobenswert das du einen benutzt aber wenn du einen benutzt dann auch richtig :) und nicht so :

    Quellcode

    1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    2. <html>

    siehst du den unterschied ? zu meinem und deinem ?
    Außerdem solltest du wenn du neue seiten schreibst immer xhtml1.1 Benutzen oder noch besser HTML 5.0(nimm lieber erstmal XHTML1.1 das ist jetzt für den Anfang besser bei HTML 5 müsstest du erst die API lesen sowie ich :) )

    als nächstes hast du wieder einmal keine Function gemacht und dein script steht im body :cursing:

    nun zu deinem REGEX der ist wirklich gut nur hast du nicht außreichend getestet schon mal geschaut was passiert wenn du 88 +44 eingibst ?

    ja richtig es wird berechnet genau was du nicht willst! woran liegt das ?

    an dem Fragezeichenoperator nach dem Punkt der sagt nämlich das der Punkt vorkommen kann aber nicht muss und bei einer Kommazahl muss der Punkt vorkommen

    Dann ist mir auch noch aufgefallen das du dir viel sparen kannst schau dir mal meinen Code an durch den REGEX kannst du dir aufjedenfall die abfrage isNAN sparen da ja nur nach dezimalzahlen gesucht wird, würdest du buchstaben eingeben läuft er automatisch in den else zweig und achte drauf das du im else zweig die funktion rechne() nochmal aufrufst weil für den User ist es sicher blöd wenn er sich vertippt und dann die ganze Seite nochmal neuladen muss vestehst du ? Außerdem kannst du dir die ganzen Variablen sum und soweiter sparen die bräuchtest doch nur wennst das ergebnis mit einem alert ausgeben willst !

    was das test und match angeht muss ich dir gestehn weiß ich keine antwort drauf weil ich nur das match kenne du kannst ja mal selbst googeln oder austesten was der unterschied ist !

    Ich hoffe ich war nicht zu hart mit dir :) aber um so mehr lernst du deine lösung war trotzdem gut sage ich nochmal !

    Viele Grüße
  • Huhu old_pirat :)
    Ich danke nochmals für dein Feedback.Ich habe deine wirklich guten Ratschläge berücksichtigt und poste meine verbesserte Lösung zu Aufgabe 5.

    Quellcode

    1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    2. "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    3. <html xmlns="http://www.w3.org/1999/xhtml" xml:language="en">
    4. <head>
    5. <title>Lösung</title>
    6. <script type="text/javascript">
    7. function rechne() {
    8. var input1 ;
    9. var input2 ;
    10. var expression = /^\d+\.\d+$/ ;
    11. var result1 ;
    12. var result2 ;
    13. input1 = prompt("Bitte geben Sie eine Zahl ein", "");
    14. input2 = prompt("Bitte geben Sie die zweiter Zahl ein","");
    15. result1 = expression.test(input1);
    16. result2 = expression.test(input2);
    17. if (result1 == true && result2 == true) {
    18. document.write(parseFloat(input1) + parseFloat(input2));
    19. } else {
    20. alert("Bitte geben Sie eine Kommazahl ein!");
    21. rechne();
    22. }
    23. }
    24. </script>
    25. </head>
    26. <body onload="rechne()">
    27. </body>
    28. </html>
    Alles anzeigen


    Ich mach mich dann wieder an meine Aufgaben. Wir schreiben dann bestimmt wieder.
    Nochmals ein großes Danke

    Gruß Daniel
  • So nun kommt Auf gabe 7, die sich wiederum auf Aufgabe 6 bezieht. Hier die Aufgabenstellung:

    7. Erweitern Sie Ihr Javascript-Programm aus Aufgabe 6 dahingehend, dass der Anwender selber festlegen kann, wie viele Zahlen er eingeben möchte. Fordern Sie dazu den Anwender zuallererst zur Eingabe einer Zahl auf, die festlegt, wie viele Zahlen er für die Multiplikation eingeben möchte.

    Ich hab die Lösung fast komplett, die Eingabe passt. Bloß mein Problem ist, ich weiß nicht wie ich ausdrücken soll, das alle Variabeln, die in Ganzzahlen [/i] gespeichert sind, nacheinander multipliziert werden :/ Ich hab versucht zu googln, aber i-wie hab ich nichts wirklich passendes gefunden, was mir helfen könnt.

    Meine noch nicht fertige Lösung

    Quellcode

    1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    2. "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    3. <html xmlns="http://www.w3.org/1999/xhtml" xml:language="en">
    4. <head>
    5. <title>Lösungen</title>
    6. <script type="text/javascript">
    7. function rechne() {
    8. var i = prompt("Wie viele Zahlen möchten Sie miteinander multiplizieren?","");
    9. document.write("Sie möchten " + i + " Zahlen miteinander multiplizieren");
    10. var Ganzzahlen = new Array(i);
    11. for (zaehler= 0; zaehler < i; zaehler++)
    12. Ganzzahlen[i] = prompt("Geben Sie bitte ihre Zahlen ein, die Sie multiplizieren wollen!","");
    13. if (isNaN(Ganzzahlen[i])) {
    14. alert("Sie haben keine Zahl eingegeben, Abbruch!");
    15. rechne();
    16. } else {
    17. alert("Die angegebenen Zahlen von Ihnen werden nun multipliziert");
    18. Ergebnis = Ganzzahlen[i] * Ganzzahlen[i+1]
    19. document.write("<br />" + "<b>Das Ergebnis ist: </b>" + parseInt(Ergebnis));
    20. }
    21. }
    22. </script>
    23. </head>
    24. <body onload="rechne()">
    25. </body>
    26. </html>
    Alles anzeigen


    In Zeile 20 ist mein Problem, denke ich zumindestens. Bitte um Hilfe und danke im vorraus :)

    Gruß Daniel
  • Hey :).

    Eine Multiplikation führt man folgendermaßen aus (siehe auch: Simple Math in JavaScript):

    Quellcode

    1. var result = 10;
    2. result = result / 2;
    3. alert(result); //sollte "5" sein


    Davon gibt es auch noch eine Kurzform:

    Quellcode

    1. var result = 10;
    2. result /= 5; //macht das gleiche wie: result = result / 5;
    3. result /= 4;
    4. alert(result); //sollte nun 0.5 sein


    /EDIT: Ich sollte mir angewöhnen, Posts zu Ende zu lesen :D:D.

    1. Deine Multiplikation steht in keiner Schleife ;). Aktuell gibst du 2 Zahlen ein und multiplizierst dann die dritte mit der vierten (pass auf- Arrays sind zero-indexed, d.h. fangen bei 0 an zu Zählen). Kleiner Tipp: Nimm die Variable "i" als Zählervariable und nenn die Anzahl der Zahlen iwie anders, z.B. "anzahlZahlen". Variablen wie "i", "j", "k" werden oft als Zählervariable verwendet- alles andere verwirrt nur :D.
    2. In Zeile 0 fehlt das Semikolon.

    So würde ich das ganze lösen:

    Quellcode

    1. if (i == 0) {
    2. alert("Sie haben keine Zahlen angegeben. Abbruch!");
    3. rechne();
    4. }else {
    5. alert("Die angegebenen Zahlen von Ihnen werden nun multipliziert");
    6. var ergebnis = 1;
    7. for (var k = 0; k < i; ++k) {
    8. ergebnis *= parseInt(Ganzzahlen[k]); //WICHTIG: parseInt
    9. }
    10. document.write("<br />" + "<b>Das Ergebnis ist: </b>" + parseInt(Ergebnis));
    11. }
    Alles anzeigen
  • Hallo SargTex
    Ich haben deinen Vorschlag angenommen, jedoch bekomme ich nur als Ergebnis "NaN" herraus, obwohl ich, wie du beschrieben hast, den parseInt() Befehl genommen habe:/

    Gruß Daniel

    /EDIT Funktioniert doch. Hab bloß bei deinem Post, das k übernommen. Dieses muss bei mir aber AnzahlZahlen sein :D

    Quellcode

    1. ergebnis *= parseInt(Ganzzahlen[AnzahlZahlen]); //WICHTIG: parseInt


    Poste meine vollständige Lösung zu Aufgabe 7 noch dazu :)

    Quellcode

    1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    2. "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    3. <html xmlns="http://www.w3.org/1999/xhtml" xml:language="en">
    4. <head>
    5. <title>Lösungen</title>
    6. <script type="text/javascript">
    7. function rechne() {
    8. var AnzahlZahlen = prompt("Wie viele Zahlen möchten Sie miteinander multiplizieren?","");
    9. document.write("Sie möchten " + AnzahlZahlen + " Zahlen miteinander multiplizieren");
    10. var Ganzzahlen = new Array(AnzahlZahlen);
    11. for (i= 0; i < AnzahlZahlen; i++)
    12. Ganzzahlen[AnzahlZahlen] = prompt("Geben Sie bitte ihre Zahlen ein, die Sie multiplizieren wollen!","");
    13. if (isNaN(Ganzzahlen[AnzahlZahlen])) {
    14. alert("Sie haben keine Zahl eingegeben, Abbruch!");
    15. rechne();
    16. } else {
    17. alert("Die angegebenen Zahlen von Ihnen werden nun multipliziert!");
    18. var ergebnis = 1;
    19. for (var k = 0; k < AnzahlZahlen; ++k) {
    20. ergebnis *= parseInt(Ganzzahlen[AnzahlZahlen]) ;
    21. }
    22. document.write("<br />" + "<b>Das Ergebnis ist: </b>" + parseInt(ergebnis));
    23. }
    24. }
    25. </script>
    26. </head>
    27. <body onload="rechne()">
    28. </body>
    29. </html> l
    Alles anzeigen


    Achja, hab deinen Tipp mit der Umbennung meiner Variabeln angenommen(: So ist es auch viel übersichtlicher ;D

    Gruß Daniel

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von Daniel001 ()

  • So nun Aufgabe 8. Ich hoffe, dass ich sie richtig gelöst hab :) Ansonsten bitte ich um konstruktive Kritk ;D

    Aufgabe 8. Erstellen Sie eine Javascript-Anwendung, die mit der Methode write() des Objekts document das Datum des jeweils nächsten Tages in die Webseite schreibt - egal, an welchem Tag im Jahr die Webseite aufgerufen wird. Das Datum soll Tag, Monat und Jahr enthalten.

    Mein Lösung dazu:

    Quellcode

    1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    2. "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    3. <html xmlns="http://www.w3.org/1999/xhtml" xml:language="en">
    4. <head>
    5. <title>Lösungen</title>
    6. <script type="text/javascript">
    7. function Tagesdatum() {
    8. var Datum = new Date() ;
    9. var morgen = Datum.getDate()+1 ;
    10. var TaginderWoche = Datum.getDay()+1 ;
    11. var Wochentag = new Array(6);
    12. Wochentag[0] = "Sonntag" ;
    13. Wochentag[1] = "Montag" ;
    14. Wochentag[2] = "Dienstag" ;
    15. Wochentag[3] = "Mittwoch" ;
    16. Wochentag[4] = "Donnerstag" ;
    17. Wochentag[5] = "Freitag" ;
    18. Wochentag[6] = "Samstag" ;
    19. var MonatimJahr = Datum.getMonth();
    20. var Monat = new Array(11)
    21. Monat[0] = "Januar" ;
    22. Monat[1] = "Februar" ;
    23. Monat[2] = "März" ;
    24. Monat[3] = "April" ;
    25. Monat[4] = "Mai" ;
    26. Monat[5] = "Juni" ;
    27. Monat[6] = "Juli" ;
    28. Monat[7] = "August" ;
    29. Monat[8] = "September" ;
    30. Monat[9] = "Oktober" ;
    31. Monat[10] = "November" ;
    32. Monat[11] = "Dezember" ;
    33. document.write(" Morgen ist " + Wochentag[TaginderWoche] + " der " + morgen + ". " + Monat[MonatimJahr] + ". " + Datum.getFullYear());
    34. }
    35. </script>
    36. </head>
    37. <body onload="Tagesdatum()">
    38. </body>
    39. </html>
    Alles anzeigen


    Gruß Daniel
  • Hallo Daniel!

    Jap deine Lösung ist so richtig und ich finde diesmal wirklich nichts zum mekern !
    Aber da mir gerade Langweilig war hab ich bischen gebastelt und einfach mal switch anweißungen anstatt arrays genommen nur so als alternativ weg falls du die Switch anweißungen noch nicht kennen solltest :)

    Quellcode

    1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    2. "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    3. <html xmlns="http://www.w3.org/1999/xhtml" xml:language="en">
    4. <head>
    5. <title>Lösungen</title>
    6. <script type="text/javascript">
    7. function Tagesdatum() {
    8. var Datum = new Date() ;
    9. var morgen = Datum.getDate()+1 ;
    10. var wochentag;
    11. var monat;
    12. var TaginderWoche = Datum.getDay()+1 ;
    13. switch (TaginderWoche)
    14. {
    15. case 0 : wochentag = "Sonntag";
    16. break;
    17. case 1 : wochentag = "Montag";
    18. break;
    19. case 2 : wochentag = "Dienstag";
    20. break;
    21. case 3 : wochentag = "Mittwoch";
    22. break;
    23. case 4 : wochentag = "Donnerstag";
    24. break;
    25. case 5 : wochentag = "Freitag";
    26. break;
    27. case 6 : wochentag = "Samstag";
    28. break;
    29. }
    30. var MonatimJahr = Datum.getMonth();
    31. switch (MonatimJahr)
    32. {
    33. case 0 : monat="Januar";
    34. break;
    35. case 1 : monat="Februar";
    36. break;
    37. case 2 : monat="März";
    38. break;
    39. case 3 : monat="April";
    40. break;
    41. case 4 : monat="Mai";
    42. break;
    43. case 5 : monat="Juni";
    44. break;
    45. case 6 : monat="Juli";
    46. break;
    47. case 7 : monat="August";
    48. break;
    49. case 8 : monat="September";
    50. break;
    51. case 9 : monat="Oktober";
    52. break;
    53. case 10 : monat="November";
    54. break;
    55. case 11 : monat="Dezember";
    56. break;
    57. }
    58. document.write(" Morgen ist " + wochentag+ " der " + morgen + ". " + monat + ". " + Datum.getFullYear());
    59. }
    60. </script>
    61. </head>
    62. <body onload="Tagesdatum()">
    63. </body>
    64. </html>
    Alles anzeigen


    aber wie gesagt deine Lösung ist genau so richtig meine ist ziehmlich umständlich und ist nur mal so als randnotiz zu sehen!

    Hier noch nen link zu den switch anweißungen:

    teialehrbuch.de/Kostenlose-Kur…Die-switch-Anweisung.html

    Weiter so !
  • Huhu old-pirat
    Ich find es wirklich klasse, dass du dir so viel Mühe machst und mir diese Aufgabe anhand einer switch-Anweisung erklärst :) Ich bin nun an meiner nächsten Aufgabe dran, die aber weitaus schwerer ist (für mich persönlich), aber ich hoffe, dass ich es heute schaffe diese zu lösen und zu posten.

    Gruß Daniel
  • Moin Moin
    So ich poste mal Aufgabe 9 hier rein. Ich bin damit angefangen eine Lösung zu bekommen. Jedoch bin ich an einem Punkt gekommen, wo ich einen Tipp bräuchte. Denn nach dem Array bin ich mir nicht sicher ob ich das nur mit Schleifen hinkriege. Deshalb die Bitte an euch, gebt mir einen Tipp was ich mir angucken bzw. lernen soll, damit ich das Programm zu ende schreiben kann(: Denn nur wenn ich selber entwickle lerne, bzw. wachse ich dran, die Programmiersprache zu lernen.

    Also her mit den Links, damit ich schnell die Aufgabe lösen kann.

    Hier die Aufgabenstellung, wenn jemand das selber ausprobieren will, aber nicht die Lösung reinposten :P, dass will ich machen :D

    9. Erstellen Sie eine Javascript-Anwendung, die den Text einer Webseite langsam einblendet. Der Effekt soll hierbei wie folgt bewerkstelligt werden: Der Text als auch der Hintergrund der Webseite sind schwarz. Beim Laden der Webseite verändert jedoch ein Javascript-Programm die Hintergrundfarbe derart, dass die Webseite immer heller wird, bis die Hintergrundfarbe schließlich komplett weiß ist. Dieser Einblendeffekt soll derart gestaltet sein, dass der Farbübergang von schwarz über grau zu weiß verläuft und keine anderen Farben im Hintergrund zu sehen sein sollen.

    Gruß Daniel

    //EDIT: Ich hab auch schon gegoogelt und mein Chef hat mir dieses Buch, welches man auch kostenlos runterladen kann, empfohlen. Dennoch wäre ich für andere Links auch dankbar

    Mein Link openbook.galileocomputing.de/javascript_ajax/

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Daniel001 ()

  • So nun hab ich die Lösung selbst herausgefunden ;D nach dem Motto" selber denken macht schlau". Aber ab und zu braucht man halt auch ein paar Tipps von euch netten Kollegen. Dafür nochmal ein großes Dankeschön an alle, die einem Noob (ohne Vorkenntnisse)wie mir helfen, dass er für seine Ausbildung im August gerüstet ist :) Ich bin sehr motiviert und engagiert diesen Beruf Fachinformatiker in Anwendungsentwicklung zu erlernen, da mir das programmieren Spaß macht und ich mir gerne den Kopf zerbreche(genauso wie bei meinem Abitur :D).

    Also hier meine Lösung zu Aufgabe 9. Und wie immer sind Kommentare, Anregungen,Verbesserungen erwünscht.

    Quellcode

    1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    2. "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    3. <html xmlns="http://www.w3.org/1999/xhtml" xml:language="en">
    4. <head>
    5. <title>Testseite</title>
    6. <script type="text/javascript">
    7. var Farbe = new Array(92);
    8. Farbe[0] = "#000000";
    9. Farbe[1] = "#030303";
    10. Farbe[2] = "#1A1A1A";
    11. Farbe[3] = "#1C1C1C";
    12. Farbe[4] = "#1F1F1F";
    13. Farbe[5] = "#212121";
    14. Farbe[6] = "#242424";
    15. Farbe[7] = "#262626";
    16. Farbe[8] = "#292929";
    17. Farbe[9] = "#2B2B2B";
    18. Farbe[10] = "#2E2E2E";
    19. Farbe[11] = "#303030";
    20. Farbe[12] = "#333333";
    21. Farbe[13] = "#363636";
    22. Farbe[14] = "#383838";
    23. Farbe[15] = "#3B3B3B";
    24. Farbe[16] = "#3D3D3D";
    25. Farbe[17] = "#404040";
    26. Farbe[18] = "#424242";
    27. Farbe[19] = "#454545";
    28. Farbe[20] = "#474747";
    29. Farbe[21] = "#4A4A4A";
    30. Farbe[22] = "#4D4D4D";
    31. Farbe[23] = "#4F4F4F";
    32. Farbe[24] = "#525252";
    33. Farbe[25] = "#545454";
    34. Farbe[26] = "#575757";
    35. Farbe[27] = "#595959";
    36. Farbe[28] = "#5C5C5C";
    37. Farbe[29] = "#5E5E5E";
    38. Farbe[30] = "#616161";
    39. Farbe[31] = "#636363";
    40. Farbe[32] = "#666666";
    41. Farbe[33] = "#696969";
    42. Farbe[34] = "#6B6B6B";
    43. Farbe[35] = "#6E6E6E";
    44. Farbe[36] = "#707070";
    45. Farbe[37] = "#737373";
    46. Farbe[38] = "#757575";
    47. Farbe[39] = "#787878";
    48. Farbe[40] = "#7A7A7A";
    49. Farbe[41] = "#7D7D7D";
    50. Farbe[42] = "#7F7F7F";
    51. Farbe[43] = "#828282";
    52. Farbe[44] = "#858585";
    53. Farbe[45] = "#878787";
    54. Farbe[46] = "#8A8A8A";
    55. Farbe[47] = "#8C8C8C";
    56. Farbe[48] = "#8F8F8F";
    57. Farbe[49] = "#919191";
    58. Farbe[50] = "#949494";
    59. Farbe[51] = "#969696";
    60. Farbe[52] = "#999999";
    61. Farbe[53] = "#9C9C9C";
    62. Farbe[54] = "#9E9E9E";
    63. Farbe[55] = "#A1A1A1";
    64. Farbe[56] = "#A3A3A3";
    65. Farbe[57] = "#A6A6A6";
    66. Farbe[58] = "#A8A8A8";
    67. Farbe[59] = "#ABABAB";
    68. Farbe[60] = "#ADADAD";
    69. Farbe[61] = "#B0B0B0";
    70. Farbe[62] = "#B3B3B3";
    71. Farbe[63] = "#B5B5B5";
    72. Farbe[64] = "#B8B8B8";
    73. Farbe[65] = "#BABABA";
    74. Farbe[66] = "#BDBDBD";
    75. Farbe[67] = "#BFBFBF";
    76. Farbe[68] = "#C2C2C2";
    77. Farbe[69] = "#C4C4C4";
    78. Farbe[70] = "#C7C7C7";
    79. Farbe[71] = "#C9C9C9";
    80. Farbe[72] = "#CCCCCC";
    81. Farbe[73] = "#CFCFCF";
    82. Farbe[74] = "#D1D1D1";
    83. Farbe[75] = "#D4D4D4";
    84. Farbe[76] = "#D6D6D6";
    85. Farbe[77] = "#D9D9D9";
    86. Farbe[78] = "#DBDBDB";
    87. Farbe[79] = "#DEDEDE";
    88. Farbe[80] = "#E0E0E0";
    89. Farbe[81] = "#E3E3E3";
    90. Farbe[82] = "#E5E5E5";
    91. Farbe[83] = "#E8E8E8";
    92. Farbe[84] = "#EBEBEB";
    93. Farbe[85] = "#EDEDED";
    94. Farbe[86] = "#F0F0F0";
    95. Farbe[87] = "#F2F2F2";
    96. Farbe[88] = "#F5F5F5";
    97. Farbe[89] = "#F7F7F7";
    98. Farbe[90] = "#FAFAFA";
    99. Farbe[91] = "#FCFCFC";
    100. Farbe[92] = "#FFFFFF";
    101. var intzaehler = 0;
    102. function HintergrundfarbeWechseln() {
    103. var Objekt = document.getElementById('Farben');
    104. Objekt.style.backgroundColor = Farbe[intzaehler];
    105. intzaehler++;
    106. window.setTimeout("HintergrundfarbeWechseln()", 100);
    107. }
    108. </script>
    109. </head>
    110. <body id="Farben" onload="HintergrundfarbeWechseln()" style="font-style: italic;">
    111. <h1><b><p>Testseite</p></b></h1>
    112. <br />
    113. <br />
    114. <p>Hallo liebe Welt, hier steht ein schwarzer Text der langsam sichtbar wird, indem wir den Hintergrund mit Javascript von schwarz nach weiß wechseln</p>
    115. </body>
    116. </html>
    Alles anzeigen


    Viel Spaß beim Lesen :) Die nächsten Aufgaben folgen *muhahah* ;D

    Gruß Daniel
  • Nun kommt Aufgabe 10 und meine Lösung.

    10. Überprüfen Sie die Eingabe des Anwenders auf eine gültige Kreditkartennummer. Gültige Kreditkartennummern bestehen wie im Internet üblich ausschließlich und genau aus 16 Ziffern.

    Lösung:

    Quellcode

    1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    2. "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    3. <html xmlns="http://www.w3.org/1999/xhtml" xml:language="en">
    4. <head>
    5. <title>Testseite</title>
    6. <script type="text/javascript">
    7. var input ;
    8. var expression = /^\d{16}$/
    9. var result ;
    10. function Eingabe() {
    11. input = prompt("Bitte geben Sie ihre Kreditkartennummer ein um Geld abzuheben","");
    12. result = expression.test(input) ;
    13. if(result == true) {
    14. alert("Eingabe ist korrekt");
    15. } else {
    16. alert("Ungültige Kreditkartennummer");
    17. Eingabe();
    18. }
    19. }
    20. </script>
    21. </head>
    22. <body onload="Eingabe()">
    23. </body>
    24. </html>
    Alles anzeigen


    Ich denke dieses Programm kann man noch viel mehr ausweiten. Wer möchte, kann dies machen bezüglich auf Passwort-Abfrage und Geld-Ausgabe etc.. Ich mache erstmal mit anderen Aufgaben weiter :)

    Gruß Daniel
  • Aufgabe 11 folgt nun und meine Lösung dazu :)

    11. Überprüfen Sie die Eingabe des Anwenders auf Postleitzahl und Ort. Die Postleitzahl muss aus fünf Ziffern bestehen, der Ort aus mindestens vier und maximal 20 Buchstaben. Postleitzahl und Ort müssen durch mindestens ein Leerzeichen getrennt sein. Die Ortsangabe darf auch die Umlaute ä, ö und ü enthalten.

    Lösung:

    Quellcode

    1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    2. "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    3. <html xmlns="http://www.w3.org/1999/xhtml" xml:language="en">
    4. <head>
    5. <title>Testseite</title>
    6. <script type="text/javascript">
    7. var input ;
    8. var expression = /^\d{5}\s+\w[a-zA-Zäöü_]{4,20}$/
    9. var result ;
    10. function Eingabe() {
    11. input = prompt("Bitte geben Sie ihre Postleitzahl und ihren Ort ein","");
    12. result = expression.test(input) ;
    13. if(result == true) {
    14. alert("Eingabe ist korrekt");
    15. } else {
    16. alert("Ungültige/r Postleitzahl oder Ort");
    17. Eingabe();
    18. }
    19. }
    20. </script>
    21. </head>
    22. <body onload="Eingabe()">
    23. </body>
    24. </html>
    Alles anzeigen


    Ich hoffe ich nerve euch nicht zu sehr damit :/
    Will halt nur alles richtig machen

    Gruß Daniel