# Übungen Datentypen & 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: `( / ) * 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 & 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)
```