Vous avez appris lors de la dernière séance
à convertir un nombre binaire en décimal.
Et même d'une manière plus
générale, à convertir un nombre de
n'importe quelle base n en base 10.
Commençons par vérifier que cette
méthode est maîtrisée. Vous allez
convertir:
111001011 de la base 2 en base 10
2CAFFE de l'hexadécimal en décimal
Vous souvenez-vous également de la méthode pour
convertir 111001011 en hexadécimal et 2CAFFE en binaire?
Comme vous pouvez le constater, convertir un nombre binaire en
décimal est purement une question de méthode.
Pourquoi ne pas demander à une machine d'appliquer
bêtement cette recette à votre place? (Chose qu'elle
saura faire d'ailleurs beaucoup plus rapidement que vous...)
Rentrer une "recette" dans un ordinateur, c'est ce que l'on appelle de
la programmation.
C'est ce que vous allez découvrir aujourd'hui.
L'algorithme
La première étape d'un programme consiste
à construire son algorithme.
Etymologie:
l'algorithme tire son nom du mathématicien Al Khawarizmi
(vignette tirée de "Les vies d'Einstein" par Fiami, disponible
au CDI).
Il s'agit, dans un premier temps, de décomposer la
méthode que l'on souhaite programmer (pour nous conversion
binaire -> décimal) en une succession d'instructions
simples.
Vous n'avez pas à vous soucier pour cette étape
d'utiliser un langage compréhensible par l'ordinateur, les
instructions sont rédigées en langage
ordinaire... ou presque.
Quelques exemples simples:
Algorithme pour un programme qui demande votre nom et
votre âge, puis qui écrit "bonjour nom, tu as âge ans"
Demander nom
Lire nom
Demander âge
Lire âge
Afficher "bonjour" nom
", tu as " âge
" ans"
On peut perfectionner cet algorithme en ajoutant que
l'âge doit être compris entre 6 et 120 ans
Ce qui pourrait donner ceci:
Demander nom
Lire nom Demander âge Lire âge Si âge<6 alors afficher "Ce n'est pas possible, tu n'est pas si jeune!" Sinon si âge>120 afficher "Ce n'est pas possible, tu n'est pas si vieux!" Sinon afficher "bonjour" nom
", tu as " âge
" ans"
Ou encore ceci:
Demander nom
Lire nom
âge=0
Demander âge
Tant que âge<6
ou âge
>120 lire âge
Afficher "bonjour" nom
", tu as " âge
" ans"
Ou alors on peut tenir compte du fait que l'auteur du
programme sait qu'il n'y a dans la salle que des personnes dont l'âge
est compris entre 14 et 16 ans. Et l'on pourrait donc modifier
l'algorithme de cette manière:
Demander nom
Lire nom
Demander âge
Lire âge Si âge<14
ou âge>16
alors
afficher "bonjour " nom ", tu as mentis sur ton âge!"
Sinon
Afficher "bonjour" nom
", tu as " âge
" ans"
On imagine maintenant que l'on a affaire à
un groupe de 10 personnes. On veut qu'elles rentrent tour à
tour leur prénom. Puis l'ordinateur affiche un message de
bienvenue
Recommencer de i=1 à i=10 les instructions suivantes
Afficher "Personne n°"i
Demander le prénom
Lire prenomi
Afficher "bonjour "
Recommencer de i=1 à i=10 l'instruction afficher prenomi
Et maintenant à vous de jouer!
Rédigez les algorithmes permettant de réaliser
les programmes suivants:
Réaliser la division de 2 nombres choisis
par l'utilisateur (attention au piège...)
De calculer la moyenne de n notes sur 20. Le nombre n
de notes étant choisi par l'utilisateur
La conversion binaire-décimal
Rédigez maintenant un algorithme permettant de convertir un
nombre binaire, codé sur un octet, en décimal.
Dans un premier temps, plutôt que d'écrire un
programme dans l'unique but de réaliser cette conversion, il
est plus simple de se servir des fonctionnalités d'un
logiciel existant déjà.
Vous allez donc "programmer" un tableur (Excel) pour qu'il
réalise cette conversion.
Le résultat à obtenir est projeté
à l'écran par le professeur.
Quelques règles d'utilisation d'Excel:
Si vous voulez faire afficher dans une cellule le
résultat d'un calcul, celui-ci doit être
précédé du signe "="
Si votre calcul utilise une valeur présente
dans une autre cellule, cette valeur peut être
représentée par le nom de la cellule.
Exemple: "=A2+A3"
Vous pouvez, en cliquant au coin en bas à
droite de la cellule, étirer cette cellule sur une colonne
ou sur une ligne.
Dans ce cas, le calcul de cette cellule est
étendu à l'ensemble de la ligne ou de la colonne,
et les cellules impliquées dans le calcul se
décalent automatiquement.
Exemple: si l'on étire sur une colonne, le calcul de
l'exemple précédent deviendra automatiquement,
à la ligne suivante, "=A3+A4"
Si vous voulez que le contenu d'une case apparaissant
dans un calcul ne se décale pas automatiquement vous devez
faire précéder le nom de la case part le symbole $
Exemple: si l'on rentre "=$A2+$A3" alors il n'y aura pas de
décalage en étirant la cellule sur une colonne
et, à la ligne suivante, le calcul sera le même.
Vous disposez d'une bibliothèque de fonctions
mathématiques
Vous pouvez grâce au symbole correspondant effectuer
une somme sur une colonne ou une ligne
Découverte d'un langage de programmation: le
Turbo Pascal
Notre programme de conversion réalisé
précédemment doit être
interprété par le logiciel Excel: il n'est pas
directement exécutable par l'ordinateur
Pour concevoir de tels programmes il faut utiliser un langage de
programmation. Ces langages possèdent des noms que vous avez
peut-être déjà entendus: basic, pascal,
c, java, assembleur...
Tous ces langages sont munis d'un compilateur, c'est à dire
d'un outil qui convertit le
langage de programmation en code binaire directement
interprétable par l'ordinateur.
C'est pour cela qu'ils permettent d'obtenir des fichiers de type
exécutable (.exe).
Vous allez grâce à la MPI vous initier au langage
Turbo Pascal
Avant d'écrire le programme de conversion
binaire->décimal, nous allons nous
entraîner sur un exemple plus simple.
A l'aide de la fiche d'introduction au Turbo Pascal
complétez le tableau suivant en décrivant, dans
la colonne commentaire, la signification de chacune des lignes du
programme:
Ecriture du programme
Commentaires
Program quotient;
uses crt;
Case à ne pas remplir
var
n1,n2:integer;
q:real;
Begin
n2:=0;
read(n1);
read(n2);
q:=n1/n2;
write(q);
End.
Pour lancer l'exécution du programme il faut cliquer sur "run" dans le menu "run".
En vous aidant de la fiche d'introduction au Turbo Pascal,
modifiez ou complétez ce programme de manière à le
rendre clair et de présentation agréable pour son
utilisateur et faites contrôler par le professeur.
Dans un deuxième
temps, il s'agit de corriger le gros problème
mathématique qui peut se poser si la valeur n2 est mal choisie
par l'utilisateur.
Résolvez ce problème par l'introduction d'une boucle, puis faites contrôler par le professeur.
Une dernière
amélioration serait intéressante pour l'utilisateur: lui
demander après affichage du résultat s'il souhaite
effectuer un nouveau calcul.
Là encore il vous faudra introduire une nouvelle boucle.