Die Löcher im Mainboard sind zum Festschrauben des Boards da, sonst würde es ja einfach runterfallen. Dazu sollten im Gehäuse sogenannte Standoffs sein, also kleine Gewinde, die etwas erhöht von der Wand des Gehäuses sind. Wenn die noch nicht dadrin sind, musst du sie selbst festschrauben. Deinem Gehäuse sollten solche Standoffs beigelegt sein.
function updateGreeting() {
const now = new Date();
const h = now.getHours();
const m = now.getMinutes();
const e = document.getElementById("greeting");
let addHours = 0;
let addMinutes = m;
if (h <= 3) { // bis 04:00 Uhr
e.textContent = "Abend";
addHours = 3 - h;
} else if (h <= 11) { // bis 12:00 Uhr
e.textContent = "Morgen";
addHours = 11 - h;
} else if (h <= 16) { // bis 17:00 Uhr
e.textContent = "Tag";
addHours = 16 - h;
} else { // bis 04:00 Uhr
e.innerHTML = "Abend";
addHours = 23 - h;
}
// getTime() gibt die aktuelle Zeit in Millisekunden seit UNIX Epoch Time, also 01.01.1970 00:00
// Stunden und Minuten in Millisekunden umwandeln
const waitTime = addHours * 60 * 60 * 1000 + addMinutes * 60 * 1000;
setTimeout(updateGreeting, waitTime)
}
updateGreeting();
Die globale Funktion setTimeout bekommt eine Funktion übergeben, nämlich die Funktion updateGreeting selbst. Und die Wartezeit in Millisekunden. Nach der Wartezeit wird die übergebenen Funktion aufgerufen und es wird erneut geguckt, ob der Text geupdatet werden muss. Durch die Berechnung der Wartezeit abhängig von der aktuellen Uhrzeit muss möglichst selten das Greeting neu berechnet werden. Die Seite muss dafür nicht neugeladen werden, man kann die den ganzen Tag lang so offen lassen.
https://developer.mozilla.org/en-US/docs/Web/API/setTimeout
textContent setzt den Text eines HTML Elements, innerText den Text und löscht dabei noch Kindelemente, die evtl da waren. innerHTML hat das Problem, dass der Text dadrin als HTML Code und auch als Javascript interpretiert werden kann. Falls ein*e Besucher*in deiner Website selbst dort Sachen reinschreiben könnte, wird evtl Code ausgeführt. In deinem kleinen Fall wäre das aber kein Problem, da es nur dir vorgefertigten Greetings in das innerHTML schaffen. Es ist aber eine gute Idee, sich die grundsätzliche Verwendung von dem Ding abzugewöhnen, damit man nicht später damit doch eine Sicherheitslücke erschafft.
https://developer.mozilla.org/en-US/docs/Web/API/Element/innerHTML#security_considerations
Ich empfehle außerdem die Nutzung von let und const für Variablen. let ist für Variablen, die neue Werte bekommen können und const für Variablen, die nur einmal einen Wert erhalten und danach nie wieder einen neuen Wert erhalten dürfen. var ist quasi das gleiche wie let, hat aber den Nachteil, dass Variablen innerhalb eines Blocks, zB einer Funktion, einer Schleife, einer Bedingung, .... auch außerhalb dieses Blocks definiert werden. Bei const und var gibt es die Variablen hingegen nur in dem aktuellen Level und nicht außerhalb. Bspw. kann man jetzt nicht auf die Variable h außerhalb der Funktion updateGreeting zugreifen, da sie mit const definiert wurde.
https://www.freecodecamp.org/news/var-let-and-const-whats-the-difference/
Parallel bedeutet in diesem Fall also, dass der "Ort" der Geraden egal ist, nur die Steigung ist wichtig. Es wird außerdem nach einer Tangente gefragt. Der erste Schritt ist also, einen Punkt zu finden, an dem f die gleiche Steigung wie die Gerade hat, also -2. Dazu muss man die erste Ableitung von f bilden, -2 einsetzen und nach x auflösen. Dann dieses x in f einsetzen und einen y Punkt finden. Dann x, y und die Steigung in die Geradengleichung y = m*x +b einsetzen, um b zu finden. Fertig.
Voraussichtlich Abitur 2018