Page d'accueil R&T
IUT de Villetaneuse
Université Paris 13
Département
Equipe      Cours
Intranet
Formation Initiale
Formation Continue
Apprentissage
Département R&T
Cours R&T
 
Liens
Cours divers
Liens GTR
GTR en Ligne
Matières
AJAX: Asynchronous JavaScript and XML
Architecture des Ordinateurs
Programmation Python
Langage C (Module I3)
Administration Windows
Electronique 1ere annee
Module GEII ARS3 : Réseaux
Systèmes d'exploitation
Module I-C1 : Systèmes d'exploitation et programmation système
Module I-C3 : Client/Serveur et Web
Module I-C3 : Client/Serveur et Web (en apprentissage)
Télécoms 2
Communication
Réseaux RT2
Divers TP Réseaux
Nouveau cours de Telecom
 
Index des pages
 
Contact
E. Viennet
 
  

Introduction à la programmation avec Python

Séance 3 : Variables, Types, Fonctions

EXERCICE 1 - Types

Soit le programme Python suivant :

a = 18
nombre = 34
valeur = 2.718

sp1 = "Telecom"
sp2 = "Reseaux"

y = nombre / a
z = nombre / valeur

TR = sp1 + " et " + sp2 
f  = sp1 * 2
e  = sp1 + 2

1-  L'exécution de ce programme déclenche-t-elle une erreur ? Si oui laquelle ?

2-  Donner le type et la valeur des variables suivantes après exécution des instructions ci-dessus :

   Type      Valeur                                                       
y    
z    
TR    
e    
f    

3-  Modifier l'instruction d'affectation à y afin que y recoive la valeur 1.888888.

EXERCICE 2 - Expressions

1-  Indiquer quelle erreur comporte le programme suivant :

group = "C"
class = 1

S'agit-il d'une erreur d'exécution (run-time error) ou d'une erreur de syntaxe ? (indication : voir pages 9 et 10 du cours).

2-  Soit les deux variables :

departement = "GTR"
annee = 2000

  • Écrire une instruction qui affiche à l'écran : GTR 2000
  • Écrire une instruction qui affecte à une variable msg la valeur "GTR 2000".

3-  Que vaut l'expression 1+2**7-1/3  ?

4-  Les deux expressions 3*5/2 et 3/2*5 sont-elles égales ?

EXERCICE 3 - Fonctions

1-  Écrire la définition d'une fonction ligne(n) qui affiche une suite de n astérisques, à l'aide de la fonction ecrire() du TD précédent.

2-  Écrire une fonction nommée affplus1 qui affiche la valeur de son paramètre plus 1.

Ainsi, les instructions

x = 9
affplus1(x)

afficheront 10.

  1. Que vaut la variable x après ces deux instructions ?
  2. Quel type peut avoir l'argument de la fonction affplus1 ?

EXERCICE 4 - Écrire une fonction AfficheTable( n ) qui affiche la table de multiplication pour n.

Par exemple, l'expression AfficheTable(6) affichera à l'écran :

     1 x 6 = 6
     2 x 6 = 12
     3 x 6 = 18
     4 x 6 = 24
     5 x 6 = 30
     6 x 6 = 36

EXERCICE 5 - Calcul de la racine carrée d'un nombre.

La fonction sqrt définie dans le module math de Python calcule la valeur de la racine carrée de son argument. Dans cet exercice, nous allons ré-écrire une fonction RacineCarree, en utilisant une suite convergente.

La suite Rn définie comme suit :

  • R0 = A
  • Rn+1 = [ 1/2] ( [ A/(Rn)] + Rn )
converge assez rapidement vers la racine carrée du nombre réel positif A (c'est à dire que les termes de la suite s'approchent de plus en plus de la valeur de ÖA).

On calculera les termes de la suite Rn, jusqu'à ce que l'on trouve un terme tel que | Rn2 - A | < 0,01 .

La fonction prédéfinie abs de Python donne la valeur absolue de son argument. q

1-  Écrire la fonction RacineCarree.

2-  En TP, faites afficher les termes successifs de la suite Rn au cours du calcul. Combien faut-il calculer de termes pour obtenir la précision demandée ?

EXERCICE 6 - Calcul de la factorielle d'un nombre

1-  Écrire une fonction factorielle(n) qui affiche la factorielle du nombre n.

Rappel : factorielle(n) = n! = n (n-1) (n-2) ¼1.

  1. Quels types peut avoir l'argument de la fonction factorielle ?
  2. Déterminez expérimentalement (en TP) la plus grande valeur que peut prendre l'argument de factorielle.
  3. Python possède un autre type numérique, les entiers longs, qui permettent de calculer en précision illimitée (dans des limites imposées par la mémoire de l'ordinateur). Un entier long se note en ajoutant un L majuscule à droite de la valeur :
    x = 123456789L
    print x**4
    232305722798259244150093798251441L
    
    
    Les opérations sur des nombre entiers longs ont bien plus lentes que sur les entiers ordinaires, c'est pourquoi on ne les emploie que rarement.

    1. Modifiez votre fonction factorielle pour qu'elle utilise des entiers longs.
    2. Que vaut 100!   ? et 1000!   ?




File translated from TEX by TTH, version 3.01.
On 7 Oct 2001, 21:05.