M2 GestionTIC
Introduction à l’algorithmique.
Examan
http://www.depinfo.u-cerghy.fr/introAlgoM2
Décembre 2011
1 Partie 1 : théorie.
Pas de document pour cette première partie.
Pas d’ordinateur pour cette première partie.
Répondre sur une première copie double.
1.1 Cours.
1. Donner la définition d’un algorithme.
Un algorithme est une suite finie et non-ambiguë d ?opérations ou d’instructions permettant de
résoudre un problème.
2. Donner la définition du pseudo-code.
En programmation, le pseudo-code est une façon de décrire un algorithme sans référence à un
langage de programmation en particulier.
3. A l’aide des mots code "human readable", code objet, code assembleur, langage machine, compila-
tion décrivez les différentes étapes qui conduisent, pour un algorithme, de sa programmation dans
un langage tel que JAVA en son exécution sur un ordinateur.
On décrira essentiellement deux étapes fondamentales :
– La compilation.
Le compilateur est un programme informatique qui permet de transformer du code "human
readable" en code objet puis en langage machine.
Le langage machine est le langage directement compréhensible par l’ordinateur. Il est constitué
d’une suite d’instruction écrites en binaires (suite de 0 et de 1).
L’assembleur est la traduction "human readable" du langage machine.
Le code objet est un code qui ressemble au langage machines (ou à l’assembleur selon les cas)
et qui contient des informations utiles au compilateur (notamment références de liens).
– L’exécution.
Lors de l’exécution, le code machine est placé en mémoire centrale de l’ordinateur et exécuté.
L’exécution est contrôlée par le système d’exploitation.
4. Donner quelques différences entre un langage fortement typé et un langage faiblement typé.
Si on considère les données et les fonctions permettant de traiter les données, on peut considé-
rer qu’un langage est fortement typé s’il permet de vérifier/contrôler/garantir que les fonctions
(traitements) appliquées à une certaine donnée sont autorisés.
5. Qu’est ce que le muti-threads ?
Donner quelques avantages (en terme de programmation ; on pourra donner un ou plusieurs
exemples).
Avoir plusieurs programmes fonctionnant en même temps.
Décomposer un calcul sur plusieurs processeur.
Donner quelques inconvénients.
Difficulté de programmation.
Déboggage difficile.
6. L’instruction int a=3 correspond, en fait, à plusieurs instructions.
Lesquelles ?
1.2 Pseudo-code.
Dans chacun des cas ci-dessous, écrire en pseudo-code, un algorithme répondant à la problématique
posée.
1. Calcul de la factorielle n!d’un nombre nentier naturel.
2. Echange de deux valeurs stockées dans deux variables aet b.
(Par exemple si au début de l’algorithme a= 3 et b= 4 alors à la fin a= 4 et b= 3).
1