source: pyromaths/trunk/fuentes/src/pyromaths/ex/sixiemes/quotients.py @ 423

Last change on this file since 423 was 423, checked in by mabarracus, 4 years ago

add sources from pyromaths 15.10

File size: 2.4 KB
Line 
1#!/usr/bin/python
2# -*- coding: utf-8 -*-
3#
4# Pyromaths
5# Un programme en Python qui permet de créer des fiches d'exercices types de
6# mathématiques niveau collège ainsi que leur corrigé en LaTeX.
7# Copyright (C) 2006 -- Jérôme Ortais (jerome.ortais@pyromaths.org)
8#
9# This program is free software; you can redistribute it and/or modify
10# it under the terms of the GNU General Public License as published by
11# the Free Software Foundation; either version 2 of the License, or
12# (at your option) any later version.
13#
14# This program is distributed in the hope that it will be useful,
15# but WITHOUT ANY WARRANTY; without even the implied warranty of
16# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17# GNU General Public License for more details.
18#
19# You should have received a copy of the GNU General Public License
20# along with this program; if not, write to the Free Software
21# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
22#
23
24import random
25
26
27def valeurs_diviseurs():
28    diviseurs = [2, 3, 5, 9, 10]
29    liste = []
30    for dummy in range(5):
31        liste.append(diviseurs.pop(random.randrange(len(diviseurs))) * 
32                     random.randrange(11, 100))
33    return liste
34
35
36def liste_diviseurs(l):
37    diviseurs = (2, 3, 5, 9, 10)
38    reponse = []
39    for i in range(len(l)):
40        reponse.extend([[l[i]]])
41        for j in range(len(diviseurs)):
42            if l[i] % diviseurs[j]:  # n'est pas divisible
43                reponse[i].append("$\\Square$")
44            else:
45                reponse[i].append("$\\CheckedBox$")
46    return reponse
47
48
49def Divisible():
50    l = valeurs_diviseurs()
51    reponse = liste_diviseurs(l)
52
53    exo = ["\\exercice", u'Cocher les bonnes réponses :\\par']
54    cor = ["\\exercice*", u'Cocher les bonnes réponses :\\par']
55
56    exo.append("\\begin{tabular}{c@{ est divisible : \kern1cm}r@{ par 2\\kern1cm}r@{ par 3\\kern1cm}r@{ par 5\\kern1cm}r@{ par 9\\kern1cm}r@{ par 10}}")
57    cor.append("\\begin{tabular}{c@{ est divisible : \kern1cm}r@{ par 2\\kern1cm}r@{ par 3\\kern1cm}r@{ par 5\\kern1cm}r@{ par 9\\kern1cm}r@{ par 10}}")
58    for i in range(len(l)):
59        exo.append("%s & $\\square$ & $\\square$ & $\\square$ & $\\square$ & $\\square$ \\\\" % 
60                 l[i])
61        cor.append("%s & %s & %s & %s & %s & %s \\\\" % tuple(reponse[i]))
62    exo.append("\\end{tabular}")
63    cor.append("\\end{tabular}")
64    return (exo, cor)
65
66Divisible.description = u'Multiples de 2, 3, 5, 9, 10'
Note: See TracBrowser for help on using the repository browser.