From a7461f357352b33521d5d50c0ff25d4fe31bf5d1 Mon Sep 17 00:00:00 2001 From: Philippe Torrel Date: Mon, 22 Jun 2026 14:40:35 +0200 Subject: [PATCH] --- 01_grundlagen/faq/substr.js | 1 + 01_grundlagen/uebungen/#u19-u20-quiz-1.html | 106 ++++++++++++++++ 01_grundlagen/uebungen/#u21_schaltjahr.html | 44 +++++++ .../uebungen/#u22-23-if-else-quiz-2.html | 43 +++++++ 01_grundlagen/uebungen/#u24_leap-year-2.html | 55 +++++++++ .../uebungen/#u25_suche-im-heuhaufen.html | 46 +++++++ .../uebungen/#u26_vornamen-auslesen.html | 32 +++++ 01_grundlagen/uebungen/uebungen-19-26.zip | Bin 0 -> 7696 bytes .../u27-zerlegter-heribert.html | 30 +++++ .../u28_transformierte-ladislaus.html | 32 +++++ .../uebungen-27-35/u29_fuehrende-nullen.html | 37 ++++++ .../uebungen-27-35/u30_quiz-dark-side.html | 48 ++++++++ .../uebungen-27-35/u31_function-console.html | 27 +++++ .../u32-tranformed-ladislaus.html | 29 +++++ .../uebungen-27-35/u33_newsletter.html | 113 ++++++++++++++++++ .../u34-tranformed-ladislaus.html | 80 +++++++++++++ .../u35_reichweite-verbrauch.html | 90 ++++++++++++++ 01_grundlagen/unterricht/tag06/01_if-bsp.html | 37 ++++++ .../unterricht/tag06/02_if-discount-bsp.html | 35 ++++++ .../unterricht/tag06/03_if-else-bsp.html | 36 ++++++ .../tag06/04_ternaerer-operator.html | 40 +++++++ .../tag06/05_logischer-oder-operator.html | 38 ++++++ ...ogischer-operator-oder-short-breakout.html | 41 +++++++ .../tag06/07_logischer-und-operator.html | 39 ++++++ ...logischer-operator-und-short-breakout.html | 41 +++++++ .../unterricht/tag06/09_unaerer-operator.html | 77 ++++++++++++ .../unterricht/tag06/10_str-index-of.html | 57 +++++++++ .../unterricht/tag06/11_str-substring.html | 58 +++++++++ .../unterricht/tag06/12_str-substr.html | 64 ++++++++++ 29 files changed, 1376 insertions(+) create mode 100644 01_grundlagen/faq/substr.js create mode 100644 01_grundlagen/uebungen/#u19-u20-quiz-1.html create mode 100644 01_grundlagen/uebungen/#u21_schaltjahr.html create mode 100644 01_grundlagen/uebungen/#u22-23-if-else-quiz-2.html create mode 100644 01_grundlagen/uebungen/#u24_leap-year-2.html create mode 100644 01_grundlagen/uebungen/#u25_suche-im-heuhaufen.html create mode 100644 01_grundlagen/uebungen/#u26_vornamen-auslesen.html create mode 100644 01_grundlagen/uebungen/uebungen-19-26.zip create mode 100644 01_grundlagen/uebungen/uebungen-27-35/u27-zerlegter-heribert.html create mode 100644 01_grundlagen/uebungen/uebungen-27-35/u28_transformierte-ladislaus.html create mode 100644 01_grundlagen/uebungen/uebungen-27-35/u29_fuehrende-nullen.html create mode 100644 01_grundlagen/uebungen/uebungen-27-35/u30_quiz-dark-side.html create mode 100644 01_grundlagen/uebungen/uebungen-27-35/u31_function-console.html create mode 100644 01_grundlagen/uebungen/uebungen-27-35/u32-tranformed-ladislaus.html create mode 100644 01_grundlagen/uebungen/uebungen-27-35/u33_newsletter.html create mode 100644 01_grundlagen/uebungen/uebungen-27-35/u34-tranformed-ladislaus.html create mode 100644 01_grundlagen/uebungen/uebungen-27-35/u35_reichweite-verbrauch.html create mode 100644 01_grundlagen/unterricht/tag06/01_if-bsp.html create mode 100644 01_grundlagen/unterricht/tag06/02_if-discount-bsp.html create mode 100644 01_grundlagen/unterricht/tag06/03_if-else-bsp.html create mode 100644 01_grundlagen/unterricht/tag06/04_ternaerer-operator.html create mode 100644 01_grundlagen/unterricht/tag06/05_logischer-oder-operator.html create mode 100644 01_grundlagen/unterricht/tag06/06_logischer-operator-oder-short-breakout.html create mode 100644 01_grundlagen/unterricht/tag06/07_logischer-und-operator.html create mode 100644 01_grundlagen/unterricht/tag06/08_logischer-operator-und-short-breakout.html create mode 100644 01_grundlagen/unterricht/tag06/09_unaerer-operator.html create mode 100644 01_grundlagen/unterricht/tag06/10_str-index-of.html create mode 100644 01_grundlagen/unterricht/tag06/11_str-substring.html create mode 100644 01_grundlagen/unterricht/tag06/12_str-substr.html diff --git a/01_grundlagen/faq/substr.js b/01_grundlagen/faq/substr.js new file mode 100644 index 0000000..1477364 --- /dev/null +++ b/01_grundlagen/faq/substr.js @@ -0,0 +1 @@ +'test'.substr(1); diff --git a/01_grundlagen/uebungen/#u19-u20-quiz-1.html b/01_grundlagen/uebungen/#u19-u20-quiz-1.html new file mode 100644 index 0000000..5fd9913 --- /dev/null +++ b/01_grundlagen/uebungen/#u19-u20-quiz-1.html @@ -0,0 +1,106 @@ + + + + + + Übung 19 und 20: Die dunkle Seite von JavaScript + + + +
+
+
+

Übung 19: Die dunkle Seite von JavaScript

+

+ Programmieren Sie nun Stück für Stück ein kleines Quiz, in dem ein Spieler Fragen zu JS beantworten muss und + damit gegen Fehler und schlechten Code — also die dunkle Seite von JS — antritt. Möge der Source mit Ihnen + sein. +

+
    +
  1. +

    + Als ersten Schritt fragen Sie den Spieler nach seinem Namen, speichern diesen in eine Variable und + begrüßen ihn mittels einer Alert-Box. Ergänzen Sie den folgenden Code: +

    +
    +   'use strict'; let username = … alert(…); 
    +
  2. +
  3. +

    + Stellen Sie dem Spieler die Frage, ob er sich fit genug fühlt, um gegen das dunkle JavaScript + anzutreten. Es ist sinnvoll, bei der Frage die Antwortmöglichkeiten anzugeben. Die Antwort speichern Sie + in einer neuen Variable und erstellen als Nächstes eine + if-Verzweigung. Der Rumpf des if soll nur ausgewertet werden, wenn der Spieler + bestätigt, dass er sich stark genug fühlt, das Spiel zu beginnen. In den Rumpf schreiben wir ein + alert, das den Spielstart bestätigt und den Spieler anfeuert. +

    +

    + Für den Fall, dass der Spieler zu feige ist und einen mangelnden Fitness-Grad angegeben hat, schreiben + Sie eine weitere + if-Verzweigung, die den Fall abfängt und den Spieler mit Schimpf und Schande verabschiedet. + Natürlich dürfen Sie auch freundlich bleiben — ganz wie Sie mögen. +

    +
    + Tipp: Schon während Sie das Programm entwickeln, sollten Sie es immer wieder testen. + Führen Sie nach jeder Änderung das Programm erneut aus! +
    +
  4. +
  5. +

    + Nun kann es losgehen. Stellen Sie den Spieler vor seine erste Aufgabe. Deklarieren Sie nach dem alert + eine neue Variable, in der Sie die Antwort des Spielers zu folgender Frage speichern:
    + »Which Operator has the higher priority: * or + ?« +

    +

    + Um auf die Antwort reagieren zu können, schreiben Sie eine weitere + if-Verzweigung, deren Rumpf nur ausgewertet wird, wenn die Antwort stimmt. +

    +

    + alert gratuliert hier zur korrekten Antwort. Wenn Sie mögen, können Sie noch weitere + Verzweigungen mit Fragen einbauen. +

    +
  6. +
  7. +

    + Fügen Sie ein weiteres if für die Variante ein, in der der Spieler eine falsche Antwort + gibt. +

    +
  8. +
+
+
+

Übung 20: Die dunkle Seite von JavaScript

+

+ Für Ihr Spiel ist else ebenfalls hilfreich. Zum Beispiel bei der Frage, ob der Spieler bereit zum Spielen + ist. Statt hier ein zweites + if einzubauen, können Sie else verwenden. +

+

Ersetzen Sie die if-Anweisungen an den richtigen Stellen durch ein else:

+
+
+

Übung 23: Die dunkle Seite schlägt zurück…

+

+ Endlich setzen Sie Ihren Kampf gegen die dunkle Seite von JS fort (siehe Übung 20) und erstellen zwei neue + »Kampf-Sequenzen«: +

+
    +
  • »What's the German word for if« (Mehrere Lösungsmöglichkeiten: wenn, falls).
  • +
  • »Now, please enter a string with a length between 8 and 15 characters…«
  • +
+
+
+
+ + + diff --git a/01_grundlagen/uebungen/#u21_schaltjahr.html b/01_grundlagen/uebungen/#u21_schaltjahr.html new file mode 100644 index 0000000..be20c4b --- /dev/null +++ b/01_grundlagen/uebungen/#u21_schaltjahr.html @@ -0,0 +1,44 @@ + + + + + + Übung 21: Die Sache mit dem Schaltjahr + + + +
+
+
+

Übung 21: Die Sache mit dem Schaltjahr

+

+ Vielleicht gehören Sie zu den Menschen, die »die Sache mit dem Schaltjahr« spannend finden. Und falls Sie es + nicht spannend finden, schreiben Sie einfach trotzdem ein Programm, das berechnet, ob es sich bei einem Jahr + um ein Schaltjahr handelt. +

+

Fragen Sie den Anwender nach dem gewünschten Jahr und speichern Sie die Eingabe in einer Variable.

+

+ Falls das betreffende Jahr ein Schaltjahr ist, soll die Konsole z.B. den Satz »0000 ist ein Schaltjahr!« + ausgeben; ansonsten »0000 ist KEIN Schaltjahr« — mit dem eingegeben Jahr statt 0000. +

+

Ein Jahr ist ein Schaltjahr, wenn das betreffende Jahr

+
    +
  • ganzzahlig durch 400 teilbar ist.
  • +
  • nicht ganzzahlig durch 100, aber ganzzahlig durch 4 teilbar ist.
  • +
+ +
+ Die Berechnung ist übrigens nicht zu 100 Prozent genau, aber für die nächsten 2000 Jahre passt es noch. +
+
+
+
+
+ + + diff --git a/01_grundlagen/uebungen/#u22-23-if-else-quiz-2.html b/01_grundlagen/uebungen/#u22-23-if-else-quiz-2.html new file mode 100644 index 0000000..f1d91d2 --- /dev/null +++ b/01_grundlagen/uebungen/#u22-23-if-else-quiz-2.html @@ -0,0 +1,43 @@ + + + + + + Übung 22: Die dunkle Seite schlägt zurück … + + + +
+
+

Übung 22: Die dunkle Seite schlägt zurück …

+ +

+ Endlich setzt du deinen Kampf gegen die dunkle Seite von JS fort (siehe Übung 20) und erstellst zwei neue + »Kampf-Sequenzen«: +

+

»What's the German word for if« (Mehrere Lösungsmöglichkeiten: wenn, falls).

+

»Now, please enter a string with a length between 8 and 15 characters …«

+
+
+

Übung 23: Die dunkle Seite schlägt zurück…

+

+ Endlich setzen Sie Ihren Kampf gegen die dunkle Seite von JS fort (siehe Übung 20) und erstellen zwei neue + »Kampf-Sequenzen«: +

+
    +
  • »What's the German word for if« (Mehrere Lösungsmöglichkeiten: wenn, falls).
  • +
  • »Now, please enter a string with a length between 8 and 15 characters…«
  • +
+
+
+ + + diff --git a/01_grundlagen/uebungen/#u24_leap-year-2.html b/01_grundlagen/uebungen/#u24_leap-year-2.html new file mode 100644 index 0000000..3ab4dba --- /dev/null +++ b/01_grundlagen/uebungen/#u24_leap-year-2.html @@ -0,0 +1,55 @@ + + + + + + Übung 24: Die Sache mit dem Schaltjahr — Teil 2 + + + +
+
+
+

Übung 24: Die Sache mit dem Schaltjahr — Teil 2

+

+ Verschaffe deinem Schaltjahr-Tool aus Lektion 10 ein Facelifting. Mithilfe der logischen Operatoren kannst + du einige else einsparen und den Code einfacher, kürzer und übersichtlicher gestalten. +

+ +

Ein Jahr ist ein Schaltjahr, wenn das betreffende Jahr

+
    +
  • ganzzahlig durch 400 teilbar ist.
  • +
  • nicht ganzzahlig durch 100, aber ganzzahlig durch 4 teilbar ist.
  • +
+
+
+ Die Berechnung ist übrigens nicht zu 100 Prozent genau, aber für die nächsten 2000 Jahre passt es noch. +
+
+ + +
+
+
+
+ + + diff --git a/01_grundlagen/uebungen/#u25_suche-im-heuhaufen.html b/01_grundlagen/uebungen/#u25_suche-im-heuhaufen.html new file mode 100644 index 0000000..ef39db8 --- /dev/null +++ b/01_grundlagen/uebungen/#u25_suche-im-heuhaufen.html @@ -0,0 +1,46 @@ + + + + + + Übung 25: Wenn sie doch endlich mal jemand finden könnte… die Nadel im Heuhaufen… + + + +
+
+
+

Übung 25: Wenn sie doch endlich mal jemand finden könnte… die Nadel im Heuhaufen…

+

+ Die meisten Menschen verwenden die Redewendung nur symbolisch. Sie heute aber nicht, denn Sie erhalten von + uns den Auftrag, die Nadel wirklich zu finden! +

+ +

+ Natürlich wollen wir Sie nicht wirklich im Heu wühlen lassen. Stattdessen erhalten Sie von uns einen + sauberen heulosen String. Das ist vermutlich auch angenehmer, falls Sie an Heuschnupfen leiden +

+

+ Finden Sie nun heraus, an welcher Position sich die Nadel befindet, und loggen Sie diese Position in die + Konsole. +

+
Übrigens: Zählen gilt nicht!
+
+ +
+
+
+ + + diff --git a/01_grundlagen/uebungen/#u26_vornamen-auslesen.html b/01_grundlagen/uebungen/#u26_vornamen-auslesen.html new file mode 100644 index 0000000..2774f9e --- /dev/null +++ b/01_grundlagen/uebungen/#u26_vornamen-auslesen.html @@ -0,0 +1,32 @@ + + + + + + Übung 26: Wenn ein Vorname nicht reicht… + + + +
+
+
+

Übung 26: Wenn ein Vorname nicht reicht…

+

+ Vielleicht ist Ihnen aufgefallen, dass die Zerlegung nur richtig funktioniert, wenn der Name in der Form + 'Vorname Nachname' vorliegt. +

+

+ Sollte ein Nutzer einen zweiten Vornamen angeben, ordnet das Programm den zweiten Vorname dem Nachnamen zu. + Sie würden für den Namen Ladislaus Coolio Jones fälschlicherweise Folgendes erhalten: +

+

Korrigieren Sie die Ausgabe des folgenden Codes mithilfe von lastIndexOf

+
+
+
+ + + diff --git a/01_grundlagen/uebungen/uebungen-19-26.zip b/01_grundlagen/uebungen/uebungen-19-26.zip new file mode 100644 index 0000000000000000000000000000000000000000..565e6c967e6098f097759fcce242eab1894f5e6d GIT binary patch literal 7696 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 EFH9sGl>h($ literal 0 HcmV?d00001 diff --git a/01_grundlagen/uebungen/uebungen-27-35/u27-zerlegter-heribert.html b/01_grundlagen/uebungen/uebungen-27-35/u27-zerlegter-heribert.html new file mode 100644 index 0000000..a3d673a --- /dev/null +++ b/01_grundlagen/uebungen/uebungen-27-35/u27-zerlegter-heribert.html @@ -0,0 +1,30 @@ + + + + + + Übung 27: Der zerlegte Heribert + + + +
+
+
+

Übung 27: Der zerlegte Heribert

+
    +
  1. Entfernen Sie die überflüssigen Leerzeichen.
  2. +
  3. Zerlegen Sie den Namen in Vor- und Nachnamen.
  4. +
+
+
+
+
+ + + diff --git a/01_grundlagen/uebungen/uebungen-27-35/u28_transformierte-ladislaus.html b/01_grundlagen/uebungen/uebungen-27-35/u28_transformierte-ladislaus.html new file mode 100644 index 0000000..20ea065 --- /dev/null +++ b/01_grundlagen/uebungen/uebungen-27-35/u28_transformierte-ladislaus.html @@ -0,0 +1,32 @@ + + + + + + Übung 28: Der transformierte Ladislaus + + + +
+
+
+

Übung 28: Der transformierte Ladislaus

+

Und weil es so viel Freude macht:

+

+ Speichern Sie den Namen »Ladislaus Jones« in einer Variable und kreieren Sie eine Ausgabe nach dem Schema + '<Nachname>, <Anfangsbuchstabe des Vornamens>.', also + 'Jones, L.'. +

+
+ +
+
+
+ + + diff --git a/01_grundlagen/uebungen/uebungen-27-35/u29_fuehrende-nullen.html b/01_grundlagen/uebungen/uebungen-27-35/u29_fuehrende-nullen.html new file mode 100644 index 0000000..ca99138 --- /dev/null +++ b/01_grundlagen/uebungen/uebungen-27-35/u29_fuehrende-nullen.html @@ -0,0 +1,37 @@ + + + + + + Übung 29: Führende Nullen, Teil 1 + + + +
+
+
+

Übung 29: Führende Nullen, Teil 1

+

+ NerdWorld hat vor einiger Zeit sein Artikelnummer-Konzept geändert. Die neuen Artikelnummern beginnen stets + mit einer 0 — z.B. 0123. Leider gibt es bei den alten Nummern viele, die nicht über eine führenden 0 + verfügen. Sie können aber auch nicht einfach pauschal eine 0 ergänzen, da manche der alten Nummern bereits + mit einer 0 beginnen. In dem Fall soll keine weitere 0 vorangestellt werden. Ergänzen Sie das folgende + Programmfragment, so dass es für jede Belegung der Variable itemNumber (Artikelnummer) die richtige Nummer + im neuen Konzept ausgibt. Verwenden Sie dazu den ternären Operator! +

+
    +
  • 123 => 0123
  • +
  • 7 => 07
  • +
  • 07 => 07
  • +
  • 007 => 007
  • +
+
+
+
+ + + diff --git a/01_grundlagen/uebungen/uebungen-27-35/u30_quiz-dark-side.html b/01_grundlagen/uebungen/uebungen-27-35/u30_quiz-dark-side.html new file mode 100644 index 0000000..0538631 --- /dev/null +++ b/01_grundlagen/uebungen/uebungen-27-35/u30_quiz-dark-side.html @@ -0,0 +1,48 @@ + + + + + + Übung 30: Die dunkle Seite von JavaScript — der Kampf geht weiter + + + +
+
+
+

Übung 30: Die dunkle Seite von JavaScript — der Kampf geht weiter

+ +

+ Es wird Zeit, das Spiel weiter zu optimieren. Nimm dir eine der Fragen vor, die schon implementiert ist: +

+

»Was heißt if auf Deutsch?« (Mehrere Lösungsmöglichkeiten: wenn, falls).

+

+ Der Code deckt schon drei verschiedene Lösungsmöglichkeiten ab. Aber was ist, wenn jemand statt + wenn Wenn oder WENN schreibt? +

+

+ Das Thema Groß- und Kleinschreibung wird dir bei Benutzereingaben öfter begegnen. Für das Spiel würde es zum + Beispiel helfen, wenn der Spieler die Eingabe immer komplett kleinschreibt. Sicher ist der Spieler verwirrt, + wenn das Spiel seine Antwort Wenn als falsch quittiert. +

+

+ Optimiere die betreffende Stelle im Spiel, indem du die Benutzereingabe in Kleinbuchstaben umwandelst — vor + Prüfung der if-Bedingung. +

+
+
+
+ + + diff --git a/01_grundlagen/uebungen/uebungen-27-35/u31_function-console.html b/01_grundlagen/uebungen/uebungen-27-35/u31_function-console.html new file mode 100644 index 0000000..73ad771 --- /dev/null +++ b/01_grundlagen/uebungen/uebungen-27-35/u31_function-console.html @@ -0,0 +1,27 @@ + + + + + + Übung 31: In die Konsole geloggt, Teil 2 + + + +
+
+

Übung 31: In die Konsole geloggt, Teil 2

+

Schreiben Sie eine Funktion, die Ihren Namen in der Konsole ausgibt.

+
+
+
+ + + diff --git a/01_grundlagen/uebungen/uebungen-27-35/u32-tranformed-ladislaus.html b/01_grundlagen/uebungen/uebungen-27-35/u32-tranformed-ladislaus.html new file mode 100644 index 0000000..8ac4b8d --- /dev/null +++ b/01_grundlagen/uebungen/uebungen-27-35/u32-tranformed-ladislaus.html @@ -0,0 +1,29 @@ + + + + + + Übung 32: Der transformierte Ladislaus, Teil 2 + + + +
+
+
+

Übung 32: Der transformierte Ladislaus, Teil 2

+

+ Schreiben Sie eine Funktion logTransformedName, die Vor- und Nachname als Parameter + entgegennimmt und einen String der Form +

+

+ <Nachname>, <Anfangsbuchstabe des Vornamens>. +

+

ausgibt.

+
+
+
+ + + diff --git a/01_grundlagen/uebungen/uebungen-27-35/u33_newsletter.html b/01_grundlagen/uebungen/uebungen-27-35/u33_newsletter.html new file mode 100644 index 0000000..8931008 --- /dev/null +++ b/01_grundlagen/uebungen/uebungen-27-35/u33_newsletter.html @@ -0,0 +1,113 @@ + + + + + + Übung 33: Hello, dear ${recipient} + + + +
+
+
+

Übung 33: Hello, dear ${recipient}

+
    +
  1. +

    + Stell dir vor, du arbeitest für ein Unternehmen, das Veranstaltungen organisiert. Du sollst für diesen + Auftraggeber Einladungen verschicken: +

    + + +
    +Dear Heribert,
    +
    +Thank you for your registration.
    +
    +Event Details:
    +- Event: Tech Conference
    +- Date: July 24
    +- Venue: Main Hall, Conference Center
    +
    +We look forward to seeing you at the event!
    +
    +Best regards,
    +The Event Team
    +                
    +
    +

    + Programmiere eine Funktion, die eine Einladung, simuliert durch eine Konsolenausgabe, für die Teilnehmer + generiert. Dabei soll statt Heribert ein beliebiger Name verwendbar sein. +

    + +

    Folgende Aufrufe erfolgen später aus der Datenbank:

    + +
    +showInvitationFor('Heribert');
    +showInvitationFor('Goldy');
    +showInvitationFor('Ladislaus');
    +                
    +
    +
  2. +
  3. +

    + Da unser Auftraggeber verschiedene Veranstaltungen zu verschiedenen Zeitpunkten organisiert, sollen im + nächsten Schritt zwei weitere Parameter angegeben werden, in dem die Art der Veranstaltung, sowie ein + Datum, jeweils als Text, übergeben wird. +

    +

    + Einen zweiten Parameter kannst du bei der Funktionsdefinition innerhalb der Klammern durch Komma + getrennt angeben. +

    + +
    +let showInvitationFor = (recipient, event, date) => {
    +  // ...
    +}
    +                
    +
    +

    + Es sind auch weitere Parameter möglich, aber hier benötigst du nur drei. Innerhalb des Rumpfes kannst du + die neuen Parameter wie gewohnt wie eine Variable verwenden. +

    +

    Folgende Aufrufe erfolgen später aus der Datenbank:

    + +
    +showInvitationFor('Heribert', 'Tech Conference', 'July 24');
    +showInvitationFor('Goldy', 'Art Workshop', 'August 15');
    +showInvitationFor('Ladislaus', 'Music Festival', 'September 10');
    +                
    +
    +
  4. +
  5. +

    + Dein Auftraggeber bietet auch einen VIP-Status für Teilnehmer an. Fall ein Teilnehmer diesen Status + gebucht hat, soll der einleitende Text der Einladung entsprechend angepasst werden: +

    +

    Standard-Version

    +

    Thank you for your registration.

    +

    VIP-Version

    +

    You have registered as a VIP! Enjoy exclusive benefits and access to VIP areas.

    +

    Folgende Aufrufe erfolgen später aus der Datenbank:

    + +
    +showInvitationFor('Heribert', 'Tech Conference', 'July 24', true);
    +showInvitationFor('Goldy', 'Art Workshop', 'August 15', false);
    +showInvitationFor('Ladislaus', 'Music Festival', 'September 10', true);
    +                
    +
    +
  6. +
+
+
+
+ + + diff --git a/01_grundlagen/uebungen/uebungen-27-35/u34-tranformed-ladislaus.html b/01_grundlagen/uebungen/uebungen-27-35/u34-tranformed-ladislaus.html new file mode 100644 index 0000000..39ce653 --- /dev/null +++ b/01_grundlagen/uebungen/uebungen-27-35/u34-tranformed-ladislaus.html @@ -0,0 +1,80 @@ + + + + + + Übung 34: Der transformierte Ladislaus, Teil 3 + + + +
+
+
+

Übung 34: Der transformierte Ladislaus, Teil 3

+

+ Schreiben Sie eine Funktion transformName, die Vor- und Nachname als Parameter entgegennimmt + und einen String der Form +

+

+ <Nachname>, <Anfangsbuchstabe des Vornamens>. +

+
+

Formular:

+
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+
+ + + + +
+
+
+
+

Transformierter Name:

+
+
+
+ + + diff --git a/01_grundlagen/uebungen/uebungen-27-35/u35_reichweite-verbrauch.html b/01_grundlagen/uebungen/uebungen-27-35/u35_reichweite-verbrauch.html new file mode 100644 index 0000000..f047ce8 --- /dev/null +++ b/01_grundlagen/uebungen/uebungen-27-35/u35_reichweite-verbrauch.html @@ -0,0 +1,90 @@ + + + + + + Übung 35: Reichweite & Verbrauch, Teil 3 + + + +
+
+
+

Übung 35: Reichweite & Verbrauch, Teil 3

+

+ Überarbeiten Sie Reichweite & Verbrauch, Teil 2 (Übung 18). Erstellen Sie passende Funktionen, die die + Benutzereingaben zurückgeben. +

+
+
+ +
+
+
+
+
+
+ + +
+
+
+
+ + +
+
+
+ +
+
+
+ + +
+
+
+ +
+
+ + + +
+
+
+ +
+
+
+
+
+ + + diff --git a/01_grundlagen/unterricht/tag06/01_if-bsp.html b/01_grundlagen/unterricht/tag06/01_if-bsp.html new file mode 100644 index 0000000..e102838 --- /dev/null +++ b/01_grundlagen/unterricht/tag06/01_if-bsp.html @@ -0,0 +1,37 @@ + + + + + + if - Verzweigung + + + +
+
+

if - Verzweigung

+

+ if (BEDINGUNG) { /* ANWEISUNGEN */ } +

+
+
+ + + diff --git a/01_grundlagen/unterricht/tag06/02_if-discount-bsp.html b/01_grundlagen/unterricht/tag06/02_if-discount-bsp.html new file mode 100644 index 0000000..4f7bea1 --- /dev/null +++ b/01_grundlagen/unterricht/tag06/02_if-discount-bsp.html @@ -0,0 +1,35 @@ + + + + + + if - Verzweigung + + + +
+
+

if - Verzweigung

+

+ if (BEDINGUNG) { /* ANWEISUNGEN */ } +

+
+
+ + + diff --git a/01_grundlagen/unterricht/tag06/03_if-else-bsp.html b/01_grundlagen/unterricht/tag06/03_if-else-bsp.html new file mode 100644 index 0000000..dab0a8c --- /dev/null +++ b/01_grundlagen/unterricht/tag06/03_if-else-bsp.html @@ -0,0 +1,36 @@ + + + + + + if - Verzweigung + + + +
+
+

if - Verzweigung

+

+ if (BEDINGUNG) { /* ANWEISUNGEN */ } else { /* ANSONSTEN ANWEISUNGEN */ } +

+
+
+ + + diff --git a/01_grundlagen/unterricht/tag06/04_ternaerer-operator.html b/01_grundlagen/unterricht/tag06/04_ternaerer-operator.html new file mode 100644 index 0000000..ca38de8 --- /dev/null +++ b/01_grundlagen/unterricht/tag06/04_ternaerer-operator.html @@ -0,0 +1,40 @@ + + + + + + Ternärer Operator | Tertiärer Operator + + + +
+
+

Ternärer Operator | Tertiärer Operator

+
+
+
+ + + diff --git a/01_grundlagen/unterricht/tag06/05_logischer-oder-operator.html b/01_grundlagen/unterricht/tag06/05_logischer-oder-operator.html new file mode 100644 index 0000000..023de37 --- /dev/null +++ b/01_grundlagen/unterricht/tag06/05_logischer-oder-operator.html @@ -0,0 +1,38 @@ + + + + + + Logischer Operator | oder (||) + + + +
+
+

Logischer Operator | oder (||)

+
+
+
+ + + diff --git a/01_grundlagen/unterricht/tag06/06_logischer-operator-oder-short-breakout.html b/01_grundlagen/unterricht/tag06/06_logischer-operator-oder-short-breakout.html new file mode 100644 index 0000000..2990060 --- /dev/null +++ b/01_grundlagen/unterricht/tag06/06_logischer-operator-oder-short-breakout.html @@ -0,0 +1,41 @@ + + + + + + Logischer Operator - oder (||) - short breakout + + + +
+
+

Logischer Operator - oder (||) - short breakout

+
+ Only null, undefined, 0, false, NaN and "" are falsy in JavaScript. Everything else is truthy. +
+
+
+
+ + + diff --git a/01_grundlagen/unterricht/tag06/07_logischer-und-operator.html b/01_grundlagen/unterricht/tag06/07_logischer-und-operator.html new file mode 100644 index 0000000..0431c06 --- /dev/null +++ b/01_grundlagen/unterricht/tag06/07_logischer-und-operator.html @@ -0,0 +1,39 @@ + + + + + + Logischer Operator - und (&&) + + + +
+
+

Logischer Operator - und (&&)

+
+
+
+ + + diff --git a/01_grundlagen/unterricht/tag06/08_logischer-operator-und-short-breakout.html b/01_grundlagen/unterricht/tag06/08_logischer-operator-und-short-breakout.html new file mode 100644 index 0000000..1916b81 --- /dev/null +++ b/01_grundlagen/unterricht/tag06/08_logischer-operator-und-short-breakout.html @@ -0,0 +1,41 @@ + + + + + + Logischer Operator - und (&&) - short breakout + + + +
+
+

Logischer Operator - und (&&) - short breakout

+
+ Only null, undefined, 0, false, NaN and "" are falsy in JavaScript. Everything else is truthy. +
+
+
+ + + diff --git a/01_grundlagen/unterricht/tag06/09_unaerer-operator.html b/01_grundlagen/unterricht/tag06/09_unaerer-operator.html new file mode 100644 index 0000000..636655b --- /dev/null +++ b/01_grundlagen/unterricht/tag06/09_unaerer-operator.html @@ -0,0 +1,77 @@ + + + + + + Unärer Operator - not (!) + + + +
+
+

Unärer Operator - not (!)

+

+ + The logical NOT + + Der logische NICHT (!) (logische Komplementierung, Negation) Operator wandelt Wahrheit in Falschheit und + umgekehrt. Er wird typischerweise mit booleschen (logischen) Werten verwendet. Wenn er mit nicht-booleschen + Werten verwendet wird, gibt er false zurück, wenn sein einzelner Operand in + true umgewandelt werden kann; andernfalls wird true zurückgegeben. +

+ + + +
+ +
+
+
+
+ + + diff --git a/01_grundlagen/unterricht/tag06/10_str-index-of.html b/01_grundlagen/unterricht/tag06/10_str-index-of.html new file mode 100644 index 0000000..9305341 --- /dev/null +++ b/01_grundlagen/unterricht/tag06/10_str-index-of.html @@ -0,0 +1,57 @@ + + + + + + String.indexOf() | String.lastIndexOf() + + + +
+
+

String.indexOf() | String.lastIndexOf()

+
+

+ String.indexOf() +

+

+ Die indexOf() Methode gibt den Index der Zeichenkette innerhalb des aufrufenden String + Objekts des ersten Vorkommnis des angegebenen Wertes beginnend bei fromIndex zurück. Gibt + -1 zurück, wenn der Wert nicht gefunden wurde. +

+
+
+ + + diff --git a/01_grundlagen/unterricht/tag06/11_str-substring.html b/01_grundlagen/unterricht/tag06/11_str-substring.html new file mode 100644 index 0000000..2e7ed4a --- /dev/null +++ b/01_grundlagen/unterricht/tag06/11_str-substring.html @@ -0,0 +1,58 @@ + + + + + + String.substring(startIndex, endIndex) + + + +
+
+

+ String.substring(startIndex, endIndex) +

+

+ Die substring() Methode gibt einen Teilstring eines Strings zwischen einem Index und einem + anderen (EndIndex), oder dem Ende der Zeichenkette zurück... +

+
+
+ + + diff --git a/01_grundlagen/unterricht/tag06/12_str-substr.html b/01_grundlagen/unterricht/tag06/12_str-substr.html new file mode 100644 index 0000000..d3701e9 --- /dev/null +++ b/01_grundlagen/unterricht/tag06/12_str-substr.html @@ -0,0 +1,64 @@ + + + + + + String.substr(startIndex, length) DEPREACATED + + + +
+
+

+ String.substr(startIndex, length) DEPREACATED +

+

+ Die substr()-Methode von String-Werten gibt einen Teil dieses Strings zurück, beginnend am + angegebenen Index und wird um eine bestimmte Anzahl von Zeichen verlängert. +

+
+
+ + +