Zum Inhalt springen

flashpixx

Mitglieder
  • Gesamte Inhalte

    8302
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von flashpixx

  1. Lies Dich doch bitte einmal in std::map ein, std::map bietet alles was Du brauchst !! Du kannst Daten einfügen, suchen, löschen und auch alle Daten nach dem Schlüssel sortiert ausgeben.
  2. Du möchtest lernen, wie eine Dokumentation zu lesen ist map::insert - C++ Reference und wie Code-Tags zu verwenden sind
  3. Verwende die Code-Tags, denn so ist das ganze nicht wirklich lesbar. Du verwendest keine std::map, so wie Dir hier geraten wurde, Du hast hier einen O(n^2) Algorithmus erzeugt und damit ist die schlechte Performance erklärbar.
  4. Es ist schon etwas her, dass ich mit Altova Produkten gearbeitet habe, aber meines Wissens müsstest Du nur eine XSLT schreiben, die eben aus Deiner gegebenen XML LaTeX Code erzeugt. Einen entsprechenden Prozessor bringt Altova schon mit, d.h. dann im Grunde nur XML laden, XSLT laden, Prozessor starten und man erhält de LaTeX Code. Wenn man das LaTex Dokument noch passend auftrennt, so dass man eben mehrere Dateien verwendet, dann wäre die Dokumentation schon "fast" automatisch zu erstellen. Selbst Diagramme wären mit TikZ and PGF | TeXample.net oder Welcome to MetaUML, UML for LaTeX/MetaPost kein Problem. Sollte der Code in einem SVN liegen kann man den Prozess via Script auch direkt automatisieren, so dass bei einem Branche o.ä. die Dokumentation direkt erzeugt wurd. Ich werfe einmal Boost Test Library bzw. JUnit in den Raum, wobei sich es dann wirklich "nur" um die Erzeugung von den Testfällen handelt (es gibt natürlich eine Vielzahl von Tools für das Problem). Ich sehe aber bei diesem Projekt fachliche Mängel, denn das erzeugen der Testcases macht im Grunde nur wirklich Sinn, wenn man eine Modellgetriebene Softwareentwicklung durchführt, ich gehe aber davon aus, dass das bei Dir nicht der Fall ist. Denn Du wirst immer das Problem haben, wenn Du keine MDD hast, wie aussagekräftige sind Deine Tests. Das ist ein mathematisch / statistisches Problem, denn wenn Du für ein Problem keinen Testfall hast, existiert keine Aussage, umgekehrt musst Du auch sicherstellen, dass die Testfälle ebenfalls mit durch die Entwicklung gepflegt werden. Das ist in meinen Augen eine Problemstellung, die sich viel weiter in die Produktentwicklung auswirkt, als es ein Abschlussprojekt je kann, hier ist einiges mehr an Wissen zur Softwareentwicklung / -design nötig, als ein paar Testcases zu erzeugen. Denn Du willst ja letztendlich mit Deinen Cases eine Aussage treffen können, ob das Produkt "fehlerfrei" ist.
  5. Das Post ist ungemein aufschlussreich, denn ich setze meine Seitenzahl mit \setcounter{page}{4} in diesem Fall
  6. Zu Thema 1 würde ich sagen, da ist recht wenig zu machen, denn Eure Daten werden ja wohl als XML Struktur existieren, mit einer einfachen XSLT kannst Du Dir daraus den TeX Code generieren lassen. Zu Thema 2 ist für mich die Frage, wer die Testcases generiert, d.h. wenn Du selbst die Testcases nicht generierst, was bleibt dann als Projekt !?
  7. Einige Jahre, ich habe mit C und Pascal begonnen und gerade graphische Sachen waren recht schwer, ebenso wie unter DOS die so genannten TSR-Programme In Java kenne ich sicherlich nicht alle Details z.B. lerne ich zurzeit JNI und den Mechanismus des OS zum Laden von Shared Libraries bzw. abhängigen Bibliotheken, auch wenn Java cross-plattform ist, sobald man aus dem reinen Javabereich hinaus geht, dann entstehen viele Probleme. Man kann die Konzepte (OOP) durchaus recht schnell lernen, ob man dann auch real ein Problem damit lösen kann, ist nicht gesagt und ob dann die Lösung auch eine gute Lösung ist, ist nicht immer klar. Das "Programmierenlernen" ist nicht das Lernen einer Sprache, sondern des abstrakten formulieren von Problemlösungen, eine Sprache kann man im Schnitt in 4 Wochen lernen, aber ein Konzept für eine Lösung zu entwickeln das kann Jahre dauern. Eine Ausbildung ist dafür da, dass Du etwas lernst und nicht dafür dass Du alles schon kannst.
  8. Nein, XAMPP ist ein Bundle aus Apache, PHP und mySQL, das man per Klick installiert. In einem Abschlussprojekt sollst Du zeigen, dass Du ein Problem verstehst, eine wirtschaftliche und fachliche Lösung entwickeln kannst und diese dann auch real umsetzt. Ein Tool zu installieren, wobei XAMPP dafür aus sicherheitstechnischer sicherlich nicht geeignet ist, reicht bei weitem nicht aus
  9. Es gibt durchaus andere Möglichkeiten, aber wie schon gesagt std::map ist genau das was Du dafür benötigst, als Anfänger solltest Du Dich evtl darin einmal einarbeiten. Wir haben Dir mit dieser Information schon die passende Datenstruktur für Dich ausgesucht....
  10. Einen Compiler entwickeln !? Ich werfe mal das Schlagwörter Parser / Lexer, LR(k) Grammatik in den Raum. Ohne mal die Grundkenntnisse von Grammatiken (vor allem der Chomsky Hierarchie) zu haben, wird das schon schwer überhaupt eine lauffähige Grammatik zu entwerfen. Was spricht bitte dagegen einfach ein Projekt, wie es auch ein FIAE machen muss zu verwenden und dieses eben komplexer zu gestalten? GUI, Netzwerk und Datenbankanbindung wird ohne Kenntnisse wird schon genügend Raum zum Lernen bieten z.B. ein Kartenspiel über Netzwerk, wenn es mehrere direkt Spielen wollen und ggf dazu als Fallback mit Hilfe einer Datenbank ermöglichen auch zu spielen, wenn ein Spieler offline ist.
  11. Vielen Dank, so etwas hört man gerne. Gratuliere zu der guten Note
  12. Kinect ist ne feine Sache, vor allem weil meines Wissens das SDK sogar offen gelegt ist. Ich würde damit dann aber evtl keine "Tastatur" bauen, sondern ein anderes Projekt, denn Kinect ist ja ein 3D Scanner per Infrarot.
  13. Ah ja, und wie soll das dann bitte in der Realität umgesetzt werden? Wir haben eine fest installierte Kamera, die in irgendeiner Position zu der Tastatur steht. Woher weiß man, wo welche Taste ist? Das ist erst einmal ein Video / Bild. Entweder muss man dann die Tasten manuell fest legen, wobei man dann bei jeder Neuposititionierung der Kamera diese Kalibrierung wiederholen muss (wozu z.B. Änderungen der Brennweite auch dazu zählen). Wie dedektiert man dann einen Finger? Das Video ist ein 2D Bild, ggf noch ein komprimierter Stream, wozu bei einer MPEG Codierung ggf je nach Einstellung Artefakte hinzukommen, bei Bewegungen verstärkt sich dieser Effekt. Wie erkennt man ob nun eine Taste gedrückt / nicht gedrückt wurde? Durch die 2D Aufnahme fehlt eine Dimension, woher weiß man also ob der Finger nicht überhalb der Taste schwebt ohne sie zu drücken und wie erkennt man dann, dass sie gedrückt wurde? Wie erkennt man überhaupt einen Finger im Bild und z.B. nicht irgendetwas anderes? Man hat bei einem Videostream letztendlich ein Bild zu einem Zeitpunkt t und zu einem Zeitpunkt t+1 (ggf bei MPEG nur die Veränderungen zum letzten Keyframe). Man muss nun in dem Bildmaterial eine Unterscheidung zwischen "was ist Tastatur", "was ist das für ein Objekt", "welche Position hat das Objekt" und "welche Aktion führt das Objekt aus" treffen. Eine farbbasierte Erkennung fällt aus, denn dafür müsste man eine entsprechende Kamera mit Kalibrierung verwenden. In der Realität hat einen 3-dimensionalen Raum, in den Daten eine 2-dimensionale Projektion. Wie berechnet man aus der 2-dimensionalen Projektion die richtige Höhenkoordinate, denn man muss ja unterscheiden ob der Finger eine Taste drückt oder nur darüber gehalten wird? Da man in einem Bild keine exakten Kannten hat, wie erkennt man dann die Grenzen der Tasten, z.B. wenn sich der Finger genau über eine solchen Grenze befindet und man ggf die Kamera leicht schräg positioniert hat, denn durch einen veränderte Position muss man den Fehler, der in der Projektion entsteht zurückrechnen, damit man die richtige Taste fest stellen kann? Wenn die Kamera eine automatische Fokusierung hat, diese braucht in der Realität auch etwas Zeit um zu regeln, wie erkennt man, ob innerhalb des Videosstreams das richtige Bild vorhanden ist bzw. wie entfernt man die noch vorhandene Unschärfe, wenn die Kamera regelt? Wie greift man denn von Java auf die Kamera zu (ich gehe jetzt mal von einfachen USB Webcam aus)? Es ging hier nicht um ein Bild, sondern um einen Videostream. Wenn z.B. eine Unterstützung durch das JMF nicht möglich ist, muss man sich selbst darum kümmern. Sofern das JMF eine entsprechende Anbindung mitbringt wäre der Hardwarebereich das kleinere Problem. Selbst wenn ich das Problem darauf reduziere, dass man JMF Unterstützung hat, vielleicht eine Taste hat (großer roter Notausbutton) auf einem Stück Karton aufmalt und dann versucht einen Druck durch die Hand festzustellen, würde ich sagen, dass es extrem schwierig wird alleine ohne Anleitung das ganze funktionsfähig umzusetzen. Ich kann zwar wie man es auf HTML kennt einen Bereich des Bildes als "clickable" kennzeichnen, aber den eigentlich "Click" kann man mit einer Kamera nicht direkt finden. Mit einer Kamera kann man entweder die Positition des Objektes genau herausfinden oder den Click genau finden, beides zusammen geht nicht, denn die Kamera müsste an zwei verschiedenen Positionen existieren. Einmal auf der Ebene wie die Taste, um den Klick zu finden und einmal auf dem Lot zur Tastatur um die Position zu ermitteln. Hat man nur eine Kamera muss man die fehlende Komponente berechnen. @Bubble: Wenn Du meinst, dass es als Projekt etwas sinnvolles hergibt, dann mach doch mal einen Vorschlag, wie man es machen könnte. Ich lass mich gerne überzeugen. Nur ein Projekt zu machen, was toll klingt, aber was eigentlich zum scheitern verurteilt ist, weil die notwendigen Kenntnisse fehlen, finde ich nicht in Ordnung. Dann man sollte ja eigentlich ein Projekt machen, bei dem man davon ausgeht, dass man es schafft und dabei etwas lernt.
  14. Du scheinst es nicht verstehen zu wollen, oder !? Für das notwendige Wissen kannst Du fast ein komplettes Bachelorstudium (3 Jahre) und/oder ggf noch einige Semester des Masterstudiums rechnen. Da die Kamera einen Treiber braucht Java Native Interface
  15. Ja, Du machst Dein Abitur, gehst studieren und als Projektarbeit im Studium kannst Du Dich dann damit beschäftigen. Du brauchst für ein solches Projekt mit Videobearbeitung und automatisch irgendetwas aus dem Video extrahieren mehr als nur Java- und Programmier-Kenntnisse. Das was Du machen willst umfasst nichtlineare mehrdimensionale Optimierung mit Hilfe von numerischen und stochastischen Algorithmen, dazu gleich ne ganze Latte an linearer Algebra. Alleine für die mathematischen Grundlagen brauchst Du 1-2 Jahre (2-4 Semester an einer Uni) um sie zu lernen. Die gleiche Zeit brauchst Du dann auch noch einmal um Dir die notwendigen Algorithmen an zu eigenen. Wenn Du das dann hast, dann kannst Du darüber nachdenken ein solches Projekt umzusetzen
  16. Der Ansatz ist doch schon mal gut. In Deinem Code ist die Variable Out nicht erkennbar, also welchen Typ sie hat usw. Ansonsten schau Dir an, wie man mit Dateiströmen umgeht Java ist auch eine Insel – 12 Datenströme und Dateien
  17. Gerade weil Du Anfänger bist, sollst Du etwas lernen, d.h. was musst Du machen, damit er eben richtig arbeitet. Das ganze einmal in Worten beschreiben reicht aus, das ganze in Code formulieren, ist dann der zweite Schritt
  18. Überlege mal was Du dort programmiert hast. Mal in Worten (und alles was nicht zu dem Dateizugriff notwendig ist, einmal ignorieren): do { datei "test4.txt" öffnen in Datei "anzahl + _ " schreiben für i = 0 bis anzahl -1 do { in Datei schreiben "z + _ " } in Datei Leerzeile schreiben Datei schließen } so lange anzahl != -1; Überlege Dir einmal, was passiert wenn die do-while-Schleife zwei mal durchlaufen wird.
  19. Ob eine Tabelle notwendig ist, sagt Dir einmal die Normalisierung und eben Dein gefordertes Modell. lies Dir die Normalisierung durch.... Im Moment wirfst Du hier ein Beispiel hin und möchtest, dass wir Dir das korrigieren. Fang doch zuerst einmal an, das Konzept der Datenbank zu verstehen und dann anhand eines Beispieles umzusetzen. Als Einstiegsliteratur kann ich das z.B. empfehlen Datenbankentwurf: Eine beispielorientierte Einführung für Studenten und Praktiker: Amazon.de: Helmut Jarosch: Bücher
  20. Du verstößt gegen die Normalisierung, die ich Dir in Deinem anderen Thread schon verlinkt hatte, z.B.: Die Tabelle Wettkampf_Athleten hat einen eigenen Primärschlüssel, der hier falsch ist, denn nach Deinem Modell kann man einen Athleten mehrfach einem Wettkampf zuordnen (analog Disziplin & Rekord). Benutze ebenfalls die Uploadfunktion des Forums, denn Sharehoster sind bei manchen Benutzern gesperrt
  21. Ich kenne Dein Wissen nicht. Wenn Du OOP bereits sicher kannst, dann kann man natürlich schon etwas schneller in die Praxis gehen, als wenn Du erst Java komplett lernen musst. Wenn Du Java / Programmieren nicht kannst, dann würde ich 2-3 Monate einplanen das OOP zu lernen und zu verstehen. Als nächstes ist die Frage zu klären, was soll als Komplexität heraus kommen: Liegt der Schwerpunkt auf dem Algorithmus oder der praktischen Umsetzung? Ich denke eine Aufgabe wie "programmiert was in Java" ist etwas sehr schlecht formuliert. Evtl wäre etwas mit GUI, Netzwerkanbindung oder Datenbank etwas passendes.
  22. Du hast das gleiche Problem, denn Du musst einmal erkennen auf welchem Buchstaben man sich befindet und Du musst die Zeit dedektieren und das ganze auch wieder in annähernd Echtzeit. Wie soll der Rechner denn erkennen, wo die Tastatur ist? Wenn Du die Kamera selbst senkrecht über der Tastatur platzierst und die Maße der Tastatur fest vorgibst (Abstand der Tasten, Position der Tasten), dann hast Du automatisch mit der Problem der Überdeckung zu tun, denn die Hände werden immer mehrere Tasten überdecken, was dann zu der Erkennung mehrere Tasten führen würde. Zusätzlich musst Du die Finger erkennen, was charakterisiert einen Finger? Wenn ich mir meine Hand anschaue, dann habe ich zwar 10 Finger, die alle ähnlich aufgebaut sind, sie aber nicht 100%ig identisch im Sinne einer booleschen Bedingung. D.h. Du musst hier wieder eine Bewegung eines einzelnen Objektes erkennen, das Du aber nur "ungenau" beschreiben kannst. Du solltest ein Projekt wählen was Du mit Deinen Kenntnissen real auch bewältigen kannst. Video- & Bildverarbeitung in Echtzeit halte ich für nicht praktikabel, weil Dir die Grundlagen sowohl in der Praxis, wie auch in der Theorie fehlen, ebenso irgendetwas in Daten automatisch zu finden. In diesen drei Fällen fehlen Dir die mathematischen Grundlagen. Z.B. um etwas von einem Rechner lernen zu wollen, solltest Du Numerik beherrschen z.B. Backpropagation um ein neuronales Netz zu trainieren, den mit solchen Techniken ist es möglich dem Rechner etwas verständlich zu machen mit dem er arbeiten kann. Schulmathematik reicht dafür nicht aus. Dann sollte man sicherlich nicht jede Komponente selbst implementieren, sondern eben fertige Bibliotheken dafür nutzen z.B. LAPACK — Linear Algebra PACKage wobei Du dann in Java durchaus schon Probleme bekommst, denn mir ist keine Bibliothek bekannt, die unter Java numerische Lösungsverfahren implementiert, d.h. Du brauchst dafür die Kenntnisse über JNI. Die LAPack und die Automatically Tuned Linear Algebra Software (ATLAS) sind dafür geeignet aber unter Windows nicht leicht zu installieren. Such Dir ein Projekt, dass Deinem Wissensstand entspricht.
  23. Dieses Projekt halte ich für zu schwer für ein Schulprojekt (sofern man nicht ggf fertige Bibliotheken verwendet). Hast Du Dir überhaupt mal Gedanken gemacht was "eine Bewegung" ist? Nehmen wir einmal an, dass Du eine fest stehende Kamera hast, die einen AVI Stream liefert, d.h. Du bekommst pro Sekunde eine gewisse Anzahl "statische" Bilder (bei Streams, die MPEG codiert sind, bekommst Du nur die Veränderungen von dem letzten Keyframe). Du musst in den Bildern nun Dein Objekt dedektieren, hierzu solltest Du die Mathematik über Phasenräume und Bildfiltertechnologien besitzen (z.B. Sobelfilter), damit Du überhaupt Dein Objekt im Bild finden kannst und dann musst Du eben die Veränderung des Objektes bestimmen. Wenn sich das Objekt in einem festen Radius zur Kamera bewegt geht das noch, wenn das Objekt aber sich auf / weg von der Kamera bewegt dann macht sich das durch eine Skalierung des Objektes bemerkbar (mal davon ausgehend, dass die Kamera eine feste Brennweite besitzt), gleichzeitig wird das Objekt unscharf (bei fester Brennweite), die Du auch kompensieren musst. Wenn Du nun sagst "ich möchte einen roten Ball" dedektieren, dann musst Du erst einmal dem Rechner verständlich machen, was ein "roter Ball" ist, dann sind wir direkt im Bereich des maschinellen Lernens. Zusätzlich wirst Du das Problem haben, dass Du das ganze in "annähernder Echtzeit" umsetzen musst und Java dafür sicherlich keine gute Wahl ist (außer Du nutzt die Realtime Version oder bindest extern über JNI / JNA entsprechende Bibliotheken an). Wenn Du das als Schulprojekt in einem Jahr umsetzen willst, dann brauchst Du kein Studium mehr
  24. Bitte einmal genau lesen 2.0 API Download Ansonsten kann ich mich nur anschließen, dass Du ohne die entsprechenden Kenntnisse es sehr schwer haben wirst. Denn alleine in einem Videostream eine Bewegung zu dedektieren ist keine triviale Aufgabe
  25. Es ist zwar durchaus möglich Node.JS zu verwenden, aber um das Noder.JS Programm auf dem Server ausführen zu können, braucht man den Interpreter dort und ggf dafür die erforderlichen Rechte. Sofern man das eben nicht hat, kann man kein Node.JS laufen lassen und muss auf eine andere Technik zurückgreifen

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...