/*
REGELN (gelten für alle Aufgaben):
- Du darfst KEINE Array-Funktionen verwenden, außer: push, pop, shift, unshift
- Also NICHT erlaubt (Beispiele): slice, splice, concat, reverse, sort, map, filter, reduce, join, includes, indexOf, find, forEach, ...
- Schleifen (for/while) sind erlaubt und erwünscht.
- Du darfst KEINE String-Funktionen verwenden.
*/
 
/* =========================================================
   AUFGABE 1: Objekte (Schüler + Fächer)
   ========================================================= */
let schueler1 = {
  name: "Ferdinand",
  faecher: [
    { fach: "SEW", note: "unbekannt" },
    { fach: "MEDT", note: "Gut" }
  ]
};
 
// TODO:
// 1) Ändere die Eigenschaft `name` von `schueler1` auf deinen eigenen Namen.
// 2) Setze den Wert der Note des Fachs "SEW" auf "Sehr gut".
// 3) Gib anschließend alle Fächer mit Note aus.
//    Format genau: fach: SEW (Sehr gut)
 
 
/* =========================================================
   AUFGABE 2: Array-Hälften vertauschen (gerade Länge)
   ========================================================= */
let arrSwap = [1, 2, 3, 4, 5, 6];
// Erwartetes Resultat: [4, 5, 6, 1, 2, 3]
 
// TODO:
// Verändere `arrSwap` so, dass die erste und zweite Hälfte vertauscht werden.
// Verwende Schleifen und nur erlaubte Array-Funktionen (push/pop/shift/unshift) oder Indexzugriff.
// Keine slice/splice/concat!
 
 
/* =========================================================
   AUFGABE 3: Zahlen analysieren (Summe + Maximum)
   ========================================================= */
let zahlen = [4, 7, 2, 9, 1, 6];
 
// TODO:
// 1) Berechne die Summe aller Zahlen.
// 2) Bestimme den größten Wert.
// 3) Gib beides aus (z.B. "Summe: 29", "Max: 9").
 
 
/* =========================================================
   AUFGABE 4: Objekt mit Reparaturen (verschachteltes Array)
   ========================================================= */
let auto = {
  marke: "VW",
  farbe: "blau",
  reparaturen: [
    { teil: "Bremsen", preis: 250 },
    { teil: "Reifen", preis: 400 }
  ]
};
 
// TODO:
// 1) Ändere auto.farbe auf "rot".
// 2) Berechne die Gesamtkosten aller Reparaturen.
// 3) Gib die Gesamtkosten auf der Konsole aus.
 
 
/* =========================================================
   AUFGABE 5: Namen filtern (ohne filter)
   ========================================================= */
let namen = ["Anna", "Bernd", "Clara", "David", "Eva"];
 
// TODO:
// Erstelle ein neues Array `langeNamen`, das nur Namen mit mehr als 4 Buchstaben enthält.
// Verwende eine Schleife und push.
// Gib `langeNamen` auf der Konsole aus.
 
 
/* =========================================================
   AUFGABE 6: Notendurchschnitt berechnen
   ========================================================= */
let schueler2 = {
  name: "Max",
  noten: [2, 1, 3, 2, 1]
};
 
// TODO:
// 1) Berechne den Durchschnitt der Noten.
// 2) Gib aus: "Max hat einen Notendurchschnitt von 1.8"
// Hinweis: Du darfst runden (optional), aber nicht mit Array-Funktionen rechnen.
 
 
/* =========================================================
   AUFGABE 7: Array umkehren (ohne reverse)
   ========================================================= */
let worte = ["Hallo", "Welt", "JavaScript"];
 
// TODO:
// Erstelle ein neues Array `umgedreht`, das die Elemente in umgekehrter Reihenfolge enthält.
// Verwende eine Schleife. Keine reverse/slice/splice!
// Tipp: Du kannst mit unshift arbeiten.
// Gib `umgedreht` aus.
 
 
/* =========================================================
   AUFGABE 8 (schwieriger): Duplikate entfernen (ohne includes/indexOf)
   ========================================================= */
let duplikate = [3, 5, 3, 2, 5, 7, 2, 9, 9, 1];
 
// TODO:
// Erstelle ein neues Array `unique`, das jede Zahl nur einmal enthält.
// ABER: Du darfst NICHT includes/indexOf/find/... verwenden!
// Erlaubt: Schleifen, Vergleiche, push.
// Idee:
// - Für jedes Element in `duplikate` prüfst du per innerer Schleife,
//   ob es schon in `unique` vorkommt.
// - Wenn nein: push in unique.
// Gib `unique` aus.
 
 
/* =========================================================
   AUFGABE 9 (schwieriger): Häufigkeiten zählen (Objekt als "Zähler")
   ========================================================= */
let obst = ["Apfel", "Birne", "Apfel", "Orange", "Birne", "Apfel"];
 
// TODO:
// Erstelle ein Objekt `counts`, das zählt, wie oft jedes Obst vorkommt.
// Ergebnis soll z.B. so aussehen (Reihenfolge egal):
// { Apfel: 3, Birne: 2, Orange: 1 }
//
// Hinweise:
// - Verwende ein Objekt als Dictionary: counts[name] = ...
// - Wenn counts[name] noch nicht existiert: setze auf 1, sonst +1
// - Keine Array-Funktionen außer push/pop/shift/unshift (hier brauchst du eh keine).
// Gib `counts` aus.