Exercices d'algorithmique : série 1
N.B. Rechercher sur Wikipedia (ou autre) les définitions inconnues nécessaires à la résolution des exercices.
Exercice 1.1.
a) Avec un mot-mémoire de 32 bits, combien peut-on représenter
d'entiers naturels ? d'entiers relatifs ? de caractères ? de
chaines de caractères ?
b) Quel taille de mot-mémoire faudrait-il pour coder tous les
chiffres ? pour donner un identifiant unique à chaque être humain de la
planète ? Pour représenter tous les réels compris entre 0 et 1 ?
c) Quel est le rapport de l'algorithme Encadrer
avec les
questions précédentes ?
algorithme Encadrer
Donnée : un entier naturel n.
Résultat : un entier naturel k tel que
2
k−1 < n ≤ 2
k.
k←0;
p←1;
Tantque p<n
faire
k←k+1;
p←2*p;
d) Quelle taille de mot-mémoire faudrait-il pour représenter le nombre
π avec sept chiffres après la virgule ?
Exercice 1.2.
a) Quel est l'effet de chacune des instructions de l'algorithme :
algorithme 12a
Donnée un entier n.
Résultat : ...
a← 5;
b←b+n;
c=4;
c→4;
s="ok";
x←(s≠"ko");
y←(x ou a=5);
a←3a;
a*3←a+2;
b) Ecrire un algorithme qui affiche la conjugaison au singulier du
futur de l'indicatif d'un verbe du premier groupe dont l'infinitif est donné.
(L'opérateur de concaténation de chaine est noté +)
c) Ecrire un algorithme qui affiche toute la conjugaison du
conditionnel présent d'un verbe du premier groupe dont l'infinitif est donné.
Exercice 1.3.
a) Ecrire une procédure Echanger
qui échange les valeurs
de deux variables x et y quelconques.
b) Faire la trace de l'algorithme ci-dessous pour x=−5 et y=4,
puis préciser de qu'il fait.
algorithme 13b
Donnée : deux entiers n et p.
Résultat : ...
n←n+p;
p←n−p;
n←n−p.
c) Ecrire une fonction qui transforme une température en Farenheit en
une température en Celsius. Ecrire la fonction réciproque.
d) Ecrire une fonction IMC
qui donne l'indice de masse
corporelle d'une personne. Pourquoi ne peut-on écrire la fonction
réciproque ?
Exercice 1.4.
a) Ecrire une fonction qui détermine si un nombre est pair.
De quel type est le retour de cette fonction ?
b) Que fait l'algorithme précisé suivant ?
fonction Estconforme
Entrée : un entier n.
Sortie : ...
x←0; y←1; z←2 ;
Retourner ((x+y+z+n) mod 2 = 0).
Exercice 1.5.
a) Ecrire une fonction Distance
qui calcule la distance
entre deux points du plan.
b) Ecrire une fonction qui vérifie si un point du plan appartient à
une droite d'équation ax+by+c=0.
c) En utilisant la fonction Distance
, écrire une
fonction qui vérifie si un triangle est équilatéral. Même question pour un
triangle isocèle, puis pour un triangle rectangle.
Exercice 1.6.
a) Ecrire un algorithme général qui détermine si une année est
bissextile.
b) Ecrire un algorithme qui détermine si une date est valide.
(Quel structure de contrôle utiliser pour vérifier le nombre de jours des
différents mois ?)
c) Ecrire un algorithme qui calcule le nombre de jour entre le premier
janvier et une date de la même année.
d) Ecrire un algorithme qui convertit une durée en jours, heures,
minutes et secondes en une durée en secondes.
Ecrire l'algorithme réciproque.
Exercice 1.7.
a) Quelle est la complexité de l'algorithme Encadrer
de la question 1.1.c) ?
b) Pour chacun des autres algorithmes ci-dessus, montrer que le
problème correspondant est en O(1). Pourquoi une complexité algorithmique
en O(1) rend-elle évidente la preuve d'arrêt d'un algorithme ?
c) Pourquoi le problème suivant est-il semi-décidable ?
Problème Résolution
Donnée : une équation ax2+bx+c=0 à coefficients réels.
Résultat : les solutions de cette équation.