我想为我的学生制作一份包含整个内容的完整解决方案表。
我的代码是这样的(根据我的问题的答案)如下:
\documentclass{article}
\usepackage{pgfplots}
\newcommand{\TGFT}[3]{
% input variabelen
\pgfmathsetmacro{\a}{#1}
\pgfmathsetmacro{\b}{#2}
\pgfmathsetmacro{\c}{#3}
\pgfmathsetmacro{\D}{\b^2-4*\a*\c}
\pgfmathsetmacro{\XI}{(-\b+sqrt(\D))/(2*\a)}
\pgfmathsetmacro{\XII}{(-\b-sqrt(\D))/(2*\a)}
\pgfmathsetmacro{\P}{-\b/(2*\a)}
\pgfmathsetmacro{\Q}{(4*\a*\c-\b^2)/(4*\a)}
\begin{itemize}
\item $D= \D$
\item $x_1= \XI$
\item $x_2= \XII$
\item $f(x)=\a x\checksign{\b} x \checksign{\c}$
\item $p=\P$
\item $q=\Q$
\item $f(x)=\a(x-\checksign{\XI})(x-\checksign{\XII})$
\end{itemize}
}
\newcommand\checksign[1]{\expandafter\checksignaux#1\relax\relax}
\def\checksignaux#1#2{\ifx-#1\relax#1#2\else+#1#2\fi}
\begin{document}
\begin{enumerate}
\item \TGFT{1}{5}{6}
\item \TGFT{2}{2}{-12}
\end{enumerate}
\end{document}
结果是:
- 我怎样才能做到这一点(练习 2)写出 f(x) =2x^2+2x-12 而不是 +-12
- 我怎样才能以分数形式显示数字(如果可能的话)
- 我怎样才能显示像 1 这样的数字而不是 1.0(所以没有多余的零,只有数字)
或者有更好的方法来实现这一目标?
答案1
正如我在后续评论中所说,我已经介绍过\showsign
保留后续内容的当前符号或\switchsign
将其反转。
\documentclass{article}
\usepackage{pgfplots}
\newcommand{\TGFT}[3]{
% input variabelen
\pgfmathsetmacro{\a}{#1}
\pgfmathsetmacro{\b}{#2}
\pgfmathsetmacro{\c}{#3}
\pgfmathsetmacro{\D}{\b^2-4*\a*\c}
\pgfmathsetmacro{\XI}{(-\b+sqrt(\D))/(2*\a)}
\pgfmathsetmacro{\XII}{(-\b-sqrt(\D))/(2*\a)}
\pgfmathsetmacro{\P}{-\b/(2*\a)}
\pgfmathsetmacro{\Q}{(4*\a*\c-\b^2)/(4*\a)}
\begin{itemize}
\item $D= \D$
\item $x_1= \XI$
\item $x_2= \XII$
\item $f(x)=\a x\showsign{\b} x \showsign{\c}$
\item $p=\P$
\item $q=\Q$
\item $f(x)=\a(x \switchsign{\XI})(x \switchsign{\XII})$
\end{itemize}
}
\newcommand\showsign[1]{\expandafter\showsignaux#1\relax\relax}
\def\showsignaux#1#2{\ifx-#1\relax#1#2\else+#1#2\fi}
\newcommand\switchsign[1]{\expandafter\switchsignaux#1\relax\relax}
\def\switchsignaux#1#2{\ifx-#1\relax+#2\else-#1#2\fi}
\begin{document}
\begin{enumerate}
\item \TGFT{1}{5}{6}
\item \TGFT{2}{2}{-12}
\end{enumerate}
\end{document}