|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() mat Étudiant Inscription : octobre 2011 Messages : 2 ![]() |
bonjour,
j'ai pour obligation de rendre ce devoir on doit dire si un binaire est divisible par 3 mais le programme ne fonction pas il n'y a plus rien après le get, je pense que c'est une erreur bête mais je ne la trouve pas pour la fonction dans le paquetage : oui on est obliger de suivre cet algorithme j'ai fait un pastebin ici merci beaucoup. |
|
|
10
|
|
|
#2 |
|
Membre confirmé
![]() |
Bon, j'ai trouvé le problème mais j'ai pas trouvé pourquoi en relisant rapidement l'ARM.
Bon, en initialisant C à un caractère par défaut, cela fonctionne... Tout du moins, cela va plus loin que le Get |
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Henri PoincareArchitecte technique Inscription : mai 2007 Messages : 19 ![]() |
Le problème est de savoir si un nombre entier est divisible par 3.
Donc peu importe sa représentation : binaire, hexadécimale ou décimale. En Ada, pour savoir si un nombre entier est divisible par 3, il existe la fonction mod lien : http://en.wikibooks.org/wiki/Ada_Programming/Types/mod Cette fonction s'applique à des nombres modulaires (Unsigned). Il faut donc convertir un type Integer en type Unsigned. si I est un entier sur 32 bits : Reste := Interfaces.unsigned_32(I) mod 3; si reste=0 c'est OK Pas besoin non plus de créer un paquetage. Je pense que vous êtes complétement passé à côté de la nature du problème. |
|
|
01
|
|
|
#4 |
|
Membre confirmé
![]() |
Cher Poincare, j'aurais tendance à dire : "Vous êtes passé à côté de la question"
La question initiale précise bien que l'algorithme fourni est obligatoire. Qui plus est, passer par le paquetage Interfaces, dont le but est l'interfaçage vers les langages étrangers (dixit ARM), ne me semble pas non plus très "Ada" pour un problème ne nécessitant rien de tout ça. Surtout que pour les types entier, l'opérateur mod existe directement (voir ici). |
|
00
|
|
|
#5 |
|
Invité régulier
![]() mat Étudiant Inscription : octobre 2011 Messages : 2 ![]() |
le problème a été résolu en changeant le end of file en end of line
|
|
|
10
|
|
|
#6 |
|
Membre confirmé
![]() |
Ca devait être trop évident pour qu'on passe à côté
Ceci dit, je ne m'explique toujours pas pourquoi cela fonctionnait avec le End_Of_File uniquement après avoir initialisé C Il n'y a plus qu'à marquer comme résolu alors ? |
|
00
|
Copyright © 2000-2012 - www.developpez.com