Je suis en premiere année de DUT info et on nous propoe de faire un script pour windows linux c'est que pour le prochain semestre
Donc le but de ce script est d'ameliorer la commande SET /A
Donc il faut que l'on puisse faire des calculs d'entier *,/,-,+,%
sur 32bits 48 bits 64 bits 128 bits enfin 48 bits minimum
Donc deux objectif etendre le format des nombres et second objectif controler le resultat
Donc il faut trouver un systeme de controle des valeurs avant meme de faire le calcul sinon aucun interet le calcul sera toujours inferieur à 2^31-1 ou superieur à -2^31
Voila quelques exemples d'execution du script
>Z + -234 567 renvoie la valeur de la somme de -234 et 567
>Z - 78 1456897 effectu la soustraction 78-1456897
>Z * 11998 1456897 c'est la multiplication
>Z /A 123465468765 ca c'est la verification du format du nombre savoir si il est sur 32 48 64 ou 128 bits
Si l'on n'effectue aucune commande avant l'execution du script il doit effectuer le calcul sur 32bits
Par contre si la commande >SET INT48=1 est effectué avant lappel du script le script doit faire tous les calcul sur 48 bits
Voila un resumer de ce que doit faire le script biensur je ne vous demande pas de faire le script ni même de me donner des morceaux de code mais juste des indications concernant l'algorithme a utiliser ou des astuces pour alleger le script
Enfin tous ce qui peut m'aider a créer un très bon script en un minimum de temps
Le temps compte enormement seul les 5 premiers auront des points les autres rien
Donc je concidere avoir un peu plus d'une semaine pour la conception de ce script les tests et l'envoie du resultat final
Les points les plus important sur lesquel je but (faut dire aussi que ca fait 1h qu'on a le sujet ) c'est l'extension du format j'ai un pe de mal à voir comment augmenter ce format
Je vous remercie deja pour tous vos conseil et vos aide
Travail accompli : Addition
si a>=0 et b>=0 et que (a-(2^31-1))+b<=0 alors c'est dans l'interval
si a<0 et b<0 et que (a+(2^31))+b>=0 alors c'est dans l'interval
si les signes sont opposée il faut verifier que a et b appartiennent a l'interval
Soustraction
si a>=0 et b>=0 toujours bon si a et b dans l'interval
si a<0 et b<0 toujours vrai si a et b dans l'interval
si a<0 et b>=0 alors on se ramene a l'addition de a<0 et b<0
si a>=0 et b<0 alors on se ramene à l'addition de a>=0 et b>=0
Multiplication
si a et b de meme signe alors si a/(2^31-1)*b<=1 alors c'est dans l'interval
si a et b sont de signe contraire alors si a/(2^31)*b>=-1 alors c'est dans l'interval
seconde methode
Une boucle qui additione a tant que b n'est pas nul ou qui s'arrete lorsque la somme est superieur a 2^31-1-a
Division
si a et b dans l'interval et b different de 0 alors le resultat se trouve dans l'interval
Modulo
si a et b sont dans l'interval alors le modulo est dans l'interval
Publicité
Posté le 23-10-2004 à 19:10:13
cybersplash
Posté le 24-10-2004 à 09:15:56
Aidez moi pliz je veut juste que quelqu'un m'aide a trouver un algo pour gerer le 48 bits c le seul point qui me pose enormement de probleme j'arrive po a trouver de solution aidez moi pliz
cybersplash
Posté le 24-10-2004 à 23:54:06
Personne peut m'aider a resoudre mon probleme c'est vraiment tre important j'ai pas besoin qu'on me donne le code mais juste une vgue idée me permettant de gerer des nombres sur 38 bits
Arrakeen
Posté le 25-10-2004 à 16:15:24
bah c-à-d que je sèche un peu moi sur ce coup-là lol...:-/
bob007
Posté le 02-11-2004 à 17:06:29
c quoi le problème c'est que un int c'est torp petit c'est ça?
Huum ca pu la bistromatique à plein nez ton histoire la!
Essai avec des chars, en partant par la fin de tes nombres
genre:
23456 * 6584 =
4*6
5*8
.. et ainsi de suite, avec un carry flag.
J'ai compris la question ou pas?
Arjuna
Aircraft Ident.: F-MBSD
Posté le 02-11-2004 à 17:13:24
Bah... Tu utilises ADA.
Pis tu fais des sous-types bornés du LONG permettant de gérer des 32, 48, 64 et 128 bits et voilà