LaTeX: sber hodnot s pouzitim vysledku vyse?
BALDA MIROSLAV
mbalda at hera.zcu.cz
Tue Mar 3 16:30:33 CET 1998
k dopisu P. Prikryla
> Pred nedavnem jsem se dotazoval, jak vytvorit makro, ktere na zaklade
> \b{1}, \b{2} atd. vygeneruje "1 bod", "2 body" atd. Navrzeny vysledek
> uspesne pouzivam k tisku maximalniho dosazitelneho hodnoceni otazky
> v pisemce. Nektere veci ale jeste delam rucne, coz je urcite zbytecne
> a otravne:
>
> - potreboval bych secist vsechna uvedena bodova hodnoceni v makru \b{}
> - potreboval bych zjisti pocet zadanych otazek (pocet vyskytu \b{})
mohu dodat reseni:
\makeatletter
%--------------------------------------------------------------------
\def\appnd#1+#2% \cmd = \cmd,item
{\ifx #1\empty \edef#1{#2}\else \edef#1{#1,#2}\fi%
}%-------------------------------------------------------------------
\def\Cfor#1=(#2)#3% Cycle \Cfor \cmd=(list){commands}
{\@for\C@:=#2\do{\edef#1{\C@}#3}%
}%-------------------------------------------------------------------
\def\b#1% {#1 bod\ifnum#1>4 u\else\ifcase #1 u\or\or y\or y\or
y\fi\fi% \appnd\C+#1
}%-------------------------------------------------------------------
\makeatother
\begin{document}
\edef\C{}\edef\N{}\edef\SUM{}
Libovolne v textu pouziji
\b1 \b5 \b3 \b4 \b2 \b3
\newcount\n \newcount\sum
\Cfor \bn=(\C){\advance\n1 \advance\sum\bn%
\edef\N{\the\n}\edef\SUM{\the\sum}}
Pocet znamek = \N , suma bodu = \SUM
\end{document}
Makro \b#1 ma zacatek od p. Cejky. ostatni pomocna makra jsou lehce
modifikovanymi makry z rozsahleho stylu rplot.sty, kde jsou uvedena
makra i pro dalsi cykly, aritmetiku celociselnou i v pevne radove
carce, funkce i kresleni.
rplot.sty lze nalezt na ftp mars.zcu.cz v adresari pub\balda\tex i s
manualem v dvi souboru.
M. Balda
More information about the csTeX
mailing list