Info 0103 : Travaux Pratiques n°3
Le but de ce TP est de développer les algorithmes classiques en assembleur.
Algorithmes classiques
Ecrivez les programmes suivants :- On demande à l'utilisateur de saisir x et y et on affiche à l'écran la valeur de xy (x puissance y).
- On demande à l'utilisateur de saisir x et on affiche à l'écran x! (factorielle de x).
- On souhaite évaluer la racine carrée d'un nombre saisi par l'utilisateur.
Exemple : si on saisit 9, 10, 11, 12, 13, 14 ou 15, la valeur affichée est 3
La réprésentation binaire
On souhaite écrire un programme qui affiche à l'écran la représentation ou la valeur binaire d'un entier saisi au clavier. L'affichage étant limité dans le simulateur, le nombre en binaire sera affiché un chiffre par ligne.
Questions
- Ecrivez un programme qui demande à l'utilisateur de saisir un nombre et qui affiche la représentation binaire sur 1 octet. L'ordre d'affichage n'a pas d'importance.
Exemple : si on saisit 5, les lignes affichées seront :Sortie -> 1
Sortie -> 0
Sortie -> 1
Sortie -> 0
Sortie -> 0
Sortie -> 0
Sortie -> 0
Sortie -> 0 - Modifiez votre programme pour que l'affichage soit réalisé dans le bon ordre.
Exemple : si on saisit 68, les lignes affichées seront :Sortie -> 0
Sortie -> 1
Sortie -> 0
Sortie -> 0
Sortie -> 0
Sortie -> 1
Sortie -> 0
Sortie -> 0 - Cette fois-ci, on souhaite obtenir la valeur binaire du nombre (i.e. les 0 non significatifs ne doivent pas être affichés) :
Exemple : si on saisit 5, les lignes affichées seront :Sortie -> 1
Sortie -> 0
Sortie -> 1Juste pour rigoler
Malgrès un affichage simplifié, il est possible d'adapter en assembleur des programmes en Java réalisés en Info0102.
Questions
- Le jeu du nombre à déviner. Le but du jeu est de deviner un nombre choisi dans un intervalle donné (ici [0;255]) en donnant successivement des propositions. A chaque proposition, le programme indique au joueur si sa proposition est trop petite ou trop grande par rapport au nombre à deviner.
- Ecrivez le programme assembleur. Le nombre à deviner est placé dans la case mémoire 0. Lorsque le joueur propose un nombre :
- Si la proposition est trop petite, on affiche 0 à l'écran.
- Si la proposition est trop grande, on affiche 1 à l'écran.
- Si la proposition est juste, on affiche le résultat et le programme s'arrête.
- Modifiez votre programme pour limiter le nombre de coups.
- Ecrivez le programme assembleur. Le nombre à deviner est placé dans la case mémoire 0. Lorsque le joueur propose un nombre :
- Le jeu de Nim. Ce jeu se joue à deux joueurs. On part avec un certain nombre d'allumettes et chaque joueur tire à tour de rôle, de 1 à 3 allumettes. Le perdant est celui qui tire la dernière allumette.
- Ecrivez le jeu de Nim en assembleur. Le nombre d'allumettes est placé dans la case mémoire 0. Pour indiquer que c'est au joueur 1 de jouer, on affiche 0 et pour le joueur 2, on affiche 1. On affiche ensuite le nombre d'allumettes restantes, puis on demande un nombre d'allumettes compris entre 1 et le maximum entre 3 et le nombre d'allumettes restantes. Si le choix est invalide (0 ou supérieur à 3 ou au nombre d'allumettes restantes), on redemande au joueur de saisir un nouveau choix.
- Proposez une solution pour joueur contre l'ordinateur.
Version de cette page Mardi 11 Mai 2010
- Le jeu du nombre à déviner. Le but du jeu est de deviner un nombre choisi dans un intervalle donné (ici [0;255]) en donnant successivement des propositions. A chaque proposition, le programme indique au joueur si sa proposition est trop petite ou trop grande par rapport au nombre à deviner.