Inscription / Connexion Nouveau Sujet
Niveau école ingénieur
Partager :

Algorithme : Conversion en binaire

Posté par
mankathada
07-03-17 à 12:26

Bonjour, comment allez-vous ?

Voilà en ce moment j'essaie de résoudre un algorithme de mon td mais je suis bloqué.

Je vous donne l'énoncé :

Ecrire un sous-programme récursif qui convertit un nombre décimal entier positif n en binaire.

PS : j'écris mes algos dans un langage pseudo code imposé par mon prof, mais rien ne vous empeche d'écrire avec votre propre langage pseudo-code, je saurais y m'adapter.

Merci de m'aider

Posté par
J-P Posteur d'énigmes
re : Algorithme : Conversion en binaire 07-03-17 à 16:27

Zut, j'ai loupé le mot "récursif" en lisant l'énoncé.

Voila quand même ce que j'ai écrit sous Algobox (à triturer si on veut rendre l'algo récurcif).

VARIABLES
decimal EST_DU_TYPE NOMBRE
n EST_DU_TYPE NOMBRE
i EST_DU_TYPE NOMBRE
m EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
LIRE decimal
SI (decimal == 0) ALORS
	DEBUT_SI
	AFFICHER "0"
	FIN_SI
SINON
  DEBUT_SINON
	n PREND_LA_VALEUR 0
	TANT_QUE (pow(2,n) <= decimal) FAIRE
		DEBUT_TANT_QUE
		n PREND_LA_VALEUR n+1
		FIN_TANT_QUE
		n PREND_LA_VALEUR n-1
    	AFFICHER "1"
    	decimal PREND_LA_VALEUR decimal - pow(2,n)
    	m PREND_LA_VALEUR n
    	POUR i ALLANT_DE 1 A n
    		DEBUT_POUR
    		m PREND_LA_VALEUR m-1
    		SI ((pow(2,m) <= decimal)) ALORS
    			DEBUT_SI
    			AFFICHER "1"
    			decimal PREND_LA_VALEUR decimal - pow(2,m)
    			FIN_SI
    		SINON
    		  	DEBUT_SINON
    		  	AFFICHER "0"
    		  	FIN_SINON
    		FIN_POUR
  FIN_SINON
FIN_ALGORITHME 


Posté par
fm_31
re : Algorithme : Conversion en binaire 07-03-17 à 19:29

Bonjour ,

ma procédure (python) peut sans doute être améliorée car elle nécessite un complément dans le programme principal mais elle montre toute la puissance de la récursivité .

Cordialement

Algorithme : Conversion en binaire

Posté par
fm_31
re : Algorithme : Conversion en binaire 07-03-17 à 21:34

Une petite amélioration : procédure indépendante mais en 2 parties dont une récursive  (toujours en python).

Algorithme : Conversion en binaire

Posté par
mankathada
re : Algorithme : Conversion en binaire 07-03-17 à 21:34

Bonsoir,


Merci j'analyserai avec méticulosité vos algo qui m'ont l'air très bien d'ailleurs.
Merci beaucoup en tout cas.

Posté par
fm_31
re : Algorithme : Conversion en binaire 08-03-17 à 09:50

Enfin  la version que je cherchais : une seule fonction  (fallait juste ajouter une variable bit)
Reste à voir si on peut supprimer la globale .

Algorithme : Conversion en binaire

Posté par
mankathada
re : Algorithme : Conversion en binaire 08-03-17 à 12:29

salut

je te remercie

Posté par
fm_31
re : Algorithme : Conversion en binaire 08-03-17 à 14:39

de rien car c'est un exemple simple de l'usage de la récursivité que je ne connaissais pas .

Bonne continuation  .

Posté par
fm_31
re : Algorithme : Conversion en binaire 09-03-17 à 08:32

Au fait , as-tu réussi à supprimer la nécessité de la variable globale ?  Ce n'est pas très compliqué  .

Posté par
mankathada
re : Algorithme : Conversion en binaire 12-03-17 à 14:07

Bonjour,

Au fait on l'a corrigé cette semaine,  et au fait le sous programme était assez simple, en 5  lignes l'algo était réglé.

Mais merci quand meme pour ton aide, car je m'entraine aussi à reproduire sur C++ les algos rédigés en classe.

Si j'ai un souci je pourrais toujours voir sur ton modèle.

Posté par
fm_31
re : Algorithme : Conversion en binaire 12-03-17 à 14:57

On peut souvent condenser les programmes mais ils perdent en lisibilité .
En 3 lignes , on a par exemple (mais pas très lisible) :

Algorithme : Conversion en binaire

Posté par
mankathada
re : Algorithme : Conversion en binaire 12-03-17 à 15:01

Je m'y connais pas trop en python,  mais  je pense ça ressemble à ce qu'on a fait en correction.

Merci beaucoup en tout cas



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1741 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !