This file is indexed.

/usr/share/pyshared/pyromaths/sixiemes/arrondi.py is in pyromaths 11.05.1b2-0ubuntu1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Pyromaths
# Un programme en Python qui permet de créer des fiches d'exercices types de
# mathématiques niveau collège ainsi que leur corrigé en LaTeX.
# Copyright (C) 2006 -- Jérôme Ortais (jerome.ortais@pyromaths.org)
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#

from random import randint, shuffle
from ..outils.Affichage import decimaux

def valide_hasard():
    """renvoie un nombre float non multiple de 10000"""
    nbre, unite = randint(1000,100000), randint(1,9)
    return float(nbre)*10+unite

def ArrondirNombreDecimal():
    """Crée et corrige un exercice d'arrondis avec les encadrements."""
    hasard = [valide_hasard() for i in range(4)]

    precision = [u'au millième', u'au centième', u'au dixième', u'à l\'unité',
            u'à la dizaine', u'à la centaine', 'au millier',
            u'à la dizaine de milliers']

    choix = [(i,j) for i in range(7)  for j in range(3)]
    shuffle(choix)

    choix_precision = [choix[i][0] for i in range(4)]
    choix_supinf = [choix[i][1] for i in range(4)]

##    choix_precision = [randint(0, 7), randint(0, 7), randint(0, 7),
##            randint(0, 7)]

##    choix_supinf = [randint(0, 2), randint(0, 2), randint(0, 2), randint(0, 2)]

    supinf = ['', u' par défaut', u' par excès']
#FIXME
    #Arrondir n'est pas synonyme de valeur approchée
    #Valeur approchée par excès 
    #Valeur approchée par défaut 
    #Arrondi = la « meilleure » valeur approchée
    #et ne paraît employé ici correctement
    
    nombres = [(hasard[0])/(10**(-choix_precision[0]+4)),
            (hasard[1])/(10**(-choix_precision[1]+4)),
            (hasard[2])/(10**(-choix_precision[2]+4)),
            (hasard[3])/(10**(-choix_precision[3]+4))]

    exo = ["\\exercice", '\\begin{enumerate}']
    cor = ["\\exercice*", '\\begin{enumerate}']


    for k in range(4):
        exo.append( "\\item Arrondir " + decimaux(nombres[k]) + " " +
                precision[choix_precision[k]] + supinf[choix_supinf[k]] +
                '.' )

        arrondi = round(nombres[k], -choix_precision[k]+3)

        if (arrondi > nombres[k]):
            defaut = arrondi - 10**(choix_precision[k]-3)
            exc = arrondi

        if (arrondi <= nombres[k]):
            defaut = arrondi
            exc = arrondi + 10**(choix_precision[k]-3)

        if (choix_supinf[k] == 0):
            solution = arrondi
        elif (choix_supinf[k] == 1):
            solution = defaut
        elif (choix_supinf[k] == 2):
            solution = exc

        cor.append( '\\item L\'encadrement de ' + decimaux(nombres[k]) + ' ' +
                precision[choix_precision[k]] + ' est :\\par' )
        cor.append( decimaux(defaut) + ' < ' + decimaux(nombres[k]) + ' < ' +
                decimaux(exc) + '\\par' )
        cor.append( u'On en déduit que son arrondi ' +
                precision[choix_precision[k]] + ' ' + supinf[choix_supinf[k]] +
                ' est : ' + decimaux(solution) + '.')

    exo.append("\\end{enumerate}")
    cor.append("\\end{enumerate}")

    return (exo, cor)