"Saubere" Fallunterscheidung im ifthen-Paket

Neue Frage »

Jacques Auf diesen Beitrag antworten »
"Saubere" Fallunterscheidung im ifthen-Paket
Hallo,

Ich möchte mit dem ifthen-Paket einen neuen Befehl definieren, der unterschiedliche Ausdrücke erzeugt – abhängig davon, was als Parameter eingegeben wird:



(p muss natürlich sein, sonst gibt es einen Fehler)

Was ist die „sauberste“ Variante, das mit if-Abfragen umzusetzen? Ineinander geschachtelte Abfragen nach diesem Schema: ?

[attach]11687[/attach]


Oder eine Reihe von if-Abfragen nach diesem Prinzip: ?

[attach]11688[/attach]



Die erste Variante ist:

code:
1:
2:
3:
\newcommand{\deriv}[1]{
\ifthenelse{#1=1}{f^{\prime}}{\ifthenelse{#1=2}{f^{\prime\prime}}{\ifthenelse{#1=3}{f^{\prime\prime\prime}}{\ifthenelse{#1>3}{f^{(#1)}}{}}}}
}


Die zweite:

code:
1:
2:
3:
4:
5:
6:
7:
\newcommand{\deriv}[1]
{
\ifthenelse{#1=1}{f^{\prime}}{}
\ifthenelse{#1=2}{f^{\prime\prime}}{}
\ifthenelse{#1=3}{f^{\prime\prime\prime}}{}
\ifthenelse{#1>3}{f^{(#1)}}{}
}



Soweit ich gesehen habe, funktionieren beide. Gibt es trotzdem irgendeinen Unterschied, wird eine der beiden Varianten langsamer verarbeitet oder könnte irgendwelche anderen Probleme machen?

(Dass der Befehl insgesamt noch nicht einwandfrei ist, ist klar)
Stefan_K Auf diesen Beitrag antworten »
RE: "Saubere" Fallunterscheidung im ifthen-Paket
Hallo Jacques,

schachten finde ich besser als reihen. Jedoch, was hältst Du von \ifcase, ohne ifthen-Paket?

code:
1:
2:
3:
4:
5:
6:
7:
\ifcase#1
  {} \or
  f^{\prime} \or
  f^{\prime\prime} \or
  f^{\prime\prime\prime}
  \else f^{(#1)}
\fi


Stefan
Jacques Auf diesen Beitrag antworten »

So ist es noch besser. Freude

Allerdings ist das Verhalten bei nicht-natürlichen Zahlen „merkwürdig“: Positive Dezimalbrüche werden abgerundet, negative werden dagegen direkt übernommen. Also z. B. 4.5 --> 4, aber -4.5 --> -4.5. Kann man eine Abfrage auf natürliche Zahlen vorschalten? Bei nicht-natürlichen Zahlen soll ein Text ausgegeben werden, z. B. \textrm{FEHLER}.
Stefan_K Auf diesen Beitrag antworten »
Fallunterscheidung
TeX ist für Textsatz vorgesehen, nicht für Berechnungen oder Bearbeitung gebrochener Zahlenwerte, abgesehen von Abständen o.ä., auch wenn es natürlich gute Zusatzpakete gibt, die TeX dahingehend erweitern. Beispielsweise bietet das Paket fp Größenvergleiche von Festkommazahlen.
Vielleicht brauchst Du es auch nicht zu weit auszuprogrammieren - dokumentiere doch einfach, dass nur natürliche Zahlen erlaubt sind. Man kann vllt. auch einen TeX-Fehler für den nicht-natürlichen Fall provozieren.

Stefan


--
TeXblog
Jacques Auf diesen Beitrag antworten »

Alles klar, dann werde ich es einfach so lassen. Brüche mit dem Punkt-Komma gibt man ja sowieso kaum aus Versehen ein.

Danke Dir nochmal.
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »