ordinal Funkion



  • Hallo Zusammen,

    beim umschreiben eines Delphi-Codes in VSC++ habe ich ein Problem mit folgender Zeile:

    s[t] := ord(s[t] <> s[t+1])
    

    wobei s ein int-Array ist.

    Wie kann man das in VS äquivalent umsetzen, obwohl ich keine ord-Funktion gefunden habe?

    Vielen Dank und viele Grüße
    DeckCain



  • ord() wird die Ordnungszahl des Zeichens im Alphabet sein also ord('A') = 65. Da wirst Du wohl nach int casten müssen.

    http://www.hkbu.edu.hk/~bba_ism/ISM2110/pas036.htm



  • Hmm, dort steht u.a. das integers auch ordinale Typen sind, und da in der Zeile ja ein Integerwert mit einem anderen verglichen wird und daraus ein boolscher Wert resultiert, müssen auch booleans ordinäre Typen sein oder?

    Verstehe allerdings noch nicht was der Code letztendlich für einen Sinn hat?



  • Ich rate mal (da ich Delphi nicht kenne):

    s[t] <> s[t+1] vergleicht zwei Integer. Das Ergebnis ist vom Typ Boolean. Es gibt keine implizite Umwandlung Boolean->Integer.
    ord(Boolean) gibt die Ordnungszahl eines Wahrheitswertes zurück, also 0 für false und 1 für true.

    In s[t] steht also 0, wenn s[t] und s[t+1] vorher gleich waren, sonst 0.



  • Ich habe auch den Eindruck, dass der Autor komplett zugedröhnt war, als er das gebaut hat. Mir ist unklar, was er damit erreichen will. Mehr kann ich aber nicht sagen, zuwenig Code.



  • Ja das macht Sinn...es kann ja nur true oder false nach dem Vergleich rauskommen, also entweder 1 oder 0. Werde das mal ausprobieren, vielen Dank noch mal 👍


Log in to reply