--- loncom/html/adm/help/tex/Spreadsheet_Functions.tex 2010/08/23 16:16:18 1.9 +++ loncom/html/adm/help/tex/Spreadsheet_Functions.tex 2016/01/03 04:45:45 1.10 @@ -1,6 +1,6 @@ \label{Spreadsheet_Functions} The following special functions are available in the spreadsheet. -Please see Referencing Cells (\ref{Spreadsheet_Referencing_Cells}) +Please see \textbf{Referencing Cells} (\ref{Spreadsheet_Referencing_Cells}) for information on specifying cells and ranges. \begin{itemize} @@ -41,7 +41,7 @@ for information on specifying cells and \index{SUMMIN} \item \texttt{\&EXT(expression)} - access to EXT function in lonnet. -Use \texttt{\&EXT('system.time')} to retrieve the current time. +Use \texttt{\&EXT(`system.time')} to retrieve the current time. \index{EXT} \item \texttt{\&PARM(parameter)} - get the value of a specific parameter @@ -66,13 +66,13 @@ can be entered as well, if prefixed by \ \begin{itemize} -\item \texttt{\&SUMSEQ('Z','Chapter 1');} +\item \texttt{\&SUMSEQ(`Z',`Chapter 1');} -\item \texttt{\&SUMSEQ('Z','Chapter 1','Chapter 2','Chapter 3');} +\item \texttt{\&SUMSEQ(`Z',`Chapter 1',`Chapter 2',`Chapter 3');} -\item \texttt{\&SUMSEQ('Z','all');} - sum over all sequences. +\item \texttt{\&SUMSEQ(`Z',`all');} - sum over all sequences. -\item \texttt{\&SUMSEQ('Z','regexp:Large Biomolecules');} - +\item \texttt{\&SUMSEQ(`Z',`regexp:Large Biomolecules');} - sum over all sequences which match the regular expression /Large Biomolecules/. @@ -80,4 +80,23 @@ can be entered as well, if prefixed by \ \end{itemize} -In addition, most non-IO Perl functions work in cells. +\noindent +In addition, most non-IO Perl functions work in cells. Perl offers a compact \texttt{if} structure using the logic +\texttt{TEST\char`_EXPR?IF\char`_TRUE\char`_EXPR\char`:IF\char`_FALSE\char`_EXPR;}. The \texttt{if} statements can be nested. For example, to scale the points awarded on the assessment spreadsheet (by default in \texttt{Z0}) with the number of tries (by default in \texttt{C0}), the adjusted score can be programmed in an empty cell in assessment spreadsheet row 0, where\\ + +\noindent +\texttt{C0$>$2 ? (0.5*Z0) \char`: (C0$>$1 ? (0.75*Z0) \char`: Z0);}\\ + +\noindent +is equivalent to + +\begin{verbatim} +if (C0 > 2) { + $cellvalue = 0.5*Z0; +} elsif (C0 > 1) { + $cellvalue = 0.75*Z0; +} else {$cellvalue = Z0;} +$cellvalue; +\end{verbatim} + +Use of parantheses is usually necessary in the compact \texttt{if} statement to assure correct precedence.