From 31dae63fcab23f497a0cc744a8163601f92b26e7 Mon Sep 17 00:00:00 2001 From: Philippe Torrel Date: Thu, 17 Sep 2026 10:41:34 +0200 Subject: [PATCH] --- 01_grundlagen/agenda.md | 2 +- .../uebungen/u32-tranformed-ladislaus.html | 10 ++++ 01_grundlagen/uebungen/u33_newsletter.html | 29 ++++++++-- .../uebungen/u34-tranformed-ladislaus.html | 6 ++- .../uebungen/u35_reichweite-verbrauch.html | 25 ++++++++- 01_grundlagen/uebungen/u36_kekse-array.html | 22 ++++++++ ...-stations.html => u37-train-stations.html} | 53 ++++++++++++++++++- 01_grundlagen/uebungen/u38_alte-listen.html | 4 ++ 8 files changed, 142 insertions(+), 9 deletions(-) rename 01_grundlagen/uebungen/{u37-bus-stations.html => u37-train-stations.html} (57%) diff --git a/01_grundlagen/agenda.md b/01_grundlagen/agenda.md index 6e9a6a1..9fd017d 100644 --- a/01_grundlagen/agenda.md +++ b/01_grundlagen/agenda.md @@ -124,7 +124,7 @@ Lektion 10 erarbeiten **Inhalt:** - Funktionen mit Rückgabewerten -- Guards +- Guards, Restparameter, Defaulparameter - Array Part 1 **Übungen:** diff --git a/01_grundlagen/uebungen/u32-tranformed-ladislaus.html b/01_grundlagen/uebungen/u32-tranformed-ladislaus.html index 75aee92..6d4f182 100644 --- a/01_grundlagen/uebungen/u32-tranformed-ladislaus.html +++ b/01_grundlagen/uebungen/u32-tranformed-ladislaus.html @@ -24,6 +24,16 @@ diff --git a/01_grundlagen/uebungen/u33_newsletter.html b/01_grundlagen/uebungen/u33_newsletter.html index 22706ff..0064b90 100644 --- a/01_grundlagen/uebungen/u33_newsletter.html +++ b/01_grundlagen/uebungen/u33_newsletter.html @@ -104,10 +104,31 @@ showInvitationFor('Ladislaus', 'Music Festival', 'September 10', true); diff --git a/01_grundlagen/uebungen/u34-tranformed-ladislaus.html b/01_grundlagen/uebungen/u34-tranformed-ladislaus.html index a62d669..8fdaa74 100644 --- a/01_grundlagen/uebungen/u34-tranformed-ladislaus.html +++ b/01_grundlagen/uebungen/u34-tranformed-ladislaus.html @@ -69,9 +69,13 @@ const inputLastnameEl = document.querySelector('input[name="lastname"]'); // Funktionsdefinition + const transformName = (firstName, lastName) => { + return `${lastName.charAt(0).toUpperCase()}${lastName.substring(1).toLowerCase()}, ${firstName.charAt(0).toUpperCase()}.`; + }; formTransformEl.addEventListener('submit', (e) => { - e.preventDefault(); + e.preventDefault(); // Standardverhalten unterbinden + outputEl.textContent = transformName(inputFirstnameEl.value, inputLastnameEl.value); }); // console.log(transformName('Max', 'Mustermann')); //=> 'Mustermann, M.' diff --git a/01_grundlagen/uebungen/u35_reichweite-verbrauch.html b/01_grundlagen/uebungen/u35_reichweite-verbrauch.html index 0276577..eb710db 100644 --- a/01_grundlagen/uebungen/u35_reichweite-verbrauch.html +++ b/01_grundlagen/uebungen/u35_reichweite-verbrauch.html @@ -69,19 +69,40 @@ const streckeEl = document.querySelector('input[name="strecke"]'); const benzinMengeEl = document.querySelector('input[name="benzinmenge"]'); - const tankGroesseEL = document.querySelector('input[name="tangroesse"]'); + const tankGroesseEl = document.querySelector('input[name="tangroesse"]'); // 1. Schreiben Sie ein Programm zur Kraftstoffverbrauchsberechnung für Pkws. //const benzinMenge = prompt('Geben Sie die verbrauchte Benzinmenge an!'); //const strecke = prompt('Geben Sie die Strecke an!'); // Funktionen ========= + const calcBenzinMenge = (drivenKm, usedFuelAmount) => { + if (isNaN(drivenKm) || isNaN(usedFuelAmount)) { + return NaN; + } - // + const fuelPer100Km = (usedFuelAmount / drivenKm) * 100; + return fuelPer100Km; + }; + + const calcStrecke = (drivenKm, usedFuelAmount, fuelTankVolume) => { + if (isNaN(drivenKm) || isNaN(usedFuelAmount) || isNaN(fuelTankVolume)) { + return NaN; + } + + const maximumRange = (fuelTankVolume * drivenKm) / usedFuelAmount; + return maximumRange; + }; // EventHandler ======= const onSubmit = (e) => { e.preventDefault(); + const strecke = Number(streckeEl.value); + const benzinMenge = Number(benzinMengeEl.value); + const tankGroesse = Number(tankGroesseEl.value); + + outputAEl.textContent = `Verbrauch/100km: ${calcBenzinMenge(strecke, benzinMenge).toFixed(1)}l`; + outputBEl.textContent = `Stecke: ${calcStrecke(strecke, benzinMenge, tankGroesse).toFixed(1)}km`; }; formCalculatorEl.addEventListener('submit', onSubmit); // onSumbit = funktionsreferenz diff --git a/01_grundlagen/uebungen/u36_kekse-array.html b/01_grundlagen/uebungen/u36_kekse-array.html index 5fa42e2..9cf112d 100644 --- a/01_grundlagen/uebungen/u36_kekse-array.html +++ b/01_grundlagen/uebungen/u36_kekse-array.html @@ -83,6 +83,28 @@ '1/2 cup sugar', '1 tsp baking powder', ]; + + // 1. + receipeAr.push('1 tsp flour'); + console.log(receipeAr); + + // 2. Beim Durchlesen der Liste fällt auf, dass die wohl wichtigste Zutat ebenfalls fehlt. Füge noch 100 g Haferflocken (1 cup rolled oats) an die erste Position in die Zutatenliste ein. + receipeAr.unshift('1 cup rolled oats'); + console.log(receipeAr); + + // 3. Für Kekse ist es eigentlich besser, Butter statt Öl zu verwenden. Tausche das Öl in der Liste dementsprechend gegen 75 g Butter (1/3 cup butter) aus. + receipeAr.splice(receipeAr.indexOf('1/4 cup vegetable oil'), 1, '1/3 cup butter'); + console.log(receipeAr); + + // receipeAr[receipeAr.indexOf('1/4 cup vegetable oil')] = '1/3 cup butter'; + + // 4. + const recipeStr = `
  1. ${receipeAr.join('
  2. ')}
  3. `; + console.log(recipeStr); + + // 5. + outputEl.insertAdjacentHTML('afterbegin', recipeStr); + outputEl.appendChild(document.createTextNode(introduction)); diff --git a/01_grundlagen/uebungen/u37-bus-stations.html b/01_grundlagen/uebungen/u37-train-stations.html similarity index 57% rename from 01_grundlagen/uebungen/u37-bus-stations.html rename to 01_grundlagen/uebungen/u37-train-stations.html index 85a9bae..20c2087 100644 --- a/01_grundlagen/uebungen/u37-bus-stations.html +++ b/01_grundlagen/uebungen/u37-train-stations.html @@ -1,4 +1,4 @@ - + @@ -76,6 +76,57 @@ const LINE_W = [ '39 Av', 'Queensboro Plaza', ]; + + // Position von Broadway finden und die Kurzstrecke ausschneiden. + + // Finde die Position der gewünschten Zielhaltestelle Broadway heraus. + const destinationIndex = LINE_W.indexOf('Broadway'); + + // Entferne alle Haltestellen nach Broadway aus dem Array. + const shortTrip = LINE_W.slice(0, destinationIndex + 1); + + console.log(shortTrip); // => ['Astoria-Ditmars Blvd', 'Astoria Blvd', '30 Av', 'Broadway'] + + const cuttedStations = [...LINE_W].splice(0, destinationIndex + 1); + console.log('cuttedStations: ', cuttedStations); + + // Ohne zweite Angabe beginnt die Fahrt an der ersten Haltestelle. + function getStations(destinationStation, startStation = LINE_W[0]) { + const startIndex = LINE_W.indexOf(startStation); + const endIndex = LINE_W.indexOf(destinationStation); + + // Guard + if (startIndex === -1 || endIndex === -1) { + return []; + } + + // Auch Fahrten in die Gegenrichtung sind möglich. + if (startIndex > endIndex) { + return LINE_W.slice(endIndex, startIndex + 1).reverse(); + } + + return LINE_W.slice(startIndex, endIndex + 1); + } + + const stationsFromStart = getStations('Broadway'); + const stationsBetween = getStations('Broadway', 'Astoria Blvd'); + + console.log('Position von Broadway:', destinationIndex); + console.log('Kurzstrecke:', shortTrip); + console.log('Ab der ersten Haltestelle:', stationsFromStart); + console.log('Mit eigener Starthaltestelle:', stationsBetween); + + outputEl.style.whiteSpace = 'pre-line'; + outputEl.textContent = `Position von Broadway (Index): ${destinationIndex} + + Kurzstrecke bis Broadway: + ${shortTrip.join(' → ')} + + Funktion mit Standardstart: + ${stationsFromStart.join(' → ')} + + Funktion mit eigener Starthaltestelle: + ${stationsBetween.join(' → ')}`; diff --git a/01_grundlagen/uebungen/u38_alte-listen.html b/01_grundlagen/uebungen/u38_alte-listen.html index 5df0f93..4b2b60e 100644 --- a/01_grundlagen/uebungen/u38_alte-listen.html +++ b/01_grundlagen/uebungen/u38_alte-listen.html @@ -29,6 +29,10 @@ const productList = '3Doodler 3D Printing Pen, Game of Thrones Wax Seal Coasters, 10th Doctor Sonic Screwdriver Exclusive Programmable TV Remote, Electronic Butterfly in a Jar, Aquafarm: Aquaponics Fish Garden, Cassette Adapter Bluetooth, Marvel Comics Lightweight Infinity Scarf, Ollie - The App Controlled Robot, Sound Splash Bluetooth Waterproof Shower Speaker, PowerCube, Backpack of Holding, Retro Duo Portable NES/SNES Game System, Universal Gadget Wrist Charger, USB Squirming Tentacle, USB Fishquarium, Space Bar Keyboard Organizer & USB Hub Pop, USB Pet Rock, Powerstation 5- E. Maximus Chargus, Dual Heated Travel Mug, Crosley Collegiate Portable USB Turntable, Meh Hoodie, Magnetic Accelerator Cannon, 8-Bit Heat-Change Mug'; + + const handleCsv = (list) => list.split(', ').sort(); + + console.log(handleCsv(productList).join('\n'));