Almetare
1.15
Alle meine Taschenrechner - Eine C++-Bibliothek zur Entwicklung von Taschenrechnern
|
Allgemeine Funktionen, die nicht einer speziellen Klasse zugerechnet werden koennen. Mehr ...
#include <util.h>
Öffentliche Typen | |
enum | Direction { LEFT, CENTER, RIGHT } |
Öffentliche, statische Methoden | |
static void | shiftStr (string &str, string recruit, Direction dir=RIGHT) |
Funktion verchiebt alle Zeichen des Strings str um ein Zeichen nach links oder rechts, abhaengig von dir. Mehr ... | |
static string | toLower (const string &str) |
Wandelt String in Kleinbuchstaben um. Mehr ... | |
static string | doubleToStr (double val, int format, int digits, int shiftNum, double forceSci=FORCE_SCI) |
Wandelt double val mit Formatierung in einen String. Mehr ... | |
static string | doubleToSxgStr (double val) |
Wandelt val in einen String im Sexagesimalformat um: z.B. Mehr ... | |
static string | stripTrailingOs (const string &numStr) |
Erwartet in numStr den String einer Zahl in SCI- oder FIX-Notation und entfernt endstaendige Nachkomma-Nullen der Mantisse. Mehr ... | |
static string | shiftPoint (double num, int digits, int shiftNum) |
Erzeugt einen String in Exponentialschreibweise mit der Zahl, die in num uebergeben wird. Mehr ... | |
static string | shiftPointEng (const string &numStr, Direction dir, int digits) |
Erwartet in numStr den String einer Zahl in Fix- oder Sci-Notation (keinen Bruch) und wandelt ihn in eine Zahl in "Engineering"-Notation, d.h., der Exponent ist ein Vielfaches von 3. Mehr ... | |
static void | getMantExp (const string &numStr, double &m, int &e) |
Extrahiert aus dem String numStr die Mantisse m und den Exponenten e als double bzw. Mehr ... | |
static bool | getMantExp (const string &numStr, string &mnt, string &exp) |
Extrahiert aus dem String numStr die Mantisse mnt und den Exponenten exp als Strings. Mehr ... | |
static int | getEngShiftNum (int e, int eng) |
Funktion ermittelt die Anzahl der Stellen, um die das Komma einer Zahl in Folge eines Drucks auf die "ENG"- oder "ENG<"-Taste verschoben werden muss. Mehr ... | |
static string | roundMantisse (string &numStr, int digits, double forceSci=FORCE_SCI) |
Funktion bringt die Mantisse der Zahl in numStr auf hoechstens digits Stellen, falls sie mehr Stellen hat. Mehr ... | |
static string | formatFixNum (double num, int digits) |
Formatiert double num im fixed Format auf insgesamt digits echte Stellen (Vor- + Nachkommastellen ohne Komma) ohne abschliessende Nullen nach dem Komma. Mehr ... | |
static string | formatFixNumStr (string numStr, int digits) |
Formatiert String numStr, der Gleitkommazahl im fixed Format enthaelt, auf insgesamt digits echte Stellen (Vor- + Nachkommastellen ohne Komma) ohne abschliessende Nullen nach dem Komma. Mehr ... | |
static string | roundNumStr (string &numStr, int digits, bool isSci, double forceSci=FORCE_SCI) |
Rundet die Zahl in in numStr auf digits Stellen. Mehr ... | |
static string | roundSxgNumStr (string &numStr, int maxLen) |
Rundet die Sexagesimal-Zahl in numStr so, dass sie die Laenge maxLen nicht ueberschreitet (ohne Vorzeichen). Mehr ... | |
static string | formatSeven (string &numStr, int len, int expLen, char fillChar) |
Formatiert String numStr so, dass er genau len Zeichen lang ist, rechtsbuendig ist und der Exponent - falls vorhanden - mit Vorzeichen eine Laenge von expLen Zeichen hat. Mehr ... | |
static string | formatFixNumStr (string &numStr, int digits, int digitsAfterPoint, bool isOstripped=true) |
Formatiert String numStr, der Gleitkommazahl im fixed Format enthaelt, auf digitsAfterPoint Nachkommastellen. Mehr ... | |
static string | trimNumStr (string numStr, int maxLen) |
Haengt an numStr gegebenenfalls Dezimalpunkt an und bringt ihn rechtsbuendig auf maxLen Zeichen Laenge. Mehr ... | |
static string | trimStr (string str, int len=15, Direction dir=LEFT, char fillChar=' ') |
Liefert String mit len Zeichen Laenge zurueck, der str an der Position dir enthaelt. Mehr ... | |
static string | trimStr (int num, int len=15, Direction dir=LEFT, char fillChar=' ') |
Liefert String mit len Zeichen Laenge zurueck, der num an der Position dir enthaelt. Mehr ... | |
static string | replace (const string &srcStr, const string &oldStr, const string &newStr) |
Funktion ersetzt im String srcStr jedes Vorkommen des Strings oldStr durch den String newStr und gibt das Ergebnis als Return-Wert zurueck. Mehr ... | |
static string | stripLines (string str) |
Entfernt alle Kommentare (Kommentarsymbol ';') und fuehrende Leerzeichen/Tabulatoren einer Zeile aus dem String str und ersetzt alle Zeilenumbrueche durch ein Leerzeichen. Mehr ... | |
static void | eraseCrs (string &str) |
Entfernt aus dem uebergebenen String alle Carriage Returns ("\r"). Mehr ... | |
static void | stripLine (string &line) |
Entfernt aus dem uebergebenen String fuehrende Leer- und Tabulatorzeichen, abschliessende Leerzeichen und Kommentare, die durch ein Kommentarzeichen (';') abgetrennt sind, und ersetzt mehrfache Leerzeichen durch nur eines. Mehr ... | |
static string | getNextSym (string &expr) |
Holt aus dem String expr das erste Symbol. Mehr ... | |
static double | fact (double n) |
Berechnet rekursiv die Fakultaet n! der Zahl n. Mehr ... | |
static double | root (double x, double y) |
Berechnet x^(1/y). Mehr ... | |
Allgemeine Funktionen, die nicht einer speziellen Klasse zugerechnet werden koennen.
Z.B. Funktionen zur Umwandlung von double in string (mit Rundung/Formatierung), Umwandeln von Strings in Grossbuchstaben u.a.
Die Klasse enthaelt keine Daten, nur statische Funktionen.
|
static |
Wandelt double val mit Formatierung in einen String.
val | der umzuwandelnde Wert |
format | Format, in das umgewandelt werden soll:
|
digits | Anzahl der Nachkommastellen (fix) oder der Nachkommastellen der Mantisse (sci) |
shiftNum | Anzahl der Stellen, um die das Komma der Mantisse einer Zahl im wissenschaftlichen Format nach rechts (>0) oder links (<0) verschoben wird. |
forceSci | Extra fuer den Casio fx-85v: er hat zwei Modi, wie kleine Zahlen dargestellt werden: Ab einer bestimmtem "Kleinheit" (<0.01 oder <0.0000001) wird im Standardformat zwangsweise in die SCI-Darstellung gewechselt. Diese Grenze kann man in forceSci uebergeben. |
|
static |
Wandelt val in einen String im Sexagesimalformat um: z.B.
60°30'20" <=> 60.505556
val | Wert, der umgewandelt werden soll |
|
static |
Entfernt aus dem uebergebenen String alle Carriage Returns ("\r").
Noetig unter Windows, da dort am Zeilenende "\r\n" steht.
str | zu strippender String |
|
static |
Berechnet rekursiv die Fakultaet n! der Zahl n.
n | Eingabezahl |
|
static |
Formatiert double num im fixed Format auf insgesamt digits echte Stellen (Vor- + Nachkommastellen ohne Komma) ohne abschliessende Nullen nach dem Komma.
num | Eingabewert |
digits | maximale Anzahl der Stellen insgesamt |
|
static |
Formatiert String numStr, der Gleitkommazahl im fixed Format enthaelt, auf insgesamt digits echte Stellen (Vor- + Nachkommastellen ohne Komma) ohne abschliessende Nullen nach dem Komma.
numStr | Eingabe-String |
digits | maximale Anzahl der Stellen insgesamt |
|
static |
Formatiert String numStr, der Gleitkommazahl im fixed Format enthaelt, auf digitsAfterPoint Nachkommastellen.
Wenn die Gesamtzahl der Stellen dann aber digits ueberschreitet, wird auf digits Stellen insgesamt formatiert (Vor- + Nachkommastellen ohne Komma). Wenn isOstripped true, werden abschliessende Nullen nach dem Komma entfernt.
numStr | Eingabe-String |
digits | maximale Anzahl der Stellen insgesamt |
digitsAfterPoint | Anzahl der Stellen nach dem Komma |
isOstripped | wenn true, werden endstaendige Nullen nach dem Komma entfernt |
|
static |
Formatiert String numStr so, dass er genau len Zeichen lang ist, rechtsbuendig ist und der Exponent - falls vorhanden - mit Vorzeichen eine Laenge von expLen Zeichen hat.
Leerstellen werden mit dem Fuellzeichen fillChar gefuellt.
numStr | Eingabe-String |
len | diese Laenge soll der Ergebnis-String haben |
expLen | diese Laenge soll der Ergebnis-Exponent haben |
fillChar | Zeichen mit dem der Ergebnis-String aufgefuellt wird, wenn er kuerzer als len ist |
|
static |
Funktion ermittelt die Anzahl der Stellen, um die das Komma einer Zahl in Folge eines Drucks auf die "ENG"- oder "ENG<"-Taste verschoben werden muss.
e | Exponent einer Zahl |
eng | Anzahl der Drücke auf "ENG"- oder "ENG<"-Taste |
|
static |
Extrahiert aus dem String numStr die Mantisse m und den Exponenten e als double bzw.
int.
numStr | der String, aus dem Mantisse und Exponent extrahiert werden sollen |
m | Mantisse als double |
e | Exponent als double |
|
static |
Extrahiert aus dem String numStr die Mantisse mnt und den Exponenten exp als Strings.
Wenn ein Exponent vorhanden ist, wird true zurueckgegeben. Beispiele:
numStr | der String, aus dem Mantisse und Exponent extrahiert werden sollen |
mnt | String mit der Mantisse |
exp | String mit dem Exponenten |
|
static |
|
static |
Funktion ersetzt im String srcStr jedes Vorkommen des Strings oldStr durch den String newStr und gibt das Ergebnis als Return-Wert zurueck.
srcStr | String in dem gesucht wird |
oldStr | Teilstring, nach dem in srcStr gesucht wird |
newStr | String, durch den jedes Vorkommen von oldStr ersetzt wird |
|
static |
Berechnet x^(1/y).
Als Besonderheit sind auch die Wurzeln negativer Radikanden erlaubt, sofern y ganzzahlig und ungerade.
x | Radikand |
y | Wurzelexponent |
|
static |
Funktion bringt die Mantisse der Zahl in numStr auf hoechstens digits Stellen, falls sie mehr Stellen hat.
Die Zahl in numStr liegt eigentlich bereits in der gewuenschten Form (SCI, FIX, shiftNum, Anzahl Stellen, Anzahl Stellen der Mantisse) vor und wird in der Regel unveraendert wieder zurueckgegeben. Es kann aber sein, dass die Zahl (bzw. die Mantisse) zu viele Stellen hat, um noch in der Anzeige dargestellt werden zu koennen. Dann muss die Zahl (bzw. nur die Mantisse) auf die passende Stellenanzahl neu gerundet werden. Dabei kann es auch passieren, dass von FIX- in SCI-Notation gewechselt werden muss. In diesem Fall veraendert sich aber die Bedeutung von digits! Denn die Mantisse darf dann natuerlich nur die Zahl von Stellen abzueglich der Stellen fuer den Exponenten haben. Ein Vorzeichen zaehlt bei der Stellenanzahl nicht mit. Ein besonderer Fall besteht auch, wenn die Zahl mit einer Anzahl von Nullen beginnt (z.B. 0.00012345678); entweder wird dann in die SCI-Notation gewechselt (wenn die Zahl kleiner als forceSci ist), oder die Zahl der Stellen muss um die Zahl der fuehrenden Nullen reduziert werden, um den ganzen String noch unterzubringen. Wenn die resultierende Stellenzahl kleiner wird als eins, wird ebenfalls in SCI-Notation gewechselt.
numStr | Eingabe-String |
digits | Anzahl der Nachkommastellen (fix) oder der Nachkommastellen der Mantisse (sci) |
forceSci | wenn die Zahl kleiner als forceSci ist, wird sie garantiert in SCI-Notation zurueckgegeben |
|
static |
Rundet die Zahl in in numStr auf digits Stellen.
Die Zahl kann dabei sowohl in FIX- als auch in SCI-Notation gegeben sein. Wenn isSci true ist, wird die Zahl auf jeden Fall in SCI-Notation zurueckgeliefert; wenn isSci false ist, wird zusaetzlich forceSci ausgewertet: Die Zahl wird in FIX-Notation zurueckgegeben, wenn sie groesser oder gleich forceSci ist, sonst als SCI. kleiner als forceSci ist.
numStr | Eingabe-String |
digits | Anzahl der Nachkommastellen (fix) oder der Nachkommastellen der Mantisse (sci) |
isSci | wenn true, wird die Zahl garantiert in SCI-Notation zurueckgegeben |
forceSci | wenn die Zahl kleiner als forceSci ist, wird sie garantiert in SCI-Notation zurueckgegeben |
|
static |
Rundet die Sexagesimal-Zahl in numStr so, dass sie die Laenge maxLen nicht ueberschreitet (ohne Vorzeichen).
Format der Sexagesimalzahl: 12°34'56.78 (Grad, Minuten, Sekunden). Die Stellenanzahl der Minuten kann 2 nicht ueberschreiten, die Anzahl der Vorkommastellen der Sekunden ebenfalls nicht.
numStr | Eingabe-String |
maxLen | maximale Laenge des Ergebnis-Strings |
|
static |
Erzeugt einen String in Exponentialschreibweise mit der Zahl, die in num uebergeben wird.
num | die Zahl, deren Komma verschoben werden soll |
digits | Anzahl der Nachkommastellen (fix) oder der Nachkommastellen der Mantisse (sci) |
shiftNum | Anzahl der Stellen, um die das Komma der Mantisse einer Zahl im wissenschaftlichen Format nach rechts (>0) oder links(<0) verschoben wird. |
|
static |
Erwartet in numStr den String einer Zahl in Fix- oder Sci-Notation (keinen Bruch) und wandelt ihn in eine Zahl in "Engineering"-Notation, d.h., der Exponent ist ein Vielfaches von 3.
Je nach dir
wird das Komma der Mantisse dabei nach rechts oder links verschoben. Gesteuert wird das Ganze durch den statischen Zaehler eng
, der zunaechst 0 sein muss. Jeder Druck auf ENG inkrementiert ihn, jeder Druck auf ENG< dekrementiert ihn, die 0 selbst wird immer uebersprungen. Problematisch ist, dass je nach dem, wie die Zahl im "Urzustand" aussieht, verschieden verfahren werden muss (in Klammern: eng, shiftNum):
numStr | Eingabe-String |
dir | Richtung, in die das Komma verschoben werden soll (Util::LEFT oder Util::RIGHT) |
digits | Anzahl der Nachkommastellen (fix) oder der Nachkommastellen der Mantisse (sci) |
|
static |
Funktion verchiebt alle Zeichen des Strings str um ein Zeichen nach links oder rechts, abhaengig von dir.
Dabei muss ein neues Zeichen recruit von der entsprechenden Seite nachruecken. Wenn das Zeichen "" ist, wird das auf der anderen Seite herausfallende Zeichen als Nachruecker verwendet.
str | zu bearbeitender String, gleichzeitig Ergebnis-String |
recruit | nachrueckendes Zeichen |
dir | Richtung der Verschiebung (Util::LEFT, Util::RIGHT) |
|
static |
Entfernt aus dem uebergebenen String fuehrende Leer- und Tabulatorzeichen, abschliessende Leerzeichen und Kommentare, die durch ein Kommentarzeichen (';') abgetrennt sind, und ersetzt mehrfache Leerzeichen durch nur eines.
line | zu strippender String |
|
static |
Entfernt alle Kommentare (Kommentarsymbol ';') und fuehrende Leerzeichen/Tabulatoren einer Zeile aus dem String str und ersetzt alle Zeilenumbrueche durch ein Leerzeichen.
Vom String wird angenommen, dass er aus mehreren Zeilen besteht, die durch '
' voneinander getrennt sind. Die Funktion wird benoetigt, um die Programme des Casio fx-3600P von allen Kommentaren zu befreien und so aufzubereiten, dass das Programm ausgefuehrt werden kann.
str | zu behandelnder String |
|
static |
Erwartet in numStr den String einer Zahl in SCI- oder FIX-Notation und entfernt endstaendige Nachkomma-Nullen der Mantisse.
numStr | String mit der Zahl, deren Nullen entfernt werden sollen |
|
static |
Wandelt String in Kleinbuchstaben um.
str | String, der umgewandelt werden soll |
|
static |
Haengt an numStr gegebenenfalls Dezimalpunkt an und bringt ihn rechtsbuendig auf maxLen Zeichen Laenge.
Beispiele mit maxLen = 10:
numStr | Eingabe-String |
maxLen | Laenge des Ergebnis-Strings |
|
static |
Liefert String mit len Zeichen Laenge zurueck, der str an der Position dir enthaelt.
Leerzeichen werden mit fillChar aufgefuellt.
str | zu trimmender String |
len | Laenge des Ergebnisstrings |
dir | Position des Strings im Ergebnis-String: Util::LEFT, Util::CENTER, Util::RIGHT |
fillChar | Zeichen, mit dem aufgefuellt wird |
|
static |
Liefert String mit len Zeichen Laenge zurueck, der num an der Position dir enthaelt.
Leerzeichen werden mit fillChar aufgefuellt.
num | zu trimmende Zahl (int) |
len | Laenge des Ergebnisstrings |
dir | Position der Zahl im String: Util::LEFT, CENTER, RIGHT |
fillChar | Zeichen, mit dem aufgefuellt wird |