Vérififaction d'un tout ptit algo
Fermé
Anildar
-
7 sept. 2008 à 14:18
artragis Messages postés 481 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 6 avril 2010 - 7 sept. 2008 à 20:01
artragis Messages postés 481 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 6 avril 2010 - 7 sept. 2008 à 20:01
A voir également:
- Vérififaction d'un tout ptit algo
- Telecharger algo pour pc - Télécharger - Édition & Programmation
- Algo prono - Télécharger - Sport
- ALGO ET PASCAL - Forum Pascal
- Aide : algo palindrome - Forum Programmation
- Demande d'algo Mastermind - Forum Programmation
4 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
7 sept. 2008 à 18:46
7 sept. 2008 à 18:46
Salut,
Vos algo me semblent faux.
Il y a sinon une méthode plus simple pour convertir en binaire : la division successive.
Push permet d'insérer ret (la retenue) à la première position de nombreBin.
J'ai vraiment fait l'algo à l'arrache, donc pas de commentaires, et peut-être erreur d'inattention.
Cdt
Vos algo me semblent faux.
Il y a sinon une méthode plus simple pour convertir en binaire : la division successive.
Debut Var nombreBin="" Var nombreDec Afficher ("Choix du nombre décimal à convertir en binaire") Saisir(nombreDec) diviseur=nombreDec Tant que diviseur>0 Faire ret<--diviseur mod 2 push(nombreBin,ret) diviseur<--diviseur / 2 FinTantQue Afficher (nombreBin) Fin
Push permet d'insérer ret (la retenue) à la première position de nombreBin.
J'ai vraiment fait l'algo à l'arrache, donc pas de commentaires, et peut-être erreur d'inattention.
Cdt
Salut, Merci beaucoup pour toutes tes explications :)
en fait on a vu tout les operateur de maniere théorique et donc j'avais pas encore vu cela : variable<==affectation
Par contre il y a quelque chose que je comprend pas.
tu as transformé mon 10 en 2, mais si je fais ca, ca fonctionne plus ?!
J'ai refais plein de fois le calcul, et par exepmle avec 5 :
5 div 2 = 2
5 mod 2 = 1
2 div 2 = 1
2 mod 2=0
1 div 2 = 0
1 mod 2=1
resultat = 1*10^0 + 0*10^1 + 1*10^2 = 1 + 0 + 100 = 101 Là j'ai bien mon chiffre en binaire.
tandis que : resultat = 1*2^0 + 0*2^1 + 1*2^2 = 1 + 0 + 4 = 5 ^^
donc ca j'ai pas trop compris...
Voilà, Merci d'avance :)
en fait on a vu tout les operateur de maniere théorique et donc j'avais pas encore vu cela : variable<==affectation
Par contre il y a quelque chose que je comprend pas.
tu as transformé mon 10 en 2, mais si je fais ca, ca fonctionne plus ?!
J'ai refais plein de fois le calcul, et par exepmle avec 5 :
5 div 2 = 2
5 mod 2 = 1
2 div 2 = 1
2 mod 2=0
1 div 2 = 0
1 mod 2=1
resultat = 1*10^0 + 0*10^1 + 1*10^2 = 1 + 0 + 100 = 101 Là j'ai bien mon chiffre en binaire.
tandis que : resultat = 1*2^0 + 0*2^1 + 1*2^2 = 1 + 0 + 4 = 5 ^^
donc ca j'ai pas trop compris...
Voilà, Merci d'avance :)
artragis
Messages postés
481
Date d'inscription
mardi 12 juin 2007
Statut
Membre
Dernière intervention
6 avril 2010
146
7 sept. 2008 à 14:45
7 sept. 2008 à 14:45
bon, si tu veux faire un algorithme lisible n'utilise le "=" que dans les test (si, while, for, else if, until) sinon utilise ça
variable<==affectation
une bonne habitude est de mettre des commentaire aussi, surtout dans les petits programmes, et aussi déterminer à quoi sert chaque variable, c'est bien pour t'y retrouver après.
donc
sinon le but c'est de prendre un papier et de faire ce que j'ai ton nombre
j'ajouterai qu'ici, il te fait aussi rajouter une clause disant "si nombre>0" car sinon je peux faire la même chose avec -24 par exemple, pourtant ton résultat sera le même que si on avait pris 24, même si un ordi ne lit pas de "-" bas autant le rajouter, ou alors faire en sorte que le résultat ne soit pas le même.
variable<==affectation
une bonne habitude est de mettre des commentaire aussi, surtout dans les petits programmes, et aussi déterminer à quoi sert chaque variable, c'est bien pour t'y retrouver après.
donc
Programme Binaire Var entier nombre //le nombre lu reste //le reste de la dvision par 2 puissance=0 //la puissance qui est ainsi testée string (chaine de caractère) resultat="" //ce sera le nombre binaire Début -----Afficher("Entrez une valeur numérique :") -----Saisir(nombre) -----TantQue nombre <> 0 ----------nombre<==nombreDIV2 ----------reste<==nombreMOD2 ----------resultat<==resultat+(reste*2^puissance) //j'ai modiifé ton 10 en 2 car sinon ça sert à rien... ton but est de faire en puissance de 2 ----------puissance+1=puissance -----FinTantQue -----Afficher("Votre nombre en binaire est:", resultat) Fin
sinon le but c'est de prendre un papier et de faire ce que j'ai ton nombre
j'ajouterai qu'ici, il te fait aussi rajouter une clause disant "si nombre>0" car sinon je peux faire la même chose avec -24 par exemple, pourtant ton résultat sera le même que si on avait pris 24, même si un ordi ne lit pas de "-" bas autant le rajouter, ou alors faire en sorte que le résultat ne soit pas le même.
artragis
Messages postés
481
Date d'inscription
mardi 12 juin 2007
Statut
Membre
Dernière intervention
6 avril 2010
146
7 sept. 2008 à 20:01
7 sept. 2008 à 20:01
Programme Binaire Var entier nombre //le nombre lu reste //le reste de la dvision par 2 string (chaine de caractère) resultat="" Début -----Afficher("Entrez une valeur numérique :") -----Saisir(nombre) -----TantQue nombre <> 0 ----------reste<==nombreMOD2 ----------nombre<==nombreDIV2 ----------resultat<==reste + resultat//ce qui est plus élégant et plus facile à comprendre avec ta méthode, je l'avoue -----FinTantQue -----Afficher("Votre nombre en binaire est:", resultat) Fin
oui j'avais bien fait quelques erreur, notament en laissant ta phase ave les puissances de 10 ça alourdi un algorithme qui peut être très simple quand il est géré avec des string.
Quant aux => c'est utilisé en algorithmie pour ne pas se tromper, car en algo ou en prog x=y n'est pas l'équivalent de y=x, la première signifie qu'on sonne à x la valeur de y (souvent calculée au préalable) et inverse dans la seconde, ce qui permet d'avoir des opérations gnere x=x+1 donc le ==> est juste plus clair que le = (en prog tu verras souvent une diférence avec x=affectation et x==valeur à testée)
en somme fait confiance à fiddy, son algo est bon et le style aussi.