• Home
    • Home
    • Wouf's Blog
    • Bibliowouf
    • Boutique TShirt
    • Sponsoring
    • Politique de confidentialié
  • Math
    • Math au collège
    • Applis et boutiques
    • Cours particuliers
  • Jeux
    • Echecs
    • Poker
    • Des chiffres et des lettres
    • Dogs and cats (mastermind)
    • boggle - version Anglaise
    • boggle - version Française
  • Info
    • Console Python
    • SVG EDIT
    • fond d'écran
    • Prénom en chinois
    • Boite à outils
    • Mes Logiciels
    • DIVERS
    • Webmaster?
    • Liens

Laurent Petitprez

Tweet

Les conseils de Wouf

Beaucoup d’élèves entrant au lycée ont en effet des difficultés à manipuler les fractions, les racines carrées, les puissances, à factoriser des expressions… Ces notions, apprises au collège, sont mal assimilées, et le programme des classes de lycée ne prévoit pas de les retravailler en profondeur.

Cet ouvrage propose une remédiation pas à pas. Un code simple et mnémotechnique est associé à chacune des règles et rappelé dans toutes les corrections d’exercices. Il permet de se repérer et de comprendre ses erreurs.

Je me suis fait auprès de ma femme une solide réputation de monogame.

Pierre Desproges (sur mon T shirt!)

Voir toutes les citations.


Algorithme au cycle 4 -Séquence 10 - Python, Cesar (4) - boucle FOR et accès aux fichiers

Sans perdre de vue notre projet Cesar, je vous propose aujourd'hui cette petite application :

Code Python traduit en HTML:
#variables globales
letexte=""  

def ecrisfichier():
    """Cette fonction ecris dans le fichier texte.txt
    le contenu de la variable globale letexte
    Cette fonction n'attend pas de paramètre
    et ne retourne auncune valeur 
    """ 
    fichier=open("texte.txt" ,"w" )
    fichier.write(letexte)
    fichier.close()


def lejob():
    """Cette fonction fait le travail
    elle modifie le contenu de la variable globale letexte de la
    façon suivante:
    elle remplace les caractère eéèê par le chiffre 3
    Cette fonction n'attend pas de paramètre
    et ne retourne auncune valeur
    """ 
    #variables locales
    caracteres="eéèê"  #variable locale
    nouveau_texte="" 
    #important : le fonctionnement dela boucle:
    for lettre in letexte:
        #pour chacune des lettres de notre variable letexte
        if lettre in caracteres:
            #on ajoute un 3 dans nouveau_texte
            nouveau_texte=nouveau_texte+"3" 
        else:
            #on ajoute simplement cette lettre
            nouveau_texte=nouveau_texte+lettre
    #nouveau_texte contient le texte modifié
    return nouveau_texte


#corps du programme
fichier=open("texte.txt" ,"r" )
letexte=fichier.read()
# Attention si le fichier n'existe pas il y a erreur !
fichier.close()
#letexte contient le texte original
letexte=lejob()
#letexte contient maintenant le texte modifié

ecrisfichier()
#le fichier de départ a été modifié

    
    

t3xt.py

La documentation est abondante et rend le code facilement compréhensible.

Le but du programme est d'ouvrir un fichier nommé texte.txt, dans le même répertoire que le programme, et de remplacer dans ce programme les e (avec ou sans accent) par le chiffre 3.

Je l'ai testé avec la fable "Le corbeau et le renard" et j'ai obtenu :

Maîtr3 Corb3au, sur un arbr3 p3rch3,
T3nait 3n son b3c un fromag3.
Maîtr3 R3nard, par l'od3ur all3ch3,
Lui tint à p3u pr3s c3 langag3 :
Et bonjour, Monsi3ur du Corb3au.
Qu3 vous 3t3s joli ! qu3 vous m3 s3mbl3z b3au !
Sans m3ntir, si votr3 ramag3
S3 rapport3 à votr3 plumag3,
Vous 3t3s l3 Ph3nix d3s hôt3s d3 c3s bois.
À c3s mots, l3 Corb3au n3 s3 s3nt pas d3 joi3 ;
Et pour montr3r sa b3ll3 voix,
Il ouvr3 un larg3 b3c, laiss3 tomb3r sa proi3.
L3 R3nard s'3n saisit, 3t dit : Mon bon Monsi3ur,
Appr3n3z qu3 tout flatt3ur
Vit aux d3p3ns d3 c3lui qui l'3cout3.
C3tt3 l3çon vaut bi3n un fromag3, sans dout3.
L3 Corb3au hont3ux 3t confus
Jura, mais un p3u tard, qu'on n3 l'y pr3ndrait plus.

Votre mission pour ce jour se décompose en 3 temps :

  • Tester ce programme avec les paroles de votre chanson préférée
  • Modifier le programme pour qu'en plus il transforme les minuscules o, p, q ,r et s en O P Q R et S
Ensuite, par équipe ou en solo, terminez le projet CESAR, en pensant aux commentaires !

N'hésitez pas à relire les séquences précédentes !

Officiel

Au cycle 4, les élèves s'initient à la programmation, en développant dans une démarche de projet quelques programmes simples, sans viser une connaissance experte et exhaustive d'un langage ou d'un logiciel particulier. En créant un programme, ils développent des méthodes de programmation, revisitent les notions de variables et de fonctions sous une forme différente, et s'entraînent au raisonnement.

Attendus de fin de cycle

  • Écrire, mettre au point et exécuter un programme simple

Connaissances et compétences associées

Décomposer un problème en sous-problèmes afin de structurer un programme ; reconnaître des schémas. Écrire, mettre au point (tester, corriger) et exécuter un programme en réponse à un problème donné. Écrire un programme dans lequel des actions sont déclenchées par des événements extérieurs. Programmer des scripts se déroulant en parallèle. - Notions d'algorithme et de programme. - Notion de variable informatique. - Déclenchement d'une action par un événement, séquences d'instructions, boucles, instructions conditionnelles.

Exemples de situations, d'activités et de ressources pour l'élève

Jeux dans un labyrinthe, jeu de Pong, bataille navale, jeu de nim, tic tac toe. Réalisation de figure à l'aide d'un logiciel de programmation pour consolider les notions de longueur et d'angle. Initiation au chiffrement (Morse, chiffre de César, code ASCII...). Construction de tables de conjugaison, de pluriels, jeu du cadavre exquis... Calculs simples de calendrier. Calculs de répertoire (recherche, recherche inversée...). Calculs de fréquences d'apparition de chaque lettre dans un texte pour distinguer sa langue d'origine : français, anglais, italien, etc.

Repères de progressivité:

En 5e, les élèves s'initient à la programmation événementielle. Progressivement, ils développent de nouvelles compétences, en programmant des actions en parallèle, en utilisant la notion de variable informatique, en découvrant les boucles et les instructions conditionnelles qui complètent les structures de contrôle liées aux événements.

Liens
  • python.org Le site officiel, pour télécharger Python !
  • Apprenez à programmer en Python avec Openclassrooms
  • Un programme Python pour publier du code Python sur une page web
  • Algorithme au cycle 4
  • La séquence 1 : Qu'est-ce qu'un algorithme ? Où on joue avec les indices...
  • La séquence 2 : Premier programme et premières boucles
  • La séquence 3 : Premiers tests...
  • La séquence 4 : Tests imbriqués.
  • La séquence 5 : Premières fonctions.
  • La séquence 6 : Bilan et commentaires
  • La séquence 7 : Python et Cesar(1)
  • La séquence 8 : Python et Cesar(2) : Un exemple de fonction récursive
  • La séquence 9 : Python et Cesar(3) : Notion de portée de variable
  • La séquence 10 : Python et Cesar(4) :boucle FOR et accès aux fichiers
  • La Séquence 11 - Python, longueur et angle, le module turtle(1)
  • Python sur le Blog
  • Un exemple d'application utilisant tkinter : Juniper_U
  • Scratch - site officiel
Téléchargemments
  • Le memo des séquences 1 et 2 en PDF
  • Les sources :
    • Bonjour monde !
    • conjugueur.py version 0.0.0
    • conjugueur.py version 0.0.1 (correction fin de séquence 2)
    • conjugueur.py version 0.1.0 (fin de séquence 3)
    • conjugueur.py version 0.2.0 (départ séquence 5)
    • L'exemple de la séquence 3
    • L'exemple de la séquence 3 (version corrigée)
    • Les fonctions -projet cesar- de la séquence 9
 


Tweets by wouf

Comment ???

NEWS

  • Page : https://site2wouf.fr/algorithme_s10.php
  • Catégorie : Informatique

Pourquoi 567 est-il un nombre particulier ?

Pourquoi 567 est-il un nombre particulier ?

UN NOMBRE ET SON CARRÉ

Le nombre 567 possède une propriété assez particulière. En effet, pour l'écrire en compagnie de son carré 321 489, il est nécessaire d'utiliser tous les chiffres de 1 à 9 ; et chacun d'eux, une fois et une seule.

Un autre nombre jouit de cette propriété. Lequel ?

Historique

J'ai retrouvé cette jolie énigme dans Jeux et Stratégie n°9 de Juin 1981. Je me souviens avoir développé (un peu plus tard) sur TO7 un petit programme en basic pour découvrir l'autre nombre...

J’ai toujours eu une tendresse particulière pour la revue Jeux et Stratégie. J’y retrouvais un esprit rare, à la fois intelligent, curieux et ludique, qui donnait envie de réfléchir autant que de jouer. On y croisait les échecs, bien sûr, mais aussi une foule d’autres jeux, des énigmes, des mathématiques, des idées de développement et cette manière unique de faire dialoguer plaisir, logique et culture. Même les jeux en encart avaient quelque chose de magique : ils prolongeaient la lecture, invitaient à manipuler, tester, chercher, recommencer. Cette revue ne se contentait pas de divertir : elle ouvrait des portes, stimulait l’imagination et montrait qu’on pouvait apprendre énormément en jouant sérieusement.

Plus de 40 ans plus tard, avec Python, ce n'est que quelques lignes :

i = 0

while len(str(i)) + len(str(i * i)) < 10:
    i += 1
    
    chiffres_i = set(str(i))
    chiffres_carre = set(str(i * i))
    tous_les_chiffres = chiffres_i.union(chiffres_carre)

    if tous_les_chiffres == set("123456789"):
        print(i, i * i)

En testant ce code dans le bac à sable Python du site2wouf.fr vous obtenez :

L'autre nombre est 854

Pour les débutants :

Ce petit programme Python cherche un nombre entier particulier. On teste les nombres un par un, en partant de 1, puis 2, puis 3, etc. Pour chaque nombre i, on calcule son carré i * i, puis on regarde les chiffres présents dans i et dans son carré. Le but est de trouver un cas où l’ensemble des chiffres obtenus correspond exactement aux chiffres de 1 à 9.

La première ligne, i = 0, sert simplement à initialiser (donner une valeur de départ à) la variable (zone de mémoire qui stocke une valeur). En Python, le signe = sert à affecter (attribuer) une valeur à une variable. Ici, on donne la valeur 0 à i. Il ne faut pas confondre avec ==, qui sert à tester une égalité (vérifier si deux valeurs sont égales). Par exemple, i = 5 signifie « on met 5 dans la variable i », tandis que i == 5 signifie « on vérifie si i vaut 5 ».

Ensuite, la boucle while (tant que) permet de répéter les instructions tant qu’une condition (règle à vérifier) est vraie. Ici, la condition est len(str(i)) + len(str(i * i)) < 10. Cela signifie qu’on continue tant que le nombre total de chiffres de i et de son carré reste inférieur à 10. La fonction (outil qui effectue une tâche) str() (string, c’est-à-dire chaîne de caractères / texte) transforme un nombre en texte, ce qui permet ensuite à len() (length, longueur) de compter son nombre de caractères, donc ici son nombre de chiffres.

À l’intérieur de la boucle, on écrit i += 1, ce qui revient à écrire i = i + 1. On augmente donc i de 1 à chaque tour pour tester successivement tous les entiers.

La condition importante se trouve dans le if (si). On utilise set(str(i)) pour récupérer les chiffres de i sous forme d’ensemble (collection sans doublons), puis set(str(i * i)) pour faire la même chose avec le carré. Un ensemble, en Python, est une collection d’éléments sans doublons. Ainsi, si un chiffre apparaît plusieurs fois, il n’est conservé qu’une seule fois dans l’ensemble.

La méthode (action que l’on applique à un objet) .union() (union, réunion) sert justement à réunir deux ensembles. Par exemple, l’union de {'1', '2'} et {'2', '4'} donne {'1', '2', '4'}. Dans ce programme, .union() permet donc de regrouper tous les chiffres présents dans i et dans i * i.

Enfin, on compare ce résultat à set("123456789"). Le signe == sert ici à vérifier si les deux ensembles sont égaux. Si c’est le cas, cela signifie que les chiffres de i et de son carré, réunis ensemble, forment exactement les chiffres de 1 à 9. Le programme affiche alors i et son carré avec print() (afficher à l’écran).

lien vers l'article sur wouf blog
 

TIPS

Par pitié, Webmasters, ne cassez pas le bouton retour en usant et abusant de l'attribut target="_blank" en rédigeant vos liens!

Voir tous les conseils.

Dernière mise à jour:

Juillet-aôut 2023

Nouvelle Page !

  • Exercices du jour : Les 16 immeubles !

Pages modifiées (ou corrigées) !

  • Exercices du jour : L'enclos
  • Exercices du jour : Les carrelages de couleur /a>

Voir toutes les mises à jour.

 

Trois liens disponibles !

Votre propre message ici, c'est possible! Plus d'informations



Sauf mention contraire, le site est placé sous double licence Creative Commons et GNU Free Documentation License, par contre les grandes images décoratives appartiennent à Corbis et sont licenciées par microsoft

Contact: w0uf@free.fr (avec un zéro à la place du O)