j ai un exo en algorithmique
on doit faire un programme qui converit un nombre nb éentier en decimale (il faut faire les divisions successives de nb par base jusqu a obtenir un quotient nul)
-----
01/11/2015, 22h14
#2
pm42
Date d'inscription
juillet 2015
Messages
14 579
Re : nombre en base de10
On est très content de l'apprendre.
Tu as lu la charte ?
01/11/2015, 23h26
#3
Jack
Modérateur
Date d'inscription
avril 2003
Localisation
Metz
Messages
17 787
Re : nombre en base de10
on doit faire un programme qui converit un nombre nb éentier en decimale
Ca ne veut rien dire. Il ne faut pas mélanger la valeur et la base.
Reviens avec une question et un énoncé plus précis, montre ce que tu as essayé de faire et on verra.
on veut convertir de decimale a une autre base j ai essaye c est commme ca
Code:
algo convertir
var nb entier
n base
ai entier
i entier allant de 0 au p
ap <>0
debut
ecrire( ecrire valeur de nb)
lire (nb)
pour ai allant de 1 au n
faire nb <-- a0+a1*n1+a2*n^2+...+ap*n^p
fin pour
fin
Dernière modification par JPL ; 02/11/2015 à 23h34.
Motif: Ajout de la balise Code (#)
Aujourd'hui
A voir en vidéo sur Futura
02/11/2015, 23h37
#5
Jack
Modérateur
Date d'inscription
avril 2003
Localisation
Metz
Messages
17 787
Re : nombre en base de10
Indente ton code et utilise les balises code car c'est illisible
Code:
pour ai allant de 1 au n
faire nb <-- a0+a1*n1+a2*n^2+...+ap*n^p
fin pour
je ne vois pas trop ce que tu vas tirer de cette boucle. De plus, la variable ai n'est même pas utilisée.
nb <-- a0+a1*n1+a2*n^2+...+ap*n^p
Ca ressemble davantage à une conversion binaire -> décimal, alors que tu cherches l'inverse.
Comme tu en parlais dans ton 1er message, il faut effectivement effectuer des divisions successives par la valeur de la base recherchée et mémoriser les restes. En fait l'algo doit faire ce que tu ferais avec un papier et un crayon.
03/11/2015, 14h27
#6
invite84b34d98
Date d'inscription
janvier 1970
Messages
3
Re : nombre en base de10
Code:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int dec;
int i;
i=1;
int base;
int res;
res=0;
printf("nombre\n ");
scanf("%d",&dec);
printf("base\n ");
scanf("%d",&base);
while(dec!=0)
{
res=res+(i * (dec%base));
dec=dec/base;
i=i*10;
}
printf("\n resultat dans la base %d est %d\n",base,res);
return 0;
}
bon j ai fait ca mais quand j ai ecris le nombre et l base comme par exemple quand je fait 15 dans base de 3 il me donne 30 mais il me doit 03
Dernière modification par JPL ; 03/11/2015 à 17h53.
Motif: Ajout de la balise Code (#) pour garder l'indentation
03/11/2015, 15h59
#7
Jack
Modérateur
Date d'inscription
avril 2003
Localisation
Metz
Messages
17 787
Re : nombre en base de10
Pour le code, s'il n'est pas présenté comme je l'ai rappelé plus haut, je ne le regarde plus.
bon j ai fait ca mais quand j ai ecris le nombre et l base comme par exemple quand je fait 15 dans base de 3 il me donne 30 mais il me doit 03
Normal, puisque ce sont les digits de poids faible qui sortent en premier.
Il suffit donc de les inverser.