Variables et types de données - LCQB

publicité
Introduction à l’Algorithmique et la Programmation
feuille de TD1 : Variables et types de données
Exercice - 1 Nature et représentation des données
La formalisation d’un problème nécessite la manipulation de données de différentes natures qui
peuvent dans un premier temps être regroupées en trois catégories associées à quatre types de
variables simples :
— les nombres (entiers ou réels)
— les caractères
— les booléens
1- Nature des données et types de variables.
Pour chaque objet de la liste suivante, définir sa nature, l’unité dans laquelle on pourrait l’exprimer,
la gamme des valeurs attendues et le type de variable qui pourrait le représenter :
• la taille d’un individu
• son âge
• son sexe
• le nombre d’enfants d’un couple
• le nombre moyen d’enfants par couple dans une population
• le nom d’une ville, d’un pays ou d’un continent
• une couleur
2- Types et opérations.
On considère une molécule caractérisée par : son nom (machinol), sa masse dans le sang (1 µg),
sa masse dans le tissu cible (10 µg), le nombre de ses atomes (23) et sa chiralité (levogyre ou
dextrogyre) :
a- De quel type seront les variables permettant de représenter ces données ?
b- Les opérations suivantes sont-elles possibles ? Ont-elles un sens ?
• additionner la masse dans le sang et la masse dans le tissu cible
• diviser la masse dans le tissu par le nombre d’atomes
• additionner le nombre d’atomes et le nom
• multiplier le nombre d’atomes par la chiralite
Exercice - 2 Environnement Python interactif
Lancer l’interpréteur python dans le terminal Unix (le texte bash$ correspond à l’invite de commande)
1
feuille de TD1 : Variables et types de données
IAP 2016-2017
bash$ python
Vous entrez maintenant dans l’environnement python interactif
Python 2.6.2 (r271:86832, Jul 31 2011, 19:30:53)!
[GCC 4.3.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.!
NB : Le message varie selon la version de Python installée et selon le système d’exploitation utilisé
Taper les instructions suivantes et commentez pour chaque commande ce qui a été fait par la
machine :
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
3 + 4
3 / 0
"Hello world!"
a="Hello world!"
print a
print "a"
a="Hello"
b="world!"
print a,b
print a+b
print a-b
print c
print a*4
print a/4
quit()
Exercice - 3
Affectation et Lvalue
On considère la liste d’affectations suivante (on considère ici que les variables ont correctement été
déclarées avant d’être affectées).
1. a ←8 ;
2. 2 ←a ;
3. 1 + 2 ←a ;
4. y ← 5+3 ;
5. a ←1 +2 ;
6. b ← a +5 ;
7. a ← a +5 ;
1- Dire pour chaque instruction si elle est valide ou non, en justifiant votre réponse.
2- Taper la suite de commandes correspondantes dans l’environnement python. Vous regarderez
attentivement les erreurs qui sont renvoyées par python.
UPMC - Licence Biologie Mathématiques
2
feuille de TD1 : Variables et types de données
Exercice - 4
IAP 2016-2017
Déclaration, initialisation et affichage de valeurs variables
1- Écrire l’algorithme d’un programme qui déclare deux variables correspondant à l’âge et à la
taille d’un individu et qui les initialise respectivement à 18 et 1,85.
Le programme affichera le message suivant : âge=18 et taille=1.85
2- Modifier l’algorithme pour qu’il déclare trois variables correspondant à l’année en cours, à
l’année de naissance et à la taille d’un individu et qui les initialise respectivement à 2012, 2000 et
1,40.
Le programme affichera le message suivant : âge = 12 et taille = 1.40
Exercice - 5
Réactualiser une expression
On souhaite décrire la procédure à suivre pour résoudre le problème suivant : Soit une température
donnée en degrés Celsius (˚C), la convertir en degrés Farenheit (˚F) selon la formule :
Tf = 32 + Tc · 1, 8
1- Quelles sont les variables nécessaires et leur type ?
2- Écrire l’algorithme pour convertir 20˚C.
3- Ecrire les instructions Python (dans l’interpréteur) permettant de convertir 20˚C et affichant
lisiblement le résultat.
4- Rappeler et/ou modifier les commandes précédentes (flèches vers le haut et vers le bas), afin
d’effectuer la conversion de 30˚C en ˚F, puis afficher le résultat.
Exercice - 6
Permuter les contenus de deux variables
1- Écrire l’algorithme d’un programme réalisant l’échange en mémoire de deux variables A et
B. Par exemple si les variables sont initialement A = 1.4 et B = 2.3, après exécution de l’algorithme
on aura A = 2.3 et B = 1.4.
2- Faire un tableau pour suivre l’évolution des valeurs des variables au cours de l’exécution pas à
pas du programme.
Exercice - 7
Un problème de division
Écrire un programme qui déclare et initialise deux variables entières A=5 et B=2.
1- On veut affecter à une variable C le résultat de la multiplication de A par B. De quel type doit
être déclarée C ?
2- Calculer puis afficher la valeur de C.
3- On veut affecter à une variable C le résultat de la division de A par B. De quel type doit être
déclarée C ? Calculer puis afficher la valeur de C. Conclusion ?
UPMC - Licence Biologie Mathématiques
3
feuille de TD1 : Variables et types de données
Exercice - 8
IAP 2016-2017
Valeur des expressions
Parmi les expressions ci-dessous, indiquez lesquelles sont valides et lesquelles ne le sont pas. Donnez
la valeur et le type du résultat de toutes les expressions valides (on suppose que heure et jour sont
respectivement des variables de type entier et énumération des jours de la semaine).
1. 4 - 7
2. ’il fait’ + 12 + ’degres’
3. (heure > 18) et (samedi ou dimanche)
4. 3 * 2.5 + 4
5. jour == (samedi ou dimanche)
6. ’je veux avoir ’ + ’20’ + ’ en cours’
Exercice - 9
Affectation
L’opérateur d’affectation (←) modifie la valeur d’une variable. Supposons ici que l’instruction
ecrire(a) affiche sur la sortie standard la valeur de la variable a.
1- Quelles sont les valeurs affichées après les suites d’instructions suivantes :
a- a ← 5
b←a∗2
ecrire(a)
ecrire(b)
b- a ← 5
ecrire(a)
a←a−3
ecrire(a)
a←7
ecrire(a)
Les instructions de la première colonne du tableau ci-dessous sont exécutées en séquence de la
première à la dernière ligne. Les autres colonnes servent à indiquer la valeur des variables après
l’exécution de chaque instruction. Les trois premières lignes sont remplies à titre d’exemple.
2- Remplissez les valeurs de chaque variable après chaque instruction :
instruction
a
b
c
d
a←5
5
?
?
?
b←6
5
6
?
?
c ← a -2
5
6
3
?
d←c*a
b←a
a←2
c←c+b
d←c+a
Pour les exercices suivants, vous devrez écrire une suite d’instructions d’affectation réalisant ce
qui est demandé.
UPMC - Licence Biologie Mathématiques
4
feuille de TD1 : Variables et types de données
IAP 2016-2017
3- Écrire un algorithme en pseudo-code pour :
a- lire 2 valeurs entières stockées dans deux variables a et b, afficher les valeurs de a et b à
l’écran, puis échanger la valeur des deux variables et les ré-afficher ;
b- lire 3 notes (des réels note1, note2 et note3 ) et 3 coefficients (des entiers coef1, coef2 et
coef3 ), puis calculer la moyenne de ces notes pondérée par les coefficients et afficher le résultat ;
c- lire une somme d’argent (entrée comme une valeur entière) et donner le nombre de billets
de 5 et 10 euros et le nombre de pièces de 2, 1 euros qui la compose, en privilégiant le nombre de
pièces et billets de la valeur la plus importante.
Exercice - 10
Premiers pas avec les listes
En Python, des éléments de types différents (entiers, réels, caractères, chaînes de caractères)
peuvent être stockés dans une même série de valeurs, appelée liste. La série de valeurs d’une
liste est entourée par des crochets.
Déclaration et initialisation
La création d’une liste vide (déclaration d’une variable de type liste) se fait par l’une des instructions
suivantes : l = list() ou l = [].
Exemple d’initialisation d’une liste : l = [1,2,3,4].
Taille
La fonction len() renvoie le nombre d’élément d’une liste passée en argument.
>> l = [21,3,19,45]
>> len(l)
4
Ajout d’éléments
La méthode append() permet d’ajouter un élément à la fin d’une liste. Remarque : en Python, on
appelle méthode toute fonction associée exclusivement à un type de variable, et dont l’usage est
définit par la syntaxe Nom_variable.Nom_méthode().
>> l = [21,3,19,45]
>> l.append(9)
>> len(l)
5
>> l
[21, 3, 19, 45, 9]
Indices
La position de chaque élément dans une liste est identifiée par un indice, permettant d’afficher ou
de modifier sa valeur. Par convention, l’indice de la première valeur d’une liste est 0 ; l’instruction
Nom_liste[i-1] fait donc référence au i-ème élément de la liste.
Il est possible d’accéder au dernier élément d’une liste par Nom_liste[-1] ; de manière générale,
Nom_liste[-k] permet d’accéder au k-ème élément de la liste en partant de la fin.
Extraction d’une sous-liste (slicing)
L’instruction Nom_liste[a:b] renvoie une liste de taille (b−a) composée des éléments de Nom_liste
UPMC - Licence Biologie Mathématiques
5
feuille de TD1 : Variables et types de données
IAP 2016-2017
d’indices a à (b − 1) inclus.
Pour une liste de taille n, les instructions Nom_liste[0:b] et Nom_liste[a:n] renvoient respectivement les b premiers et les (n − a) derniers éléments de Nomliste.
Fonction range()
L’instruction range(a, b, p) permet de générer une liste contenant une suite d’entiers compris
dans l’intervalle [a, b[ selon un pas p. Si a < b et p > 0, la série sera croissante ; au contraire si
a > b et p < 0, la série sera décroissante. Par défaut, a = 0 et p = 1, ainsi l’instruction range(5)
génère la liste croissante : [0, 1, 2, 3, 4]
1- Transformer la variable t = "Bretagne" en "Britain-" par changement successif de chacun
de ses caractères (Les chaînes de caractères sont les listes de caractères).
2- Initialiser une variable de type liste contenant la série de valeurs suivante : 2 4 6 8 10 12 14 16
18 20, générée à l’aide de la fonction range().
3- Extraire par slicing et afficher :
a) les 5 premiers éléments de cette liste ;
b) les 3 derniers éléments ;
c) la sous-liste allant du 4ème au 8ème élément (inclus).
UPMC - Licence Biologie Mathématiques
6
Téléchargement