RegistrierenRegistrieren   LoginLogin   FAQFAQ    SuchenSuchen   
Programmieren für Physiker - C und Java
 
Neue Frage »
Antworten »
    Foren-Übersicht -> Sonstiges
Autor Nachricht
Herbststurm



Anmeldungsdatum: 05.09.2008
Beiträge: 412
Wohnort: Freiburg i. Brsg.

Beitrag Herbststurm Verfasst am: 07. Okt 2008 21:06    Titel: Programmieren für Physiker - C und Java Antworten mit Zitat

Hallo,

da ich kräftig dabei bin Java und C zu lernen, soll nun auch ein Thread zu dem Thema entstehen. Hier soll eine Linkliste erstellt werden zu allem Nennenswerten was das Thema betrifft.

Ich fange mal an:

JavaNumerics page provides a focal point for information on numerical computing in Java

Introduction to Computational Physics


Grüsse smile

P.S.

Sinn der Sache:

Ich möchte selbst Applets schreiben können und zwar zur Theoretischen Physik. Es gibt soviele experimentelle Simulationen, wie z.B.

Homepage von Walter Fendt
Physik Multimedial
Physlets resource page
Mathe-Visualisierungen

Aber trotz intensiver Suche fand ich nur sehr wenig womit man das was ich in der Theorie lernte veranschaulichen kann. Ergo selbst ist der Mensch und dachte mir, dass ich es eben selber programmieren muss.
C habe ich dazu genommen um irgendwann mal Hardware ansteuern zu können. Java für die Webanwendung.

Der "Wo ist der Fehler im Quellcode" Thread wird wohl auch bald kommen... Big Laugh Tanzen
wishmoep



Anmeldungsdatum: 07.09.2008
Beiträge: 1342
Wohnort: Düren, NRW

Beitrag wishmoep Verfasst am: 07. Okt 2008 21:20    Titel: Antworten mit Zitat

Generell jetzt für C (denke, dass du C++ meinst oder doch das alte C oder gar C#?) sind natürlich die "standard" Seiten zu empfehlen:

Sehr gute MS-Online Dokumentation/Hilfecenter für alles

http://www.c-plusplus.de

Zitat:
Der "Wo ist der Fehler im Quellcode" Thread wird wohl auch bald kommen...

Was benutzst du denn für Debugger / IDEs? Denn die würden uns dann schon eine Menge an Arbeit abnehmen LOL Hammer .

Das essentielle ist im Endeffekt ja das modulare Entwickeln der Algorithmen, mit komplett allgemeinen Parametern.

Das Umsetzen in Code kann man gut in Pascal, Java, C, .NET (C#,VB,J#) oder auch Delphi machen - kommt drauf an womit man am besten zurecht kommt.
Und eine kleine Konkurrenz für das "Webmonster" Java wird vllt Silverlight von MS .NET3.0 werden - ist zwar nicht ganz dran zu glauben - aaaber vielleicht smile


P.S.: Richtig in C++ einzusteigen - viel Spaß; da würde ich mich eher auf "andere" Sprachen, wie z.B. dem .NET Bereich widmen, zumal ich von einem Bekannten, der als studierter E-Technik/Informatiker in seiner Firma bald die Umstellung auf .NET von C++ vollzieht; natürlich wäre C++ als Grundlage perfekt für alles andere, ist aber schwer zu erlernen, also richtig zu erlernen.
Herbststurm



Anmeldungsdatum: 05.09.2008
Beiträge: 412
Wohnort: Freiburg i. Brsg.

Beitrag Herbststurm Verfasst am: 07. Okt 2008 21:25    Titel: Antworten mit Zitat

Danke für die links smile

Nein, ich will kein c++ lernen. Objektorientiert übernimmt Java und C soll später nur für Hardware genutzt werden und das braucht keine objektorientierte Sprache.

Mit dem "Fehler Thread" meine ich nicht Tippfehler, sondern Verständnis und ob Debugger da helfen... Augenzwinkern

Gruß
Herbststurm



Anmeldungsdatum: 05.09.2008
Beiträge: 412
Wohnort: Freiburg i. Brsg.

Beitrag Herbststurm Verfasst am: 11. Okt 2008 11:30    Titel: Antworten mit Zitat

von der Uni Regensburg: Programmieren in c und c++ für Physiker:

Programmieren in C und C++


Grüsse
wishmoep



Anmeldungsdatum: 07.09.2008
Beiträge: 1342
Wohnort: Düren, NRW

Beitrag wishmoep Verfasst am: 11. Okt 2008 16:04    Titel: Antworten mit Zitat

Wie sieht das dann mit Distributionen von Codeschnipseln aus?

Weil ich habe gerade mal mein Visual Studio durchforstet und bin auf selbstegschriebene Vektorobjekte, also "Klassen" die einen Vektor darstellen, gekommen - leider in C# - und ein paar Algorithmen habe ich da auch noch rumliegen.
Ist die Frage, ob man eine *.DLL plattformunabhängig in C/C++ einbinden könnte...

P.S.: Für C++ könnte natürlich auch noch das Büchlein von MS hilfreich sein (ich habe die C# Version).
Kategorie 1
Kategorie 2
Sind alles C++ Bücher - Frage ist da halt was man genau braucht.
Herbststurm



Anmeldungsdatum: 05.09.2008
Beiträge: 412
Wohnort: Freiburg i. Brsg.

Beitrag Herbststurm Verfasst am: 12. Okt 2008 20:21    Titel: Antworten mit Zitat

wishmoep hat Folgendes geschrieben:


Weil ich habe gerade mal mein Visual Studio durchforstet und bin auf selbstegschriebene Vektorobjekte, also "Klassen" die einen Vektor darstellen, gekommen


Wie meinst denn das? grübelnd Ein Vektor ist doch nichts anderes als ein größerer Platzhalter, so wie jede andere Variable auch, bloß mit dem Unterschied, dass die Vektoren größere Datenmengen sichern können. Soviel wie man dem Vektor eben zu definiert. Daher was meinst du mit Vektorobjekte?
wishmoep



Anmeldungsdatum: 07.09.2008
Beiträge: 1342
Wohnort: Düren, NRW

Beitrag wishmoep Verfasst am: 12. Okt 2008 20:37    Titel: Antworten mit Zitat

Naja, die sind halt so "programmiert", dass man mit denen einfach rechnen kann, wie z.B. auch mit einem Integer-Wert; habe glaube ich 2er und 3er Vektoren.
Du sparst dir also beim multiplizieren mit einem Skalar die ganzen Rechenoperationen.

Beispiel:
Code:
Vector3D velocity = new Vector3D(x, y, z);
velocity *= 3;

Hier wird z.B. der Vektor der Geschwindigkeit mit 3 multipliziert; ohne großartig jede einzelne Komponente zu multiplizieren, man kann auch Vektoren mit Vektoren verrechnen und so weiter smile.

Und Objekte:
Man kann in C# (weiß nich wie es in C/C++ ist) "Strukturen" definieren; diese selbst definierte Struktur ist dann ähnlich wie die Struktur von "int", "float", "double" oder ähnlichem.
Strukturen benötigen weniger Platz als Klassen bzw. statische Klassen, haben aber dafür auch ein bischen weniger Funktionen - aber man kann halt gut mit ihnen rechnen.

Wie du schon sagtest, er ist eigentlich ein Platzhalter, aber der Sinn hinter Objekten ist ja nun mal das Optimieren von Code / Leistung und das minimieren von Fehlern ;-).
Für kleine Applets natürlich nicht großartig nützlich, weil man das auf die schnelle zwar auch so machen kann, aber wenns schonmal größer wird, denke ich...
wishmoep



Anmeldungsdatum: 07.09.2008
Beiträge: 1342
Wohnort: Düren, NRW

Beitrag wishmoep Verfasst am: 30. Okt 2008 21:43    Titel: Antworten mit Zitat

Ich bin bei der Suche nach einer Visualisierungsmöglichkeit auf eine Bibliothek (C# basiert) gestoßen, um Graphen u.Ä. zu "malen".

ZedGraph

Implementiert in Projekte habe ich es bis jetzt noc nicht, jedoch sehen einige Resultate nicht nicht vielversprechend aus.

Wie es mit der Kompatibilität mit C++ aussieht, kann ich leider nicht sagen Augenzwinkern
wishmoep



Anmeldungsdatum: 07.09.2008
Beiträge: 1342
Wohnort: Düren, NRW

Beitrag wishmoep Verfasst am: 25. Jan 2009 20:41    Titel: Antworten mit Zitat

Eine Beginner's Guide für C++.
Fängt an bei der Geschichte von C++ und den fundamentalsten Kenntnissen.
Zum Lesen der einzelnen Kapitel ist entweder der Microsoft XPS Viewer (Link dazu auf der Seite) oder ein geeigneter PDF-Reader (z.B. Adobe Acrobat) von nöten.

Grüße.
bottom



Anmeldungsdatum: 04.02.2009
Beiträge: 333
Wohnort: Kiel

Beitrag bottom Verfasst am: 13. Feb 2009 15:50    Titel: Antworten mit Zitat

ich habe mich in der letzten Zeit recht ausführlich mit der Mikrocontroller Programmierung in c (nicht c++ oder# sondern das ganz normale, alte c). Falls dich dass interessiert (du sagtest was von Hardwareansteuerung), könnte ich zu dem Thema noch ein paar links beisteuern, die bauen jedoch alle auf einiges an Grundwissen auf.

Falls du wirklich tiefgründig in die hardwarenahe Programmierung einsteigen möchtest, würde ich dir sogar Assembler ermpfehlen - aber achtung: dafür brauchst du würklich viel Freizeit und Langeweile!
an der CAU Kiel lernt man als Studenten alls aller erstes die Programmierung in Assembler bevor man dann anfängt den Mikrocontroller mit schlechtem und ineffizienten Code einer Hochsprache vergewalttätigt!
sax



Anmeldungsdatum: 10.05.2005
Beiträge: 377
Wohnort: Magdeburg

Beitrag sax Verfasst am: 14. Feb 2009 03:42    Titel: Antworten mit Zitat

Hmm, also Assembler ist für Physiker imo nicht unbedingt nötig.
Es hilft dabei zu verstehen was eigentlich im Prozessor selbst passiert,
aber man muß schon einen Draht dazu haben. Bei komplexeren Projekten
steht der Zeitaufwand für Assembler Programmierung in keinem Verhältnis
zu dem zu erreichenden Geschwindigkeitsgewinn zumal ein gut otptimierter Compiler durchaus effizenteren Code erzeugen kann als man es mit Assembler hinbekommt, zumindest wenn man nicht gerade Profi darin ist.
Nichtsdestotrotz ist Assembler Programmierung eine schöne Übung
wen man Spaß an so was hat.

_________________
Der Horizont vieler Menschen ist ein Kreis mit Radius Null - und das nennen sie ihren Standpunkt.
Neue Frage »
Antworten »
    Foren-Übersicht -> Sonstiges