AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Mathe mit Strings (die deutsche StringMatheLib ._. )

Mathe mit Strings (die deutsche StringMatheLib ._. )

Ein Thema von himitsu · begonnen am 13. Jun 2009 · letzter Beitrag vom 8. Apr 2013
Antwort Antwort
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.338 Beiträge
 
Delphi 12 Athens
 
#1

Re: Mathe mit Strings (die deutsche StringMatheLib ._. )

  Alt 1. Jul 2009, 09:27
Zitat von xZise:
Naja ich weiß nicht Weil P10 macht mehr als an a eine 0 dran zuhängen. Weil P10 halt universell ist.
ein sinnvoller Grund für P10 ist, daß der "Rechenweg" dann "versändlicher" wäre,
(es ist ja eigentlich ein *10 und im Code sieht es nach +0 aus)
nja und daß es sozusagen Insert, statt Concat (+) nutzt

weißt du, was eine langsame Multiplikation ist?
Delphi-Quellcode:
// für c := a * b;
c := 0;
while b > 0 do
begin
  c := c + a;
  b := b - 1;
end;
so ähnlich sahen Produkt_langsam, QuotientModulo_langsam und Potenz_langsam aus

Zitat von xZise:
Aber ganz von der Hand zu weisen ist das Bestreben nach schnelleren Code ja auch nicht
ich hatte anfangs ja die "langsamen" Versionen noch als zusätzliche Extraversionen drin
und nun existieren sie nur noch virtuell als Kommantare

Zitat von gammatester:
In Ord(TMatheParserFListe(Liste[i + 1].Operanden)[i3].Operand) wendest Du ord auf einen String. Kann mir eigentlich keine Delphiversion vorstellen, die das erlaubt.
String ist ein Zeiger und per Ord würde man wohl den "Pointer" in einen Integer casten


sooo, nun müßte nur noch irgendwer alle möglichen restlichen Testfälle zusammenstellen
Delphi-Quellcode:
// Function StringMatheLib.UnitTest:
With TMathe.Create do
  Try
    _Test(Normalisieren( '123') = '123');
    _Test(Normalisieren( '+123') = '123');
    _Test(Normalisieren( '-123') = '-123');
    _Test(Normalisieren('--123') = '123');
    Try
      _Test(Normalisieren('a123') <> '123');
      _Test(False);
    Except
    End;
    _Test(Formatieren('+1234567', False, False) = '1234567');
    _Test(Formatieren('-1234567', False, False) = '-1234567');
    _Test(Formatieren('+1234567', True, False) = '1.234.567');
    _Test(Formatieren('-1234567', True, False) = '-1.234.567');
    _Test(Formatieren('+1234567', True, True) = '+1.234.567');
    _Test(Formatieren('-1234567', True, True) = '-1.234.567');
    _Test(Formatieren('+1234567', True, False, 15) = '0000001.234.567');
    _Test(Formatieren('+1234567', True, True, 15) = '+000001.234.567');
    _Test(Formatieren('-1234567', True, False, 15) = '-000001.234.567');
    _Test(Formatieren('-1234567', True, True, 15) = '-000001.234.567');
    //
    //Function Vergleich (a, b: String): TValueRelationship; Overload;
    //Function Vergleich (a, b: String; Art: TVergleich): Boolean; Overload;
    //Function istPositiv (a: String): Boolean;
    //Function istNegativ (a: String): Boolean;
    ...
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz