Beiträge von Christoph R.

    Hallo!

    Ich möchte in einem Latex-Dokument die Anzahl von bestimmten (selbst definierten) Kommandos zählen, und diese Anzahl _vor_ den eigentlichen Kommandos ausgeben. Dazu habe ich einen Counter eingeführt, der in dem jeweiligen Kommando erhöht wird.

    Das offensichtliche Problem ist nun, dass ich den Wert des Counters natürlich erst kenne, wenn die Stelle, an der er ausgegeben werden soll, längst vorbei ist. Ich bin mir ziemlich sicher dass man das irgendwie mittels aux-Files lösen kann. Die Bibliography löst ja auch ein ähnliches Problem: dabei werden die Referenzen erst ganz am Ende generiert, es wird aber davor schon darauf verwiesen.

    Gibt es dafür eine einfache Lösung oder muss man sich das mittels outerputstreams (Package "newfile") alles selbst schreiben?

    Ich danke schon mal recht herzlich für Tipps.

    Wie schaut's denn eigentlich aus wenn ein Element gelöscht wird und wieder später eingefügt wird? Ist dieses als neues Element (Event) zu behandeln (sprich letztes in der Ordnung)?

    Ja.

    Ramses: Danke, das klingt schon ganz gut. So ähnlich habe ich mir das eh auch gedacht, wobei dein midx so ungefähr meiner periodischen Neunummerierung entspricht.

    Wie greifst du auf die Datenstruktur zu, über einen Index oder brauchst du nur das erste/letzte Element?

    Ich muss Elemente gar nicht abfragen, da sie abgesehen vom Schlüssel keine Daten enthalten. Ich muss nach .add(a) und .add(b) nur feststellen können, dass a vor b eingefügt wurde.

    Zitat


    wenn du bei einem std::vector immer nur am Anfang oder am Ende einfügst, hättest du eine implizite Ordnung, über die Element-Speicheradresse könntest du damit für zwei Elemente auch die Reihenfolge auswerten.



    Richtig. Das ist meine Variante I. Das Löschen braucht dann allerdings lineare Zeit. Und auch das Feststellen ob a oder b zuerst eingefügt wurde (sofern beide überhaupt enthalten sind) braucht lineare Zeit, da ich a und b zuerst einmal finden muss bevor ich die Adressen vergleichen kann.

    - Was bedeutet "feststellen, welches von 2 Elementen zuerst eingefügt wurde"? 2 beliebige Elemente nach einem Schlüssel suchen und deren Einfügezeit vergleichen?

    Genau.

    Zitat

    - Wie viele Elemente sind denn so durchschnittlich in der Datenstruktur?

    Das kann stark unterschiedlich sein, aber einige k bis 10k können es schon sein.

    Zitat

    - So effizient wie möglich? Wie wäre es dann mit etwas selbst implementiertem und auf das Wesentliche reduzierte? Etwas vorgefertigtes ist halt meist etwas allgemein gehalten. Oder geht es nur um die Laufzeitkomplexität?


    Ich meinte in Bezug auf die Komplexität.

    Zitat

    Eine Hashtabelle. Einfügen konstant, löschen konstant, 2*suchen und vergleichen ebenfalls konstant. Zahlt sich auch erst ab vielen Elementen aus.
    Ein Einfügeindex ist hier auch nötig.

    Von der Hashtabelle alleine kann ich noch nicht ableiten was zuerst drin war. Nachdem die Schlüssel keine Daten anhängen haben, geht es genau genommen nur um den Einfügeindex.

    Zitat

    Einfügeindex: Wie weit liegen minimaler und maximaler Index maximal auseinander (< MAX_INT)? Weiß man wo ungefähr der minimale Index liegt, kann man diesen von beiden Indizes abziehen und erst danach vergleichen. Dann sind beide immer positiv und der Vergleich immer korrekt, selbst wenn man immer hinaufzählt.

    Das verstehe ich jetzt nicht ganz.

    Meine Idee war diese: Bei jedem add(e) wird dem e der aktuelle Zähler zugewiesen und dieser anschließend erhöht. Wenn ich wissen will ob a vor b eingefügt wurde, dann muss ich nur die beiden Zähler vergleichen. Das funktioniert selbst dann wenn zwischendurch Elemente (samt ihrem Zähler) wieder gelöscht wurden. Problem ist halt dass ich einen Index niemals wiederverwenden darf weil sonst die Ordnung zerstört wird.

    Hallo!

    Ich suche eine Datenstruktur die Folgendes kann:
    1. Elemente einfügen
    2. Elemente löschen
    3. feststellen, welches von zwei Elementen zuerst eingefügt wurde

    Die Operationen sollen natürlich so effizient wie möglich sein, wobei sich schwer sagen lässt welche Operation am häufigsten vorkommt.

    Meine Ideen sind:
    I Liste/Stack: 1. konstant, 2. und 3. linear
    II Baum mit Paaren von Element und laufender Einfügenummer (die immer erhöht und niemals heruntergezählt wird): alle 3 Operationen logarithmisch

    Die Alternative II würde mir ja schon ganz gut gefallen, aber da der Einfügeindex unendlich erhöht wird, führt das zwangsweise irgendwann zu einem Overflow.

    Bevor ich es mir jetzt antue II händisch zu verfeinern (z.B. periodische Neunummerierung der Elemente wenn der Index zu hoch wird): Kennt vielleicht jemand eine fertige Datenstruktur für diesen Zweck? (vielleicht sogar mit C++-Implementierung)

    Hallo!

    Aus diesem Grund suche ich nach einer Möglichkeit zur Abschaltung meines CD-Laufwerks. Nachdem ich bisher noch keine Softwarelösung gefunden habe, jedenfalls nicht für Windows, dachte ich jetzt an eine Art "Netzschalter" nur für das Laufwerk. Also einen Schalter der zwischen das SATA-Stromkabel vom Netzteil und das Laufwerk eingehängt werden kann. Technisch ist ja nicht viel dahinter und es wäre leicht sowas herzustellen. Die Frage ist nur: Ist sowas tatsächlich erhältlich? Wenn ja: Wonach muss ich suchen?

    Hallo!

    Endlich habe ich lokalisieren können woher bei meinem super-silent PC fallweise ein nerviges Pfeifen kommt. Es ist nicht wie zuerst vermutet der ganz langsam drehende Lüfter. Nein, es ist das CD-Laufwerk, selbst wenn keine CD drin ist. :mad:

    Zwar nur wenn die Lade zu ist, und auch das nur fallweise, aber nachdem offen lassen auch keine Lösung ist, hier die Frage: Weiß jemand ob man CD-Laufwerke softwaremäßig so wie Festplatten abschalten lassen kann wenn sie eine Zeit lang inaktiv sind?

    Mich würde eine Lösung für Win 7 und Ubuntu interessieren.

    Hallo!

    Ich bräuchte demnächst ein neues Notebook und mit sagen die aktuellen Lenovo-Modelle sehr zu. Nachdem Lenovo ja im Rahmen der ubook-Aktion immer Sonderangebote für Studenten hat, würde ich gerne wissen, wie groß da die Ersparnis in den letzten Jahren ungefähr war. An sich hätte ich es ja gerne schon vorher, vor allem weil ja ohnehin ungewiss ist ob es in einer Konfiguration angeboten wird die mir zusagt. Aber wenn die Ersparnis in der Größenordnung von Apple ist (18%), dann ist das natürlich nicht vernachlässigbar.

    Hat jemand Erfahrungswerte bezüglich Preisrabatt bzw. Zusatzleistungen die man über den Lenovo-Webshop nicht bekommt?

    Hallo!

    Ich bin seit Längerem auf der Suche nach einem neuen Monitor. Nachdem meiner gestern ohne Vorwarnung den Geist aufgegeben hat und ich derzeit mit 17" unterwegs bin, möchte ich jetzt auch relativ bald einen finden :shiner:.

    Kriterien:
    - Onlinekauf mit Rücktrittsoption, auch bei geöffneter Packung (im Falle von Pixelfehlern); Alternativ: Eine 0-Pixelfehlergarantie zum vernünftigen Preis (keine Ahnung wie da jetzt die Rechtslage wirklich ist, aber ich bin bereit ein bisschen was draufzulegen wenn ich mir Ärger ersparen kann)
    - Mindestens 26"
    - Lieferbar in maximal 3 Wochen
    - max. 400 Euro
    - 1920x1200

    Gerade das letzte Kriterium macht Probleme. Praktisch alle verfügbaren Monitore dieser Größe haben 1920x1080. Ich weiß aber, dass es vor ca. 3 Monaten bei Geizhals mindestens 4 Geräte von Amazon gegeben hat die alle Kriterien erfüllt haben:
    LG Electronics Flatron W2600H, 26"
    Hanns.G HZ281HPB, 27.5"
    Hanns.G HH281HPB, 27.5"
    Iiyama PLE2607WS-B1 66,0 cm (26 Zoll) Widescreen TFT Monitor HDMI, DVI-D, VGA (Kontrastverhältnis 4000:1, Reaktionszeit 2ms) schwarz

    Leider sind sie inzwischen alle nicht mehr lieferbar, und es weiß auch anscheinend niemand wann bzw. ob sie wieder lieferbar sein werden. Ich habe damals nicht bestellt weil ich dachte ich hab noch Zeit und vielleicht kommt ja noch was besseres :).

    Kennt vielleicht jemand eine gute Quelle die ich übersehen habe?

    Ich wollte mir heute über TISS SelfService ein neues Zeugnis downloaden. Im PDF ist es jetzt schön über 2 Seiten verteilt. Auf der 1. Seite steht alles bis einschließlich meinem Namen, dann ein Seitenumbruch, und dort geht weiter mit dem gewohnten tabellarisch aufgebauten Formular, wobei im 1. Feld nur "Bakk.techn." steht. Das gleiche passiert übrigens auch bei Zeugnissen die ich früher in fehlerfreiem Format erzeugen lassen konnte.

    Ist das nur bei mir so oder hat es noch jemand bemerkt? Ist das ein neues, gewöhnungsbedürftiges Zeugnisdesign, oder ein neuer TISS-Bug?

    Bei derartigen Maßnahmen sage ich immer, man soll versuchshalber mal die Wörter "Männer" und "Frauen" mal durch "Schwarze" und "Weiße" ersetzen. Bei diesem Thema ist man historisch bedingt viel sensibler, und da kommt die Ungleichbehandlung dann erst richtig zum Vorschein. Wenn aber eine Gruppe betroffen ist, die in der Vergangenheit nie in großem Umfang diskriminiert wurde (Männer), dann denkt offensichtlich niemand darüber nach ob. Der fatale Denkfehler der gemacht wird: Wir haben aus der Vergangenheit gelernt, die Welt ist aufgeklärt, Diskriminierung gibt es nicht mehr. Wenn die übernächste Generation auf die 10er-Jahre zurückblickt wird sie das anders beurteilen, so wie wir die Fehler der Vergangenheit erkennen.

    Es müsste eigentlich so passen.

    Bist du sicher, dass er zwar den If-Block, nicht aber die Funktion ausführt? Siehst du das in der Ausgabe oder springt nur der Debugger nicht in die Funktion? Beim Debuggen gibt es die Kommandos "step into" und "step over". Letzteres führt Unterfunktionen in einem Schritt aus. Vielleicht ist das ja das Problem.

    Wenn ich das GANZE Programm so aufrufe überspringt es mir diesen Teil und wird nicht ausgeführt.

    Welchen Teil überpringt er? Die Funktion look_word? Hast du sie in der Funktion main() auch aufgerufen?

    Da wo vorher der Codeabschnitt stand, da gehört jetzt ein Funktionsaufruf hin:

    Code
    look_word(buch, eintraege, which_language);

    Du müsstest dich allerdings zuerst festlegen was genau deine Funktion alles machen soll. Man "verschönert" Programme normalerweise nicht, wenn man willkürlich Code in Funktionen packt, sondern man sollte sich überlegen was die Ein- und Ausgabewerte der Funktion sein sollen und was dazwischen passiert.

    In deinem Fall ist es z.B. unlogisch, dass hier "langu" übergeben wird, du aber trotzdem in der Funktion diesen Parameter einliest. Entweder du liest vor dem Aufruf ein, und übergibst den Wert, oder die Funktion liest selber ein. Aber beides zusammen verwirrt eher.

    Das kommt darauf an wie viel Zeit du da reinstecken willst. Aber als Alternative zu einer einfachen "Formel" könnte man auch tiefer in die Wahrscheinlichkeitstheorie gehen, eine zugrunde liegende Verteilung annehmen, deren Parameter anhand der Daten schätzen, und damit dann die Vorhersage berechnen. Im Viertl Statistik-Buch steht was dazu.

    Das war jetzt mehr eine Art Brain-Dump. Praktisch gemacht hab ich sowas auch noch nie.

    Ich habe damals auf meinem PowerPC Mac Microsoft's VirtualPC verwendet. Es virtualisiert zwar nicht, emuliert Windows aber ganz gut. Und das gar nicht so langsam.

    Mac OS auf Windows zu emulieren hab ich damals (vor 5 Jahren) nicht geschafft. Vielleicht geht es aber inzwischen mit der x86-Version leichter.

    Ich würde gerne mitten im Text ein Item wie in einer itemize- oder enumerate-Umgebung einfügen, ohne jedoch eine solche Umgebung tatsächlich zu öffnen.

    Was eigenartig klingt hat diesen Hintergrund: Ich habe in meiner Beamer-Präsentation eine Aufzählungsliste [1], [2], [3], etc., wobei diese Nummern vom Beamer-Package mit bestimmter Text- und Hintergrundfarbe schön formatiert werden. Im Text eines Punktes würde ich nun gerne auf einen anderen verweisen, also sowas wie "siehe [2]", und da wäre es schön wenn diese Nummer automatisch genauso dargestellt wird wie ein echter Aufzählungspunkt.

    Ich würde gerne Visual Studio verwenden um damit eine Linux-Anwendung (C++) zu entwickeln -> ja, ich weiß: die Chancen dass das geht sind gering.

    Jedenfalls suche ich eine "saubere" Lösung, also nicht indem man VS in Wine laufen lässt, den Linux-Kernel im Windows User Mode emuliert oder dergleichen (das führt ja bekanntlich früher oder später nur zu Ärger mit einzelnen Funktionen usw.).

    Ein vollwertiger Linux-Rechner steht ohnehin zur Verfügung und das ist auch die Zielplattform. Deswegen hab ich mir gedacht man könnte diesen vielleicht als Server verwenden wo die Applikation kompiliert wird und läuft, und der Windows-Rechner mit VS ist wirklich nur die Entwicklungsumgebung, die sich zu diesem Server verbindet. Weiß jemand ob sowas möglich ist?

    Leider gibt es für Linux immer noch keine für meinen Geschmack vernünftige IDE. Eclipse sagt mir aus verschiedenen Gründen nicht besonders zu (teilweise träge Reaktionen, beim Debuggen gibt es viele nervige Kleinigkeiten, etc.). Abgesehen von der IDE kommt für das Projekt aber nur Linux infrage.

    Zu schreiben dass man bei großen LVAs (100 Studenten sind auch schon viel) keine Ausnahmen machen kann, wäre sicher ok. Das ist zwar ärgerlich, würde aber jeder verstehen.

    Aber dass man dich wegen Dingen kritisiert die mit dem Anliegen nichts zu tun haben ("wenn ich mir Ihre bisherigen Leistungen so anschaue", "27 Mails" [unter der Annahme dass du nicht wirklich gespammt hast]), ist unterste Schublade und gehört in den Kindergarten. "Na und, dafür bin ich größer als du" wäre auch nicht viel niveauvoller. Wenn der Typ über mehrere Mails hinweg so drauf war, dann war es wohl auch nicht aus einer Laune heraus, sondern er ist einfach ein Ungustel.

    Ich kenne Reaktionen von LVA-Leitern auf derartige Anfragen auch von der anderen Seite. Da wurde meistens bestimmt und hart zurückgeschrieben (im Sinne von: Ausnahmen bei Massen-LVAs sind nicht möglich), man ist aber trotzdem sachlich geblieben und hat einen guten Umgangston angeschlagen. So gehört es sich auch.