mathmaker
0.4(alpha)
|
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 = -2 00029 SHEET_LAYOUT_TYPE = 'short_test' 00030 SHEET_LAYOUT_UNIT = "cm" 00031 # ----------------------- lines_nb col_widths exercises 00032 SHEET_LAYOUT = { 'exc' : [ None, 'all' 00033 ], 00034 'ans' : [ None, 2, 00035 'jump', 'next_page', 00036 None, 1 00037 ] 00038 } 00039 00040 # ------------------------------------------------------------------------------ 00041 # -------------------------------------------------------------------------- 00042 # ------------------------------------------------------------------------------ 00043 ## 00044 # @class EquationsTest 00045 # @brief A short test on first degree equations 00046 class EquationsTest(S_Structure): 00047 00048 00049 00050 00051 00052 # -------------------------------------------------------------------------- 00053 ## 00054 # @brief Constructor 00055 # @param embedded_machine The machine to be used 00056 # @param **options Any options 00057 # @return One instance of sheet.EquationsTest 00058 def __init__(self, embedded_machine, **options): 00059 self.derived = True 00060 S_Structure.__init__(self, embedded_machine, FONT_SIZE_OFFSET, 00061 SHEET_LAYOUT_UNIT, SHEET_LAYOUT, 00062 SHEET_LAYOUT_TYPE) 00063 00064 # BEGINING OF THE ZONE TO REWRITE (see explanations below) ------------ 00065 self.header = _("Name : .......................................") 00066 self.title = _("Short Test : Equations") 00067 self.subtitle = "" 00068 self.text = _("Solve the following equations.") 00069 self.answers_title = _("Examples of answers") 00070 00071 # Exercises : 00072 for i in xrange(2): 00073 ex1 = exercise.X_Equation(self.machine, 00074 x_kind='short_test', 00075 x_subkind='basic') 00076 00077 ex2 = exercise.X_Equation(self.machine, 00078 x_kind='short_test', 00079 x_subkind='classic_harder') 00080 00081 ex3 = exercise.X_Equation(self.machine, 00082 x_kind='short_test', 00083 x_subkind='harder_harder') 00084 00085 self.exercises_list.append(ex1) 00086 self.exercises_list.append(ex2) 00087 self.exercises_list.append(ex3) 00088 00089 00090 00091 00092 # -------------------------------------------------------------------------- 00093 ## 00094 # @brief Writes to the output all exercises' answers 00095 #def write_answers(self, first_and_last): 00096 # first = first_and_last[0] 00097 # last = first_and_last[1] 00098 # self.machine.reset_exercises_counter() 00099 # self.machine.write_set_font_size_to('large') 00100 # for i in xrange(last - first + 1): 00101 00102 # if self.tabular_format_answers[2*i] != 0: 00103 # if self.tabular_format_answers[2*i] == 'end': 00104 # self.machine.write_tabular_ends() 00105 # elif self.tabular_format_answers[2*i] == '&': 00106 # self.machine.write_separator_tabular_columns() 00107 # elif type(self.tabular_format_answers[2*i]) == str: 00108 # self.machine.write_tabular_begins(\ 00109 # self.tabular_format_answers[2*i]) 00110 00111 # self.machine.write_exercise_number() 00112 00113 # self.exercises_list[i + first].write_answer() 00114 00115 00116 # if self.tabular_format_answers[2*i+1] != 0: 00117 # if self.tabular_format_answers[2*i+1] == 'end': 00118 # self.machine.write_tabular_ends() 00119 # elif self.tabular_format_answers[2*i+1] == '&': 00120 # self.machine.write_separator_tabular_columns() 00121 # elif type(self.tabular_format_answers[2*i+1]) == str: 00122 # self.machine.write_tabular_begins(\ 00123 # self.tabular_format_answers[2*i+1]) 00124 00125 # if i == 0: 00126 # self.machine.write_new_line() 00127 00128 # if i == 1: 00129 # self.machine.write_jump_to_next_page() 00130 00131 00132 00133 00134 00135 00136 00137 00138 00139 00140 # END ---------------------------------------------------------------------