Département Informatique Programmation 1
2008-2009
1
Département Informatique 2008-2009
PROGRAMMATION 1
TD1
Notions à acquérir
Déclaration des variables et définition des types simples (entiers, réels, booléens et caractères)
Instructions simples : affectation et instruction nulle
Instructions séquentielles
Instructions itératives : Tant que Condition
Faire Instruction
Fin Tant que
Boucle Pour
Commentaires pertinents des programmes et trace des algorithmes
Exercice 1
Sachant que Nbre, X et Valeur sont des variables de type entier, effectuer la trace de l'algorithme
suivant
début
Nbre 10
Valeur 8
X Valeur - Nbre
Valeur Valeur * 2
X Valeur - Nbre
fin
Exercice 2
Sachant que A et B sont des variables de type entier, quelles seront les valeurs affectées à A et B en fin
de l’algorithme suivant
début
B 5
A B + 4
B A * 2
A A - B
fin
Exercice 3
a) Quelles seront les valeurs des variables de type entier A, B après exécution des instructions
suivantes :
Département Informatique Programmation 1
2008-2009
2
début
A 10
B 3
A B
B A
fin
b) Les deux dernières instructions permettent elles d’échanger les deux valeurs de A et B ?
Si l’on inverse l’ordre de ces deux dernières instructions, cela change-t-il quelque chose ?
c) Proposez une solution pour échanger les valeurs de A et B.
Exercice 4
Dans l'algorithme qui suit, discuter la validité et la pertinence de chaque affectation :
Variables a, b, c, d : entier;
c1, c2 : caractère;
u, v : booléen;
début
a 10
d a
c b + c
c1 'a'
c2 'b'
u c1 = c2
v vrai
u u ou v
v a + v
a c1 / 4
a d / 5
fin
Exercice 5
Soient les deux types :
type T_COULEUR = (bleu, rouge, vert, jaune)
type T_FEUX = ( rouge, orange, vert)
et soient les variables suivantes
C1, C2 : T_COULEUR
F1, F5 : T_FEUX
Discuter de la validité et de la pertinence des instructions suivantes :
début
C1 rouge
C2 orange
F1 C1
F1 rouge
F5 F1
F5 vert
C1 vert + rouge
fin
Département Informatique Programmation 1
2008-2009
3
Exercice 6
a) Ecrire un algorithme qui calcule la somme des quinze premiers nombres entiers naturels.
b) Ecrire un algorithme qui calcule la somme des quinze premiers termes de la suite Un qui est telle
que :
U1 = 1
Un = Un-1 + n où n > 1
c) Ecrire un algorithme qui calcule la factorielle dun nombre entier donné par l’utilisateur.
N’y a-t-il pas un « problème » pour le calcul de la factorielle d’un nombre entier « relativement »
grand ? Lors du passage en machine, déterminer à partir de quelle valeur votre résultat est erroné.
Exercice 7
Ecrire un algorithme qui demande un nombre entier au départ, puis qui affiche à l’écran les dix
nombres suivants.
Exercice 8
Ecrire un algorithme qui demande un nombre entier au départ, puis qui affiche à l’écran la table de
multiplication de ce nombre.
Si le nombre est 12, on verra à l’écran :
12 x 1 = 12
12 x 2 = 24
…..
12 x 10 = 120
Exercice 9
Soit la liste des âges d'un certain nombre de personnes, ce nombre étant strictement positif. Ces âges
sont exprimés en années à l'aide d'entiers.
Ecrire un algorithme qui permet d’afficher à l'écran l’âge moyen de l'ensemble considéré, sachant que
les âges sont lus au clavier les uns après les autres jusqu'à trouver un nombre nul.
Exercice 10
a) Ecrire un algorithme qui calcule puis affiche successivement le résultat des 20 premiers termes de la
suite :
x0 = 1
2 n
xn = ---------------
( n ) !
Département Informatique Programmation 1
2008-2009
4
b) La suite xn étant convergente, écrire un algorithme qui calcule la somme des xn . On arrêtera
l’algorithme lorsque le terme additionnel xn deviendra inférieur à une valeur EPSILON qui sera fixée
en début de programme (par exemple EPSILON = 10 -4 )
Exercice 11
Ecrire un algorithme qui permette de calculer /4 sachant que cette valeur est la limite de la suite :
S = 1 - 1/3 + 1/5 - 1/7 + 1/9 - ......
Exercice 12
Ecrire un algorithme permettant de calculer la suite de Fibonacci F(n) à l'ordre 15, sachant que :
1 si n = 1
F(n) = 1 si n = 2
F(n-1) + F(n-2) si n > 2
Calculer et afficher à chaque itération (pour n > 1) le rapport de 2 termes successifs F(n) / F(n-1)
Exercice 13
Ecrire un algorithme qui permet de convertir un nombre entier écrit en base 10, en un nombre écrit en
base 2, en faisant des divisions successives par 2.
Exemple : (5)10 = (101)2
Remarque : s’interroger sur la présentation du nombre obtenu : à l’endroit, à l’envers ?
Exercice 14
a) Etant donnés deux entiers a et b, calculer a * b en n’utilisant que l’opérateur d’addition « + ».
b).Etant donnés deux entiers a et n lus au clavier, calculer a puissance n en utilisant seulement
l’opérateur « + ».
Exercice 15
Ecrire un algorithme qui permet d'afficher la table de vérité d'un expression booléenne comme par
exemple A and ( B or C ) où A, B et C sont des variables booléennes.
1 / 4 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !