RECHERCHER :
COMMUNAUTE MP
Identifiez vous ...
Devenir Membre
J'ai oublié mon MDP
DOMAINE MP
Bavardages
Langages Généraux
Langages Web
Langages DotNet
Autres langages
Dev. Jeux Video
Sécurité
Sys. Exploitation
Graphismes
Logiciels
Réseaux
Bases de données
Méthodologies
Emplois High-tech
Aide juridique
Articles juridiques
FORUM
Index des forums
Ajouter un sujet
Rechercher sujet
Contact Responsable
Devenir modérateur
CHAT MP IRC
Votre pseudo ...
Serv: irc.irc-land.org
Chan: #MoteurProg
PARTICIPER
Plus de 3500 emplois.
Rechercher un job
Déposez votre CV
Emplois High-tech

Visiteur MP

 Aidez moi svp à résoudre cet algorithme

Forum : ALGORITHMES
Sous Catégorie : Aucune
Type du sujet : Sujet Normale
FAQ : FAQ ALGORITHMES

SUIVI DES SUJETS PAR MAIL

SUIVI PAR MAIL INACTIF

RESOLUTION DU SUJET SUJET NON RESOLU
BLOQUAGE DU SUJET SUJET ACTIF
APPARTENANCE A LA FAQ N'APPARTIENT PAS A LA FAQ


PAGES : [1] [2]

POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

FORUM ALGORITHMES

PREMIERE PAGE

PAGE PRECEDENTE

Page précedente

Page suivante

PAGE SUIVANTE

DERNIERE PAGE
Dark_Angel
Nouveau membre
Inscrit : 02/12/2007
Messages : 5
Message
#145918
Posté le 02/12/07 à 02:33
Bonjour tout le monde je suis nouvelle dans ce forum.
Svp j'ai besoin de votre aide pour cette algorithme qui est le suivant:
Ecrire un programme qui permet de convertir un nombre saisie d'une base saisie à une autre base saisie(quel que soit la base)
SVP c'est très urgent

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Publicité
Inscrit : X
Messages : X
Message
#Aucun

HAUT DE PAGE

  

alaa_85
Modérateur :
- VB .NET
Avatar de alaa_85
Inscrit : 01/05/2006
Messages : 174
Message
#145926
Posté le 02/12/07 à 13:16
sincérement j'ai pas bien compris ce que tu vx dire par ça, tu px nous donnes un exemple o bien reformuler ton msg.
pour qu'on puisse t'aider;)

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Dark_Angel
Nouveau membre
Inscrit : 02/12/2007
Messages : 5
Message
#145934
Posté le 02/12/07 à 17:00
je dois écrire un algorithme qui permet de convertir un nombre d'une base n à une autre base n

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

vortex666
Modérateur :
- C & C++
- OpenGL
- Delphi
Chef de projet(s) :
- Vortez3DEngine

Avatar de vortex666
Inscrit : 20/09/2004
Messages : 483
Message
#145935
Posté le 02/12/07 à 17:30
En fait, il faut tout d'abord comprendre comment on compte en base 10. Quand j'écrit le nb 123 par example, le "2" ne vaut pas 2 mais 20(10x2), et le "1" vaut 100(1x100), et pas 1. Donc le resultat est egale a:

(1*100) + (2x10) + (3x1) = 123

En binaire, la base est de 2, donc on calcul 110011 par example comme ceci:

110011 = (1x1) + (1x2) + (0x4) + (0x8) + (1x16) + (1x32)

En hexa, 7B0D par example:

7B0D = (13x1) + (0x16) + (11x256) + (7x4096)

J'espere que ca t'aidera, si tu a d'autre questions, n'ésite pas.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Dark_Angel
Nouveau membre
Inscrit : 02/12/2007
Messages : 5
Message
#145945
Posté le 02/12/07 à 20:11
Merci pour ton aide mais c'est pas ça que je cherche ,je doit écrire un algorithme qui permet de convertir des nombres dans n'importe quel base je doit commencer par:
Début
écrire("entrez le nombre a")
lire a
......
T'as compris maintenant?

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

taherpipro
Nouveau membre
Inscrit : 30/10/2005
Messages : 2
Message
#145956
Posté le 03/12/07 à 00:30
\'as qu\'as faire deux procédure une de conversion vers la base 10 et une autre depuis la base 10 vers une autre base ...mais tu peus faire directement ...
tu peus completer cette solution ...

n \" nombre a convertir\"
base1 \" conversion de base 10 vers base1\"
i<--0
sauv<--n
tanque n<>0 faire
rest<--n mod base1
n<--n div base1
i<--i+1
si rest <10
S[i]<--rest
sinon s[i]<-- char(ord(\'a\')+rest-10)
fintanque


maintenat t\'as a completer l\'autre proocedure a partir d\'une base1 vers 10 ...
soit tu dois multiplier chaque terme de la chaine apres test s\'il est 0...9 nombre donc * base1
s\'il n\'est aps nombre seulemnt sa valeur ascii - valeur (a) +10 * base1 et faire la somme
soit::
s<--0 initialisation
dans une boucle pour sur la longeur de la chaine
s<--(s+n)*base1
n" valeur de s[i] comme décrit dessus"
et bien bon courage
___________________
__________________________
taherpi

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Dark_Angel
Nouveau membre
Inscrit : 02/12/2007
Messages : 5
Message
#145983
Posté le 03/12/07 à 18:50
merci taher de m'avoir aider sauf que je n'ai pas bien compris.....Smiley

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

taherpipro
Nouveau membre
Inscrit : 30/10/2005
Messages : 2
Message
#146023
Posté le 04/12/07 à 19:53
bonjour...
je vais éclicir l'algorithme ....
la boucle tanque prends un entier n(l'entier à convertire vers la base "base1")
ayant supposé que l'entier au début est en base 10 .
ça ce fait facilement par division entiére sur la base "base1"..et toujours prendre le reste de la division jusqu'à avoir un quotion égal à 0 .... c'est ça le principe ....
mais dans le cas ou base1>10 ...donc on peut avoir un reste>=10 ça cause un probleme .. il est résolu dans la condition si ... alors ..
supposons que si reste =10 alors reste='a'
si reste =11 alors reste='b'
si reste =12 alors reste='c'


on va donc changer reste avec un caractére d'ordre de celui de a plus reste moins 10.... tu dois voir les fonction c char et ord ...
enfin l'entier convertis sera dans la chaine S
merci
__________________________
taherpi

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

gargout
Membre newbie
Inscrit : 29/12/2006
Messages : 33
Message
#146159
Posté le 08/12/07 à 19:27
n étant compris entre 2 et 16 n'est ce pas ? c'est pas trop compliqué ;-)
==> bon tout d'abord tu dois contrôler la valeur du nombre que tu vas convertir (il doit avoir de chiffres allant de 0 jusqu'à 9 ou des lettres de "A" jusqu'à "F") son type sera alors de type chaîne de caractère (STRING en Pascal) voici la procédure saisie_nb qui va s'assurer que la valeur introduite ne contiendra que des chiffres ou des lettres (de "A" à "F") cette procédure utilise aussi une fonction que j'ai appelé "TEST" en effet le programme vous demandera de saisir à chaque fois un nombre jusqu'à ce que vous introduisiez un nombre valide,... au sein de la procédure, la vérification est assuré par la fonction "TEST".

***Analyse de la procédure saisie_nb
DEF PROC Saisie_nb(var nb:chaine)
Répéter
---nb=donnée("Entrer le nombre voulu :")
Jusqu'à test(nb)=VRAI

***Analyse de la fonction test
DEF FN test(nb:chaine)
test<=aux

Initialisations:
i<=0
aux<=VRAI

Tant que (aux=VRAI) ET (i<Long(nb)) Faire
---i<=i+1
---Si nb[i] DANS ['0'..'9','A'..'F'] alors aux<=VRAI
------Sinon aux<=FAUX
---Fin si
Fin Tant que
----------------------------------------------------------------------

=> Il faut maintenant saisir la base originale de ce nombre et la base de sortie, on va appeler la base originale "b1" et la base de sortie "b2" on va utiliser une procédure saisie_b qui vérifie que la base introduite est compris entre 2 et 16
DEF PROC Saisie_b(VAR b:entier, msg:chaine)
Répéter
---b=donnée(msg)
Jusqu'à (b>=2) OU (b<=16)

dans le programme principale:
saisie_b(b1,msg1);
saisie_b(b2,msg2);

NB: msg1 et msg2 étant des constantes de type chaîne de caractère
msg1='Entrer la base de ce nombre :'
msg2='Entrer la base de sortie :'
------------------------------------------------------------------

Une fois qu'on a saisie le nombre à convertir, sa base, et sa base de sortie on va passer à l'étape de conversion: tout d'abord on convertie notre nombre "nb" à la base 10 en utilisant une fonction après ça le résultat que va renvoyer cette fonction sera traité par une fonction qui convertira notre nombre "nb" récemment converties à la base 10 à sa base de sortie, autrement dit il faut convertir nb à la base 10 et puis le convertir à la base b2. on doit passer par la base 10

=>tout le traitement sera exécuté par une fonction qu'on va appeler "conv_nb1_b2" et qui va utiliser deux autres fonctions,...
algorithme:
0) Début Fonction conv_nb1_b2
1) a<=conv_nb1_b10(nb1,b1)
2) r<=conv_nb10_b2(a,b2)
3) conv_nb1_b2<=r
4) Fin conv_nb1_b2

La prochaine fois je te donnerai la solution de ces deux fonctions, je suis fatigué pour le moment @+

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

zied2022
Nouveau membre
Inscrit : 09/12/2007
Messages : 1
Message
#146191
Posté le 09/12/07 à 21:34
je vais convertir un nombre base 10 en base 2
exemple:4/10 ->100/2
algorithme conversion
var n:entier
debut
ecrire("introduire un entier")
lire(n)
répéter
n<-n mod 2
ecrire(n)
jusqu'a (n div 2=0)
FIN

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 
POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

PREMIERE PAGE

PAGE PRECEDENTE Page précédente

Page suivante

PAGE SUIVANTE DERNIERE PAGE

FORUM ALGORITHMES



    PAGES : [1] [2]



.: Site Web développé par Julien Pichot et l'équipe MPWG avec www.evolvia-web.com :.