INF2171 Organisation des ordinateurs et assembleur

Examen Intra (25%)                                   Eté 2020

Présenté le vendredi 26 juin 9h30.
A remettre le vendredi 26 juin 23h59 dans Moodle.

Cet examen est personnel et individuel. Toute aide est interdite y compris les forums d'usagers.

En cas de doute, un test oral sera exigé.
Aucune question ne sera répondue par le professeur ou par les démonstrateurs.
 

1)
Complétez efficacement le programme polynome afin de résoudre et d'afficher la résolution de l'équation quadratique

x^3 + Ax^2 + Bx + C

Bien commenté.
Attention à l'optimisation avec les nombres négatifs.

Les données sont diverses et peuvent être négatives.
En cas de débordement, émettez le message "Débordement" et cessez le calcul.

Solution:
utiliser l'algorithme de multiplication MULTDIV3 pour effectuer 4 multiplications puis terminer avec 3 additions => polynome_sol

Données d'essais: 4 -3 -5 9 (pour A, x, B, C)
Résultat attendu: 33

Débordement avec: 30 30 1 1  (pour A, x, B, C)

Particularités:
multiplication avec les nombres négatifs (signe)
multiples vérifications pour les débordements
 

2)
On vous demande d'ajouter dans la section "INF2171 - laboratoire: traitement de tableaux pour les caractères ASCII"
l'étape 9 hexa (Complétez lab_t_9.txt):
Lire un texte au terminal (maximum 255 caractères) et afficher parmi les caractères hexadécimaux 
{0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,A,B,C,D,E,F} ceux les plus utilisés.
      
La lettre minuscule "a" et la lettre majuscule "A" sont comptabilisées comme "A" (de même que b "B", c "C", d "D", e "E", f "F").
L'efficacité et les commentaires sont requis.

Solution:
copie de lab_t_7: "Lire un texte au terminal et afficher la(les) lettre(s) la(les) plus utilisées."
et ajuster pour les chiffres et les lettres A à F => lab_t_9_sol

Données d'essais: AaB55s

Résultat attendu: 5 A

Particularités:
tableau de 16 caractères hexadécimaux
maximum de 255 caractères lus

Essais complémentaires:
z
123

 
3)
On vous demande de modifier efficacement le programme exemple5 de la page 74 des notes de cours.
Ce programme lit un ensemble de valeurs entières et les range dans un vecteur d’entiers.
Ensuite, il affiche ces valeurs à partir de la fin du tableau à raison d’une par ligne, chaque valeur étant
précédée de son indice. 
Cependant le programme modifié demandé affichera seulement les valeurs dont la racine carrée donne un nombre entier parfait
comme 49, 144, ... précédées de leur indice. Les valeurs <= 0 n'ont pas de racine carrée et ne sont pas affichées. 

Les données sont diverses et peuvent être négatives.

Astuce: Méthode de calcul pour la racine carrée: Faire 1*1,2*2,3*3,4*4,5*5,...,jusqu'à la valeur désirée.

Solution: utiliser l'algorithme de multiplication MULTDIV1 pour effectuer les multiplications
de 1*1,2*2,3*3,4*4,5*5,...,jusqu'à la valeur désirée. => exemple5_sol

Données d'essais: 39 1 4 46 51 42 21 18 11 14 23 -49

Résultat attendu:
2 4
1 1

Particularité:
programme sans modification => note 0

Essai complémentaire:
0 0 0 0 0 0 0 0 0 0 0 0


Vous avez 3 documents à déposer dans Moodle à la semaine 8 avant le vendredi 26 juin 23h59.
1) polynome.txt 
2) lab_t_9.txt
3) exemple5.txt

N.B. Les 3 questions valent chacune 10 points pour un total de 30 points.

Afin de ne pas rater la remise, il vaut mieux remettre une copie temporaire durant la soirée et la remplacer par la suite car la note zéro sera attribuée en cas de retard.