Zum Inhalt springen

Bubble

Mitglieder
  • Gesamte Inhalte

    1.565
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von Bubble

  1. Vom Prinzip her benötigst Du zuerst einen Parser, der Dir die Rechenaufgabe zerlegt und prinzipiell einen binären Baum aufbaut, mit dessen Hilfe Du die Aufgabe, unter Berücksichtigung von Punkt vor Strichrechnung, lösen kannst. Anstatt den Baum aufzubauen, kann direkt Rekursion zur Berechnung verwendet werden. Als Eingabe bekommt der Parser eine Zeichenkette, die die Rechenaufgabe enthält, beispielsweise s0="1+2*3*4*7". Diese Zeichenkette musst Du zuerst an den Operatoren zerlegen. Dazu suchst Du zuerst von links nach Rechts die Operatoren für Strichoperationen (+ und -) und teilst an ihnen den Eingabestring in einen linken und rechten Anteil, jeweils ohne den Operator. Also aus s0 ergibt sich s1="1" und s2="2*3*4". Auf die Teilstrings wendest Du nun wieder rekursiv den Parser für Strichoperationen an, bis keine weiteren gefunden wurden. Sobald ein Teilstring keine Strichoperationen mehr enthält, wendest Du einen Parser an, der für Punktoperationen (* und /) analog vorgeht. So bleibt s1 erhalten und aus s2 wird s3="2" und s4="3*4" gebildet. Aus s4 ergibt sich in der nächsten Rekursionsstufe s5="3" und s6="4". Nachdem keine Punktoperartionen mehr gefunden wurden bist Du mit der Rekursion zu ende und wandelst die Strings s2, s3, s5 und s6 in Integer oder Double Werte um und verknüpfst sie rückwärts anhand der jeweils gefundenen Operation. Aus s5 und s6 ergibt sich eine 12, die das Ergebnis der Teilaufgabe in s4 darstellt. Aus s4 und s3 ergibt sich eine 24, das Teilergebnis für s2. Aus s1 und s2 ergibst sich zum Schluss das Rechenergebnis 25, was der Aufgabe in s0 entspricht. Zum Bearbeiten von in Worten geschrieben Aufgaben, baust Du Dir am besten einen Parser, der Wörter von Zahlen und Operationen erkennt und diese in "normale" Zahlen und Operatoren umwandelt. Also aus "zwei mal zwei" soll "2*2" werden. Ich hoffe ich habe mich bei der Erklärung nicht irgendwo vertan, ich habe den Beitrag recht schnell getippt... Bitte um Nachsicht
  2. Wenn Du ein nicht blockierenden Socket erzeugt hast, kannst Du nach dem connect Aufruf mit select überprüfen, ob auf den Socket geschrieben werden kann. Falls ja, ist die Verbindung erfolgreich hergestellt. Lies Dir am besten die Doku in der MSDN durch, angefangen bei der connect und ConnectEx Funktion. Den nicht blockierenden Modus kannst Du vor dem connect mit ioctlsocket aktivieren. Das ganze kann leider nicht in wenigen Zeilen umfassend erklärt werden, such am besten im Internet nach einem für Dich passenden Tutorial, um auf den richtigen Weg gebracht zu werden.
  3. Du kannst allenfalls das Fenster in den Vordergrund holen. Fenster, die teilweise verdeckt sind, liegen in den allermeisten Fällen auch im Grafikspeicher nicht vollständig vor. Mit Fenstern, die Overlays verwenden, wirst Du noch zusätzliche Schwierigkeiten haben.
  4. Meinst Du ein Verhalten wie das der Start-Leiste?
  5. Dein Parent-Window erhält entsprechende WM_NOTIFY Nachrichten. Diese sind in der MSDN dokumentiert (beginnen im Fall von list-view controls alle mit LVN_). Du verarbeitest sie ganz normal in der nachrichtenverarbeitenden Funktion Deines Fensters bzw. Dialogs (WindowProc oder DialogProc). Um welches Dialogelement es sich handelt, bekommst Du anhand des Handels oder der ID heraus.
  6. Hast bei Deiner Kalkulation schon berücksichtigt, dass Zahlen und Operatoren ausgeschrieben werden dürfen? Ist doch eigentlich ein Sonderwunsch, oder? Wenn Du eine bestimmt Frage hast, werden ich oder andere Dir gerne helfen, soweit möglich, aber Dir das Programm schreiben wird vermutlich niemand. Da C++ praktisch C beinhaltet ist die Frage nach C und C++ auch nicht ganz klar.
  7. Du kannst Namespaces verwenden, um die Klassen logisch zu ordnen. Visual Studio 2003 zeigt diese dann auch im Class View entsprechend an.
  8. Mit der blockierenden connect Funktion geht das aus prinzipiellen Gründen nicht. Um es dennoch zu realisieren, kannst Du nicht blockierende socket Funktionen benutzen und selbst warten. Hier gibt es mehrere Möglichkeiten der Realisierung, such am besten im Internet nach Beispielen und Erläuterungen. Alternativ könnte man noch einen Registry-Einfrag verändern, aber das hätte Auswirklungen auf das gesamte System. Dies würde ich nicht empfehlen.
  9. Bubble

    Funktionstyp time_t

    Mit Objekten zu arbeiten, die Instanzen von Klassen sind, die wiederum Methoden und Daten kapseln. Aspekte wie Vererbung, Sichtbarkeit usw. spielen auch noch eine große Rolle. Man kann es nicht in einem 3-Zeiler erklären, wirklich schwer zu verstehen ist es jedoch auch nicht. Such einfach mal im Internet, es gibt bestimmt viele einführende Seiten.
  10. Dispose soll nicht verwaltere Resourcen freigeben, also z.B. Systemobjekte, die nicht von der CLR verwaltet werden sollen. Wenn Du folglich die Verbindung nicht mehr nutzen willtst, kannst Du Dispose aufrufen. Alternativ könntest Du in C# die using(...){...} Schreibweise verwenden, bei der am Ende des Blockes aufomatisch Dispose aufgerufen wird.
  11. Bubble

    Funktionstyp time_t

    Die meisten Gründe wurden schon aufgezählt. Ich halte C++ für eine mächtige, jedoch komplexe, Programmiersprache. C++ hat eine höhere Lernkurve als beispielsweise Java. Man kann Fehler machen, die oft zu Fehlermeldungen an ganz anderer Stelle des Programms führen, was Anfänger verwirren kann. C++ ist sehr frei, so gibt es die Möglichkeit objektorientiert zu programmieren, man kann es aber auch komplett sein lassen. Es wird vieles unterstützt und die Auswahl dem Entwickler überlassen. Grade aber die Wahl, welche Vorgehensweise wann und warum am günstigsten ist, kann für Einsteiger unter Umständen nicht zu entscheiden sein. All diese Aspekte sind beherrschbar, jedoch lenken sie von der eigentlichen Grundlagen, den Algorithmen und prinzipiellen Programmabläufen, ab. So läuft ein Sortieralgorithmus vom Prinzip her immer gleich ab, egal ob er in C++, Java, C# oder Modula2 implementiert wird. Bitte nicht falsch verstehen: Generell halte ich C++ für eine gute Programmiersprache.
  12. Wenn es wirklich eine Serveranwendung sein soll, die im Hintergrung auch unabhängig von einem angemeldeten User laufen und die nicht von einen User selbst gestartet werden soll, dann musst Du einen Windows Service programmieren. Dies ist in C/C++ allerdings nicht ganz trivial und IMO nicht unbedingt etwas für Anfänger in der Welt der Windows-Programmierung. Alternativ könntest Du den Service mit .NET schreiben, dass ist durch die Unterstützung vom .NET-Framework leichter als in C/C++. Die laufenden Prozesse kannst Du Dir, wie schon gesagt, z.B. mit EnumProcesses aufzählen lassen.
  13. Bubble

    Suche Visio 5.0

    Wäre es nicht sinnvoller ein neueres Betriebssystem einzusetzen und den PC ggf. entsprechend upzudaten?
  14. Bubble

    Suche Visio 5.0

    Wozu braucht man eine so alte Version?
  15. Jedes Control ist selbst ein Fenster. Beim verändern der Größe vom Hauptfenster, musst Du die Positionen und Größen aller enthaltener Controls per Hand selbst neu setzen.
  16. Bubble

    Funktionstyp time_t

    Verwende die Funktion Sleep, aber lies Dir die Doku durch. Dort steht auch, wie exakt die Funktion arbeitet. (Es gibt einen gewissen Toleranzbereich, den Du akzeptieren musst. Im Sekundenbereich sollte es jedoch kaum auffallen.) C++ halte ich für keine gute Anfängersprache.
  17. Die Formulierung mit "im Allgemeinen" war nötig, denn z.B. DOS, Windows 98 und Windows XP sind auch unterschiedliche Betriebssysteme, es gibt aber trotzdem Programme, die unter allen funktionieren.
  18. Was möchstest Du wissen. Was die Begriffe bedeuten? Es geht sicherlich darum die Ausdehnung und Stärke des von einem Access-Point erzeugten elektromagnetischen Feldes zu bestimmen und daraus auf die Emfpangsmöglichkeiten von Laptops zu schließen. Es gibt verschiedenen Methoden, die einfachste und preiswerteste ist sicherlich mit einem WLAN-Laptop oder ähnlichem umher zu laufen. Genauere Meßmethoden sind aufwendiger zu realisieren und man braucht spezielle Geräte.
  19. Versuch es doch mal in einem anderen Format zu speichern, dass beide Programme kennen.
  20. Probiere die Shape-Suche (mit aktivierter internetverbindung und der EInstellung auch im Internet zu suchen). Wenn Du da nichts findest, bleibt Dir noch Google oder einfach selbst zeichen.
  21. Kein Wunder, es geht auch nicht. Ausführbare Dateien sind im Allgemeinen nicht zwischen verschiedenen Betriebssystemen portabel.
  22. Das sind völlig allgemeine Aussagen. An Deiner Stelle würde ich mir eine Reihe von projektspezifischen Kriterien überlegen und damit die Wahl begründen. Dann nimm doch dies schon mal als "Vorkenntnisse" in Deine Liste auf und berücksichtige es entsprechend.
  23. Bubble

    Desktop verpixelt

    Es scheint so, als ob es Probleme mit dem Alpha-Kanal (Transparenzen) bei der Bilddarstellung gibt, daum wird bei Dir nicht richtig überblendet und es entstehen die breiten Ränder.
  24. Du könntest den Befehl LockWorkStation() verwenden, dass sollte das Gleiche sein (ungetestet), als ob Du Windows+L auf der Tastatur drückst. Zum selbst probieren und für ein paar Hintergrundinfos kannst Du Dir folgenden Artikel anschauen: http://www.codeproject.com/win32/AntonioWinLock.asp Nachdem ich den Artiel überflogen habe würde ich jedoch sagen: lass es sein
  25. Nein. using namespace ... erspart Dir lediglich die Schreibarbeit alle Namen innerhalb eines Namespaces ohne den Namen des Namespaces selbst benutzen zu können. Die Angabe ist erforderlich, da bei Verwendung von <iostream> (ohne .h) alle Namen im Namespace std liegen. Beispiel: Nach der vorangehenden Angabe von "using namespace std;" kann man anstatt "std::cout" einfach "cout" schreiben. Man kann natürlich trotz using namespace ... jederzeit vollständig qualifizierte Namen verwenden. Die Verwendung von <iostream.h> ist veraltet und sollte nicht mehr verwendet werden (neuere Compiler unterstützen diesen Header teils gar nicht mehr), allerdings kommt älterer damit geschriebener Code ohne "using namespace ..." oder die Angabe des Namensraumes aus (in der Form "std::..."), da keiner verwendet wurde. Man konnte folglich direkt cout schreiben.

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...