Conversions niveau collège et corrections

Pour proposer des logiciels pertinents, liens, notices ou tutoriels...

Conversions niveau collège et corrections

Messagede physix » 13 Oct 2019, 15:37

Un générateur de conversion que j'avais fait en Delphi puis sous scratch. Il est en python cette fois.
Exécuté sous Edupython.

Il permet d'obtenir :
Exemple.png


Conversions dans tableur.py -> le programme
Conversions.csv -> Le fichier qu'on obtient
TableauVierge.ods -> Le fichier qui permet d'avoir une mise en page qui fait tenir 3 x 10 conversions par page.

Je m'en sers pour les retenues. Je découpe la correction avant de donner aux élèves.
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Perte de la 4ème "Aide et soutien" - Perte de la 3ème d'insertion - Perte de la ZEP - Perte des groupes - 2021 : plus rien à perdre.
physix
 
Messages: 1042
Inscription: 09 Jan 2011, 10:41
Académie: Grenoble
Poste: Enseignant en Collège

Re: Conversions niveau collège et corrections

Messagede Aranel53 » 13 Oct 2019, 17:59

Merci !
C'est bien utile ça, car les conversions, ça marche s'ils en font beaucoup et souvent.
« Comme le feu de la pierre ne sort, Sans la frapper du fer par violence : Semblablement sans faire grand effort, La Vérité ne sort en évidence. »
Guillaume De La Perrière 1553.
Aranel53
 
Messages: 6366
Inscription: 26 Fév 2010, 15:42
Localisation: Sud de la Drôme
Académie: Grenoble
Poste: Enseignant en Collège/Lycée

Re: Conversions niveau collège et corrections

Messagede xavier29 » 13 Oct 2019, 23:15

physix a écrit:Conversions dans tableur.py -> le programme
Conversions.csv -> Le fichier qu'on obtient
TableauVierge.ods -> Le fichier qui permet d'avoir une mise en page qui fait tenir 3 x 10 conversions par page.


Merci !
J'ai installé edupython, je lance le programme, j'obtiens conversions.csv , je copie tout et colle dans Tableauvierge.ods , je fais imprimer (je choisis "Marges normales"). J'ai bon ? :)
xavier29
 
Messages: 710
Inscription: 18 Mar 2015, 03:05
Académie: Non précisée
Poste: Enseignant en Collège

Re: Conversions niveau collège et corrections

Messagede physix » 14 Oct 2019, 10:40

Perte de la 4ème "Aide et soutien" - Perte de la 3ème d'insertion - Perte de la ZEP - Perte des groupes - 2021 : plus rien à perdre.
physix
 
Messages: 1042
Inscription: 09 Jan 2011, 10:41
Académie: Grenoble
Poste: Enseignant en Collège

Re: Conversions niveau collège et corrections

Messagede xavier29 » 14 Oct 2019, 22:09

physix a écrit:Je fais ça :
https://youtu.be/-fMq1T90820


Merci !
xavier29
 
Messages: 710
Inscription: 18 Mar 2015, 03:05
Académie: Non précisée
Poste: Enseignant en Collège

Re: Conversions niveau collège et corrections

Messagede phys19140 » 01 Fév 2020, 16:14

Merci pour ton travail, je remplace simplement le point par la virgule.
phys19140
 
Messages: 212
Inscription: 26 Avr 2016, 18:01
Académie: Limoges
Poste: Enseignant en Collège

Re: Conversions niveau collège et corrections

Messagede physix » 20 Mai 2021, 19:48

Pour expliquer la méthode pour convertir en utilisant le tableau :
2021-05-20 20_46_19-Window.png

https://scratch.mit.edu/projects/533397919/
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Perte de la 4ème "Aide et soutien" - Perte de la 3ème d'insertion - Perte de la ZEP - Perte des groupes - 2021 : plus rien à perdre.
physix
 
Messages: 1042
Inscription: 09 Jan 2011, 10:41
Académie: Grenoble
Poste: Enseignant en Collège

Re: Conversions niveau collège et corrections

Messagede physix » 16 Oct 2022, 17:25

Je me suis fait une version exécutable (.exe) avec une interface qui crée directement le PDF à imprimer.

C'est la première fois que je "compile" du python et j'obtiens un .exe de 24Mo :shock:
Il est en bas de cette page pour ceux qui ne veulent pas utiliser Python.

conversion.png



Code: Tout sélectionner
from fpdf import FPDF, HTMLMixin
from random import *
from decimal import *
from tkinter import *
from tkinter import ttk
from tkinter.ttk import *

class PDF(FPDF, HTMLMixin):
    pass

def generer ():
    NombreDePage = int(nb_conversions_entry.get())
    pdf = PDF('L')
    pdf.set_font_size(12)
    pdf.set_auto_page_break(False , 0)
    pdf.set_margins(5,5,5)
    pdf.add_page()
    Tableau =''

    h = 1
    i = 1
    j = 1
    NombreDebut = 0.1
    NombreFin = 0.1
    getcontext().prec = 13

    while h <= NombreDePage :
        print(h)
        unite_str = choix_unite.get()
        progress['value'] = int(h/NombreDePage*100)
        Label(MyWindow, text=str(int(h/NombreDePage*100))+'%').grid(row=2, column=1)
        MyWindow.update_idletasks()
        while j <= 3 :
            if j==1 :
                Tableau = Tableau + """
                <table border="1" >
                <thead>
                    <tr>
                      <th width="30%"> </th>
                      <th width="4%"> </th>
                      <th width="4%"> </th>
                      <th width="4%"> </th>
                      <th width="4%"> </th>
                      <th width="4%">k"""+unite_str+"""</th>
                      <th width="4%">h"""+unite_str+"""</th>
                      <th width="4%">da"""+unite_str+"""</th>
                      <th width="4%">"""+unite_str+"""</th>
                      <th width="4%">d"""+unite_str+"""</th>
                      <th width="4%">c"""+unite_str+"""</th>
                      <th width="4%">m"""+unite_str+"""</th>
                      <th width="4%"> </th>
                      <th width="4%"> </th>
                      <th width="4%"> </th>
                      <th width="13%"> </th>       
                    </tr>
                  </thead>
                """
            else :
                Tableau = Tableau +""" 
                    <tbody>
                        <tr>
                          <td> </td>
                          <td> </td>
                          <td> </td>
                          <td> </td>
                          <td> </td>
                          <td align="center"><strong>k"""+unite_str+"""</strong></td>
                          <td align="center"><strong>h"""+unite_str+"""</strong></td>
                          <td align="center"><strong>da"""+unite_str+"""</strong></td>
                          <td align="center"><strong>"""+unite_str+"""</strong></td>
                          <td align="center"><strong>d"""+unite_str+"""</strong></td>
                          <td align="center"><strong>c"""+unite_str+"""</strong></td>
                          <td align="center"><strong>m"""+unite_str+"""</strong></td>
                          <td> </td>
                          <td> </td>
                          <td> </td>
                          <td> </td>
                        </tr>"""         
         
            while i <= 10 :
                Hasard = randint(1,3)
                if Hasard == 1 :
                    NombreDebut = randint(100,1000)
                elif Hasard == 2 :
                    NombreDebut = randint (10,100)
                elif Hasard == 3 :
                    NombreDebut = randint (1,10)
                Hasard = randint(1,3)
                NombreDebut = round(NombreDebut / 10 ** Hasard,13)
                ConvDebut = str(NombreDebut)
                ConvDebut = ConvDebut.replace('.',',')
           
                Unites = ['k'+unite_str,'h'+unite_str,'da'+unite_str,unite_str,'d'+unite_str,'c'+unite_str,'m'+unite_str]
                UniteDebut=choice(Unites)
                UniteFin = UniteDebut
                while UniteFin == UniteDebut :
                    UniteFin = choice(Unites)
                NombreFin = Decimal(NombreDebut) * Decimal(pow(10,Unites.index(UniteFin)-Unites.index(UniteDebut)))
                ConvFin = str("%.*f" %(13,NombreFin)).rstrip('0').rstrip('.')
                ConvFin = ConvFin.replace('.',',')
               
                Tableau = Tableau +""" 
                    <tbody>
                        <tr>
                          <td>"""+ConvDebut+' '+UniteDebut+' =                                          '+UniteFin+"""</td>
                          <td> </td>
                          <td> </td>
                          <td> </td>
                          <td> </td>
                          <td> </td>
                          <td> </td>
                          <td> </td>
                          <td> </td>
                          <td> </td>
                          <td> </td>
                          <td> </td>
                          <td> </td>
                          <td> </td>
                          <td> </td>
                          <td>"""+str(ConvFin)+""" </td>
                        </tr>"""
                i = i + 1
            i = 1
            j = j + 1
        Tableau = Tableau + """
                </tbody>
            </table>
        """
        j = 1
        h = h + 1
       

    pdf.write_html(Tableau,table_line_separators=True)
    pdf.output("Conversions.pdf")
    MyWindow.destroy()
   
# Fenêtre principale
MyWindow = Tk()

MyWindow.title("Conversions d'unité")
MyWindow.geometry("410x70")



Label(MyWindow, text='Entrer le nombre de pages de conversion à générer :').grid(row=0, column=0)

nb_conversions_entry = Entry(MyWindow)
nb_conversions_entry.grid(row=0, column=1)
nb_conversions_entry.focus_set()
nb_conversions_entry.insert(END,'100')

liste_unite = ["m","g","L"]

choix_unite = ttk.Combobox(MyWindow,values=liste_unite)
choix_unite.grid(row=1, column=0)
choix_unite.set('m')

bouton_terminer = Button(MyWindow, text='Générer', command=generer)
bouton_terminer.grid(row=1, column=1)

progress = Progressbar(MyWindow, orient = HORIZONTAL, length = 280, mode = 'determinate')
progress.grid(row=2, column=0)

MyWindow.mainloop()
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Perte de la 4ème "Aide et soutien" - Perte de la 3ème d'insertion - Perte de la ZEP - Perte des groupes - 2021 : plus rien à perdre.
physix
 
Messages: 1042
Inscription: 09 Jan 2011, 10:41
Académie: Grenoble
Poste: Enseignant en Collège

Re: Conversions niveau collège et corrections

Messagede sallec4 » 16 Oct 2022, 19:22

Aranel53 a écrit:Merci !
C'est bien utile ça, car les conversions, ça marche s'ils en font beaucoup et souvent.


Tout à fait d'accord, mais pas mon inspecteur qui raconte qu'il faut donner du sens aux conversions. On ne doit pas faire hm en cm par ex.
Autant dire que s'il faut claquer un contexte à chaque fois qu'on fait une conversion, les élèves n'auront pas réellement l'occasion de s'entraîner.
Donc selon mon inspecteur votre travail est nul...
Nouveau dicton des élèves ? :
Réforme subtile,
Vacances en Avril.
sallec4
 
Messages: 1903
Inscription: 05 Avr 2012, 10:49
Localisation: Saône et Loire
Académie: Dijon
Poste: Enseignant en Lycée

Re: Conversions niveau collège et corrections

Messagede Aranel53 » 16 Oct 2022, 20:36

Mmmmmh, on va dire qu'on peut mélanger les deux... insister sur le côté répétitif des conversions et éviter les trucs trop tordus ou artificiels.

Moi j'ai tendance à leur donner des conversions à peu près "réalistes" mais pas toujours. Et c'est vrai que je ne donne jamais les "intermédiaires". Pour moi on a cm, mm, µm, nm, pm, fm et km Mm Gm mais je ne donne jamais hecto, déca, déci par exemple. En gros à part pour les longueurs je reste de mille en mille et c'est tout.

physix a écrit:Je me suis fait une version exécutable (.exe) avec une interface qui crée directement le PDF à imprimer.


Merci, je pense piocher dans le gros PDF de temps en temps pour mes élèves !
« Comme le feu de la pierre ne sort, Sans la frapper du fer par violence : Semblablement sans faire grand effort, La Vérité ne sort en évidence. »
Guillaume De La Perrière 1553.
Aranel53
 
Messages: 6366
Inscription: 26 Fév 2010, 15:42
Localisation: Sud de la Drôme
Académie: Grenoble
Poste: Enseignant en Collège/Lycée


Retourner vers Présentations de logiciels utilisables par des enseignants

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités