Roboter in C# programmieren

Posted By: TheShooter

Roboter in C# programmieren - 09/12/11 23:50

Hi,
wir habe ein projekt in der Schule, wo wir einen Roboter bauen, und programmieren können. Die Programmiersprache ist in diesem Fall C#. Kommt mir da die Erfahrung mit lite-c zugute?

Leider habe ich keine Ahnung, welche Aspekte von c# gefragt sind, gibt es jemanden, der mit sowas Erfahrung hat?

mfG
Posted By: Joey

Re: Roboter in C# programmieren - 09/13/11 01:29

klar hilft dir Lite-C-Erfahrung. Du wirst etwas umdenken müssen in der groben Programmstrukturierung, eine wichtige Sache, die du lernen solltest, sind Klassen. Außerdem sind sehr viele Details anders (Speichermanagement, um mal das wichtigste zu nennen).

Je mehr Programmiersprachen du beherrschst, desto "abstrakter" kannst du Programmieren und grobe Konzepte entwickeln. Im Endeffekt geht es dann nur noch darum, die Syntax und Feinheiten der Sprache zu lernen.

(OT: Im Allgemeinen finde ich es immer besser, wenn man zuerst hardwarenähere Sprachen lernt. C ist äußerst prima. Ich kenne sehr wenige Leute, die mit Basic/PHP/whatever angefangen haben und ordentlich Programmieren können; da ist einfach die "Erziehung" anders.)

Lite-C ---> C# ist aber eine gute Richtung.
Posted By: FlorianP

Re: Roboter in C# programmieren - 09/13/11 02:25

C# ist eine super Sache für alle kleineren Projekte - durch die ganzen eingebauten libraries kann man sehr schnell sehr viel erreichen.
Ich programmiere seit 8-9 Jahren und hab mich erst vor kurzem das erste mal mit c# beschäftigt; und ich muss sagen - es gibt kaum eine Sprache die einen leichteren Einstieg bietet.

Wenn du von lite-c kommst würde Ich mir vor allen Dingen das Zeigermanagement(z.B. delegate und den base-'pointer') bzw die Garbage-collection anschauen. Ansonsten wie Joey schon sagt objectorientierte Programmierung natürlich.

zum OT:
Ich selbe habe mit Basic angefangen und finde, dass das absolut egal ist. Wichtig ist nur, dass man irgendwann ein gewisses Spektrum kennt.
Klar sind die Einflüsse andere und ich würde heute immer lieber auf c-sprachen zurückgreifen - aber die meisten c-kiddies, die Ich kenne denken zu sehr in 1en und 0en und verlieren den Überblick über das große Ganze.
Hardwarenähe ist eine super Sache aber man muss auch damit umgehen können und vorallem c verleitet permanent dazu das Rad neu zu erfinden - da ist z.b. c# eine super Stütze(klar wird man irgendwo eingeschränkt, aber oft auch aus triftigem Grund).
Was mir persöhnlich sehr geholfen hat ist das Lernen von logischer und prozeduraler Programmierung(in meinem Fall prolog und haskell) - zu erleben was möglich ist wenn ein bisschen mehr darüber nachdenkt was man haben will als wie es am Ende in 1en und 0er aussieht.
...Finds immer wieder erschreckend wie viele Leute die seit Jahren in der Hobbyspieleprogrammierung unterwegs sind und bei einfachsten Datenstrukturen wie linked-listen oder hashmaps aufgeschmissen sind...."Array, Array, Array...."

Hardwarenähe ist wie Autofahren - wenn mans kann, fährt man überall selbst hin - aber wenn man mal nach Australien will sollte man ein bisschen Kontrolle abgeben und den Flieger nehmen. Kann viel passieren und man braucht ein Shuttle(oder Leihwagen) zum Hotel aber am Ende ist man doch schneller!^^
Assembler/C ist super für nen kleinen roadtrip aber für die Weltreise sollte man lieber das gemanagete c++ framework chartern.

Edit: omg...man merkt es ist schon spät^^

Posted By: TheShooter

Re: Roboter in C# programmieren - 09/13/11 05:52

Ok, vielen Dank. Heute war mal wieder so ein Tag. Bis 6:00 Uhr vorm SED gehockt, und erst dann gemerkt, dass man ja zur Schule muss. grin

Wo bekomme ich denn ein paar c# Zusammenfassungen oder Tutorials her? Da das Projekt schon am Montag anfängt, würde es sich doch nicht mehr lohnen ein Buch zu bestellen, oder? Wenn ja, welches denn? Gibt da so viel. laugh

mfG
Posted By: FlorianP

Re: Roboter in C# programmieren - 09/13/11 07:03

http://openbook.galileocomputing.de/visual_csharp_2010/
Posted By: Machinery_Frank

Re: Roboter in C# programmieren - 09/13/11 07:27

Originally Posted By: Joey
Ich kenne sehr wenige Leute, die mit Basic/PHP/whatever angefangen haben und ordentlich Programmieren können; da ist einfach die "Erziehung" anders.


Das liegt vermutlich an Deinem Alter. Ich habe auch Basic zuerst gelernt und zwar noch mit Zeilennummern. Nicht destotrotz musste ich damals aus Performance-Gründen auf dem C64 zusätzlich für Grafikeffekte reine Maschinensprache und Assembler lernen. Dort arbeitete man mit Registern und kurzen Sprung- und Kopierbefehlen, mit Adressen und Hex-Zahlen. Hardware-näher geht es kaum. C ist dagegen genauso abstrakt wie Pascal oder C#.

Aber heute stimme ich mit Dir überein. Wenn jemand Java als erste Sprache lernt und sich nicht weiter mit den Hintergründen beschäftigt, weiß er kaum noch, was tatsächlich auf Hardware-Ebene passiert, wie aus einem binären System eine Hochsprache entstehen konnte, die Prozeduren, Blöcke, Klassen und Vererbung versteht. Allein die Initialisierungs- oder Aufräumaktionen werden einem häufig abgenommen, was natürlich zu einem anderen Stil erziehen könnte.
Allerdings muss ich auch zugeben, dass man damals eine Programmiersprache schneller lernen konnte, denn die APIs sind heute komplexer, die Vernetzungen vielfältiger und die Features der Programmiersprachen sehr viel umfangreicher.

Ich hatte das Glück, die ganze Entstehung mitzuerleben. Ich meine, auch Pascal war damals noch zeilenorientiert. Diese Fixierung auf Zeilen war den Sprungbefehlen der Maschinensprache eigentlich viel näher. Erst die Blöcke mit den bedingten Befehlen begannen, Abstraktion und Struktur einzuführen. Und dann kamen auf einmal Objekte und Klassen, Vererbung und Komponenten. All das bot eine Menge Hilfe bei komplexeren Projekten, war aber jedesmal mit Lernen, Umstellen und Umgewöhnen verbunden.
Und ja, bei ganz kleinen Beispielen war das jedesmal, dass diese neuen Konzepte umständlicher aussahen und mehr Code benötigten. Es zahlt sich eben erst aus, wenn eine bestimmte Komplexität in einem Projekt überschritten wird.
Posted By: TheShooter

Re: Roboter in C# programmieren - 09/13/11 16:39

Moment mal. Gibt es einen Unterschied zwischen C und C#?! Wenn es denn so sein sollte, meinte mein Lehrer nämlich C. Muss ich da wieder komplett umdenken?
Posted By: Lukas

Re: Roboter in C# programmieren - 09/13/11 17:00

In dem Fall ist C fast das selbe wie Lite-C. Du hast nur andere Header, keine Caroutinen (also kein wait) und ein paar Features, die bei Lite-C einfach wegelassen wurden (unsigned, trinäre Operatoren...) und ein paar kleine Sachen, die in Lite-C nicht ganz dem Standard entsprechen.
Posted By: Joey

Re: Roboter in C# programmieren - 09/13/11 17:10

das sind zwei paar Stiefel.
http://de.wikipedia.org/wiki/C_(Programmiersprache)
http://de.wikipedia.org/wiki/C-Sharp

@Frank: ich stimm dir da voll und ganz zu, das ist ja auch genau das, was ich gemeint habe. Allerdings: C# und C/Pascal sind zwar rein technisch beides Hochsprachen der 3. Generation, aber garbage collection macht so einen großen Unterschied...
@Flo: das war kein Basic vs. C, sondern ein Basic, dann C vs C, dann Basic wink. Und man merkt einen Unterschied, wenn man Leuten beim Programmieren zuguckt. Und meiner Erfahrung nach ist das in 80% ein negativer, wenn die Leute zuerst mit Basic anfangen... ich mag darüber aber keine Aussage treffen, kann gut sein, dass das mit irgendwas anderem korreliert. Ein Punkt dafür wäre aber, dass Basic wesentlich weniger populär ist.
© 2024 lite-C Forums