====== Einstiegsaufgaben einfach ====== Schreiben Sie ein Programm, das alle zweistelligen Vielfachen von 7 ausgibt. Versuchen Sie, das Programm ohne ''if'' zu schreiben. for (let i=14; i<100; i+=7) { console.log(i); } Schreiben Sie ein Programm, das eine Multiplikationstabelle ausgibt. Bauen Sie eine Zeile erst als String-Variable auf, bevor Sie diese mit ''console.log'' ausgeben. Damit alle Zahlen schön untereinander dargestellt werden, können Sie die String-Methode [[https://www.w3schools.com/jsref/jsref_string_padstart.asp|padStart]] verwenden: vier = String(6*7).padStart(4,' '); // Liefert den 4 Zeichen langen String " 42", von vorne mit Leerschlägen ge-«padded» Vorgeschlagene Ausgabe: 1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 12 14 16 18 20 3 6 9 12 15 18 21 24 27 30 4 8 12 16 20 24 28 32 36 40 5 10 15 20 25 30 35 40 45 50 6 12 18 24 30 36 42 48 54 60 7 14 21 28 35 42 49 56 63 70 8 16 24 32 40 48 56 64 72 80 9 18 27 36 45 54 63 72 81 90 10 20 30 40 50 60 70 80 90 100 for (let a=1; a<=10; a++) { let zeile = ""; for (let b=1; b<=10; b++) { zeile += String(a*b).padStart(4, ' ') } console.log(zeile); } ====== Einstiegsaufgaben (Teiler und Primzahlen) ====== Diese Aufgaben produzieren die Ausgabe nur auf die Konsole. ===== foo bar ===== Diese Aufgabe ist eine klassische Aufgabe bei Einstellungsgesprächen, um jene auszusortieren, die gar keinen Plan von Programmieren haben. Geben Sie die Zahlen von 1 bis 100 aus, aber * bei Zahlen, die durch 3 teilbar sind, geben Sie ''foo'' anstatt der Zahl aus, * bei Zahlen, die durch 5 teilbar sind, geben Sie ''bar'' anstatt der Zahl aus, * bei Zahlen, die sowohl durch 3 wie auch durch 5 teilbar sind, geben Sie ''foo bar'' aus. Hinweis: Teilbarkeit von ''a'' durch ''b'' kann wie folgt überprüft werden: if (a % b == 0) { // Wenn die Ganzzahldivision a/b den Rest 0 hat console.log(`${a} ist durch ${b} teilbar`); } else { console.log(`${a} ist nicht durch ${b} ohne Rest teilbar`); } for (let i=1; i<=100; i++) { if (i%15==0) { console.log('foo bar'); } else if (i%3==0) { console.log('foo'); } else if (i%5==0) { console.log('bar'); } else { console.log(i); } } ===== Teiler ===== Für die Zahlen von 1 bis 100 produzieren Sie eine Liste mit allen Teilern, z.B. wie folgt: 1 hat die Teiler 1 2 hat die Teiler 1 2 3 hat die Teiler 1 3 4 hat die Teiler 1 2 4 5 hat die Teiler 1 5 6 hat die Teiler 1 2 3 6 7 hat die Teiler 1 7 8 hat die Teiler 1 2 4 8 9 hat die Teiler 1 3 9 ... 93 hat die Teiler 1 3 31 93 94 hat die Teiler 1 2 47 94 95 hat die Teiler 1 5 19 95 96 hat die Teiler 1 2 3 4 6 8 12 16 24 32 48 96 97 hat die Teiler 1 97 98 hat die Teiler 1 2 7 14 49 98 99 hat die Teiler 1 3 9 11 33 99 100 hat die Teiler 1 2 4 5 10 20 25 50 100 for (let i=1; i<=100; i++) { let zeile = `${i} hat die Teiler`; for (let t=1; t<=i; t++) { if (i%t==0) { zeile += ` ${t}`; // Kurzform für zeile = zeile + ... } } console.log(zeile); } ===== Primzahlen ===== Geben Sie alle Primzahlen bis 1000 als Liste aus: let primes = []; // Leere Liste // Primzahlen suchen, wenn eine Primzahl p bestimmt worden ist: primes.push(p) // console.log(primes); let primes = []; for (let i=2; i<1000; i++) { let isPrime = true; // Erst mal annehmen i sei prim. let t=2; while (t*t<=i) { // Es reicht bis zur Wurzel zu suchen (Teiler kommen immer in Paaren) if (i % t == 0) { isPrime = false; break; // While-Schlaufe sofort verlassen (es wird nicht mehr weniger prim) } t++; } if (isPrime) { // Kein Teiler gefunden? primes.push(i); } } console.log(primes); ====== Einstiegsaufgaben mit Strings ====== ===== Tannenbäume ===== Geben Sie folgende Weihnachstbäume in aufsteigender Grösse aus: ^ / \ / \ / \ ------- ||| ||| ^ / \ / \ / \ / \ --------- ||| ||| ...... ^ / \ / \ / \ / \ / \ / \ / \ / \ / \ ------------------- ||| ||| Hinweis: Der Backslash ''\'' und ein Zeilenumbruch kann mit wie folgt einem String hinzugefügt werden: zeile = "Das ist ein Backslash: \\ Und ein Anführungszeichen \" und ein Zeilenumbruch\nneue Zeile\nund noch eine." for (let i=3; i<10; i++) { let zeile = "" for (let j=0; j