Programmierübungen C

Grundlagen

  1. "Hello, world" mit Erweiterungen.
    Beispiel-Programme: hello1.c, hello2.c, hello3.c, hello3-commented.c
    Musterlösung: hello3-123.c, hello3-4.c, hello3-5.c, hello3-6.c, hello3-7.c.
  2. Summe und Mittelwert.
    Musterlösung: mittelw.c.
  3. Potenzrechnen, größter gemeinsamer Teiler, Quersumme, Wurzel-Näherung.
    Programm-Gerüst: power-vorgabe.c
    Musterlösung Bsp. 1: power.c, power-komma.c.
    Musterlösung Bsp. 2: euklid.c, kuerzen.c.
    Musterlösung Bsp. 3: qsum.c, qqsum.c.
    Musterlösung Bsp. 4: root.c, root-count.c.
  4. Rechnen mit Buchstaben: Direkte Quersumme.
    Musterlösung: qsum-char.c.
  5. Rechnen mit Buchstaben, switch: Hexzahlen einlesen.
    Musterlösung: hex.c, hex-switch.c.
  6. Minimum und Maximum, Primfaktorenzerlegung.
    Musterlösung: minmax.c, minmaxpos.c, primfak1.c, primfak1+ausg.c, primfak2.c, primfak2+ausg.c.
  7. Zufallszahlen, switch, geschachtelte Schleifen, ...:
    Würfeln, einfacher Taschenrechner, rechtw. Dreiecke
    .
    Musterlösung: sechser1.c (alternativ: sechser1b.c), sechser2.c (alternativ: sechser2b.c), tr.c, dreieck.c.
  8. Arrays: Noten zählen, Balkendiagramme, Nagelbrett.
    Musterlösung: noten.c, punkte.c, punkte-waagr.c, punkte-senkr.c, nagelbrett-balken.c.
  9. Arrays: Sieb des Eratosthenes.
    Musterlösung: erat.c.
  10. Arrays: Lotto-Ziehung.
    Musterlösung: lotto.c.
  11. Arrays: Sortiert einfügen und löschen.
    Musterlösung: sortarray.c.
  12. Mehrdimensionale Arrays: Pascal'sches Dreieck.
    Musterlösung: pascal.c.
  13. Bunte Beispiele (mit SDL-Grafik): Wir verwenden für die grafische Anzeige SDL (siehe auch hier),
    hier gibt es die Installationsanleitung
    und hier meine "Zwischenschicht" zur SDL: sdlinterf.c und sdlinterf.h.
    Dazu drei ganz einfache Beispiel-Programme: demo0.c, demo1.c, demo2.c.

Funktionen

  1. Einfache Funktionen: kgv, Rechnen mit Zeiten.
    Musterlösung: kgv.c, zeit.c.
  2. Einfache Funktionen: Binomialkoeffizienten.
    Musterlösung: pascal-fac.c, pascal-mul.c.
  3. Einfache Funktionen: Zahl-Palindrome.
    Musterlösung: spiegeln.c.
  4. Rekursion: Zahlen ausgeben, Potenzfunktion, Primteiler.
    Musterlösung: recdec.c, rek-pow.c, rek-teiler.c.
  5. Statische / globale Variablen, Rekursion: Zufallszahlen, Binomialkoeffizienten.
    Musterlösung: rand.c, rand-seed.c, binom.c, binom-mem.c.
  6. Array-Parameter: Array permutieren.
    Musterlösung: perm.c, perm-ptr.c.
  7. Funktionen & Arrays: Bubblesort, Pascal'sches Dreieck, Nagelbrett.
    Musterlösung: bubblesort.c, pascal-arr.c, nagelbrett.c, nagelbrett-ausg.c.
  8. Funktionen & Arrays: Sortieren (mit SDL-Grafik).
    Unvollständiges Programm zum Weiterschreiben: sort-funk-angabe.c.
    Musterlösung: selsort-sdl.c, inssort-sdl.c, bubblesort-sdl.c, shellsort-sdl.c, quicksort-sdl.c.
  9. Funktion mit zweidim. Array: Magisches Quadrat.
    Musterlösung: magic.c.
  10. Rekursion, globale Variablen: Raumfüllende Kurven (mit SDL-Grafik).
    Hauptprogramme zum Erweitern:
    peano-diag-main.c, hilbert-main.c, peano-normal-main.c.
    Musterlösung: peano-diag.c, hilbert.c, peano-normal.c.
  11. Funktionen & Arrays, calloc: Turmrechnen.
    Musterlösung: turm.c.
  12. Funktionen mit dynamischem zweidim. Array als Array von Zeilenarray-Pointern, malloc:
    Pascal'sches Dreieck
    .
    Musterlösung: matrix.c.
  13. Array-Parameter & "Call by Reference": Min & Max, sortiertes Einfügen.
    Musterlösung: minmaxfunc.c, find+ins.c.
  14. Pointerarithmetik in Arrays: Permutationen.
    Musterlösung: perm.c.
  15. Pointerarithmetik in Arrays: Bubblesort (mit SDL-Grafik).
    Programm zum Vervollständigen: bubblesort-sdl-angabe.c
    Musterlösung: bubblesort-sdl.c.
  16. Backtracking: 8-Damen-Problem (mit SDL-Grafik).
    Musterlösung: queens.c, queens-stepbystep.c.

Strings

  1. Stringfunktionen: Palindrome, String umdrehen, Text in Zahl umwandeln.
    Musterlösung: palindrom1.c, palindrom2.c, palindrom3.c, reverse.c, reverse-ptr.c, dezinput.c. dezio.c.
  2. Stringfunktionen: Einfache Stringfunktionen, Ersetzen in einem String.
    Musterlösung Teil 1 mit Pointer-Arithmetik: strrepeat.c, strtextcpy.c, strappend.c, strrev.c, strmaxcpy.c, strrevchr.c, stranychr.c, strsearch.c, strtrim-1.c, strtrim-2.c.
    Musterlösung Teil 1 mit Index statt Pointer: strrepeat-i.c, strtextcpy-i.c, strappend-i.c, strrev-i.c, strmaxcpy-i.c, strrevchr-i.c, stranychr-i.c, strsearch-i.c, strtrim-1-i.c, strtrim-2-i.c.
    Musterlösung Teil 1 mit malloc für das Ergebnis: strrepeat-m.c, strtextcpy-m.c, strappend-m.c, strrev-m.c, strmaxcpy-m.c.
    Musterlösung Teil 2: replace.c, replace-direkt.c.
  3. Stringfunktionen: Großschreibung, Zahl <==> Text, Aufteilung in Worte.
    Musterlösung: strtoupper.c, strtoint.c, inttostr.c, getword.c.
  4. Stringfunktionen: Widerstands-Farbcodes, String-Ersetzungs-Funktion.
    Musterlösung: widerstand.c, replace.c.
  5. Strings: Wort erraten, Zeilen in Wörter zerlegen.
    Musterlösung: raten.c, wordify.c, wordify-ptr.c.
  6. Strings, Pointer, Rekursion: Wildcards prüfen.
    Interessant, aber nicht ganz einfach...
    Musterlösung: wildcard.c, wildcard-ptr.c.
  7. Zweidim. Arrays, Strings: Mastermind.
    Achtung: Sehr lang und schwierig!
    Musterlösung: mamind.c.

File-I/O

  1. File-I/O zeilenweise: Textersetzung.
    Musterlösung: subst.c.
  2. File-I/O zeilenweise, qsort, malloc & realloc, ...: File sortieren.
    Musterlösung: textsort.c.
  3. File-I/O zeichenweise: Klammernprüfung, unnötige Leerzeichen entfernen.
    Musterlösung: klammer.c (alternativ klammer2.c), klammer-rek.c, unindent.c.

Strukturen

  1. Erste Strukturen: Klassenliste.
    Musterlösung: struct.c.
  2. Strukturen: Datums-Systemfunktionen.
    Musterlösung: wochentag.c.
  3. Strukturen: dir-Befehl.
  4. Strukturen & Funktionen: Bruchrechnen.
    Musterlösung: bruch.c, bruch-kuerzen.c.
  5. Strukturen & qsort: Text sortieren.
  6. Strukturen & Pointer: Verkettete Liste.
    Musterlösung: liste.c.
  7. Backtracking: Rucksack packen
    (allumfassendes Abschlussbeispiel, enthält "alles") Meine Gegenstands-Liste: gegenst.txt.
  8. Etwas Schönes zum Abschluss: Iterierte Funktionssysteme (mit SDL-Grafik).
    Verschiedene Bilddaten: daten-header.zip
    Musterlösung: ifs.c, ifs-bewegt.c, ifs-farbe.c.

Bit-Operationen

  1. Bitrechnen: Bin- und Hex-Ausgabe, Bytes umdrehen.
    Musterlösung: binhex.c, endian.c, endian-loop.c.
  2. Bit-Operationen: LED-Muster (mit SDL-Grafik).
    Hauptprogramm zum Erweitern: leds-angabe.c.
    Musterlösung: leds.c, leds-sp.c.
 
Stoff C
Home