c,c# oder c++ für numerische Simulationen
-
Artchi schrieb:
Vertexwahn schrieb:
guter Compiler und gute Entwicklungsumgebung
ich finde, das MS Visual Studio für C# Anwendungen besser ist, als für C++. Gründe:
- bei C# Projekten gibt es eine übersichtliche Klassenansicht - UML ähnlichGibts auch in VC++.
Vertexwahn schrieb:
- Dokumentieren ist super einfach durch eingebaute XML Dokutags - mit minimalen Zeitaufwand läßt sich eine MSDN ähnliche Dokumentation derstellen. Wahlweiße kann auch ein JavaDoc ähnliche Dokumentation erstellt werden, usw. (und ReflectionMechanismen die von Dokumentationstools wie NDoc ausgenutzt werden)
Gibts auch in VC++. (ich meine diese XML-Docu)
Vertexwahn schrieb:
- Es gibt einen GUI Designer
Gibts komischerweise auch in VC++.
komisch das ich alle diese Features in der IDE noch nicht gefunden habe - wo denn erklär mal! Wo gibts z. B. einen UML ähnliche Klassenübersicht - und sag bloß nicht die hätte ich im Objekt Browser
-
Ich wuerd sagen wenn du mit C angefangen hast, dann bleib mit C. Wie du aus den vorherigen Antworten sehen kannst: alle 3 Sprachen erfuellen deine Aufgaben. Nur ists von C ein ziemlicher Sprung auf C++ und C#, da man in den beiden Sprachen normalerweise objektorientiert programmiert... Fuer groessere Projekte mag OOP (ObjektOrienterte Programmierung) prinzipiell besser geeignet sein, aber C ist immerhin die Sprache der Wahl fuer den Linux-Kernel, GNOME, ....
Was vielleicht fuer numerische Simulationen interessant waere, ist Unterstuetzung fuer "genaue" Fliesskommazahlen... wie du vielleicht eh schon weisst, koennen float bzw. double - Datentypen die meisten Bruchzahlen gar nicht korrekt darstellen. C und C++ bringen von Haus aus keine Unterstuetzung fuer exakte Fliesskommazahlen mit, bei C# weiss ich's nicht.Was deine Anforderungen angeht:
Übersichtliche Programmstruktur
Geht mit allen 3 Sprachen. Wenn du prozeduralen C-Code gewoehnt bist, wird dir "echte" OOP anfangs allerdings vielleicht etwas komisch vorkommen. Aber Uebersichtlich wirds in allen 3en
visuelle Darstellung von Ergebnissen (z.b x,y,z Bildchen)
Mal abgesehen von 3D-Programmierung (siehe unten) haben alle 3 Sprachen die Moeglichkeit, grafische Oberflaechen zu erstellen. Am einfachsten geht das sicher mit C#. Weder C noch C++ bieten von Haus aus die Moeglichkeit, GUIs (grafische Oberflaechen) zu erstellen, aber dafuer gibts entsprechende Bibliotheken im Netz (siehe den FAQ-Eintrag: http://www.c-plusplus.net/forum/viewtopic-var-t-is-81596.html)
verfügbare Literatur
C und C++ sind schon aeltere Sprachen, dementsprechend viel Literatur findet man im Netz, zum Teil auch gratis. Hier auf der Seite findest du unter "Tutorials" bereits einiges an Links dazu. Fuer C++ koennte ich dir "Thinking in C++" empfehlen, gibt es in 2 Baenden gratis im Netz unter www.mindview.net
Fuer C# weiss ich nicht, wie die Situation ausschaut.guter Compiler und gute Entwicklungsumgebung
Gibt es ebenfalls fuer alle 3 Sprachen. Fuer C/C++ wuerde sich als Entwicklungsumgebung z. B. "Code::Blocks" mit dem GCC als Compiler anbieten (gratis unter www.codeblocks.org).
Von Microsoft gibts das Visual Studio 2005 Express relativ billig (frueher gabs das mal gratis, k.A. ob das angebot noch gilt) sowohl fuer C, C++ als auch fuer C#.
Fuer C# gaebs ausserdem noch "SharpDevelop" als Entwicklungsumgebung.eventuell auch die Möglichkeit zur 3d Programmierung
Geht auch in allen 3 Sprachen. Fuer C und C++ wuerde sich OpenGL anbieten, C# soll AFAIK einen ziemlich guten DirectX-Zugriff bieten. Vorteil von OpenGL ist sicher, dass die geschriebenen Programme auch unter Linux, Solaris etc. funktionieren. kA ob das fuer dich interessant ist.
natürlich möglichst einfach
Ansichtssache. Aber im Prinzip halte ich (ACHTUNG: persoenliche Meinung) C# fuer einfacher als die anderen beiden, weil es gewisse Gefahren- bzw. Fehlerquellen einfach von vornherein ausschliesst (du kannst in C# z. B. nicht selber Speicher mit malloc() besorgen, bzw. musst nicht mehr mit free() den Speicher wieder freigeben, es gibt keine Pointer....)
Als Alternative koennt ich dir noch Python empfehlen:
Ist IMO (achtung: wieder eigene Meinung) wesentlich einfacher als die 3 von dir vorgeschlagenen Sprachen, schaut wesentlich "sauberer" aus, erfuellt auch alle deine Anforderungen. Die Sprache ist allerdings "langsamer" im Sinne von Programmlaufzeit, dafuer normalerweise (Achtung: Verallgemeinerung, fuer die ich keine Quellen habe) "schneller" im Programmieren, weil man weniger Fehler macht und gewisse Dinge einfach "einfacher" gehen als z. B. in C++.
Python wird soweit ich gehoert habe recht gern fuer numerische Simulationen eingesetzt. Auch gibt es direkte Unterstuetzung fuer beliebig grosse Ganzzahlen (d.h. du kannst int's haben, die wesentlich groesser sind als 2 Milliarden) und exakte Fliesskommazahlen.
-
Wie wär's mit Fortran?
-
groovemaster schrieb:
interpreter schrieb:
(ich weiß ich weiß, gewagtes Posting in einem C++ Forum
)
Zumal man überall auch C++ als Antwort hätte geben können.
Du wirst doch wohl nicht ernsthaft behaupten wollen, dass C++ einfacher ist als C#; dass man mit C++ leichter Ergebnisse visualisieren kann und dass es irgendwas eleganters/"einfacheres" gibt als C#/MDX?
-
net schrieb:
vielleicht wär sowas wie matlab/simulink das richtige für dich. gibbet auch freeware-clones davon.
Wo gibt es denn einen Simulink-Clone?
-
Walli schrieb:
net schrieb:
vielleicht wär sowas wie matlab/simulink das richtige für dich. gibbet auch freeware-clones davon.
Wo gibt es denn einen Simulink-Clone?
weiss nicht. such doch mal mit google oder sowas.
-
Ah, Scilab hat sowas sehe ich gerade. Naja, da arbeite ich aber trotzdem lieber mit dem Original weiter.
-
Johannes @upb schrieb:
guter Compiler und gute Entwicklungsumgebung
Blue-Tiger schrieb:
Als Alternative koennt ich dir noch Python empfehlen:
Gibt's da eigentlich auch ne gute Entwicklungsumgebung?
-
rzht schrieb:
Johannes @upb schrieb:
guter Compiler und gute Entwicklungsumgebung
Blue-Tiger schrieb:
Als Alternative koennt ich dir noch Python empfehlen:
Gibt's da eigentlich auch ne gute Entwicklungsumgebung?
ich verwende SPE (http://www.stani.be/python/spe), bringt eigentlich alles mit, was ich brauche
-
Hallo,
danke erstmal für die vielen Antworten. Ich möchte gerne noch etwas anfügen.
Gibt es für C auch eine ähnliche Entwicklungsumgebung wie für C# bzw C++ (Microsoft Visual C#, C++ )??
Und was ist der Hauptunterschied zwischen c++ und dem neuen c# ??
Und kann man mit c# auch anwendungen für Linux schreiben, denn bei uns wird auch sehr gerne Linux verwendet und wir hatten schon des öfteren Probleme mit Kylix und Delphi !
-
Johannes @ upb schrieb:
Gibt es für C auch eine ähnliche Entwicklungsumgebung wie für C# bzw C++ (Microsoft Visual C#, C++ )??
in der c++ ide kannste auch c projekte machen.
Und was ist der Hauptunterschied zwischen c++ und dem neuen c# ??
c# ist von microsoft, c++ nicht. :p
Und kann man mit c# auch anwendungen für Linux schreiben, denn bei uns wird auch sehr gerne Linux verwendet und wir hatten schon des öfteren Probleme mit Kylix und Delphi !
naja sagen wir mal problematisch(siehe mono-project), und die ide's sind afaik ziemlich buggy.
-
Johannes @ upb schrieb:
Und was ist der Hauptunterschied zwischen c++ und dem neuen c# ??
Und kann man mit c# auch anwendungen für Linux schreiben, denn bei uns wird auch sehr gerne Linux verwendet und wir hatten schon des öfteren Probleme mit Kylix und Delphi !C# war die Antwort von Microsoft auf den Boom von Java in der Industrie. C# ist Java sehr ähnlich(VM,GC, Bytecode).
Ich empfehle Dir ganz klar C++, da bei numerischen Berechnungen und Simulationen es auf Geschwindigkeit ankommt. Zudem hast Du dann keine Probleme unter MacOS, BSD, Linux und anderen Unices. Für solche Aufgaben ist C++ zusammen mit OpenGL Industriestandard.
-
C würd ich auf keinen Fall nehmen, dann C++.
Wenn dir Einfachheit wichtig ist, dann bist mit C++ aber falsch bedient, weil C++ ist ganz und gar nicht einfach. Es braucht einfach sehr lange bis man mit C++ wirklich vertraut ist.
Von C# würd ich abraten wenn Plattformunabhängigkeit eine Rolle spielt, dann lieber Java.GUI-Designer, IDE, Grafik-APIs gibts für alle genannten Sprachen sehr gute, also daran musst du die Wahl der Sprache nicht fest machen.
-
Johannes @upb schrieb:
... ab und an kleine Simulationsprogramme ... kleine Steuer und und Spassprogramme mit Delphi...
natürlich möglichst einfachVisualBasic/C# wurde extra für leute wie dich erschaffen, du mußt da deinen kopf nicht sonderlich mit grundlagen anstrengen, oder mit ordentlichem design, weil die meisten dinge fertig vorgegeben sind und um die "fallen" die man als proffessioneller programmierer erst zu meistern lernt, mogeln sich die sprachen drumherum.
je nachdem, ob du mehr so nen "anfänger"syntax magst, oder einen "unübersichtlichen" kannst du VisualBasic bzw c# nehmen. viel mehr unterschiede solltest du nicht finden.
c und c++ bringen dich ansonsten nicht so schnell zum ziel, falls du die sprachen nicht perfekt beherrscht, weil du dich dann mehr um das lösen sprachlicher probleme kümmerst, statt auf dein gewünschtes resultat draufzu zu arbeiten... du als physiker möchtest ja auch sicherlich nicht erst selber einen teilchenbeschleuniger bauen bevor du einen benutzen kannst
rapso->greets();
btw. ich geh mal davon aus dass deine simulationen nicht das letzte aus dem pc herausquetschen.
-
Hab ich das jetzt falsch verstanden oder willst du wirklich C# und VB in den selben Topf schmeißen?
-
wieso sollte ich das wollen? das ist nunmal was VB und c# sind. VB hat ein schlechtes image "weil es für anfänger ist" und da mußte man bei microsoft ein wenig dem marketing unter die arme greifen um nach dem streit mit sun ne alternative zu java zu bieten indem man nen neuen syntaxparser zusammensteckt.
ich finde beide syntax, sowie java, sind für ihre anwendungsgebiete viel besser geeignet als c++. bevor es c# gab hab ich fürs schnelle zusammenhacken immer profan benutzt, gerade was GUI angeht suckt MFC irgendwie total ab. VB/C# sind da wie auch Delphi viel nutzerfreundlicher finde ich (my2cent).
-
Walli schrieb:
Hab ich das jetzt falsch verstanden oder willst du wirklich C# und VB in den selben Topf schmeißen?
ist doch die eh' gleiche grütze. #develop z.b. kann vb-code nach c# konvertieren und umgekehrt. dann kann es ja nicht sooo unterschiedlich sein.
-
net schrieb:
Walli schrieb:
Hab ich das jetzt falsch verstanden oder willst du wirklich C# und VB in den selben Topf schmeißen?
ist doch die eh' gleiche grütze.
net is der einzige reg troll
-
detector schrieb:
net schrieb:
Walli schrieb:
Hab ich das jetzt falsch verstanden oder willst du wirklich C# und VB in den selben Topf schmeißen?
ist doch die eh' gleiche grütze.
net is der einzige reg troll
macht nix, es gibt etliche konverter für vb <--> c#. guckst du: http://www.google.de/search?hl=de&q=convert+vb+c%23