Zum Inhalt springen

Klotzkopp

Mitglieder
  • Gesamte Inhalte

    9.912
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    3

Beiträge von Klotzkopp

  1. Hast du eine bessere Idee?

    Du könntest eine Escape-Sequenz benutzen, wenn im Datenstrom ein Steuerzeichen (in deinem Fall #) auftritt. Beispielsweise könntest du das Steuerzeichen verdoppeln, wenn es als Teil der Daten und nicht als Steuerzeichen interpretiert werden soll.

    Oder du baust die Länge der Nachricht mit ins Protokoll ein.

  2. dann stell du mal die benötigten infos zusammen dann antworte weil fachmann halt
    Das lustige an Fachleuten ist, dass sie sich aussuchen können, wem sie in ihrer Freizeit antworten.

    Mit der Einstellung wirst du hier nicht weit kommen. Das ist hier nicht dein persönliches Support-Forum. Freundliches Auftreten, das Eingehen auf Rückfragen sowie eine halbwegs verständliche Ausdrucksweise erhöhen die Chance auf hilfreiche Antworten ungemein.

    In diesen drei Kategorien hast du bisher komplett versagt. Du bist pampig, beantwortest kaum Fragen, und dein Gestammel zu entziffern, ist eine Qual, die sich hier kaum jemand antun will.

    Arbeite daran, und du wirst hier kompetente Hilfe finden. Mach so weiter, und du bist raus.

  3. Nach Deiner Aussage währe dann der vollständige ursprüngliche Dateiname z. B. test.rft?
    Irgendwelche Überlegungen zur Sinnhaftigkeit des Namens der Backupdatei sind hinfällig, wenn in der Aufgabenstellung drinsteht, wie der Name der Backupdatei aufgebaut soll. Tut es das?

    Währe nett, wenn Du mir eventuell die richtige Übersetzung "Codesyntax ins Deutsche" dazu erläutern kannst, wenn meine oben genannte nicht korrekt ist.
    Du schreibst in Rätseln.

    File::Copy(quelle, ziel, true);

  4. Zunächst würde ich eine Backup-Datei beim Speichern erstellen, nicht beim Öffnen. Und das auch nicht durch irgendwelche Open- und Save-Methoden, sondern durch echtes Kopieren der Datei.

    Dieser Versuch aus deinem Code sollte den Dateinamen für die Backup-Datei richtig erzeugen.

    kopie = Path::Combine(Path::GetDirectoryName(dateiname), Path::GetFileNameWithoutExtension(dateiname) + L".BAK");

    Übrigens: Wenn du unterschiedliche Dateitypen verarbeiten kannst, würde ich dazu raten, die ursprüngliche Dateierweiterung nicht abzuschneiden.

  5. MCI kann das nicht. Mir ist auch keine andere Schnittstelle bekannt, die das kann. Mutmaßlich, weil die Geräte diese Information gar nicht rausgeben.

    Geht es um ein bestimmtes Gerät, oder brauchst du eine allgemeingültige Lösung?

  6. Wenn du eine Assembly (.exe, .dll) testest, musst du sie jedenfalls neu erstellen. Das macht Visual Studio beim Starten, falls nötig. Eclipse erstellt andauernd im Hintergrund, so weit ich weiß.

    Du kannst anscheinend auch statt der Assembly die Projektdatei (.csproj) angeben. Möglicherweise erstellt NUnit die Assembly dann selbst.

  7. Aber die Übungsaufgabe ist einfach nur Grausig. Pseudo Code schön und gut, aber jetzt sitzt er zuhause, hat die gegebenen Klassen und will seine Lösung überprüfen.

    Dann korrigiert er die Klassen der Übungsaufgabe, damit er es überhaupt zum Compilieren bekommt?

    Du hast aber schon gemerkt, dass das Java ist, kein C#?
  8. In der Berufsschule wurde uns damals gesagt, dass eine Variablenzuweisung immer true zurück gibt, da es kein Vergleichsoperator ist, sondern ein Zuweisungsoperator.
    Das ist falsch.

    Wenn der Wert von vornherein feststünde, wäre er überflüssig. Außerdem könnte man Zuweisungen dann nicht mehr verketten.

    Im Grunde möchte ich nur Zeilenweise das fetch() (und somit auch den reader) durchlaufen, bis kein Ergebnis mehr kommt und gleichzeitig die Readerzeile einer Variable zuweisen.
    Dann prüf deinen Zuweisungsausdruck auf != null.
  9. Aber ich prüfe doch garnicht, ob fetch() den datentyp bool zurück gibt, sondern ob die Anweisung (data = fetch()) == true ist?
    Wann ist denn ein Zuweisungsausdruck true? Wenn die Zuweisung geklappt hat, oder wie stellst du dir das vor?

    Ein Zuweisungsausdruck hat den Wert des Ziels. Wenn du prüfen willst, ob das Ziel null ist, musst du das schon hinschreiben.

  10. Die Grundlage in eine Norm und auf einer binären Struktur ist keine Norm (und damit kein Metrik) definiert, d.h. ich kann keinen Abstand in der Dimension Geschlecht berechnen
    Ich brauche keinen Abstand in der Dimension Geschlecht, weil das Geschlecht nicht mit in die Abstandsfunktion eingeht. Das Geschlecht ist doch die Eigenschaft, für die ich die Klassenzugehörigkeit suche.

    d.h. der Algorithmus läuft in der von Dir beschriebenen Form nicht bzw. wenn man ihn implementiert stürzt er ab.

    #include <cmath>
    #include <algorithm>
    #include <map>

    enum Geschlecht { m, w };

    struct Person {
    int groesse;
    Geschlecht geschlecht;
    };

    int abstand(Person a, Person B) { return std::abs(a.groesse - b.groesse); }

    int main()
    {
    Person beispiele[] =
    {
    { 175, m },
    { 169, w },
    { 185, m },
    { 166, w },
    { 172, w },
    { 168, m }
    };

    const size_t anzahl = sizeof(beispiele) / sizeof(beispiele[0]);

    Person X;
    X.groesse = 171;

    // Nächste Nachbarn durch stumpfes Sortieren nach Abstand ermitteln
    std::sort(beispiele, beispiele + anzahl, [X](Person a, Person B) { return abstand(a, X) < abstand(b, X); } );

    int k = 3;

    // Zaehlen, wie of welches Geschlecht unter den k ersten Nachbarn auftritt
    std::map<Geschlecht, int> zaehlen;
    for(int i=0; i<k; ++i)
    {
    ++zaehlen[beispiele[i].geschlecht];
    }

    // Hoechste Anzahl suchen
    auto maximum = zaehlen.begin();
    for(auto i=zaehlen.begin(); i != zaehlen.end(); ++i) {
    if(i->second > maximum->second)
    maximum = i;
    }

    X.geschlecht = maximum->first;
    }[/code]

  11. Hat das für diesen Algorithmus irgendeine praktische Relevanz?

    Für mich klingt das danach, dass man da unbedingt ein mathematisch schlüssiges Modell auf einen primitiven Algorithmus draufpflanzen musste, damit irgendwelche Sätze anwendbar werden oder Beweise funktionieren. Man trickst herum, bis die Mathematik passt, und am Ende kommt doch dasselbe heraus.

  12. Ich denke mir, man hat eine gewisse Anzahl von Samples. Diese müssen bereits vorverarbeitet sein, d. h. diese Samples müssen schon zu bestimmten Klassen klassifieziert sein.
    Richtig.

    Wenn man jetzt "neue" Samples klassifizieren will
    Erstens klassifiziert man im Kontext dieses Algorithmus nur ein einziges Objekt, und zweitens wird dieses nicht automatisch zu einem neuen Beispielsample. Du baust da viel mehr in diesen Algorithmus ein, als dieser eigentlich tut.

    Zusätzlich kann man auch mit der Distanz eine Gewichtung machen.
    Wie du die Distanz berechnest, hängt von der Aufgabenstellung ab. Für den Algorithmus selbst ist es irrelevant.

    Ich glaube, wir brauchen ein Beispiel.

    Wir haben ein paar Samples. In diesem Fall Personen, von denen wir die Größe und das Geschlecht kennen:

    - 175 cm, m

    - 169 cm, w

    - 185 cm, m

    - 166 cm, w

    - 172 cm, w

    - 168 cm, m

    Das "Lernen" besteht darin, dass wir uns diese Beispiele merken.

    Jetzt haben wir eine Person X, von der wir zwar die Größe kennen (171 cm), aber das Geschlecht nicht. Wir versuchen daher eine Klassifikation über die 3 nächsten Nachbarn. Das wären diese:

    - 169 cm, w

    - 172 cm, w

    - 168 cm, m

    Das Ergebnis der Klassifikation ist also, dass X weiblich ist.

    Das ist alles.

  13. Trainingsphase: Trainingsbeispiele speichern

    Testphase: Eine Eigenschaft eines Objekts mittels der k nächsten Beispiele ermitteln.

    Im Falle der Klassifikation erfolgt das durch Mehrheitsentscheid, bei der Regression durch Berechnung eines Mittelwerts.

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