Aufgaben für C gesucht

Jools

Jools

Aktives Mitglied
Thread Starter
Dabei seit
27.11.2005
Beiträge
3.036
Reaktionspunkte
50
Hallo ich bin im Moment dabei ein wenig C zu lernen. Nun habe ich mein erstes Einsteigerbuch fast durch und bin auf der Suche nach Lernaufgaben.

Es sollte in etwa wie das hier aussehen:
http://www.uni-muenster.de/ZIV/Mitarbeiter/ReinhardMersch/C++BasisKurs-Musterloesungen.html (Es geht nur um die Aufgaben und Lösungen. Ein Tutorial suche ich nicht!)

Hier studieren doch einige Informatik, also wenn ihr einen Link zu einer ähnlichen Seite habt dann nur her damit ;)
 
Zuletzt bearbeitet von einem Moderator:
Mh... schreib doch einen Brainf*ck Interpreter.
Dürfte doch ganz spannend sein fürs erste.

MfG S.
 
Interessanter Link hab ich mir für später abgelegt, aber für den Anfang suche ich ganz stupide Newbie Aufgaben ;)
 
Ich schlage einen echten Klassiker vor;

Ein Handlungsreisender muss eine Reihe von Städten in keiner besonderen Reihenfolge besuchen. Bekannt sind die Entfernungen der Städte jeweils zueinander.

Erstelle die kürzeste Router für den Reisenden.

Sonst Sortieralgorithmen.

Alex
 
Das klingt interessant, da werd ich morgen mal drüber grübeln :).
 
kleiner tipp: das problem heißt TSP (Travelling Salesman Problem) und liegt in NPC ;)
 
Ich meinte das aber nicht böse! Auch dieses Problem ist lösbar, wie effizient, das ist halt eine andere Sache.

Alex
 
Na dann los. Du mußt dazu den Simplex-Algorithmus programmieren plus Branch&Bound, denn für die Vorgänger-Nachfolger-Beziehungen verwendet man ja Binärvariablen.
Ich glaube, das ist für den Anfang nicht wirklich sinnvoll, es sei denn, Du hast zufällig mit OR zu tun.
 
eine andere interessante sache ist, zwei strings (zeichenketten jeder art) zu vergleichen und die editierdistanz zu bestimmen. dabei kannst du verschiedene operationen erlauben/verbieten, wie z.b. einfügen von gaps oder ersetzungen. für kurze zeichenketten ist es meist trivial und schnell lösbar, bei langen (1000 oder 10000 zeichen aufwärts) wird es dann schnell doch etwas tricky eine schöne lösung zu finden (ohne existierende algorithmen zu implementieren).

viel spass,
lexa
 
Altivec schrieb:
Na dann los. Du mußt dazu den Simplex-Algorithmus programmieren plus Branch&Bound, denn für die Vorgänger-Nachfolger-Beziehungen verwendet man ja Binärvariablen.
Ich glaube, das ist für den Anfang nicht wirklich sinnvoll, es sei denn, Du hast zufällig mit OR zu tun.

O RLY?

Alex
 
Ich lese mich grade mich grade in verschiedene Algorithmen ein, habt aber etwas Geduld mit mir bin schließlich Anfänger was programmieren angeht.
Ich mach das nur als reines Hobby, hab beruflich überhaupt nichts damit zu tun. ;) Ich freue mich über das Feedback.

Achja wofür steht OR?
 
der_Kay schrieb:
lexa2000, below: Seid Ihr fies... :p

Nein, ich wollte nicht fies sein.

TSP ist kein unlösbares Problem, aber es erfordert eben, dass man mal ein bischen über die Dinge nachdenkt:

- Wie organisiere ich meine Daten?
- Wie bekomme ich mein Ergebnis?

Und dann natürlich:

- Wie bekomme ich mein Ergebnis evtl. schneller?

Alex
 
Zuletzt bearbeitet:
Statt bestehender Konzepte (ILP, B&B) kann man ja auch über Heuristiken oder lokale Suchverfahren nachdenken.
Wer weiß, vielleicht kommt etwas erstaunliches dabei heraus. Das jedoch geht eher in die Richtung Mathematik oder "wissenschaftliche" Informatik.

Vorschlag: Mal einfache lokale Suchverfahren (Annealing Verfahren z.B.) anschauen und ein Programm entwerfen, welches beliebige Funktionen
optimiert". Gegeben f, finde x so daß f(x) = max f(x) für alle x aus Def(f). Eindeutigkeit, Existenz etc.pp. yadda yadda yadda... kann man versuchen, in den Griff zu bekommen, doch letztlich geht es ja ums Programme schreiben.
Dürfte in C mangels Polymorphie besonders interessant sein.

Statt lokaler Suche kann man sich auch an Iterationsalgorithmen wagen. Löse f(x) = 0 für beliebiges f. Zusatz: Erlaube diskrete Definitionsbereich. Zusatz: Löse f(x_1,...,x_n) = 0.
 
einen Taschenrechner, der modular aufgebaut ist, d.h. seine Operatoren (inkl. Formel) z.B. aus einer Textdatei laden kann und mit Klammern, etc. klarkommt. Dafür brauchst du zuerst einen vernünftigen Parser und alles.

Gut fürs SoftwareDesign und Erfahrung allemal.
 
ansonsten wäre ein weiterer Klassiker unterschiedliche Algorithmen zur berechnung von Primzahlen bzw der Primfaktorzerlegung zu entwickeln. Das ist für den Anfang nicht zu schwer kann aber trotzdem ganz unterschiedliche/interessante Ergebnisse haben, besonders wenn man dann noch misst wie lange die unterschiedlichen Algorithmen zur berechnung der gleichen Zahlen brauchen.

Greets Nero
 
Das "Game of Life" waere doch nett, oder nicht? Gerade in C++ ist's eventuell fies, wenn man nicht beachtet dass Arrays irgendwann zu Ende sind...
 
Danke an alle für die vielen Anregungen. Jetzt hab ich eine Weile zu tun ;)
 
uselessuser schrieb:
Das "Game of Life" waere doch nett, oder nicht? Gerade in C++ ist's eventuell fies, wenn man nicht beachtet dass Arrays irgendwann zu Ende sind...

Wann sind Arrays denn nicht irgendwann zu Ende? Ich verstehe nicht ganz, wie sich C++ hier von anderen Sprachen (insbesondere C?) abhebt.
 
Zurück
Oben Unten