AIK 1. & 2. Semester Programmieren
Übungen
- 1. Übung: "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. Übung: Summe und Mittelwert.
Musterlösung:
mittelw.c.
- 3. Übung: 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.
- Viele kleine ganz einfache Aufgaben für die Grundbegriffe...
(arbeiten wir in der Praktikumsstunde gemeinsam mündlich durch).
... und Lösungen dazu
- 4. Übung: Minimum und Maximum, Primfaktorenzerlegung.
Musterlösung:
minmax.c,
minmaxpos.c,
primfak1.c,
primfak1+ausg.c,
primfak2.c,
primfak2+ausg.c.
- 5. Übung: Schleifen, switch, ...: Würfeln, Taschenrechner, rechtw. Dreiecke.
Musterlösung:
sechser1.c
(alternativ: sechser1b.c),
sechser2.c
(alternativ: sechser2b.c),
tr.c,
dreieck.c.
- 6. Übung: Arrays: Notenverteilung, Balkendiagramme, Nagelbrett.
Musterlösung:
noten.c,
punkte.c,
punkte-waagr.c,
punkte-senkr.c,
nagelbrett-balken.c.
- 7. Übung: Arrays: Sieb des Eratosthenes
und Arrays: Lotto-Ziehung.
Musterlösung:
erat.c,
lotto.c.
- 8. Übung: Mehrdim. Arrays: Pascal'sches Dreieck.
Musterlösung:
pascal.c.
- Weihnachtsübung (auch für PhyTA, AIK 3. Semester und Studenten):
Einfach: Tannenbaum und Sterne
Musterlösung:
baum.c,
stern.c,
schnee.c.
Schwerer (mathematisch, 2-dimensionale Arrays):
"Lissajou'sche Kurven" und "Game of Life"
Musterlösung:
lissa.c,
life.c.
Noch schwerer (sehr mathematisch, eher für Studenten!): Fraktale
(hier ein paar Beispiel-Parameter für schöne Fraktale:
fract-aufrufe bzw.
param.txt).
Musterlösung:
fract.c,
fract-file.c.
Wir verwenden für die grafische Anzeige
SDL
(siehe auch hier am Ende der Seite),
hier gibt es die Installationsanleitung
und hier den Download.
Und hier gibt es zwei ganz einfache Beispiel-Programme:
demo1.c,
demo2.c.
- 9. Übung: Funktionen: kgv, Rechnen mit Zeiten.
Musterlösung:
kgv.c,
zeit.c.
- 10. Übung: Funktionen: Binomialkoeffizienten.
Musterlösung:
pascal-fac.c,
pascal-mul.c.
- 11. Übung: Rekursion: Zahlen ausgeben, Potenzfunktion, Primteiler.
Musterlösung:
recdec.c,
rek-pow.c,
rek-teiler.c.
- 12. Übung: Statische / globale Variablen: Zufallszahlen, Binomialkoeffizienten.
Musterlösung:
rand.c,
rand-seed.c,
binom.c,
binom-mem.c.
- 13. Übung: Funktionen & Arrays: Sortieren.
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.
- 14. Übung: Rekursion, globale Variablen: Raumfüllende Kurven.
Hauptprogramme zum Erweitern:
peano-diag-main.c,
hilbert-main.c,
peano-normal-main.c.
Musterlösung:
peano-diag.c,
hilbert.c,
peano-normal.c.
- 15. Übung: Array-Parameter: Array permutieren.
Musterlösung:
perm.c,
perm-ptr.c.
- 16. Übung: Array-Parameter & "Call by Reference": Min & Max, sortiertes Einfügen.
Musterlösung:
minmaxfunc.c,
find+ins.c.
- 17. Übung: Stringfunktionen: Palindrome, String umdrehen, Text in Zahl umwandeln.
Musterlösung:
palindrom1.c,
palindrom2.c,
palindrom3.c,
reverse.c,
reverse-ptr.c,
dezinput.c.
- 18. Übung: Stringfunktionen: Widerstands-Farbcodes, String-Ersetzungs-Funktion.
Musterlösung:
widerstand.c,
replace.c.
- 19. Übung: Strings: Wort erraten, Zeilen in Wörter zerlegen.
Musterlösung:
raten.c,
wordify.c,
wordify-ptr.c.
- 20. Übung: Strings, Pointer, Rekursion: Wildcards prüfen.
(interessant, aber eher nur für die Guten, sonst aus Zeitgründen auslassen!)
Musterlösung:
wildcard.c,
wildcard-ptr.c.
- 21. Übung (freiwillig, Zusatzbeispiel nur für die ganz Guten): Zweidim. Arrays, Strings: Mastermind.
Musterlösung:
mamind.c.
- 22. Übung: Erste Strukturen: Klassenliste.
Musterlösung:
struct.c.
- 23. Übung: Strukturen: Datums-Systemfunktionen.
Musterlösung:
wochentag.c.
- 24. Übung: Strukturen: dir-Befehl.
Musterlösung:
mydir1.c,
mydir2.c,
mydir3.c.
- 25. Übung: Strukturen &
Funktionen: Bruchrechnen.
Musterlösung:
bruch.c,
bruch-kuerzen.c.
- 26. Übung: Strukturen &
qsort: Text sortieren.
Musterlösung:
textsort.c.
- 27. Übung:
Strukturen & Pointer: Verkettete Liste.
(schwer (Studenten-Stoff), freiwillig, nur für die ganz Guten)
Musterlösung:
liste.c.
- 28. Übung:
Bit-Operationen: Ausgabe binär & hexadezimal, LED-Muster.
Hauptprogramm zum Erweitern für das 2. Beispiel: leds-angabe.c.
Musterlösung:
binhex.c,
leds.c,
leds-sp.c.
- 29. Übung:
Backtracking: 8-Damen-Problem.
Musterlösung:
queens.c,
queens-stepbystep.c.
- 30. Übung (freiwillig, für die ganz Guten):
Backtracking: Rucksack packen
(meine Gegenstands-Liste: gegenst.txt).
Musterlösung:
rucksack.c,
rucksack-opt.c (mit Optimierung),
rucksack-file.c (mit Optimierung und Datei).
- 31. Übung:
Überraschungsbeispiel: Iterierte Funktionssysteme.
Verschiedene Bilddaten: daten-header.zip
Musterlösung:
ifs.c,
ifs-bewegt.c,
ifs-farbe.c.