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