[MRT] C-Praktikum (SDL.h)

Antworten
sodo18
Beiträge: 39
Registriert: 16.05.2008 13:19

[MRT] C-Praktikum (SDL.h)

Beitrag von sodo18 » 16.01.2009 17:51

Hallo
Ich habe die Livecd vom Mrt in mein PC, und habe versucht mit Eclipse das Praktikumsprogramm zu pruefen.
Mein Problem ist, das nach dem oeffnen des workspace MRT1_V3 und den Programm pruefen, kamm mir die Fehlermeldung beim SDL.h : "Invalid project path: Include path not f MRT1_V3 pathentr Path Entry Problem"

Weiss jemand was man in diesem fall machen kann??
Danke

fabian
Beiträge: 2283
Registriert: 12.11.2003 17:03
Name: Fabian
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2003
Wohnort: München
Contact:

Re: [MRT] C-Praktikum (SDL.h)

Beitrag von fabian » 17.01.2009 01:10

Sorry, diese Antwort wird dir nicht helfen, aber:

Damals, als ich dieses Praktikum machen musste, wurde der Kram mit dem guten alten Borland C-Compiler gemacht: Eine inakzeptable Loesung weil dieser nicht allgemein zur Verfuegung stand, sich aber natuerlich mehr oder weniger problemlos verbreitete, so dass jeder ohne Probleme das Praktikum vorbereiten konnte. Trotzdem Scheisse; mehr Zeit wurde damit verschwendet, den Compiler und seine eigenartigen Grafikbibliotheken zu baendigen, als sich mit der Programmierung an sich zu befassen.

Die grosse Chance, das Praktikum auf eine portable und einfache Weise umzugestalten wurde offenbar komplett versemmelt. Wahrscheinlich hat da ein betrunkener Hiwi mal kurz bei Wikipedia geschaut, was es fuer Grafikbilbiotheken gibt, die auch auf einem handelsueblichen Toaster laufen und SDL gefunden. Toll. Dann noch kurz mit einem Wizard eine Live-CD herumgebaut und weil das ganze noch nicht genuegend aufgeblasen war noch Eclipse als Entwicklungsumgebung auserkoren.

Herzlichen Glueckwunsch.

Natuerlich kann man mit einem Vorschlaghammer einen Chip bonden, genau wie man sich vor einem Marathonlauf ins Knie schiessen kann.

Man haette die Praktikumsaufgabe aber auch leicht umstellen koennen, so dass es egal ist, ob man sein C-Programm auf einem Toaster, einer Linuxkiste, einem Mainframe oder einem Amiga in echtem ANSI C kompiliert. Fuer diejenigen, die das Praktikum nur hinter sich bringen wollen, gibt es dafuer die Login-Server am ZIH (ehemals URZ), da ist alles was man braucht installiert. Fuer alle anderen bedarf es keiner weiteren Erklaerungen. Ausgabe in einem Bitmap-Format; u.U. die Aufgabe etwas anspruchsvoller gestalten, dafuer Schwerpunkt auf echte C-Programmierung.

Tja.
Le Netaction est mort, vive le Netaction !

Darnok
Beiträge: 116
Registriert: 12.01.2008 18:15
Studienrichtung: Elektrotechnik
Matrikel: 2007
Angestrebter Abschluss: Dipl-Ing.

Re: [MRT] C-Praktikum (SDL.h)

Beitrag von Darnok » 17.01.2009 07:56

ich weiß nicht, ob das das gleiche problem ist, das alle mit der live-cd hatten. wenn ja, dann helfen dir diese beiträge vielleicht:

viewtopic.php?f=36&t=6922

Benutzeravatar
para
Beiträge: 277
Registriert: 01.01.2007 15:43
Geschlecht: männlich
Studienrichtung: Informationssystemtechnik
Matrikel: 2007
Angestrebter Abschluss: Dipl-Ing.
Wohnort: Dresden
Contact:

Re: [MRT] C-Praktikum (SDL.h)

Beitrag von para » 17.01.2009 09:56

Ich hab jetzt auch schon mehrmals gegrübelt wo das Problem liegen könnte, hab aber keine wirkliche Idee. Ich schiebs auch mal komplett auf die SDL Bibliothek. Vielleicht mal nachinstallieren/neuinstallieren mit
sudo apt-get install libsdl1.2-dev

Des weiteren stimme ich fabian 100% zu. Das C Praktikum ist der letzte scheiss mit 0% Lehrgehalt. Wer C kann schreibt das so runter und wers nicht kann lernt nix dadran. Der X11 Entwurf von fabian läuft großartig und ist für ein C Programm viel natürlicher als SDL. Ich verstehe auch nicht, warum manche sich vor Linux so sträuben. Das ganze programmieren in einem einfachen Texteditor (vi, nano, Emacs, gedit) zu machen und dann über den Terminal zu kompilieren hat viel mehr Stil als in Eclipse auf "Build Project" zu klicken. Jedenfalls bei diesen recht kleinen Programmen. Sobald es ausartet sind Editoren (XCode, VisualStudio, Eclipse) wirklich notwendig.

So genug aufgeregt...jetzt Versuch ich weiter die Mandelbrot Farbpalette auf 256 Farben zu erweitern.

Benutzeravatar
MrGroover
Beiträge: 3593
Registriert: 02.12.2003 09:48
Name: Micha
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2003
Angestrebter Abschluss: Dipl-Ing.
Contact:

Re: [MRT] C-Praktikum (SDL.h)

Beitrag von MrGroover » 17.01.2009 12:19

para hat geschrieben:So genug aufgeregt...jetzt Versuch ich weiter die Mandelbrot Farbpalette auf 256 Farben zu erweitern.
Hey, das kommt mir bekannt vor, aber damals lief das noch mit dem Borland und man musste 'nur' ne andere Grafikbibliothek nehmen, naja, und das Zuweisen der Ergebnisse zur Farbe auch, aber das is ja nicht so schwer...

Das Problem an dem Praktikum ist doch, dass die meisten Studenten Windows oder noch schlimmer, Apfelnutzer sind. Die kennen nur noch Klickibunti -- gerade wenn man mal überlegt, welche Jahrgänge jetzt vor allem mit Studium anfangen (1988-1990), da sind doch viele schon mit Windows95/98 groß geworden, Konsole oder Terminal ist da oftmals ein Fremdwort bzw. bezeichnet etwas, was die Hacker ausm Fernsehen verwenden, oder die Informatiker. In wenigen Jahren gilt das auch für die Linux-Nutzer, dank Gnome und KDE ist der Einstieg in Linux doch recht leicht, weil man sich nicht mit der Konsole anfreunden muss. Programmierung muss dann also nicht mehr zu irgend etwas kryptischen verkümmern, wo man sich noch mit irgendwelchen Eingaben sorgen muss. Für viele Anfänger birgt C schon genügend Stolperfallen (Groß/Kleinschreibung wichtig, strikte Klammersetzung, Semikolon am Ende einer 'Zeile' -- wenn man sieht, wie manche in Foren schreiben, scheint das schon eine der größten Herausforderungen zu sein, strikte Syntax), da kann man die Fehlerquellen beim kompilieren gleich mal ganz abstellen, in dem man ne IDE verwendet (okay, dass die SDL-Einbindung hier mangelhaft ist, ist ein blöder Schnitzer). Man sollte auch froh darüber sein, dass man kein Visual Studio Professional 2008 und dann DirectX nehmen muss, welches ja dank MSDNAA kostenlos zur Verfügung stünde (wie auch gleich das passende Windows, damit die Ausrede nicht zieht). Vielen Studenten ist es sicherlich egal, dass man mit C Programme schreiben kann, die auf vielen Plattformen laufen und dabei nichtmal auf x86 beschränkt sind. Viele machen das Praktikum sicherlich nur, weil es im Lehrplan steht und machen danach dann einen großen Bogen um Programmierung und diejenigen, die den Spass an der Sache gefunden haben, hatten einen Einstieg, eine Basis, von der aus weiter gelernt werden kann. Es ist hier nicht Aufgabe der MRT Vorlesung, die Studenten zu perfekten Mikrocontrollerprogrammierern zu machen, oder DSP Programmierern. Es ist eine Grundlagenvorlesung mit dem Hauptaugenmerk auf den PC und da wird auch nicht mehr gemacht, als grundlegendes Rüstzeug beizubringen. Etwas Vertiefung kommt bei MRT2 und vor allem dann im Hauptstudium, wenn man die entsprechenden Vorlesungen besucht.

Ich finde es richtig, dass für das Praktikum Eclipse genommen wird, nicht nur im Gegensatz zu Visual Studio. Die entscheidenden Vorteile bietet auch ein Visual Studio. Auch wenn andere Editoren den Quelltext farblich hervorheben können, so fehlt doch die direkte Anbindung zum Preprozessor, Compiler und Linker. Eine IDE setzt hier an den richtigen Stellen an. Syntaxfehler findet man leicht und es wird oftmals eindeutig angezeigt, was falsch ist. Auch der Umgang mit dem Debugger wird recht einfach gehandhabt. Das war in BlueJ schon recht bescheiden, obwohl sicherlich angenehmer, als es über Konsole zu machen. Gerade für kleine Projekte ist es zum Lernen ideal. Die Konsolenanhänger sollten einfach bedenken, dass andere Menschen einen anderen Umgang mit dem Computer gelernt haben. Die anderen, also diejenigen, die ne grafische Oberfläche bedienen können, sind in der Mehrheit, ob das nun richtig oder falsch ist, ist eine andere Frage.

Die Idee von fabian mag zwar mit einem geringeren Aufwand verbunden sein, allerdings würde so für viele nicht C-Programmierung im Vordergrund stehen, sondern das Erlernen des Umgangs mit der Konsole. Ob man jetzt den Umgang mit der SDL lernt oder einer anderen Bibliothek, die Grafiken erzeugen kann (libpng, o.ä.), ist im Endeffekt drittens, gerade für die, die das Praktikum nur aus oben genanntem Grund (Lehrplan/Pflicht) machen. Es wäre hier auch denkbar, ganz auf eine Bibliothek zu verzichten und z.B. ein PPM zu schreiben, das geht mit (f/s)printf() und der Aufbau ist in kurzer Zeit erklärt.

Die LiveCD ist auch sinnvoll, denn so kann man die Entwicklungsumgebung vorgeben und für alle eine gemeinsame Ausgangsbasis schaffen. Wenn jetzt jeder seine eigene Entwicklungsumgebung erstellen müsste, dann würde es sicherlich schon in der Gruppe Probleme geben, weil bei dem einen die Bibliothek nicht im Pfad x sondern im Pfad Y liegt und dann noch mit kompletten Pfadangaben eingebunden wurde. Von den Problemen, die es mit beim Praktikum dann gibt, ganz zu schweigen. Da es, wie bereits erwähnt, eine Grundlagenvorlesung ist, kann man sich auch auf die Grundlagen der Programmierung, in diesem Falle dem Erstellen von Quelltext, konzentrieren und nicht auf die Unzulänglichkeiten oder Eigenheiten der jeweiligen Umgebung (auch wie erwähnt, dass die LiveCD die SDL nicht richtig einbindet ist mangelhaft).

Was aber prinzipiell fehlt, und wo wir vor allem von Informatikern und ISTlern belächelt werden: Wir lernen nicht, wie man richtig programmiert. Klar, wir lernen die Syntax einer Programmiersprache oder welche Möglichkeiten es gibt (Schleifen, Bedingungen, Funktionen/Unterprogramme, Operatoren), die meisten schreiben aber einfach nur drauf los, keiner macht sich vorne weg Gedanken, wie man was realisieren könnte, ob es so Sinn macht und ganz wichtig, wo es Probleme damit gibt oder geben könnte (Planung). Das nächste ist, dass wir null Kontakt mit Versionskontrolle haben (oder hatten, falls sich das geändert hat). Mir persönlich fehlte auch der Umgang mit dem Debugger, ich kann mich zwar erinnern, dass dieser mal erwähnt wurde und auch etwas näher vorgestellt wurde, aber ich erzeuge mir noch immer mehr Hilfsausgaben, als den Debugger zu verwenden. Kurz: es wird in diesem Falle wenig bis keine Methodik gelehrt, aber dafür "können" wir Java, ASM, C und C++.

sodo18
Beiträge: 39
Registriert: 16.05.2008 13:19

Re: [MRT] C-Praktikum (SDL.h)

Beitrag von sodo18 » 18.01.2009 15:17

Ich habe noch einen Problem, und zwar ich hatte sdl.h hingekriegt, aber unabhengig von das, kommen ihrgendwelch fehlermeldungen bei paar funktionen:

Ich habe Geschrieben zum Beispiel: void Fraktal (tComplex c, tComplex z, tParam p)
das Problem ist das er eine klammer vor c haben will, und wenn man die klammer tuht, will er weitere andere klammern, bis er es als was anderes interpretiert, und bis zum schlussnicht mehr denselben sinn hat.

Vielen dank...

Benutzeravatar
Taurus
Beiträge: 33
Registriert: 09.07.2008 06:50
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2007

Re: [MRT] C-Praktikum (SDL.h)

Beitrag von Taurus » 18.01.2009 17:47

probiere mal "struct" vor tComplex c bzw. tComplex z zu schreiben. so ein ähnliches problem hatten wir auch, weil wir tComplex nicht richtig deklariert hatten. eventuell müsst ihr es auch vor tParam schreiben, je nachdem, ob das auch falsch deklariert wurde.

also: void Fraktal (struct tComplex c, struct tComplex z, tParam p)

Benutzeravatar
para
Beiträge: 277
Registriert: 01.01.2007 15:43
Geschlecht: männlich
Studienrichtung: Informationssystemtechnik
Matrikel: 2007
Angestrebter Abschluss: Dipl-Ing.
Wohnort: Dresden
Contact:

Re: [MRT] C-Praktikum (SDL.h)

Beitrag von para » 18.01.2009 18:55

Mhh wenn der Compiler meckert, dass Klammern fehlen würd ich immer auch mal nach fehlenden Semikolons in der Nähe des Fehlers gucken. Sytaxfehler in C sind die Hölle...

Benutzeravatar
DasMuh
Beiträge: 284
Registriert: 12.05.2008 17:01
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2007
Angestrebter Abschluss: Dipl-Ing.

Re: [MRT] C-Praktikum (SDL.h)

Beitrag von DasMuh » 18.01.2009 19:00

was taurus meinte ist mit hoher wahrscheinlichkeit der fehler, den hatte ich auch. wenn tComplex und tParam nur als "struct" und nicht als "typedef struct" deklariert sind, dann muss man bei jedem erscheinen des types noch ein struct davorsetzen.

Antworten

Zurück zu „3. Semester: Diskussionen“