TP 1

Environnement de travail

Aller dans Outils >Lycée > Informatique >Python 3.3>IDLE (Integrated DeveLopment Environment)

Faire new File pour ouvrir l'éditeur de texte pour pouvoir écrire un programme

A chaque fois qu'un programme est écrit le sauvegarder en faisant CTRL S. La première fois donner un nom significatif au programme, avec un suffixe .py

Ensuite pour exécuter le programme faire F5

Chaque élève fait le TP sur un poste en autonomie et doit rendre un compte-rendu soigné répondant à toutes les questions

Ce compte-rendu est noté (coefficient 2)

Puissances de nombres entiers

Voici un algorithme


N = entrez("Entrez un nombre entier")
P = N*N*N*N
afficher(P)

On traduit cet algorithme en un programme écrit en Python, dans l'éditeur de texte


N = int(input("Entrez un nombre entier:   "))
P = N*N*N*N
print(N," élevé à la puissance 4 vaut: ",P)

Faire CTRL+S pour sauvegarder ce programme dans vos documents en le donnant un nom par exemple puissance4.py

Exécuter ce programme plusieurs fois en tapant F5 au clavier à chaque fois et donner différentes valeurs à N

L'algorithme ci-dessus affiche étant donné tout entier n entré au clavier, $n^{4}$, en faisant trois multiplications

On peut faire mieux en 2 multiplications seulement

 

N = entrez("Entrez un nombre entier")
P = N*N
P = P*P
afficher(P)

Exercices

  1. Traduire l'algorithme précédent en Python et exécuter le
  2. Donner l'algorithme qui effectue le plus de multiplications pour calculer $n^7$
  3. Donner un algorithme qui calcule $n^7$ en 4 multiplications
  4. Traduire ces algorithmes en Python
  5. Que se passe-t-il si on entre au clavier un nombre comme 2.4 ?

Intervalle de nombres et domaine de définition d'une fonction

La fonction $x \rightarrow \dfrac{1}{x}$ n'est définie que pour les réels $x \neq 0$

Voici un programme qui calcule l'inverse d'un réel entré au clavier


x = float(input(" Entrez un réel "))
print("L'inverse de x est : ",1/x)

Exercices

    Copier (CTRL+C) ce programme puis coller (CTRL+V) ce programme dans l'éditeur de texte

    Sauvegarder le en lui donnant le nom inverse.py

  1. Noter sur votre compte-rendu le message d'erreur lorsqu'on entre 0 au clavier
  2. Pour éviter cette erreur on va tester la valeur entrée au clavier

    Si le nombre x est différent de zéro (en Python on traduit différent par != et égal par ==) alors on calcule son inverse sinon on affiche un message d'erreur

    Voici le programme modifié

    
    x = float(input(" Entrez un réel "))
    if x != 0:
    	print("L'inverse de x est : ",1/x)
    else:
    	print(" On ne peut pas calculer l'inverse de zéro")
    
    
  3. La fonction racine carrée est définie pour les réels supérieurs ou égaux à 0 (en Python on traduit par >=)

    Ecrire un programme similaire au précédent mais pour la fonction racine carrée. (racine.py)

    Il faudra rajouter au début du programme la ligne :

    from math import *

    pour pouvoir utiliser la fonction sqrt(), racine carrée en anglais

Moyenne de deux nombres réels

Voici un programme Python qui calcule la moyenne de deux réels entrés au clavier


x1 = float(input("Entrez un nombre réel:   "))
x2 = float(input("Entrez un autre nombre réel:   "))
m = (x1 + x2)/2
print("La moyenne de ",x1," et de ",x2," est : ",m)


Exercices

  1. Copier (CTRL+C) ce programme puis coller (CTRL+V) ce programme dans l'éditeur de texte

    Sauvegarder le en lui donnant le nom moyenne2reels.py

    Que se passe-t-il si on entre au clavier 2 pour x1 et 3 pour x2 ?

  2. Puisqu'on va réutiliser souvent ce programme on va mettre en évidence la fonction $x1,x2 \rightarrow \dfrac{x1+x2}{2}$

    On va donc définir une fonction dans le langage Python qui prend en entrée x1 et x2 et qui donne en sortie $\dfrac{x1+x2}{2}$

    
    def moyenne2(x1,x2):
        return (x1 + x2)/2
    
    x1 = float(input("Entrez un nombre réel:   "))
    x2 = float(input("Entrez un autre nombre réel:   "))
    print("La moyenne de ",x1," et de ",x2," est : ",moyenne2(x1,x2))
    
    
  3. Le milieu I des points $A$ et $B$ a pour abscisse la moyenne des abscisses de A et de B, et pour ordonnée la moyenne des ordonnées de A et de B

    Compléter le programme suivant pour que soient affichées à l'écran les coordonnées du milieu I de deux points A et B dont les coordonnées sont entrées au clavier

    
    def moyenne2(x1,x2):
        return (x1 + x2)/2
    	
    x1 = float(input("Entrez l'abscisse de A:   "))
    y1 = float(input("Entrez l'ordonnée de A:   "))
    .... à compléter .....
    print("Les coordonnées du milieu I de ", ...à compléter ....)
    
    

Jeu du chaos

Copier (nommer le fichier chaos.py) et exécuter le programme suivant


from turtle import *
import random

def chaos(n) :           
    
    def moyenne(x,y) :
        return (x+y)/2
    def milieu(P,Q) :
        return (moyenne(P[0],Q[0]),moyenne(P[1],Q[1]))
    def dessiner(P) :
        up()
        goto(P[0],P[1])
        down()
        dot(2)       
    def dessiner_triangle(P,Q,R) :
        up()
        goto(P[0],P[1])
        down()
        goto(Q[0],Q[1])
        goto(R[0],R[1])
        goto(P[0],P[1])
    def point_au_hasard(P,Q,R) :
        hasard = random.randint(1,3)
        if hasard == 1 :
            return A
        elif hasard == 2 :
            return B
        else :
            return C
    # le programme principal de la fonction :
    A = (0, 200)
    B = (-200, -200)
    C = (200, -200)
    dessiner_triangle(A,B,C)
    M = (0,0)   
    for i in range(n) :
        H = point_au_hasard(A,B,C)        
        I = milieu(M,H)                   
        dessiner(I)                       
        M = I

reset()
pencolor('red')
hideturtle()
#tracer(False)
chaos(5000)                   
#tracer(True) 


Exercices

  1. Copier le précédent programme dans un nouveau fichier chaos2.py pour faire des modifications
  2. Introduire un quatrième point C de telle sorte que ABCD soit un carré

    Modifier le hasard, en introduisant une quatrième possibilité

    Finir de modifier le programme dans l'esprit du premier programme

    Sauvegarder et exécuter

    Qu'observez vous ?