# Übungen Datentypen &amp; Variablen ## Aufgaben ### Zeitrechner * Schreibe ein Programm, dem du mit `prompt()` eine Zeitdauer in Sekunden eingeben kannst, das dir die Dauer in Stunden umrechnet. Eine Eingabe von `7200` soll als Resultat `2` geben. ### Temperaturrechner * Schreibe ein Programm, dem du eine Temperatur in Grad Fahrenheit geben kannst, die es in Grad Celsius umrechnet. [Link zur Formel](http://www.metric-conversions.org/de/temperatur/fahrenheit-in-celsius.htm) ### Fläche eines Dreiecks * Schreibe ein Programm, dem du die Breite und die Höhe eines beliebigen Dreiecks geben kannst, so dass es die Fläche berechnet (Erinnerung: `A = 0.5 * b * h`) ### Proben-Notenrechner * Die Note in einer Probe wird meist mit der folgenden Formel berechnet: `(<Erreichte Punkte> / <Max Punkte>) * 5 + 1`. Schreibe ein Programm, dem du sowohl die maximale Punktzahl als auch die erreichte Punktzahl eingeben kannst, so dass es dir die erreichte Note berechnet. # Übungen Bedingungen ## Zusammenfassung ```js var a = 26; if(a > 18 || a < 100) { alert("Du musst arbeiten"); } ``` ## Aufgaben ### Grösste Zahl * Schreibe ein Programm, das dich nach 3 Zahlen fragt, und dann die grösste dieser Zahlen anzeigt. ### Ziffern zählen * Schreibe ein Programm, das dich nach einer Zahl fragt, und dann die Anzahl Ziffern berechnet (es reicht wenn es bis 5 Stellen unterstützt). ### Teilbarkeit * Schreibe ein Programm, das dich nach einer Zahl fragt und dann anzeigt, ob sie durch 3 teilbar ist (Ausabe: `"durch 3 teilbar"`) durch 5 (Ausabe: `"durch 5 teilbar"`) oder durch beide (`"beide"`). ### negativ, null, positiv * Schreibe ein Programm, das dich nach einer Zahl fragt und dann anzeigt, ob die Zahl negativ, null, oder positiv ist (Ausgabe: "negativ", "null", oder "positiv"). ### Vokal/Konsonant * Schreibe ein Programm, das dich nach einem Buchstaben fragt und dann anzeigt, ob es ein Vokal oder ein Konsonant ist. # Übungen Schleifen ## Zusammenfassung ```js var i = 1 while(i < 10) { console.log(i) i = i + 1 } ``` ## Aufgaben ### Summen * Schreibe ein Programm, das die Summe aller Zahlen von 1 bis 100 berechnet und anzeigt (1 + 2 + 3 + ... + 100) * Ändere das Programm so, dass du eine Obergrenze eingeben kannst. Wenn du 23 eingibst, soll das Programm nur noch die Zahlen bis und mit 23 addieren. * Ändere das Programm so ab, dass es nicht bei 1, sondern bei 10 beginnt. ### Treppe * Schreibe ein Programm, das das folgende Muster in die Konsole schreibt (mit `console.log(x)`): # ## ### #### ##### ### Multiplikationstabelle * Schreibe ein Programm, das eine Multiplikationstabelle in die Konsole schreibt in der Form 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 ... # Übungen Schleifen &amp; Bedingungen ## Aufgaben ### Gerade Zahlen * Schreibe ein Programm, das nacheinander alle geraden Zahlen zwischen 0 und 100 in der Konsole anzeigt (`console.log(x)`). ### Summe der Dreierreihe * Schreibe ein Programm, das die Summer der Dreierreihe bis 100 berechnet (3 + 6 + 9 + ... + 99) * Ändere das Programm so, dass es dich nach einer Obergrenze fragt, und die Summe nur bis dorthin berechnet (für 28: 3 + 6 + 9 + ... + 27) ### Zahl raten * Schreibe ein Programm, das zufällig eine Zahl zwischen 0 und 100 generiert (`var zahl = Math.random() * 100`). Danach soll es dich nach einer Zahl fragen, und dir sagen, ob du zu tief, zu hoch oder richtig geschätzt hast. ### Würfel * Schreibe ein Programm, das wie oben 10 Zufallszahlen zwischen 1 und 6 generiert (`var zahl = Math.random() * 5 + 1`) und so einen Würfelwurf simuliert. Es soll dann für die 10 Würfe a) die tiefste Zahl, b) die höchste Zahl und c) den Durchschnitt anzeigen. # Lösungen ### Zeitrechner ```js var a = prompt("Zeitdauer?") var b = Number(a) alert(b / 3600) ``` ### Temperaturrechner ```js var a = prompt("Temperatur?") var b = Number(a) var f = (b - 32) / 1.8 alert(f) ``` ### Dreieck ```js var b = prompt("Breite?") var h = prompt("Höhe?") var a = 0.5 * Number(b) * Number(h) alert(a) ``` ### Noten ```js var e = prompt("Erreicht?") var m = prompt("Max?") var note = Number(e) / Number(max) * 5 + 1 alert(note) ``` ### Grösste Zahl ```js var a = prompt("erste Zahl?") a = Number(a) var b = prompt("zweite Zahl?") b = Number(b) var c = prompt("dritte Zahl?") c = Number(c) if(a > b && a > c) { alert(a) } else { if(b > c && b > a) { alert(b) } else { if(c > b && c > a) { alert(c) } } } ``` ### Ziffern ```js var a = prompt("Zahl?") alert(a.length) // oder var a = Number(prompt("Zahl?")) if(a >= 0 && a <= 9) { alert(1) } if(a >= 10 && a <= 99) { alert(2) } if(a >= 100 && a <= 999) { alert(3) } if(a >= 1000 && a <= 9999) { alert(4) } if(a >= 10000 && a <= 99999) { alert(5) } ``` ### Teilbarkeit ```js var a = prompt("Zahl?") a = Number(a) if(a % 3 == 0 && a % 5 == 0) { alert("beide") } else { if(a % 3 == 0) { alert("durch 3") } else { if(a % 5 == 0) { alert("durch 5") } } } // oder var a = prompt("Zahl?") a = Number(a) if(a % 3 == 0) { if ( a % 5 == 0){ alert("beide") } else { alert("durch 3") } } else { if(a % 5 == 0) { alert("durch 5") } } ``` ### Negativ/null/positiv ```js var a = prompt("Zahl?") a = Number(a) // Reihenfolge, ob zuerst 0, < oder > geprüft wird, spielt keine Rolle! if(a == 0) { alert("null") } else { if(a < 0) { alert("negativ") } else { // eine Zahl kann nur negativ, 0 oder positiv sein alert("positiv") } } ``` ### Vokal/Konsonant ```js var a = prompt("Buchstabe?") if(a == 'a' || a == 'e' || a == 'i' || a == 'o' || a == 'u') { alert("Vokal") } else { alert("Konsonant") } ``` ### Summe 1 ```js var summe = 0 var i = 1 // schleifenzähler while(i <= 100){ summe = summe + i i = i + 1 } alert(summe) ``` ### Summe 2 ```js var grenze = Number(prompt("Obergrenze?")) var summe = 0 var i = 1 while(i <= grenze){ summe = summe + 1 i = i + 1 } alert(summe) ``` ### Summe 3 ```js var summe = 0; var i = 10 while(i <= 100){ summe = summe + i i = i + 1 } alert(summe) ``` ### Treppe ```js var i = 1 while(i <= 10) { var text = '' var j = 1 while(j <= j) { text = text + '#' } console.log(text) i = i + 1 } // oder var text = '#' while(text != '###########') { console.log(text) text = text + '#' } ``` ## Multiplikation ```js var i = 1 while (i <= 10) { var text = '' var j = 1 while(j <= 10) { text = text + (i * j) + ' ' j = j + 1 } console.log(text) i = i + 1 } ``` ### Gerade Zahlen ```js var i = 1 while (i <= 100) { if (i % 2 == 0) { console.log(i) } i = i + 1 } // oder (mit Zweierschritten!) var i = 1 while (i <= 100) { console.log(i) i = i + 1 } ``` ### Summe Dreierreihe ```js var obergrenze = Number(prompt("Grenze?")) var summe = 0 var i = 3 while(i <= obergrenze){ summe = summe + i i = i + 3 } alert(summe) ``` ### Zahl raten ```js var zahl = Math.random() * 100 var a = prompt("Zahl raten") a = Number(a) if(zahl == a) { alert("richtig!") } else if(a < zahl) { alert("zu tief") } else if(a > zahl) { alert("zu hoch") } ``` ### Würfel ```js var summe = 0 var max = 0 var min = 99999 var i = 1 while(i <= 10){ var z = Math.random() * 5 + 1 summe += z if(z > max) { max = z } if(z < min) { min = z } i = i + 1 } alert(min) alert(max) alert(summe / 10) ```