Laden...
K
kuda myCSharp.de - Member
München/Stuttgart Dabei seit 06.04.2008 17 Beiträge
Benutzerbeschreibung

Forenbeiträge von kuda Ingesamt 17 Beiträge

14.10.2009 - 09:12 Uhr

Angefangen hab ich mit QBasic, damals, als es noch DOS gab 😉 Da hab ich goto geliebt... Hab alles mögliche Kleinzeug geschrieben, was alles mehr schlecht als recht funktioniert hat. Kleine Spiele, ein Notenlernprogramm für den Bassschlüssel, eine Simulation für den schrägen Wurf für einen Vortrag in Physik etc.
Der Sprachgruppe bin ich dann treu geblieben und hab zu VB5.0/6.0 gewechselt, in der ich dann für meine Facharbeit mein erstes "großes" Programm geschrieben habe, nachdem alle größeren Projekte vorher kläglich gescheitert sind.

In der Uni kam ich dann das erste Mal mit objekt-orientierter Programmierung in Berührung und war begeistert. Insofern hab ich auf VB.Net umgesattelt, bzw. relativ schnell auf Java, wo Programmieren plötzlich doppelt so viel Spaß gemacht hat, weil ich endlich in der Lage war Programme zu schreiben, die funktionieren UND die ich sogar noch weiterentwickeln konnte, ohne das ich mich in dem Wust von Code nicht mehr zurechtfinde 😃
Zu C# kam ich erst später im Nebenjob und damit bin ich glücklich 😉

Grüße
kuda

05.10.2009 - 13:10 Uhr

Hallo Siassei

Zumindest zu zwei Punkten kann ich was sagen:

Eine Alternative würde OpenCL oder CUDA darstellen. Doch wie kommt man mit Hilfe von z.B. OpenCL zu einem Bild? Gibt es eine Möglichkeit über OpenCL mit den Schnittstellen OpenGL oder DirectX zu kommunizieren?

Mit CUDA kann man bisher wohl nur Vertexbuffer von Direct3D 9 in den CUDA Adressraum mappen. Damit ist es dann möglich Daten hin- und herzuschaufeln. Ähnliches gilt wohl für OpenGL, allerdings hab ich selber noch nicht mit diesen Möglichkeiten gearbeitet.

Wie könnte sich der Vertex- und Geometrie-Shader effizienter einbinden lassen, damit diese den Pixel-Shader (=Fragment-Shader) entlasten?

Soweit ich weiß werden alle Shader inzwischen hardwareseitig nicht mehr unterschieden. D.h. sie werden alle von den gleichen Streamingprozessoren ausgeführt. Wird demnach ein Shadertyp nicht verwendet, steht die volle Rechenleistung den anderen Shadern zur Verfügung. Insofern braucht man hier keine Rücksicht auf das Verteilen der Last nehmen.

Grüße
kuda

04.07.2009 - 12:27 Uhr

Hallo herbivore

Es wird allerdings natürlich spätestens dann interessant regex zu benutzen, wenn Parameter auch Leerzeichen enthalten dürfen und daher mit Anführungsstrichen etc. umgeben werden können.

Grüße
kuda

08.06.2009 - 16:36 Uhr

Hallo Froggie

Eigentlich kann man mit den Landau-Symbolen nicht aussagen, welcher Algorithmus schneller ist. Die Notation gibt immer nur eine Tendenz an. Genauer gesagt, liefert dir eine Aussage ala O(n²) ein Wachstumsverhalten, wenn du die Problemgröße änderst.

Beispielsweise könnte ein Sortieralgorithmus der Komplexität O(n²) für das Sortieren von 50 Elementen 10 ms brauchen. Dann braucht er für 100 Elemente 40 ms.
Allerdings kann es trotzdem sein, dass ein Algorithmus der Komplexität O(n log n) für 50 Elemente schon 20 ms braucht. Aber für irgendeine Problemgröße wird er trotzdem immer schneller sein, als der erste Algorithmus.

Das ist auch die Aussage, die man meist aus der Groß-O-Notation zieht: Welcher Algorithmus ist für ein großes Problem der schnellste. Denn da interessiert die Geschwindigkeit natürlich am meisten.

Grüße
kuda

PS: Das Beispiel oben is formell natürlich nicht korrekt, da ein Algorithmus aus O(n log n) natürlich auch immer in O(n²) liegt. Alle, die es korrekt haben wollen: Ersetzt alle O durch Thetas oder geht von möglichst engen Schranken aus 😉

08.05.2009 - 16:58 Uhr

ich habe in meinem programm COM-Bibliotheken eingebaut (von CATIA V5).

Man sollte hier auch beachten, dass COM-Dlls und .Net-Dlls nicht viel miteinander zu tun haben. Insbesondere werden COM-Dlls nicht im GAC gespeichert.

Sind denn die Bibliotheken von CATIA im System-Ordner abgelegt oder im Programmverzeichnis?

07.05.2009 - 16:24 Uhr

Du könntest als Post-Buildereignis eine Liste aller Assemblies im Ausgabeverzeichnis erstellen und in einer Datei abspeichern. Die Datei wird dann in das Installationspaket mitverpackt und bei Programmstart prüft das Programm ob alle aufgelisteten Dateien sind, wo sie sein sollten.

Die Liste liese sich ja schon mit einem


dir *.dll

im Ausgabeverzeichnis erstellen, wobei man das Ergebnis in eine Datei piped (wie genau es da rauskommt, kann ich grad nicht sagen, sitze momentan an einer Linuxmaschine).

Grüße
kuda

24.04.2009 - 10:11 Uhr

mit mathlab und co. ist es auch möglic sowas zu lösen. also warum nich in c#?

Mit C# geht das natürlich schon auch. Nur ist das, wie gesagt, ein weites Feld wenn man das allgemein angehen will. Will man nur eine bestimmte Klasse von Funktionen verarbeiten können (z.B. Polynome), dann lässt sich da deutlich einfacher was realisieren.
Darum die Frage: Hast du denn nähere Informationen zu den Funktionen, die du integrieren willst? Oder sollen das für allgemeine funktionieren?

Grüße
kuda

23.04.2009 - 10:41 Uhr

Uneigentliche Integrale lassen sich nicht mit den klassischen numerischen Verfahren berechnen, wie talla schon gesagt hat.
Falls der Wert des uneigentlichen Integrals allerdings endlich ist, sprich die Grenzwerte der integrierten Funktion gegen Null gehen, kann man es durch ein eigentliches Integral approximieren, sprich irgendwo abschneiden, und wie gewohnt numerisch berechnen.
Spannend ist die Frage ob die Grenzwerte gegen Null gehen und wo man am besten abschneidet, also das Abschätzen des Fehlers... Wenn man keine weiteren Einschränkungen über die Integrale annehmen kann, kommt man wohl um die symbolische Rechnung nicht drumrum.

Grüße
kuda

21.04.2009 - 10:03 Uhr
  • Maschinencode, Interpreter, eine Mischung?

Also ich denke die Zukunft der Anwendungsentwicklung liegt auf alle Fälle bei JIT-kompilierten Sprachen. Die nächsten Jahre wird wohl die Prozessorlandschaft heterogener werden, x86 stößt ja doch immer mehr an seine Grenzen. Da ist das natürlich ein Traum, sich über die Hardware beim Anwender wenig Gedanken machen zu müssen.
Außerdem können JIT-Compiler dann Performancetechnisch einiges bringen. Insbesondere wenn man das träumen anfängt und sich vorstellt, dass z.B. parallel ausführbarer Code automatisch auf die GPU ausgelagert wird, falls vorhanden...

Ansonsten könnte ich mir vorstellen, dass sich mehr im Frameworkbereich tut als direkt bei den Programmiersprachen. Da gibt es viel Potential den Entwicklern Arbeit abzunehmen, siehe O/R-Mapper etc.

Grüße
kuda

14.04.2009 - 12:39 Uhr

Würde es sich nicht vielleicht noch lohnen, das '0' durch den entsprechenden ASCII-Code zu ersetzen?

Den Cast von Char auf int sollte der Compiler allerdings wirklich schon durchführen, darum sollte das nichts mehr bringen.

Grüße
kuda

23.03.2009 - 09:45 Uhr

Hallo codeGenerator

Der übliche Weg ist meiner Meinung nach, die Zahlen dann in ihrem Hexwert hinzuschreiben. Ist deutlich einfacher zu lesen, wenn man mehr als ein Byte hat und lässt sich auch schnell umrechnen, wenn es denn nötig ist.
Wenn du allerdings Flags über einzelne Bits realisieren willst, dann bietet sich das Flags-Attribut bei Enums an.

Grüße
kuda

16.03.2009 - 16:10 Uhr

@enne87: Normalerweise (so ist die Konvention in der Mathematik) ist M21 das 1. Element in der 2. Zeile. Also M[Zeile][Spalte].
NeuroCoder, der das erste Semester Mathe-Studium hinter sich hat

Für diese Konvention haben wir den schönen Merksatz "Zeilen zuerst, Spalten später" beigebracht bekommen. Davor musste ich auch immer nachschauen...

Grüße
kuda

05.09.2008 - 19:54 Uhr

@MrSparkle

Häufig wird der QuickSort ja mit einer zufälligen Auswahl des Pivotelements bzw. mit einer Heuristik (Median-Of-3) für diese Auswahl implementiert. Damit bekommt man implizit eine "Mischung" der Eingabeelemente bzw. eine relativ gute Aufteilung des Arrays in jedem Schritt.
Insgesamt ist die Konstante, die von der Landaunotation versteckt wird beim QuickSort deutlich kleiner als beim MergeSort, schon allein weil QuickSort in-Place sortiert und damit das umkopieren entfällt. Insofern ist QuickSort MergeSort von der Performanz im mittleren Fall überlegen (wenn auch nur um einen konstanten Faktor).

So viel Senf für Heute
Grüße
kuda

16.07.2008 - 17:30 Uhr

Hallo ihr beiden

Ein Einwurf zu dem Ganzen: Das mit der statischen Liste funktioniert zwar prinzipiell, wird aber problematisch, sobald Figuren entfernt werden sollen.
Ich denke es wäre geschickter eine Klasse "Spielfeld" zu erstellen, in eine Liste mit aktiven Figuren gepflegt wird. Das entsprechende Objekt der Klasse kann dann an die Move-Methode übergeben werden, um die Gültigkeit einer Bewegung zu berechnen.

Grüße
kuda

13.06.2008 - 14:26 Uhr

Hallo davfighter

Mit


GraphicsDevice.RenderState.CullMode = CullMode.None;

kannst du das Backfaceculling deaktivieren, sprich es werden beide Seiten eines Dreiecks angezeigt. Das geht aber u.U. auf die Performanz, eben weil viele Dreiecke nicht verworfen werden können.
Die bessere Lösung wäre daher, dass du in deinem Modell alle Dreiecke umdrehst. (Sollte mit den meisten Modelling-Programmen gehen)

Grüße
kuda

19.04.2008 - 17:33 Uhr

Du darfst aber auch das äußere Not nicht unterschlagen:

if ( !((actDate.DayOfWeek != DayOfWeek.Friday) || (actDate.Hour < 22)) ){

kuda

06.04.2008 - 19:46 Uhr

Hallo

Ich les ja jetzt schon seit einiger Zeit im Forum mit, aber hier will ich jetzt doch mal meinen Senf dazu geben.
Was ich in die Richtung kenne ist das GermaNet. Das ist ein semantisches Netz, dass Wörter von der Bedeutung einander zuordnet.
Leider ist das nicht kostenlos. Wenn dir Englisch reicht, gibts das WordNet oder auf Wikipedia hab ich grad noch den OpenThesaurus gesehen, ich weiß nicht, ob dir soetwas reicht.

Grüße
kuda