mathmaker  0.6(alpha)
mamk_misc/doc/mathmaker4doxygen/sheet/AlgebraMiniTest0.py
00001 # -*- coding: utf-8 -*-
00002 
00003 # Mathmaker creates automatically maths exercises sheets
00004 # with their answers
00005 # Copyright 2006-2014 Nicolas Hainaux <nico_h@users.sourceforge.net>
00006 
00007 # This file is part of Mathmaker.
00008 
00009 # Mathmaker is free software; you can redistribute it and/or modify
00010 # it under the terms of the GNU General Public License as published by
00011 # the Free Software Foundation; either version 3 of the License, or
00012 # any later version.
00013 
00014 # Mathmaker is distributed in the hope that it will be useful,
00015 # but WITHOUT ANY WARRANTY; without even the implied warranty of
00016 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00017 # GNU General Public License for more details.
00018 
00019 # You should have received a copy of the GNU General Public License
00020 # along with Mathmaker; if not, write to the Free Software
00021 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
00022 
00023 import machine
00024 import exercise
00025 
00026 from S_Structure import S_Structure
00027 
00028 FONT_SIZE_OFFSET = -1
00029 SHEET_LAYOUT_TYPE = 'std'
00030 SHEET_LAYOUT_UNIT = "cm"
00031 #EXAMPLE OF A SHEET NOT USING ANY LAYOUT
00032 # -----------------------  lines_nb    col_widths   exercises
00033 SHEET_LAYOUT = { 'exc' : [ None,                    'all'
00034                          ],
00035                  'ans' : [ None,                    'all'
00036                          ]
00037                }
00038 
00039 # ------------------------------------------------------------------------------
00040 # --------------------------------------------------------------------------
00041 # ------------------------------------------------------------------------------
00042 ##
00043 # @class AlgebraMiniTest0
00044 # @brief A simple algebra mini-test
00045 class AlgebraMiniTest0(S_Structure):
00046 
00047 
00048 
00049 
00050 
00051     # --------------------------------------------------------------------------
00052     ##
00053     #   @brief Constructor
00054     #   @param embedded_machine The machine to be used
00055     #   @param **options Any options
00056     #   @return One instance of sheet.Model
00057     def __init__(self, embedded_machine, **options):
00058         self.derived = True
00059         S_Structure.__init__(self, embedded_machine, FONT_SIZE_OFFSET,
00060                              SHEET_LAYOUT_UNIT, SHEET_LAYOUT,
00061                              SHEET_LAYOUT_TYPE)
00062 
00063         # BEGINING OF THE ZONE TO REWRITE (see explanations below) ------------
00064         self.header = ""
00065         #self.title = _("Training exercises sheet :")
00066         self.title = ""
00067         self.subtitle = ""
00068         self.text = ""
00069         self.answers_title = _("Examples of answers")
00070 
00071         # For instance :
00072         # ex1 = exercise.ProductReduction(self.machine, many=30)
00073         # self.exercises_list.append(ex1)
00074 
00075         for i in range(10):
00076             ex1 = exercise.X_AlgebraExpressionExpansion(self.machine,
00077                                                     x_kind='mini_test',
00078                                                     x_subkind='two_randomly')
00079 
00080             self.exercises_list.append(ex1)
00081 
00082 
00083 
00084 
00085 
00086         # END -----------------------------------------------------------------
00087         # Instructions for use (creating a new sheet) :
00088         # - Put its name in the header's comment
00089         #   & in the one of the documentation (@class)
00090         # - Write the @brief comment
00091         # - Replace Model by the chosen name
00092         # - Choose the values for the globals
00093         # - In the constructor's comment, replace Model by the chosen name at
00094         #   the @return line
00095         # - Skip to the zone to rewrite and for each exercise, follow the
00096         #   example (i.e. write on two lines :
00097         #   - ex_number_n = exercise.ThmPythagore(self.machine, options...)
00098         #   - self.exercises_list.append(ex_number_n)
00099         #   and so on with ex<n+1>, ex<n+2> as many as desired)