Vous êtes sur la page 1sur 6

TD I1

1 Conversion de base
1.1 Binaire vers décimale
Donner les représentations décimales des nombres binaires suivants :
– 11111012
– 11110101002

1.2 Décimale vers binaire


Donner les représentations binaires des nombres décimaux suivants :
– 48
– 751

1.3 Décimale vers Octale


Donner les représentations binaires des nombres décimaux suivants :
– 48
– 751

1.4 Décimale vers Hexadécimale


Donner les représentations héxadécimales des nombres décimaux suivants :
– 48
– 751

2 Commandes UNIX
Imaginons que dans le réperoire /tmp/test, on ait les fichiers suivants :

/tmp/test$ ls
a11.txt a1b.doc f11.txt f1.txt fa.txt b.txt
a1a.doc a1c.doc f1.doc f2.txt fb.txt

1. Donner la commande permettant d’afficher le nom des fichiers finissant par “txt”
2. Donner la commande permettant d’afficher le nom des fichiers commencant par “a”
3. Donner la commande permettant d’afficher le nom des fichiers dont la deuxième lettre est un
chiffre

1
4. Donner la commande permettant d’afficher le nom des fichiers commencant par un a ou un f et
la deuxième lettre est chiffre et qui finissent par doc

3 Expression
3.1 Donner le type et la valeur des expressions suivantes :
– 2+3*4
– 2.0 + 3 * 4
– vrai et (faux ou vrai)
– (2 < 3) et (4 > 5)
– “abc” + “def”
– “def” + “abc”

3.2 Donner le table de vérité des expressions booléennes suivantes :


– (a et non b) ou c
– (a et non b) ou (non a et b)

3.3 Expressions mathématiques


Traduire les expressions mathématiques suivantes en pseudo-code algorithmique :
bc − 2d 2a−3
+4
– x= – z= 2
3a d
42 2
– y = 2a − +4 – w = b − 4ac
a

3.4 Expressions booléennes


Soient x,y,z,t quatre variables numériques d’un environnement donné. Chacune des questions
suivantes caractérise une situation de cet environnement. Exprimé les expréssions booléennes cor-
respondant à ces situations :
– Les valeurs de x et de y sont toutes les deux supérieures à 3
– Les variables x,y et z sont identiques
– Les valeurs de x,y et z sont identiques mais différentes de celle de t
– Les valeurs de x est strictement comprise entre les valeurs de y et t
– Les valeurs de x est strictement comprise entre les valeurs de y et t et la valeur de y est inférieure
à celle de t
– Parmi les valeurs de x,y et z, deux valeurs au moins sont identiques
– Parmi les valeurs de x,y et z, deux valeurs et seulement deux sont identiques
– Parmi les valeurs de x,y et z, deux valeurs au plus sont identiques

4 Schéma séquentiel / Affectation


4.1 Compréhension
1. Quelles seront les valeurs des variables a et b après exécution des instructions suivantes :
a←1

2
b ← a+1
a←3
2. Quelles seront les valeurs des variables a,b et c après exécution des instructions suivantes :
a←1
b←5
c ← a-b
a←2
c ← a+b

4.2 Échanger
Ecrire un algorithme qui permet d’échanger les valeurs de deux variables entières.

4.3 Moyenne de trois notes


Écrire à un algorithme qui à partir de trois notes d’un étudiant et de trois coefficients calcule la
moyenne.

4.4 Décomposition d’une somme d’argent


Écrire un algorithme qui à partir d’une somme d’argent donnée, donne le nombre minimal de
billets de 5 et 10 ¤ et le nombre de pièces de 2, 1 ¤ qui la compose.

4.5 Permutation circulaire


Écrire un algorithme qui permet d’affectuer une permutation circulaire des valeurs entières de
trois variables x, y, z (c’est-à-dire la valeur de y dans x, la valeur de z dans y et la valeur de x dans z.

4.6 Date valide


Ecrivez un algorithme qui pour un numéro de jour, de mois et d’année donnés, détermine s’il
s’agit ou non d’une date valide.

5 Schéma de choix
5.1 Tri de trois entiers
Écrire un algorithme qui prend en entrée trois entiers et qui les retourne triés par ordre croissant.

5.2 Le temps plus une seconde


Écrire un algorithme qui pour un temps donné (représenté sous la forme : heure, minute, seconde)
retourne le temps (sous la même représentation) après avoir ajouté une seconde.

3
5.3 Nombre de jours de congés
Dans une entreprise, le calcul des jours de congés payés s’effectue de la manière suivante : si une
personne est entrée dans l’entreprise depuis moins d’un an, elle a droit à deux jours de congés par
mois de présence, sinon à 28 jours au moins. si c’est un cadre et s’il est âgé d’au moins 35 ans et si
son ancienneté est supérieure à 3 ans, il lui est accordé 2 jours supplémentaires. S’il âgé d’au moins
45 ans et si son ancienneté est supérieure à 5 ans, il lui est accordé 4 jours supplémentaires, en plus
des 2 accordés pour plus de 35 ans. Écrire un algorithme qui calcule le nombre de jours de congés à
partir de l’âge, l’ancienneté et l’appartenance au collège cadre d’un employé.

6 Schéma itératif
6.1 Partie entière inférieure de la racine carrée d’un Entier
Écrire un algorithme qui retourne la partie entière inférieure de la racine carrée d’un entier donné
n.

6.2 La multiplication
Écrire un algorithme effectue la multiplication de deux entiers positifs (notés x et y) donnés en
utilisant uniquement l’addition entière.

6.3 Calcul de factorielle n


Écrire un algorithme qui calcule pour un entier positif donné n la valeur de n !.

6.4 X puissance n
Écrire un algorithme qui à partir d’un réel, appelé x et d’une valeur entière positive appelée n,
retourne x à la puissance n.

6.5 Intégration par la méthode des trapèzes


Écrire un algorithme qui retourne la valeur de l’intégrale d’une fonction f réelle continue sur
l’intervalle sur [a, b]. Soit f(x) une fonction continue sur l’intervalle [a, b]. L’intégration consiste à
découper cet intervalle, en n sous-intervalles de longueur ∆. L’intégrale d’un sous-intervalle [x, x +
∆] est approximée au trapèze de base ∆ et de côtés f(x) et f(x + ∆).
Remarque : la communication de f entre l’appelant et la fonction appelée, est réalisée de manière
implicite (opération transparente pour vous).

6.6 Quotient et reste d’une division entière


Écrire un algorithme qui effectue en même temps les fonctions division entière et modulo à l’aide
de soustractions successives à partir d’un nombre entier positif et d’un deuxième (le diviseur) entier
strictement positif donnés.

4
6.7 Nombres premiers
Écrire un algorithme qui à partir d’un entier strictement positif donné, retourne le résultat booléen
VRAI ou FAUX selon que le nombre est premier ou non. Pour mémoire, voici la liste des nombres
premiers inférieurs à 100 : 1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71,
73, 79, 83, 89, 97.

6.8 Recherche du zéro d’une fonction par dichotomie


Écrire un algorithme qui calcule le zéro d’une fonction f(x) sur l’intervalle [a, b], avec une préci-
sion epsilon. La fonction f et les réels a, b et epsilon sont donnés. Soit f(x) une fonction continue sur
l’intervalle [a, b], où elle ne s’annule qu’une seule et unique fois. Pour trouver ce zéro, on procède
par dichotomie, c’est-à-dire que l’on divise l’intervalle de recherche par deux à chaque étape. Soit m
le milieu de [a, b]. Si f(m) et f(a) sont de même signe, le zéro recherché est dans l’intervalle [m, b],
sinon il est dans l’intervalle [a, m].

6.9 Suite de Fibonacci


Écrire un algorithme qui calcule la valeur u et le rang k du premier terme de la suite de Fibonacci
dépassant une borne entière positive donnée p.

7 Procédures / Fonctions
Attention avant d’expliciter les fonctions et procédures demandés, donner une analyse descen-
dante de votre problème.

7.1 Nombres parfaits


Écrire une procédure qui affiche la suite de tous les nombres parfaits inférieurs ou égaux à un
nombre, entier positif donné noté n. Un nombre est dit parfait s’il est égal à la somme de ses diviseurs
stricts.
Exemple : 28 = 1 + 2 + 4 + 7 + 14
Voici la liste des nombres parfaits inférieurs à 10000 : 6, 28, 496, 8128.

7.2 Changement de base


1. Écrire un procédure qui affiche la représentation binaire d’un naturel
2. Écrire un procédure qui affiche la représentation octale d’un naturel
3. Écrire un procédure qui affiche la représentation hexadécimale d’un naturel

7.3 Développement
1. Écrire un procédure qui affiche le développement de (a + b) n pour n donné.
2. Écrire un procédure qui affiche le développement de (a − b) n pour n donné.

5
7.4 Dessin
NB : Pour ces trois exercices, on considère que l’on connait la procédure retournerALaLi gn e( ) .
1. Écrire une procédure qui affiche à l’aide du signe + un carré de côté n. Par exemple, pour n=3,
la procédure affichera :
+ + +
+ +
+ + +
2. Écrire une procédure qui affiche à l’aide du signe + un triangle de hauteur n. Par exemple, pour
n=3, la procédure affichera :
+
+ +
+ + + + +
3. Écrire une procédure qui affiche à l’aide du signe + un losange de coté n. Par exemple, pour
n=3, la procédure affichera :
+
+ +
+ +
+ +
+

7.5 Chaîne de caractères


En supposant que l’on possède les fonctions suivantes :
– fonction longueurChaine (laChaine : Chaîne de caractères) : Naturel
– fonction nIemeCaractere (laChaine : Chaîne de caractères, n : Naturel) : Caractère
– fonction sousChaine (laChaine : Chaîne de caractères, indiceDebut : Naturel, longueur : Na-
turel) : Chaîne de caractères
– fonction decodeASCII (caractere : Caractère) : Naturel
– fonction encodeASCII (code : Naturel) : Caractère
1. Écrire une fonction qui compte le nombre d’occurence d’un caractère
2. Écrire une fonction qui permet de savoir si une chaîne de caracères est un palindrome
3. Écrire une fonction qui permet de savoir si une chaîne de caractères représente un nombre dans
une base donnée (entre 2 et 36)
4. Écrire une fonction qui permet de convertir la représentation d’un nombre, donné sous forme
de chaîne de caractères dans une base de départ, dans une base d’arrivée (base de départ et base
d’arrivée comprises entre 2 et 36).