Ersetzung vom Wert der Eingabe (anstatt der direkten Eingabe)

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Ersetzung vom Wert der Eingabe (anstatt der direkten Eingabe)

Re: Ersetzung vom Wert der Eingabe (anstatt der dirkten Eingabe)

von Lorz » Di 21. Mai 2024, 11:50

Gibt es die Möglichkeit in \@namedef nicht nur einen Einzelwert, sondern eine ganze Liste an Werte zuordnen zu lassen?
Also etwa a=[1,2,3,4,5] und \@namedef{a[n],n=1..nops(a)}{b} oder so?
Denn ich habe vor allen Prozentwerten von 0 bis 100 Punktzahlen zuzuordnen (0 bis 15 Punkte).

Re: Ersetzung vom Wert der Eingabe (anstatt der dirkten Eingabe)

von Lorz » Di 21. Mai 2024, 09:57

Ich habe es jetzt selbst hinbekommen:
\documentclass{article}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage[nomessages]{fp}
\makeatletter
\@namedef{780}{10}
\makeatother
\begin{document}
	
\FPeval{\Punkte}{2+1.5 +2.5+3.5 +1+2 +2+5  +3+1 +4 +1.5+2.5 +2.5 +1.5  +2.5 +1+4.5+2+1.5 +2.5 +1.5}
\FPeval{\Promill}{trunc(trunc((\Punkte)/72*100,0)*10+trunc((((\Punkte)/72*100)-trunc((\Punkte)/72*100,0))*10,0),0)}

\newcounter{mycounter}
\setcounter{mycounter}{\Promill}
\csname\themycounter\endcsname

\end{document}

Ersetzung vom Wert der Eingabe (anstatt der direkten Eingabe)

von Lorz » Di 21. Mai 2024, 08:56

Hallo!

Ich hatte in viewtopic.php?f=22&t=25581 bereits ein Problem beschrieben. In viewtopic.php?f=6&t=10257&hilit=SVerweis habe ich nun einen Hinweis gefunden, wie ich keine csv benötige, indem ich mit
\documentclass{article}
\makeatletter
\@namedef{70,8}{10}
\makeatother
\begin{document}
	\csname70,8\endcsname
\end{document}
Ersetzung vornehme.

(die Lösung auf die andere Weise mit Einbinden der csv bzw. Zahlenbereiche interessiert mich aber auch, deshalb lasse ich den anderen Thread von mir erst mal bestehen)

Mein Problem ist nun noch, dass mein zu ersetzender Wert nicht direkt "70,8" ist, sondern er ergibt sich aus einer Rechnung a la
\documentclass{article}
\usepackage[nomessages]{fp} 
\begin{document}

\FPeval{\Punkte}{2+1.5 +2.5+3.5 +1+2 +2+5  +3+1 +4 +1.5+2.5 +2.5 +1.5  +2.5 +1+4.5+2+1.5 +2.5 +1.5}
 \FPeval{\result}{trunc((\Punkte)/72*100,0)}$\result$,\FPeval{\result}{trunc((((\Punkte)/72*100)-trunc((\Punkte)/72*100,0))*10,0)}$\result$

\end{document}
dies liefert die Ausgabe 70,8. Wenn ich jedoch
\documentclass{article}
\usepackage[nomessages]{fp}
\makeatletter
\@namedef{70,8}{10}
\makeatother
\begin{document}
	
\FPeval{\Punkte}{2+1.5 +2.5+3.5 +1+2 +2+5  +3+1 +4 +1.5+2.5 +2.5 +1.5  +2.5 +1+4.5+2+1.5 +2.5 +1.5}
	
\csname\FPeval{\result}{trunc((\Punkte)/72*100,0)}$\result$,\FPeval{\result}{trunc((((\Punkte)/72*100)-trunc((\Punkte)/72*100,0))*10,0)}$\result$\endcsname

\end{document}		
wird die 70,8 nicht in die 10 umgewandelt. Gibt es also eine Möglichkeit, nicht die direkt die Recheneingabe, sondern den (Ausgabe-)Wert von result in csname einzulesen?

Nach oben