CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Need expert en Shell bash

Disboard
Disboard
Niveau 37
25 mai 2021 à 16:33:35

Salut.

J'ai un devoirs à rendre en Shell bash mais je n'y arrive pas et je ne comprend d'ailleurs pas pourquoi mon code plante :(

Le but est de faire un script qui convertis un nombre décimale en nombre binaire et inversément, la je m'occupe de la partie décimale > binaire

C'est une syntaxe assez basique mais pour le moment on à appris ça comme ça donc prenez le en compte :

" #!/bin/bash " (Je met entre "" car sinon ça met une puce sur JVC)

tab=(0 0 0 0 0 0 0 0)
i=0

echo "Entrer un nombre : "
read nombre

while [ nombre > 0 ]
do
tab[i]=nombre%2
nombre=nombre/2
((i++))
done

echo "Le nombre binaire est = "

while [ i >= 0 ]
do
echo ${tab[i]}
((i--))
done

Je comprend pas pourquoi ça marche pas :(

J'ai remarquer que selon l'espace que je met dans l'incrémentation du nombre dans le while ça plantais :(

J'ai aussi l'impression que le i++ et i-- ne marche pas :(

Disboard
Disboard
Niveau 37
25 mai 2021 à 17:11:29

up :(

pleinsdennuis27
pleinsdennuis27
Niveau 10
25 mai 2021 à 17:15:24

ta première boucle est infini (comme moi https://image.noelshack.com/fichiers/2020/11/1/1583781173-boucltempjesus.png ) car ta variable est toujours > 0

nombre n'est pas incrémenté

Disboard
Disboard
Niveau 37
25 mai 2021 à 17:28:01

Le 25 mai 2021 à 17:15:24 :
ta première boucle est infini (comme moi https://image.noelshack.com/fichiers/2020/11/1/1583781173-boucltempjesus.png ) car ta variable est toujours > 0

nombre n'est pas incrémenté

Comment ça? Il est incrémenté avec " nombre=nombre/2 " et finit par tomber à 0 / en dessous de 0 non? Doit y avoir un truc que je comprend pas dans l'incrémentation :(

pleinsdennuis27
pleinsdennuis27
Niveau 10
25 mai 2021 à 17:34:35

ah oui j'ai dit de la merde, je vais essayer ton programme

LeHuffPost
LeHuffPost
Niveau 10
25 mai 2021 à 17:35:54

ta essaeyr

while(isset(boucle)){

echo 'Cette 10/10 sur 10 ?';

}

pleinsdennuis27
pleinsdennuis27
Niveau 10
25 mai 2021 à 17:41:05

c'est un problème de syntaxe, je règle ça

Disboard
Disboard
Niveau 37
25 mai 2021 à 17:42:32

Le 25 mai 2021 à 17:41:05 :
c'est un problème de syntaxe, je règle ça

Merci !

pleinsdennuis27
pleinsdennuis27
Niveau 10
25 mai 2021 à 17:50:32
#!/bin/bash 

tab=(0 0 0 0 0 0 0 0)
i=8 #!taille de ton tableau

echo "Entrer un nombre : "
read nombre


while (($nombre!=0))
do
	tab[i]=$(($nombre%2))
	nombre=$(($nombre/2))
	let i-- #!décrémente car sinon ça écrit le binaire dans l'ordre inverse
done

echo $nombre en binaire vaut ${tab[@]} #!on affiche tab
Message édité le 25 mai 2021 à 17:55:13 par pleinsdennuis27
Disboard
Disboard
Niveau 37
25 mai 2021 à 18:03:32

Le 25 mai 2021 à 17:50:32 :
#!/bin/bash tab=(0 0 0 0 0 0 0 0) i=8 #!taille de ton tableau echo "Entrer un nombre : " read nombre while (($nombre!=0)) do tab[i]=$(($nombre%2)) nombre=$(($nombre/2)) let i-- #!décrémente car sinon ça écrit le binaire dans l'ordre inverse done echo $nombre en binaire vaut ${tab[@]} #!on affiche tab

Merci ! T'a pas une petite astuce pour enlever les espaces entre chaque 0 et 1 dans le résultat binaire?

Et j'affichais le résultat avec une boucle ,tu crois que c'est possible de la garder ?

Message édité le 25 mai 2021 à 18:04:14 par Disboard
pleinsdennuis27
pleinsdennuis27
Niveau 10
25 mai 2021 à 18:05:55

Le 25 mai 2021 à 18:03:32 Disboard a écrit :

Le 25 mai 2021 à 17:50:32 :
#!/bin/bash tab=(0 0 0 0 0 0 0 0) i=8 #!taille de ton tableau echo "Entrer un nombre : " read nombre while (($nombre!=0)) do tab[i]=$(($nombre%2)) nombre=$(($nombre/2)) let i-- #!décrémente car sinon ça écrit le binaire dans l'ordre inverse done echo $nombre en binaire vaut ${tab[@]} #!on affiche tab

Merci ! T'a pas une petite astuce pour enlever les espaces entre chaque 0 et 1 dans le résultat binaire?

Et j'affichais le résultat avec une boucle ,tu crois que c'est possible de la garder ?

il n'y a pas de quoi khey
oui il y a moyen si tu affiches tab via une boucle for mais il faudra que tu supprimes le retour à la ligne
tout est sur internet blé :oui:

Message édité le 25 mai 2021 à 18:09:30 par pleinsdennuis27
Disboard
Disboard
Niveau 37
25 mai 2021 à 18:13:42

Le 25 mai 2021 à 18:05:55 :

Le 25 mai 2021 à 18:03:32 Disboard a écrit :

Le 25 mai 2021 à 17:50:32 :
#!/bin/bash tab=(0 0 0 0 0 0 0 0) i=8 #!taille de ton tableau echo "Entrer un nombre : " read nombre while (($nombre!=0)) do tab[i]=$(($nombre%2)) nombre=$(($nombre/2)) let i-- #!décrémente car sinon ça écrit le binaire dans l'ordre inverse done echo $nombre en binaire vaut ${tab[@]} #!on affiche tab

Merci ! T'a pas une petite astuce pour enlever les espaces entre chaque 0 et 1 dans le résultat binaire?

Et j'affichais le résultat avec une boucle ,tu crois que c'est possible de la garder ?

il n'y a pas de quoi khey
oui il y a moyen si tu affiches tab via une boucle for mais il faudra que tu supprimes le retour à la ligne
tout est sur internet blé :oui:

Merci, les kheys toujours aussi solide :oui:

pleinsdennuis27
pleinsdennuis27
Niveau 10
25 mai 2021 à 18:23:10

Le 25 mai 2021 à 18:13:42 Disboard a écrit :

Le 25 mai 2021 à 18:05:55 :

Le 25 mai 2021 à 18:03:32 Disboard a écrit :

Le 25 mai 2021 à 17:50:32 :
#!/bin/bash tab=(0 0 0 0 0 0 0 0) i=8 #!taille de ton tableau echo "Entrer un nombre : " read nombre while (($nombre!=0)) do tab[i]=$(($nombre%2)) nombre=$(($nombre/2)) let i-- #!décrémente car sinon ça écrit le binaire dans l'ordre inverse done echo $nombre en binaire vaut ${tab[@]} #!on affiche tab

Merci ! T'a pas une petite astuce pour enlever les espaces entre chaque 0 et 1 dans le résultat binaire?

Et j'affichais le résultat avec une boucle ,tu crois que c'est possible de la garder ?

il n'y a pas de quoi khey
oui il y a moyen si tu affiches tab via une boucle for mais il faudra que tu supprimes le retour à la ligne
tout est sur internet blé :oui:

Merci, les kheys toujours aussi solide :oui:

:oui:

Sous forums
  • Religion
La vidéo du moment