emath BBS

新規発言一覧最新記事過去一覧検索HOME

No.5905  Re[9]:方程式問題自動作成の方法
発言者: 石原 守
発言日: 2007 04/14 10:32
発言元: 202.233.230.175
%
% emathRnの新機能を利用して
% 2次方程式の例を見ながら1次方程式の問題を拡張しました
% 4段階の問題が乱数で作成されます。
% perlが必須です。
%% emathRn.sty が 0.06 になって\ransuu@retuが大域変数になったせいか
%% 解答が作れなくなっていたので,修正版を作りました
%
\documentclass[a4j,twocolumn]{jarticle}
%\usepackage[margin=15truemm]{geometry}
\usepackage[perl]{emathRn}
\usepackage{emathB}

\pagestyle{empty}

\newif\ifkaitou

\def\MonI{%
\Cfor{\edef\I{9}}{\I=9}{}\do{\ransuu\I}\IAdd\I{-9}\I
\Cfor{\edef\J{9}}{\J=9}{}\do{\ransuu\J}\IAdd\J{-9}\J
\ifnum\I=1 \IAdd\I{1}\I\fi
\ifkaitou
  \ifnum\I=-1 $-x=\J$\else$\I x=\J$\fi
\vfill
\Fcalc{(\J)/(\I)}=\temp
\hfill 答 $x=\prF{\temp}$
\else
  \ifnum\I=-1 $-x=\J$\else$\I x=\J$\fi
\vfill
\fi
}
\def\MonII{%
\Cfor{\edef\I{9}}{\I=9}{}\do{\ransuu\I}\IAdd\I{-9}\I
\Cfor{\edef\J{9}}{\J=9}{}\do{\ransuu\J}\IAdd\J{-9}\J
\ifkaitou
  \ifnum\I<0 $x\I=\J$\else$x+\I=\J$\fi
\vfill
\Fcalc{(\J)-(\I)}=\temp
\hfill 答 $x=\prF{\temp}$
\else
  \ifnum\I<0 $x\I=\J$\else$x+\I=\J$\fi
\vfill
\fi
}
\def\MonIII{%
\Cfor{\edef\I{9}}{\I=9}{}\do{\ransuu\I}\IAdd\I{-9}\I
\Cfor{\edef\J{9}}{\J=9}{}\do{\ransuu\J}\IAdd\J{-9}\J
\ifkaitou
$
  \ifnum\I=1
  \else
    \ifnum\I=-1
      -
    \else
      \I
    \fi
  \fi
  x
  \ifnum\J>0\relax
    +\J
  \else
    \ifnum\J=0\relax
    \else
        \J
    \fi
  \fi
  =0$
\vfill
\Fcalc{(-\J)/(\I)}=\temp
\hfill 答 $x=\prF{\temp}$
\else
$
  \ifnum\I=1
  \else
    \ifnum\I=-1
      -
    \else
      \I
    \fi
  \fi
  x
  \ifnum\J>0\relax
    +\J
  \else
  \ifnum\J=0\relax
  \else
      \J
  \fi
  \fi
  =0$
\vfill
\fi
}
\def\MonIV{%
\Cfor{\edef\I{9}}{\I=9}{}\do{\ransuu\I}\IAdd\I{-9}\I
\Cfor{\edef\J{9}}{\J=9}{}\do{\ransuu\J}\IAdd\J{-9}\J
\Cfor{\edef\K{9}}{\K=9}{}\do{\ransuu\K}\IAdd\K{-9}\K
\Cfor{\edef\L{9}}{\L=9}{}\do{\ransuu\L}\IAdd\L{-9}\L
%不定不能対策
\ifnum \I=\K
\IAdd\I{1}\I
\fi
\ifkaitou
$
  \ifnum\I=1
  \else
    \ifnum\I=-1
      -
    \else
      \I
    \fi
  \fi
  x
  \ifnum\J>0\relax
    +\J
  \else
    \ifnum\J=0\relax
    \else
      \ifnum\J>-1\relax
        +\J
      \else
        \J
      \fi
    \fi
  \fi
  =
  \ifnum\K=1
  \else
    \ifnum\K=-1
      -
    \else
      \K
    \fi
  \fi
  x
  \ifnum\L>0\relax
    +\L
  \else
    \ifnum\L=0\relax
    \else
      \ifnum\L>-1\relax
        +\L
      \else
        \L
      \fi
    \fi
  \fi
$
\vfill
\ISub\I\K\bunbo
\ISub\L\J\bunsi
\Fcalc{(\bunsi)/(\bunbo)}=\temp
\hfill 答 $x=\prF{\temp}$
\else
$
  \ifnum\I=1
  \else
    \ifnum\I=-1
      -
    \else
      \I
    \fi
  \fi
  x
  \ifnum\J>0\relax
    +
    \ifnum\J=1
      \J
    \else
      \J
    \fi
  \else
    \ifnum\J=0\relax
    \else
      \ifnum\J>-1\relax
        +\J
      \else
        \J
      \fi
    \fi
  \fi
  =
  \ifnum\K=1
  \else
    \ifnum\K=-1
      -
    \else
      \K
    \fi
  \fi
  x
  \ifnum\L>0\relax
    +
    \ifnum\L=1
      \L
    \else
      \L
    \fi
  \else
    \ifnum\L=0\relax
    \else
      \ifnum\L>-1\relax
        +\L
      \else
        \L
      \fi
    \fi
  \fi
$
\vfill
\fi
}

\setlength{\columnseprule}{0.4pt}
\begin{document}
\kaitoufalse

\Iransuuretu[20]{100}\kekka
\makeatletter
\edef\tmp{\ransuu@retu}%乱数列を保存して解答の時も同じ列を使う
\makeatother
\twocolumn[{\Large \bf 1次方程式}\hfill
\underline{\hspace{10truemm}}年\underline{\hspace{10truemm}}組\underline{\hspace{10truemm}}番 氏名\underline{\hspace{50truemm}}\vspace{1zh}]
\kaitoufalse
\begin{enumerate}
\item 次の計算をせよ。
\begin{enumerate}[(1)]
\item\MonI
\item\MonI
\item\MonII
\item\MonII
\item\MonIII
\newpage
\item\MonIII
\item\MonIV
\item\MonIV
\item\MonIV
\item\MonIV
\newpage
\end{enumerate}
\end{enumerate}

\makeatletter
\edef\ransuu@retu{\tmp}%保存しておいた乱数列を使う
\makeatother
\twocolumn[{\Large \bf 1次方程式の解答}\hfill
\underline{\hspace{10truemm}}年\underline{\hspace{10truemm}}組\underline{\hspace{10truemm}}番 氏名\underline{\hspace{50truemm}}\vspace{1zh}]
\kaitoutrue
\begin{enumerate}
\item 次の計算をせよ。
\begin{enumerate}[(1)]
\item\MonI
\item\MonI
\item\MonII
\item\MonII
\item\MonIII
\newpage
\item\MonIII
\item\MonIV
\item\MonIV
\item\MonIV
\item\MonIV
\newpage
\end{enumerate}
\end{enumerate}
\end{document}

▼関連発言

5870:方程式問題自動作成の方法 [boo] 04/03 12:06
 └5871:Re:方程式問題自動作成の方法 [石原 守] 04/03 12:52
  └5872:Re[2]:方程式問題自動作成の方法 [boo] 04/03 14:18
   └5873:Re[3]:方程式問題自動作成の方法 [石原 守] 04/03 14:32
    └5874:Re[4]:方程式問題自動作成の方法 [boo] 04/03 14:50
     ├5876:--- [---] 04/03 19:38
     └5877:Re[5]:方程式問題自動作成の方法 [石原 守] 04/03 19:56
      └5878:Re[6]:方程式問題自動作成の方法 [boo] 04/03 22:23
       └5883:Re[7]:方程式問題自動作成の方法 [石原 守] 04/04 05:26
        ├5892:Re[8]:方程式問題自動作成の方法 [boo] 04/04 12:02
        │├5904:--- [---] 04/08 16:33
        │└5905:Re[9]:方程式問題自動作成の方法 [石原 守] 04/14 10:32
        │ └5906:Re[10]:方程式問題自動作成の方法 [tDB] 04/14 13:24
        │  ├5907:Re[11]:方程式問題自動作成の方法 [石原 守] 04/14 13:41
        │  │└5909:Re[12]:方程式問題自動作成の方法 [tDB] 04/14 15:32
        │  │ ├5910:Re[13]:方程式問題自動作成の方法 [石原 守] 04/14 16:07
        │  │ └5911:Re[13]:方程式問題自動作成の方法 [石原 守] 04/14 19:32
        │  │  └5912:Re[14]:方程式問題自動作成の方法 [tDB] 04/14 19:39<-last
        │  └5908:Re[11]:方程式問題自動作成の方法 [石原 守] 04/14 13:45
        └5898:Re[8]:方程式問題自動作成の方法 [石原 守] 04/05 08:11
         └5899:Re[9]:方程式問題自動作成の方法 [tDB] 04/05 16:04
          ├5900:Re[10]:方程式問題自動作成の方法 [石原 守] 04/05 16:16
          │└5902:Re[11]:方程式問題自動作成の方法 [tDB] 04/05 17:20
          └5901:Re[10]:方程式問題自動作成の方法 [tDB] 04/05 16:49
           └5903:    補足 [tDB] 04/06 09:32

Pass 保存


CGIROOM