====== 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