Ecrire un algorithme (en langage naturel)

Réponses à toutes vos questions après le Bac (Fac, Prépa, etc.)
farcry
Messages: 3
Enregistré le: 10 Déc 2018, 22:23

Ecrire un algorithme (en langage naturel)

par farcry » 10 Déc 2018, 22:27

Bonsoir, quelqu'un pourrait-il m'écrire ceci :

Écrire l'algorithme qui a pour entrée un nombre compris entre 0 et 255, affiche ce nombre en base 2.

Exemple : 59 s'écrit 0011 1011 en base 2 ( binaire )


en langage naturel svp.
Merci par avance de votre réponse.



pascal16
Membre Légendaire
Messages: 6663
Enregistré le: 01 Mar 2017, 14:58
Localisation: Angoulème : Ville de la BD et du FFA. gare TGV

Re: Ecrire un algorithme (en langage naturel)

par pascal16 » 10 Déc 2018, 22:36

comment fais-tu pour mettre un nombre en base 2 ?

farcry
Messages: 3
Enregistré le: 10 Déc 2018, 22:23

Re: Ecrire un algorithme (en langage naturel)

par farcry » 10 Déc 2018, 22:48

par une méthode de division

pascal16
Membre Légendaire
Messages: 6663
Enregistré le: 01 Mar 2017, 14:58
Localisation: Angoulème : Ville de la BD et du FFA. gare TGV

Re: Ecrire un algorithme (en langage naturel)

par pascal16 » 10 Déc 2018, 23:00

avec des nombre entier, et la division entière

n/128 = 1 -> on code 1 et on enlève 128 à n
sinon, on code 0
on recommence avec 64


ce qui donne un truc du genre

chaine t= chaine vide
k = 128

entrer n
faire
_si n/k = 1
__ ajouter "1" à t
__ n prends la valeur n-k
_sinon
__ajouter "0" à t
_k=k/2
tant que k>1

afficher t

A tester

farcry
Messages: 3
Enregistré le: 10 Déc 2018, 22:23

Re: Ecrire un algorithme (en langage naturel)

par farcry » 11 Déc 2018, 01:27

Merci!
Donc au début tu initialise la variable t si je comprends bien ?
à la fin il ne faudrait pas rajouter " fin" ?

FLBP
Habitué(e)
Messages: 289
Enregistré le: 25 Aoû 2017, 03:07

Re: Ecrire un algorithme (en langage naturel)

par FLBP » 11 Déc 2018, 09:32

Salut,
si tu veux éviter la division entière tu peux simplement tester si n >= k
(dans le code de pascal16)

Avatar de l’utilisateur
chan79
Modérateur
Messages: 10330
Enregistré le: 04 Mar 2007, 21:39

Re: Ecrire un algorithme (en langage naturel)

par chan79 » 11 Déc 2018, 11:59

salut
on peut aussi faire des divisions successives par 2, en divisant à chaque fois le quotient entier par 2 jusqu'à ce qu'il soit nul.
Les restes donnent l'écriture en base 2.
On n'est pas obligé de se limiter aux nombres inférieurs à 255

Image

Black Jack

Re: Ecrire un algorithme (en langage naturel)

par Black Jack » 11 Déc 2018, 12:09

Voila le programme de Pascal adapté pour Algobox (ce qui n'est pas ce qui est demandé)

Mais ce programme (qui a été testé) permet de voir les quelques petites modifications à faire dans le programme de Pascal pour qu'il fonctionne sans erreurs.

Code: Tout sélectionner
VARIABLES
T EST_DU_TYPE CHAINE
K EST_DU_TYPE NOMBRE
N EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
   AFFICHER "Entrez un nombre entier compris entre 0 et 255"
   LIRE N
   K PREND_LA_VALEUR 128
   T PREND_LA_VALEUR ""
   TANT_QUE (K >= 1) FAIRE
      DEBUT_TANT_QUE
      SI (N >= K) ALORS
         DEBUT_SI
         T PREND_LA_VALEUR T + "1"
         N PREND_LA_VALEUR N-K
         FIN_SI
         SINON
            DEBUT_SINON
            T PREND_LA_VALEUR T + "0"            
            FIN_SINON
            K PREND_LA_VALEUR K/2
      FIN_TANT_QUE
   AFFICHER T


8-)

Avatar de l’utilisateur
chan79
Modérateur
Messages: 10330
Enregistré le: 04 Mar 2007, 21:39

Re: Ecrire un algorithme (en langage naturel)

par chan79 » 11 Déc 2018, 12:14

salut Black Jack
en python (bien-sûr, on ne rentre pas la valeur 0 pour n)

Image

Black Jack

Re: Ecrire un algorithme (en langage naturel)

par Black Jack » 11 Déc 2018, 12:16

Salut Chan.

8-)

pascal16
Membre Légendaire
Messages: 6663
Enregistré le: 01 Mar 2017, 14:58
Localisation: Angoulème : Ville de la BD et du FFA. gare TGV

Re: Ecrire un algorithme (en langage naturel)

par pascal16 » 11 Déc 2018, 13:06

On pourrait discuter sur l'utilité d'un code qui donne en base 2 un nombre déjà stocké en base 2 en mémoire.

Avatar de l’utilisateur
chan79
Modérateur
Messages: 10330
Enregistré le: 04 Mar 2007, 21:39

Re: Ecrire un algorithme (en langage naturel)

par chan79 » 11 Déc 2018, 13:19

pascal16 a écrit:On pourrait discuter sur l'utilité d'un code qui donne en base 2 un nombre déjà stocké en base 2 en mémoire.

c'est vrai
Y a-t-il moyen d'obtenir directement le nombre qui a été stocké en base 2 ?

FLBP
Habitué(e)
Messages: 289
Enregistré le: 25 Aoû 2017, 03:07

Re: Ecrire un algorithme (en langage naturel)

par FLBP » 11 Déc 2018, 13:22

L'exercice ne fait nulle part référence à une mémoire binaire,
mais j'avoue que si on prend cela en compte on a plus quelque chose comme (en python):
Code: Tout sélectionner
taille=8
n = int(input())
b = [0 for _ in range(taille)]
for i in range(taille):
     if n&(1<<i):b[taille-i-1] = 1
print("".join(map(str,b)))

pascal16
Membre Légendaire
Messages: 6663
Enregistré le: 01 Mar 2017, 14:58
Localisation: Angoulème : Ville de la BD et du FFA. gare TGV

Re: Ecrire un algorithme (en langage naturel)

par pascal16 » 11 Déc 2018, 13:36

A ma connaissance, Python ne permet pas de lire directement en base 2 (comme le C++), il existe une fonction "bin()" qui est une conversion intégrée.

Avatar de l’utilisateur
chan79
Modérateur
Messages: 10330
Enregistré le: 04 Mar 2007, 21:39

Re: Ecrire un algorithme (en langage naturel)

par chan79 » 11 Déc 2018, 14:14

Effectivement en python
print(bin(59)[2:]) donne bien 111011
Le [2:] c'est pour éviter le 0b qui se colle à gauche du résultat, je ne sais pas pourquoi.
Merci pascal16

FLBP
Habitué(e)
Messages: 289
Enregistré le: 25 Aoû 2017, 03:07

Re: Ecrire un algorithme (en langage naturel)

par FLBP » 11 Déc 2018, 19:47

pascal16 a écrit:A ma connaissance, Python ne permet pas de lire directement en base 2 (comme le C++), il existe une fonction "bin()" qui est une conversion intégrée.


La fonction bin(int) existe, mais tu pense que les nombres sous python sont stockés en base pi ?

pascal16
Membre Légendaire
Messages: 6663
Enregistré le: 01 Mar 2017, 14:58
Localisation: Angoulème : Ville de la BD et du FFA. gare TGV

Re: Ecrire un algorithme (en langage naturel)

par pascal16 » 11 Déc 2018, 20:08

oui, le format de stockage est binaire, c'est obligatoire en informatique (voir fonction binaires "et" "ou" ...).
Mais rien n'est fait pour afficher les donnés en binaires, c'est de la base 10 le plus souvent, du texte ou de l'hexa .

Les écrans de sortie de bas affichent du texte uniquement, les polices de caractère en mode graphique sont carrément des images vectorielles.

 

Retourner vers ✯✎ Supérieur

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 104 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite