Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| lehrkraefte:blc:informatik:ffprg1-2024:aufgaben-ohne-funktionen [2024/02/07 13:46] – Ivo Blöchliger | lehrkraefte:blc:informatik:ffprg1-2024:aufgaben-ohne-funktionen [2024/03/08 12:27] (current) – [Primzahlen] Ivo Blöchliger | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Einstiegsaufgaben einfach ====== | ||
| + | <WRAP todo> | ||
| + | Schreiben Sie ein Programm, das alle zweistelligen Vielfachen von 7 ausgibt. Versuchen Sie, das Programm ohne '' | ||
| + | |||
| + | <hidden Lösungsvorschlag> | ||
| + | <code javascript> | ||
| + | for (let i=14; i<100; i+=7) { | ||
| + | | ||
| + | } | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <WRAP todo> | ||
| + | Schreiben Sie ein Programm, das eine Multiplikationstabelle ausgibt. | ||
| + | Bauen Sie eine Zeile erst als String-Variable auf, bevor Sie diese mit '' | ||
| + | |||
| + | Damit alle Zahlen schön untereinander dargestellt werden, können Sie die String-Methode [[https:// | ||
| + | <code javascript> | ||
| + | vier = String(6*7).padStart(4,' | ||
| + | </ | ||
| + | Vorgeschlagene Ausgabe: | ||
| + | <code txt> | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | 10 20 30 40 50 60 70 80 90 100 | ||
| + | </ | ||
| + | |||
| + | <hidden Lösungsvorschlag> | ||
| + | <code javascript> | ||
| + | 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 ===== | ||
| + | <WRAP todo> | ||
| + | Diese Aufgabe ist eine klassische Aufgabe bei Einstellungsgesprächen, | ||
| + | |||
| + | Geben Sie die Zahlen von 1 bis 100 aus, aber | ||
| + | * bei Zahlen, die durch 3 teilbar sind, geben Sie '' | ||
| + | * bei Zahlen, die durch 5 teilbar sind, geben Sie '' | ||
| + | * bei Zahlen, die sowohl durch 3 wie auch durch 5 teilbar sind, geben Sie '' | ||
| + | |||
| + | Hinweis: Teilbarkeit von '' | ||
| + | <code javascript> | ||
| + | if (a % b == 0) { // Wenn die Ganzzahldivision a/b den Rest 0 hat | ||
| + | | ||
| + | } else { | ||
| + | | ||
| + | } | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <hidden Lösungsvorschlag> | ||
| + | <code javascript> | ||
| + | for (let i=1; i<=100; i++) { | ||
| + | if (i%15==0) { | ||
| + | console.log(' | ||
| + | } else if (i%3==0) { | ||
| + | console.log(' | ||
| + | } else if (i%5==0) { | ||
| + | console.log(' | ||
| + | } else { | ||
| + | console.log(i); | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ===== Teiler ===== | ||
| + | <WRAP todo> | ||
| + | Für die Zahlen von 1 bis 100 produzieren Sie eine Liste mit allen Teilern, z.B. wie folgt: | ||
| + | <code txt> | ||
| + | 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 | ||
| + | </ | ||
| + | </ | ||
| + | <hidden Lösungsvorschlag> | ||
| + | <code javascript> | ||
| + | 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}`; | ||
| + | } | ||
| + | } | ||
| + | console.log(zeile); | ||
| + | } | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ===== Primzahlen ===== | ||
| + | <WRAP todo> | ||
| + | Geben Sie alle Primzahlen bis 1000 als Liste aus: | ||
| + | <code javascript> | ||
| + | let primes = []; // Leere Liste | ||
| + | // Primzahlen suchen, wenn eine Primzahl p bestimmt worden ist: | ||
| + | | ||
| + | // | ||
| + | console.log(primes); | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <hidden Lösungsvorschlag> | ||
| + | <code javascript> | ||
| + | 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; | ||
| + | } | ||
| + | t++; | ||
| + | } | ||
| + | if (isPrime) { // Kein Teiler gefunden? | ||
| + | primes.push(i); | ||
| + | } | ||
| + | } | ||
| + | console.log(primes); | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ====== Einstiegsaufgaben mit Strings ====== | ||
| + | ===== Tannenbäume ===== | ||
| + | <WRAP todo> | ||
| + | Geben Sie folgende Weihnachstbäume in aufsteigender Grösse aus: | ||
| + | <code txt> | ||
| + | ^ | ||
| + | / \ | ||
| + | / | ||
| + | / \ | ||
| + | ------- | ||
| + | ||| | ||
| + | ||| | ||
| + | |||
| + | |||
| + | |||
| + | ^ | ||
| + | / \ | ||
| + | / \ | ||
| + | / | ||
| + | / \ | ||
| + | --------- | ||
| + | ||| | ||
| + | ||| | ||
| + | |||
| + | ...... | ||
| + | |||
| + | ^ | ||
| + | / \ | ||
| + | / | ||
| + | / \ | ||
| + | / | ||
| + | / \ | ||
| + | / | ||
| + | / \ | ||
| + | / | ||
| + | / \ | ||
| + | ------------------- | ||
| + | ||| | ||
| + | ||| | ||
| + | |||
| + | </ | ||
| + | |||
| + | Hinweis: Der Backslash '' | ||
| + | <code javascript> | ||
| + | zeile = "Das ist ein Backslash: \\ Und ein Anführungszeichen \" und ein Zeilenumbruch\nneue Zeile\nund noch eine." | ||
| + | </ | ||
| + | </ | ||
| + | <hidden Lösungsvorschlag> | ||
| + | <code javascript> | ||
| + | for (let i=3; i<10; i++) { | ||
| + | let zeile = "" | ||
| + | for (let j=0; j<i; j++) { | ||
| + | zeile += " "; | ||
| + | } | ||
| + | console.log(zeile+" | ||
| + | for (let n=0; n<i; n++) { | ||
| + | zeile = ""; | ||
| + | for (let j=0; j<i-n-1; j++) { | ||
| + | zeile += " "; | ||
| + | } | ||
| + | zeile += "/"; | ||
| + | for (let j=0; j<1+n*2; j++) { | ||
| + | zeile += " "; | ||
| + | } | ||
| + | console.log(zeile+" | ||
| + | } | ||
| + | zeile = ""; | ||
| + | for (let j=0; j<i*2+1; j++) { | ||
| + | zeile+=" | ||
| + | } | ||
| + | console.log(zeile); | ||
| + | zeile = ""; | ||
| + | for (let j=0; j<i-1; j++) { | ||
| + | zeile+=" | ||
| + | } | ||
| + | zeile+=" | ||
| + | for (let j=0; j<2; j++) { | ||
| + | console.log(zeile); | ||
| + | } | ||
| + | console.log(" | ||
| + | } | ||
| + | </ | ||
| + | </ | ||