Hallo Ich bin auf der Suche nach Ideen für eine kleine Gruppenarbeit (max 4 Personen, und etwa 80h pro Person). Wie die Gruppe aussieht, kann uch noch nicht sagen, aber es hat mindestens 2 Elektroniker mit > 3 Jahren Programmiererfahrung und dann halt noch 2 die erst 5 Monate programmieren. Der Lehrer hat uns da auch kleine Beispiele gezeigt (Notenverwaltung für eine Lehrerin und Spiele). Die einzige Auflage ist, das es in C sein soll. Lieber würde ich das alles in C# oder C++ machen, da hier schon die ganze GUI viel rascher und einfacher aufgebaut werden kann. Ich habe mich einmal mit der WinAPI versucht, und mich hats fast überschlagen. Im Vergleich zu einer VC++ Anwendung wäre ein Projekt schon nur die GUI zu erstellen (extrem mühsam und aufwendig). Dazu kommt noch, dass mir in C nur OpenGL als Grafik-Treiber bekannt ist, und da müsste man sich auch noch einarbeiten... Oder gibts ne Möglichkei einfach auf DirectX oder OpenGL mit C zuzugreifen, damit man grafisch auch was machen kann? Was habt Ihr do für Ideen? Ist für mich irgendwie noch schwirig, da sehr unterschidliche Kentnisse vorhanden sind, und es trotzdem spannend sein soll. Gruss
Hallo, bei den Vorgaben, mach doch was mit Retro-Computing. Da passt C, eine GUI kannst du dir schenken oder einfach mit ncurse machen. Außerdem ist das immer wieder gern gesehen, es hat einen Lerneffekt und es gibt etliche Infos. Grüße aus Berlin
Sieh vor allem zu, dass das Ganze so einfach wie möglich wird. Die zwei Typen mit längerer Erfahrung werden wohl weniger Probleme haben, aber für einen (zwei) Anfänger gibt es wohl kaum etwas Schwierigeres als mit anderen zusammen zu arbeiten bzw. zu programmieren. Berücksichtigst Du das von Vornherein, indem z.B. einer gar nicht Programmiert, sondern die Arbeit synchronisiert, so könnte etwas dabei herauskommen. Außerdem könnte der auch, bei eventuellen Defiziten der zwei Anfänger, aushelfen.
Patrick B. schrieb: > Oder gibts ne Möglichkei einfach auf DirectX oder OpenGL mit C > zuzugreifen, damit man grafisch auch was machen kann? Also OpenGL geht problemlos mit reinem C, Eingaben/Steuerung machst du über Tastatur. Mit GLUT kannst du sogar einfache GUIs unter OpenGL basteln, für euer Projekt reicht das dicke.
Hallo Ich wünsche mir einen Logikanalyser ( Software für das stm32 429 DISCO) 8 bis 16 Kanäle. Viel Spaß
GUI in C könnte man auch mit GTK+ machen. http://www.gtk.org/ Da wird man allerdings auch Zeit zur Einarbeitung brauchen, und so schön wie mit einer Sprache, die OOP-Konzepte eingebaut hat, ist es nicht. Wenn du auf der anderen Seite direkt OpenGL nimmst, mußt du halt alles selber machen.
Wenn ihr wirklich soviel Erfahrung habt, sollte folgendes machbar sein: per µC ein paar Messwerte aufnehmen (Temperaturwächter) und mit GTK eine Auswertung programmieren. So als Beispiel. Gruß Dennis
Wir haben in der Schule mit dem STK500 gegeneinander "Schiffe versenken" gespielt. Kommunikation via RS232, die LED stellten die abgeschossenen Boote dar. Auch möglich wäre die Implementierung einer virtuellen Matrix auf der die Boote stehen, wie auf dem Kästchenpapier. Dabei wird eben die Koordinate übertragen, Rückmeldung Treffer etc. Nur mal so als Gedankenanstoß. Im Brainstorming gibt's die Erarbeitung eines gemeinsamen Protokolls, etc...
C ist vor allem für Leute, die viel mit C# oder C++ programmieren, eine gute Abwechslung, um nicht zu vergessen, dass Computer eigentlich keine Klassen kennen ;-) Du kannst z.B. ein kleines Bildbearbeitungsprogramm schreiben. Das kann man auch gut auf Personen aufteilen. Einer kümmert sich darum, Bitmaps einzulesen. Das ist recht einfach möglich. Ein anderer schaut, wie man JPEG einlesen kann. Dazu gibt es fertige Bibliotheken, die man "nur" richtig bedienen muss. Ein anderer schreibt einfache Bildbearbeitungsalgorithmen, z.B. Farbe->Graustufen Umwandlung, Kantenerkennung, vergrößern/verkleiner... Ein anderer baut eine einfache GUI drumherum. Auch in C kann man GUIs erstellen. Gerade GTK bietet sich da an. Aber auch WinAPI ist nicht so schwierig, so lange es eine Einfache GUI bleibt. Und du darfst nicht vergessen, dass sich einfache GUIs auch in C leicht realisieren lassen. Das schöne an solchen Aufgaben ist, dass man die Ergebnisse auch sieht. Wenn die Graustufenumwandlung eines Bildes nicht klappt, sieht man das sofort. Und wenn es klappt, so ist die Freude um so größer, da man es ja sieht. Ein Tipp noch: auch wenn Visual Studio sehr mächtig ist, nehmt lieber CodeBlocks. Das ist anfängerfreundlich, und Dinge wie GTK lassen sich da sehr schnell integrieren. Außerdem hat Microsoft keinen wirklichen C Compiler (bzw. nur einen sehr alten), während du mit CodeBlocks automatisch den gnu Compiler verwendest. Dort hast du die Wahl zwischen C oder C++ Programmen, und wenn du C wünscht, so ist das dann auch echtes C, und nicht ein C/C++ Mischmasch Compiler.
wenn ich 80h pro Person lese und 5 Monate Erfahrung, dürfte eine Bildbearbeitung wohl den Rahmen sprengen. Ich würde mir nicht zuviel vornehmen..
Eine einfache Bildbearbeitung wäre eigentlich genau das Richtige für euch. Lässt sich hervorragend erweitern und ist relativ leicht zu schreiben, wenn man den Ball flach hält, denn die Algorithmen sind schon erfunden und müssen nur noch implementiert werden.
Entwickelt halt einen kleinen Interpreter für eine Kommandozeile auf einem uC, z.B. mit den Möglichkeiten der Linux Bash (ohne & etc.). Das ist ziemlich einfach möglich, trotzdem anspruchsvoll und C die natürliche Wahl. Alles, was GUI ist, würde ich gleich vergessen. Gerade unerfahrene Programmierer produzieren da Bastelcode, der die anderen zum Wahnsinn treibt. S.
Erstmals danke für die Infos... Ich denke einmal, dass das Hauptproblem ist, die Synchronisation und das Vorgehen. Ich zum Beispiel habe mitlerweile 4 Jahre Erfahrung mit C und C++ (und noch ein paar anderen Sprachen, dort aber nur rudimentär). C auf einem uC ist absolut kein Problem, auch grössere Projekte. Nur die Bedingung ist, dass es auf dem PC läuft (also nichts mit uC). Da bin ich selber nicht so erfahren mit C. Ich habe gestern und heute während rund 10h versucht, eine GUI zu schreiben, welche mir ein Sudoku einlesen kann und die Lösung anzeigen. Die logischen Algorythmen (also nicht stupides rekursives einsetzen) hatte ich in 4h (Möglichkeiten löschen, hidden singles, hidden pairs, hidden tripple). So kann ich ein Sudoku bis Stufe sehr schwer lösen. Aber dann habe ich mich mit der WinAPI und C rund 10h herumgeschlagen, und kann die einfachsten Dinge noch nicht so richtig (Farbe einer speziellen Zelle zur laufzeit anpassen), was ich mit VC++ in ~30min hätte erledigt gehabt. Achja, wir verwenden in der Schule Eclipse mit MinGW Linker und GCC Compiler. Ich kann es leider nicht so abschätzen, wieviel Zeit so ein Projekt nunmal wirklich braucht (eben desswegen, weil es unerfahrene hat). Andere Jahrgänge hatten Snake, Tetris, Space invader oder wirklich nützliche Tools gemacht. Wobei ich mir Tetris als sehr schwer vorstelle (wie, und wo darf jetzt etwas gedreht werden, kann man es noch so "hineinschieben"...) Gruss
Kein Mensch schreibt heutzutage eine GUI mit der WinAPI... schau dir lieber mal das schon erwähnte GTK+ an um ein Gefühl für einen "moderneren" Weg zu bekommen. Über das konkrete Framework für grafische Oberflächen existieren hier ab hundert verschiedene Meinungen. ;-) Gruß Dennis
Ihr könntet so was in C versuchen: Beitrag "Projekt: Virtuelle Instrumente an serielle Schnittstelle" Da kann jeder in der Gruppe ein eigenes virtuelles Instrument entwerfen. Als Grundlage für die Graphikbibliothek könntet Ihr das hier vewenden: Beitrag "Grafische Programmierung (Linux + ATmega)"
Patrick B. schrieb: > Erstmals danke für die Infos... > > Ich denke einmal, dass das Hauptproblem ist, die Synchronisation und das > Vorgehen. Ich zum Beispiel habe mitlerweile 4 Jahre Erfahrung mit C und > C++ (und noch ein paar anderen Sprachen, dort aber nur rudimentär). C > auf einem uC ist absolut kein Problem, auch grössere Projekte. Nur die > Bedingung ist, dass es auf dem PC läuft (also nichts mit uC). Da bin ich > selber nicht so erfahren mit C. Ich habe gestern und heute während rund > 10h versucht, eine GUI zu schreiben, welche mir ein Sudoku einlesen kann > und die Lösung anzeigen. Die logischen Algorythmen (also nicht stupides > rekursives einsetzen) hatte ich in 4h (Möglichkeiten löschen, hidden > singles, hidden pairs, hidden tripple). So kann ich ein Sudoku bis Stufe > sehr schwer lösen. > Aber dann habe ich mich mit der WinAPI und C rund 10h herumgeschlagen, > und kann die einfachsten Dinge noch nicht so richtig (Farbe einer > speziellen Zelle zur laufzeit anpassen), was ich mit VC++ in ~30min > hätte erledigt gehabt. > Achja, wir verwenden in der Schule Eclipse mit MinGW Linker und GCC > Compiler. > > Ich kann es leider nicht so abschätzen, wieviel Zeit so ein Projekt > nunmal wirklich braucht (eben desswegen, weil es unerfahrene hat). > Andere Jahrgänge hatten Snake, Tetris, Space invader oder wirklich > nützliche Tools gemacht. Wobei ich mir Tetris als sehr schwer vorstelle > (wie, und wo darf jetzt etwas gedreht werden, kann man es noch so > "hineinschieben"...) > > Gruss ich würde das nicht so negativ sehen, dass ein paar Leute noch Anfänger sind. Auf der Uni geht es nunmal ums lernen. Du kannst wiederum lernen, als Erfahrener das Projekt zu planen und die Aufgaben so zu vergeben, dass jeder damit zurechtkommt. Mit deiner Programmiererfahrung kannst du das sicher gut einschätzen. Im Beruf ist es ja auch nicht anders, da bekommt man immer wieder mal neue Kollegen, die man einzuschulen hat. Und meist lernen die Leute schnell, ich geb denen eigentlich immer Aufgaben, an denen sie wachsen können. Sie kämpfen damit anfangs zwar etwas, aber zum Schluss sind sie dann doch immer sehr stolz darauf, das geschafft zu haben. Ansosnten, warum muss es denn mit GUI sein? Sieh dir mal unter Linux die Kommandozeilenprogramme an. Die haben alle keine GUI, sind aber trotzdem extrem mächtig. Vor allem weil man diese Programme auch in Skripten verwenden kann. Zum oben genannten Vorschlag mit der Bildverarbeitung: Kannst ja ein Kommandozeilenprogramm machen, dem übergibt man den Dateinamen sowie einen Befehl, was es damit machen soll, z.B. verkleinern. Das Programm hätte damit sogar einen Nutzen, wenn du wieder mal die 2000 Urlaubsfotos auf einen Schlag verkleinern möchtest. Viele Bildverarbeitungsalgorithmen sind teilweise recht einfach, sobald du mal eine Matrix mit den Pixeln geladen hast. Hier beispielsweise eine Funktion, die die Pixel ab einem Schwellwert weiß bzw. schwarz macht. Und sonst gibts auch einige Algorithmen die ziemlich einfach zu realisieren sind. // Grenzwert void Threshold(CImage& img, uint8_t value) { MakeGray(img); for (uint32_t x=0;x<img->GetWidth();x++) { for (uint32_t y=0;y<img->GetHeight();y++) { Pixel& px = img->PixelAt(x,y); px.gray = px.gray > value ? 255 : 0; } } }
Patrick B. schrieb: > C auf einem uC ist absolut kein Problem, auch grössere Projekte. Nur die > Bedingung ist, dass es auf dem PC läuft (also nichts mit uC). Da bin ich > selber nicht so erfahren mit C Naja wenn du wirklich so erfahren bist in C, dann sollte dir klar sein, dass C = C ist. Die Sprache ändert sich ja nicht, nur weil sie auf einem anderen Prozessor läuft. Naja auch egal. Bildverarbeitung halte ich auch für ein schönes Projekt. Vor allem kann man einiges draufsetzen, wenn man noch Zeit hat. Ihr könntet euch aber auch mal in der Welt der Elektrotechnik umschauen. Sachen wie einen Widerstandsrechner, Sicherung anhand von Strom und Verlegeart berechnen, .... Halt alles was man so typischerweise in einem Tabellenbuch nachschlagen muss.
ihr könntet was bauen, was ein paar verschiedene Zelluläre Automaten darstellt. Die Anfänger fangen mit einem einfacheren, wie Wolframs 1d-Universum, Ameise oder Nagel-Schreckenberg-Verkehrssimulation. Die erfahreneren Game Of Life oder WaTor. Und vorher macht man sich gemeinsam über das Framework Gedanken, so dass die einzelnen Automaten bestenfalls beliebig austauschbare Module mit glecihem Interface sind, die die Berechnungen ausführen und das Framework sich um die Triggerung der Einezelschritte und der Darstellung, sowie Parametermanipulation kümmert.
Pit schrieb: > Naja wenn du wirklich so erfahren bist in C, dann sollte dir klar sein, > dass C = C ist. Die Sprache ändert sich ja nicht, nur weil sie auf einem > anderen Prozessor läuft. Naja auch egal. Dem stimme ich zu, nur ist aus meiner Sicht C auf einem uC, bei dem man die volle Kontrolle hat und auch direkt auf die Register zugreifen muss, um etwas zu erreichen (Bit-Manipulation) oder das Programmieren auf einem OS wie Windows, bei dem man sich um irgendwelche Treiber, GUIs Windows-Forms, Threads und das Sheduling (ok, das sollte man berücksichtigen, aber muss man sich nicht darum kümmern) oder das Arbeiten mit einem Grafikprozessor doch ein kleiner Unterschied. Die Sprache bleibt gleich, aber das Einsatzgebiet äntert doch so einiges. Wegstaben Verbuchsler schrieb: > Patrick B. schrieb: >> Algorythmen > > http://www.korrekturen.de/beliebte_fehler/algorythmus.shtml Ups, danke für den Hinweis.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.