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 = -1 00029 SHEET_LAYOUT_TYPE = 'std' 00030 SHEET_LAYOUT_UNIT = "cm" 00031 # ----------------------- lines_nb col_widths exercises 00032 SHEET_LAYOUT = { 'exc' : [ None, 'all' 00033 ], 00034 'ans' : [ None, 'all' 00035 ] 00036 } 00037 00038 # ------------------------------------------------------------------------------ 00039 # -------------------------------------------------------------------------- 00040 # ------------------------------------------------------------------------------ 00041 ## 00042 # @class FractionsSums 00043 # @brief Exercises about calculating the sum of two or more fractions. 00044 class FractionsSum(S_Structure): 00045 00046 00047 00048 00049 00050 # -------------------------------------------------------------------------- 00051 ## 00052 # @brief Constructor 00053 # @param embedded_machine The machine to be used 00054 # @param **options Any options 00055 # @return One instance of sheet.FractionsSum 00056 def __init__(self, embedded_machine, **options): 00057 self.derived = True 00058 S_Structure.__init__(self, embedded_machine, FONT_SIZE_OFFSET, 00059 SHEET_LAYOUT_UNIT, SHEET_LAYOUT, 00060 SHEET_LAYOUT_TYPE) 00061 00062 # BEGINING OF THE ZONE TO REWRITE (see explanations below) ------------ 00063 self.header = "" 00064 self.title = _("Training exercises sheet :") 00065 self.subtitle = _("Sums of fractions") 00066 self.text = "" 00067 self.answers_title = _("Examples of answers") 00068 00069 ex1 = exercise.X_Calculation(self.machine, 00070 x_kind='preformatted', 00071 x_subkind='fractions_sum', 00072 number_of_questions=6) 00073 00074 00075 self.exercises_list.append(ex1) 00076 00077 00078 00079 00080 # -------------------------------------------------------------------------- 00081 ## 00082 # @brief Writes to the output all exercises' texts 00083 #def write_texts(self): 00084 # self.machine.reset_exercises_counter() 00085 # self.machine.write_set_font_size_to('large') 00086 # for e in self.exercises_list: 00087 # self.machine.write_exercise_number() 00088 # e.write_text() 00089 # #self.machine.write_new_line() 00090 00091 00092 00093 # -------------------------------------------------------------------------- 00094 ## 00095 # @brief Writes to the output all exercises' answers 00096 #def write_answers(self): 00097 # self.machine.reset_exercises_counter() 00098 # self.machine.write_set_font_size_to('large') 00099 # for i in xrange(len(self.exercises_list)): 00100 # self.machine.write_exercise_number() 00101 # self.exercises_list[i].write_answer() 00102 # if i != len(self.exercises_list) - 1: 00103 # self.machine.write_jump_to_next_page() 00104 # #self.machine.write_new_line() 00105 00106 00107 # END ----------------------------------------------------------------------