Alle Beiträge von flashpixx
-
Datenbanken in C++ einbinden
Es gibt da mehrere Möglichkeiten. siehe Wiki Artikel: Microsoft Access ? Wikipedia Da ich keine reinen Win32 Anwendungen entwickel nutze ich andere Mechanismen (Qt mit Datenbankschnittstelle) HTH Phil
-
Funktion in PHP
Du brauchst mir keine PM zu schreiben, ob ich Dir die Dinge erkläre. Wenn ich nicht antworte oder es mit der Antwort dauert, dann hat das nun mal seine Gründe. Ein Forum ist dafür gedacht, dass man öffentlich Fragen stellen kann und eben auch eine gewisse Zeit darauf warten muss, bis jemand antwortet. Es ist ungeheuer lästig, wenn Leute ohne den ausdrücklichen Hinweis, einen mit Fragen zutexten. Aber Du hättest Dich auch einmal selbst in Bezug auf mySQL und Datenintegrität selbst informieren können: MySQL ? Wikipedia InnoDB ? Wikipedia Transaktion (Informatik) ? Wikipedia Referentielle Integrität ? Wikipedia Da ich mich aber auch @Amstelchen anschließen muss, dass man Dir jedes Detail aus der Nase ziehen muss, würde ich Dir raten, dass Du zunächst einem Dir die Grundlagen von Datenbankdesign usw anschaust, denn aufgrund des resten Post würde ich vermuten, dass Du eher eine logische bzw inhaltliche Integrität Deiner Daten sicherstellen möchtest. In diesem Fall würde ich Dir dringend raten, dass Du Deine Datenbank entsprechend neu erzeugst nund entsprechend über die genannten Techniken absicherst. Eine inhaltliche Prüfung der Daten kann kein DBMS übernehmen Phil
-
Interessante / sinnvolle Programmiersprache nach Python
Ich persönlich bin Haskel und Prolog Fan. Aber Prolog und auch Haskel eigenen sich eher für spezielle Problemlösungen. Ich denke sowohl eine imperative wie eine nicht-imperative wären von Vorteil Phil
-
Funktion in PHP
Konsistenz und Integritätsprüfung mach das DBMS selbst, genauso wie Dirty Reads / Writes entsprechend behandeln Phil
-
UML 2.0 Klassendiagramm Verwandschaftsbeziehungen
Oh doch, denn Du bist definitiv nach Deinen Eltern geboren, somit ergibt sich ein gerichteter Graph Das kommt ganz darauf an, was ich damit erreichen will. Denn je nachdem kann ich das Design entsprechend wählen Ja, aber es geht um das Design und Objekte kann ich nicht designen, sondern nur Klassen. Denn wie willst Du z.B. in einer Fabrik 1000 Objekte vom Typ Auto auf Dein Konzeptpapier bekommen? Auf wen bezieht sich diese Aussage? Phil
-
Chatprogramm in C++
Wie wäre es mit Multi- und Unicast? Bevor Du Sockets programmierst, lerne erst einmal die notwendigen Grundlagen bezüglich Netzwerktechnik und -aufbau. Z.B. Subnetzmasken, Host- / Broadcast- / Netzadresse, Routing, UDP, TCP, IP, Multi- und Unicast. Beispiel für einen Chat: Boost C++ Libraries - doc/html/boost_asio/example/chat/chat_message.hpp Boost C++ Libraries - doc/html/boost_asio/example/chat/chat_client.cpp Boost C++ Libraries - doc/html/boost_asio/example/chat/chat_server.cpp Aha und die wären: Dein im ersten Post genanntes Chatprogramm!? Wie wäre es, wenn Du einmal bei Grundlagen beginnst z.B. wie Du eine Dezimalzahl in Hexadezimal-, Octal- und Binärsystem umrechnest. Oder eine einfache Oberfläche für Dein Programm entwirfst. Außerdem wäre das OOP Konzept, wenn Du schon unter C++ arbeitest, zunächst zu lernen Phil
-
Chatprogramm in C++
mmmh, also ich bin da ja auch lieber für die Boost, aber das liegt daran, weil sie mir mehr zusagt und ich durchaus weiß wie Socket funktionieren, aber wenn wir gleich dabei sind, warum nicht noch Multithreading und synchrone bzw asynchrone Datenübertragung oder MPI Bibliothenken wie OpenMPI, MPI CH 2 oder MS-MPI. Ist doch ganz leicht für einen Anfänger :floet: *scnr* Phil
-
Chatprogramm in C++
Weil es so ist. Ich kapiere nicht, warum jeder Anfänger direkt mit "ich will einen Chat / Server usw" programmieren ankommt. Fangt doch bitte erst mal bei den Grundlagen an: Was sind Zeiger, Arrays, Struct, Klassen, usw Aber wenn Du meinst, dass Du das alles beherrschst, bitte: Boost.Asio Phil
-
Verbindungskabel Splitter - Telefondose
Mein Vorschlag wäre, bevor Du teuer bestellst, nimm ein normales Cat2 oder besser Kabel und verbinde direkt. Sprich wenn Du ein Stück Verlegekabel für Netzwerk (kein Patch oder Cross) hast, mach' den Splitter und die TAE auf und verdrate die ab-Adern von Dose zu Splitter. Meist sind die Adern in der TAE links geschraubt, beim Splitter nur geklemmt Phil
-
Fragen zu PHP
Ich bin der Meinung, dass PHP, da es eine Interpreter Sprache ist, keine schnelle Prozessverarbeitung haben kann, wenn ich dem ein kompiliertes Binary gegenüberstelle. Nur weil es eine Standardkombination heute ist PHP mit mySQL zu haben, ist das kein Kriterium für PHP. Denn auch ein C Programm mit den entsprechen Libs mySQL Daten verarbeiten Du solltest Deine Fragen ggf in einem Zusammenhang nennen Phil
-
Dokutool gesucht
Ich finde Doxygen unschlagbar Doxygen ? Wikipedia Nutze es mit Matlab, C++ und PHP, Für Java kann man noch JavDoc http://de.wikipedia.org/wiki/Javadoc verwenden, letztendlich nehme ich aber auch dort Doxygen, weil es JavaDoc versteht Phil
-
UML 2.0 Klassendiagramm Verwandschaftsbeziehungen
Objekte ist das falsche Wort, denn Objekt ist die instanzierte Klasse. Sprich DU hast eine rekurrente Beziehung zu einer Klasse Phil
-
Halteproblem und Church-Turing-These
Dein Prof hat das Beispiel aus Wikipedia verwendet Halteproblem ? Wikipedia Ein kleiner Ratschlag: Es geht bei der Analyse von solchen Problemen nicht um den Quellcode, sondern um Logik. Ich würde Dir empfehlen das als Prädikaten Ausdruck zu schreiben, das ist dann unabhängig von dem Quellcode. Zur Church-Turing-These: Dir ist sicher bekannt, dass diese nicht formal beweisbar ist. Das "intuitiv" bedeutet, dass man einen (sinnvollen) Berechnungsformalismus finden kann. Die These gilt z.B. für TM, While-Programme, Goto-Programme, Lambda-Kalkühl, Mü-Rekursive-Funktionen... Zum Halteproblem: Bei dieser Fragestellung geht es darum zu zeigen, dass ein Algorithmus für jede Eingabe von Daten, terminiert und damit ein definiertes Ergebnis liefert. D.h. wenn sich der Algorithmus in einer "Endlosschleife" aufhängt, d.h. er hält nicht, dann ist das Halteproblem nicht gelöst. Gedanklich gibt man in Deinem Fall einer TM eine TM mit Daten und möchte nun wissen, ob diese eingegebene TM terminiert oder nicht. Man macht leicht den Fehler, dass man sich bei der Betrachtung an dem konkreten Beispiel fest hält, es geht hier aber um einen Formalismus, d.h. es muss für jede Art Eingabe gelten Phil
-
Median -> ';' expected
Java ist eine case-sensitive Sprache, achte zunächst auf Deinen korrekten Syntax. Bitte benutze das nächste mal die Code-Tags. Deine Meldung heißt, wenn Du das Wort "expected" nachschlägst "erwartet". Somit kannst Du die Fehlermeldung interpretieren Phil
-
Bytes für WAV Format anpassen
Wenn es Dir nur um die Optik geht, dann musst Du eben die Daten eben sowohl in positive wie negative Richtung Deiner Achse plotten. Wenn Du das Frequenzspektrum haben willst, musst Du Deine Daten mit Hilfe einer Fourierreihe ? Wikipedia bzw Fourier-Transformation ? Wikipedia vorverarbeiten und dann entsprechend plotten Phil
-
UML 2.0 Klassendiagramm Verwandschaftsbeziehungen
Was mir nicht klar ist, warum arbeitest innerhalb Deiner Datenstruktur Person, gleichzeitig mit der Datenstruktur "Baum". Ich würde das trennen, Du hast eine Klasse "Person" und eine Klasse "Graph". Du meiner Ansicht einen gerichteten, teilvernetzten Graphen, mit der Bedingung, dass jeder Vertex genau zwei Parents hat. Eine Wurzel gibt es nur symbolisch, da es sonst gegen die Vorgage verstößt. Gerichtet muss der Graph sein, damit Du später beim Auslesen keine Probleme bekommst und ggf in Schleifen rennst. Wenn Du noch zwingend die Verbindung vom Kindknoten zu den Vaterknoten benötigst, dann entspricht dann musst Du innerhalb einer verketteten Liste einfach die rückwirkende Verbindung mitführen. Das kann ich fast exakt so in UML Modellieren und vor allem ich kann es generisch lösen, so dass ich unabhängig von Deiner Personenklasse bin PHil
-
Frage zu Begriff "CPU Auslastung"
Schau Dir mal das Bildchen bei dem Wiki Artikel an Thread (Informatik) ? Wikipedia Jain, ich habe einfach ein paar Zahlen genommen, damit es verständlicher wird. Das ist nicht extremst vereinfacht. Bei dieser Betrachtung würdest die Anwendung aus einem Thread bestehen und das Betriebssystem selbst ist nicht berücksichtigt. Zusätzlich gehört auch noch ein gewisser Verwaltungsaufwand des Betriebsystem dazu oder auch die Möglichkeiten der Signalisierung von Interrupts durch die Hardware Natürlich (siehe oben). Aber auch hier gilt, dass ist alles für Dich auf ein Minimum vereinfacht, denn in den heutigen System hast Du mehrere Cores (z.B. IntelCore2Duo). Da hast Du zwei unabhängige CPUs, die aber unter Umständen auf die gleichen Resourcen zugreifen bzw die Anwendung auf mehreren Cores parallel laufen kann (siehe z.B. Message Passing Interface ? Wikipedia). Ein konkretes Bsp: Eine Anwendung läuft auf 2 Cores mit je 4 Threads pro Core. Z.B. kann jetzt CPU 1 mehr ausgelastet sein als CPU 2, dann kann das OS unter Umständen nun auch die Auslastung entsprechend verändern, so dass die beiden CPU ansatzweise immer gleich viel Arbeit leisten. Nein definitiv nicht, denn so eine Aussage ist definitiv nicht korrekt und auch nicht vollständig. Hier mal der Auszug aus meiner aktuellen Auslastung auf einem OSX: Processes: 85 total, 3 running, 3 stuck, 79 sleeping... 347 threads Load Avg: 0.57, 0.57, 0.44 CPU usage: 21.68% user, 7.52% sys, 70.80% idle Dagegen einmal die Auslastung eines Servers mit 2 Xeon CPUs mit insgesamt 8 Cores: Tasks: 173 total, 1 running, 172 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.1%sy, 0.0%ni, 99.6%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st Du siehst da schon immense Unterschiede. Das Beispiel ist nur für eine Erklärung gut, für eine reale Betrachtung ist es völlig ungeeignet. Phil
-
[C++] Problem bei Aufruf von Formular durch thread
Das Problem ist dieses hier Mutex ? Wikipedia Zur Erklärung: Du hast ein Array mit einer gewissen Anzahl Elementen. Wenn nun ein Thread auf ein Element zugreift z.B. löscht, dann verändert sich die Größe, der zweite Thread bekommt aber unter Umständen davon noch nichts mit. Du musst dafür Sorge tragen, dass Deine Datenstruktur, also hier das Array, synchronisiert wird. D.h. egal welche Operation Du auf dieses Array los lässt, Du musst ganz klar sicherstellen, dass immer nur ein Thread auf den Daten werkeln darf. Ich finde da aus der Boost den Zusammenhang ganz gut erläutert: Synchronization Ich nutze selbst die Boost für solche Dinge Phil
-
Frage zu Begriff "CPU Auslastung"
Vielleicht erstmal zum Multitasking: Du würdest im Idealfall eine Anwendung starte, die 100% den CPU auslastet. Nun startest Du eine zweite Anwendung, die ebenfalls wenn sie alleine läuft den CPU zu 100% auslastet. Dein CPU kann aber nicht mehr als 100% Leistung bringen, d.h. das Multitasking macht folgendes: Anwendung 1 läuft eine gewisse Zeit (meistens eine Anzahl von Taktzyklen), dann wird sie pausiert und die kompletten Daten zwischen gespeichert, Anwendung 2 wird aus der Pause aufgeweckt und ihre Daten werden nun in den Speicher transferiert und einige Taktzyklen verarbeitet, dann wird sie pausiert und Anwendung 1 wird aufgeweckt usw. Jede Anwendung lastet wenn sie aktiv läuft den CPU entsprechend aus, in unserem Fall zu je 100%, aber eben nie zur gleichen Zeit. Achtung, die Erklärung ist so sehr vereinfacht, in der Realität ist das komplizierter, da z.B. ja auch Zeit für das Restaurieren und Auslesen der Daten benötigt wird. ----- und dann zur Auslastung: Wenn ich nun sage, dass jede gestartete Anwendung eben immer eine feste Anzahl an Zyklen, die sie arbeiten darf, zur Verfügung hat, dann kann ich auch die Auslastung berechnen. Z.B. Du hast insgesamt ein Zeitintervall von 100 Zyklen, die Du an Deine gestarteten Anwendungen verteilen kannst. Der Extremfall ist, wenn Du jetzt 100 Anwendungen startest und jede Anwendung darf immer einen Zyklus beanspruchen, dann hast Du 100% Auslastung. Wenn Du eben nur 10 Anwendungen laufen hast, dann hast Du 10% Auslastung des CPU. ---- Ich hoffe, das ist so verständlich. Aber noch einmal der Hinweis, dass ist jetzt alles sehr stark vereinfacht ausgedrückt und dadurch, wenn ich es sehr "hart bewerte" falsch. Du hast in einem heutigen System sehr viele Prozesse (Threads), die irgendwelche Aufgaben übernehmen. Jeden Prozess kann man priorisieren, d.h. er kann mehr oder weniger CPU Berechnungszeit bekommen bzw anfordern, das wirkt sich ja alles auch noch aus. Anwendungen bestehen heute nicht mehr aus einem Prozess, sondern wie z.B. beim Browser werden zum Laden einer Seite eine Vielzahl von Threads benutzt, die dynamisch zur Laufzeit erzeugt werden. So etwas müsstest Du noch alles berücksichtigen. HTH Phil
-
gutes Visual C++ openbook (muss nicht zwingend openbook sein)
Ich arbeite selbst mit VS und siehe den Screenshot. Vielleicht solltest Du Dir erst einmal die Grundlagen von C++ aneignen. Du kannst nicht einfach C# mit C++ vergleichen, C++ ist eine Sprache die es für jedes OS gibt, d.h. es gibt unzählige Komponenten. Ich nutze VS nur als IDE, wenn das Programm nachher unter Windows läuft verwende ich keine WinAPI Aufrufe, sondern ich nutze die STD + Boost, da der Code auf mehreren Plattformen kompiliert wird. Als GUI API, da ebenfalls plattform-unabhängig Qt. Für 3D Anbindung nutze ich kein DirectX, sondern OpenGL, da ich auch hier direkt aus Qt meine Vertex- / Fragmentshader os-unabhängig setzen kann. Wenn Du nun eine reine Windows Anwendung entwickeln willst, dann lerne zunächst die Grundlagen von C++, sprich Sprachstrukturen, wenn Du das kannst, dann besorge Dir Literatur zu der Windows API o.ä., damit Du direkt eine rein Win32 Anwendung erzeugen kannst. Eine Online Quelle generell für Windows ist die MSDN (MSDN: Microsoft Development, MSDN Subscriptions, Resources, and More). Mein aktuelles Projekt besteht aus folgenden Bibliotheken: Qt, Boost, OpenMPI / MS-MPI, GSL (GNU Scientific Library), CGAL (Computational Geometry Algorithms Library) und OpenGL. Für Qt, Boost, die Standard Library von C++ und GSL besitze ich Literatur. OpenMPI bzw MS-MPI und CGAL haben gute Online Quellen / Mailinglisten. Wenn Du C++ Anfänger bist, dann fange auch mit C++ an, es gibt eine Menge guter Tutorials. Wenn Du das beherrschst, entscheide Dich, was Du konkret benötigst und suche dann gezielt danach. Eine Online Einführung zu C++ wirst Du wohl nicht finden, da es einfach zu viel gibt bzw. man dann sich schon auf eine Richtung fest legen muss. Du benötigst Visual Studio nicht, um C++ zu programmieren, Du brauchst nur einen Compiler, nutze z.B. GCC. Phil
-
aus Spalteninhalt Spaltenname
Welchen Sinn macht das? Wenn Du 10.000 Datensätze hast, hast Du 10.000 Spalten, Spaltennamen müssen eindeutig sein wie stellst Du das sicher? Phil
-
gutes Visual C++ openbook (muss nicht zwingend openbook sein)
ich zitiere aus Microsoft Visual Studio ? Wikipedia Du wirst sicher kein Buch finden, dass Dir jede Komponente und die dazugehörigen Headerfiles erklärt. Es gibt Unmengen an Bibliotheken zu denen es wiederum eigene Literatur gibt, deshalb musst Du schon Dir vorher überlegen was Du machen möchtest bzw. was Du suchst. Aber Du scheinst ja nicht daran interessiert zu sein, dass man Dir hilft, da Deine Fragen Aussagen sind und Du nicht bereit bist, mehr Informationen zu liefern Phil
- array
-
Was kommt nach der Ausbildung?
Da möchte ich Dir einmal ganz schnell den Zahl ziehen. Informatik ist eine Wissenschaft und nicht programmieren. Informatik ist zunächst, gerade im Grundstudium, Mathematik. Dazu kommen dann noch Anwendungsfächer, wie z.B. Computergraphik, technische Informatik, evtl Physik oder Elektrotechnik usw. Zusätzlich zur Mathematik die ca 30% ausmacht, kommen dann z.B. Fächer wie theoretische Informatik, usw. Nein, im Sinne, dass man "Netzwerke studieren kann". Du kannst Dich spezialisieren, sprich Du würdest Deinen Bachelor Informatik machen und im Master dann z.B. den Schwerpunkt auf technischer Informatik, Rechnernetze / verteilte Systeme legen. Aber und das sollte Dir klar sein, dass ein Informatikstudium nicht daraus besteht, irgendwelche Software am Rechner zu installieren oder Netzwerke zusammen zu stecken bzw Router o.ä. zu konfigurieren. Phil
-
gutes Visual C++ openbook (muss nicht zwingend openbook sein)
Lass Dir doch nicht alles aus der Nase ziehen! Was hat denn Visual Studio mit dem Problem zu tun? VS ist eine IDE, Du kannst auch Notepad nehmen. Noch einmal: Was ist Dein Ziel? Phil