Debian Debian-France Debian-Facile Debian-fr.org Debian-fr.xyz Debian ? Communautés

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 20-03-2019 14:01:10

Barbaclefou
Membre
Inscription : 20-03-2019

Exercice recherche de petit et grand chiffre dans une liste Bash

bonjour,

Je débute sur Bash et je voudrai bien avoir cette logique de programmation.
A l'aide de tableau de droit trouver sur une liste donner le chiffre le plus petit et le plus grand. mais je me mélange les pinceaux

voila ce que j'ai fait désolé pour le brouillon

oui desole voila ecrit


mini=0
maxi=0

read - p "saisir un tableau d'entier : " -a tableaux1
for element in ${!tableaux1[*]};
do
     Echo "${tableaux1[*]};
     if [$mini -gt $tableaux1 ]; then
          mini= $tableau1
     elif [$maxi -lt $tableaux1 ]; then    
          Maxi=$tableau1
     fi
done
echo $maxi
echo $mini



Edit à toto : J'ai édité ton message pour le rendre plus lisible. Je te laisse cliquer sur le lien Modifier au bas à droite de ce post pour voir comment le bb-code est utilisé pour ça.
Voir le tuto : Le code, ça pique moins les yeux en couleur

 

Dernière modification par Barbaclefou (21-03-2019 12:07:06)

Hors ligne

#2 20-03-2019 14:15:09

smolski
quasi...modo
Lieu : AIN
Distrib. : backports (buster) 10
Noyau : Linux 4.19.0-8-amd64
(G)UI : gnome
Inscription : 21-10-2008

Re : Exercice recherche de petit et grand chiffre dans une liste Bash

Salut et bienvenue sur df !

Barbaclefou a écrit :

désolé pour le brouillon


Tu peux plus simplement faire une copie avec la souris de ce qui est écrit et la coller sur le forum directement. wink
Vous aimez les ours blanc : utilisez la ligne de commande au lieu des captures d'écran wink


"Théo et Adama te rappellent pourquoi Zyed et Bouna couraient…"
"L'utopie ne signifie pas l'irréalisable, mais l'irréalisée." - T Monod (source :  La zone de Siné)
"Je peux rire de tout mais pas avec n'importe qui." - P Desproges
"saque eud dun" (patois chtimi : fonce dedans)

Hors ligne

#3 20-03-2019 14:43:02

bendia
Chadministrateur
Distrib. : openSUSE Tumbleweed, Buster
Noyau : Linux 5.9.1-2-default + Linux 4.19.0-12-amd64
(G)UI : Gnome + Console et un peu Fluxbox
Inscription : 20-03-2012
Site Web

Re : Exercice recherche de petit et grand chiffre dans une liste Bash

smolski a écrit :

Tu peux plus simplement faire une copie avec la souris de ce qui est écrit et la coller sur le forum directement.

Pour ajouter à e que dis Smolski,  si vraiment c'est trop long (ce qui ne semble pas être le cas), tu peux aussi utiliser le Paste qu'on héberge. Ça évite ainsi d'aller fricoter avec Google smile


Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.

En ligne

#4 20-03-2019 19:49:17

Barbaclefou
Membre
Inscription : 20-03-2019

Re : Exercice recherche de petit et grand chiffre dans une liste Bash

sniff personne pour un coup de main

Hors ligne

#5 21-03-2019 00:08:38

Beta-Pictoris
Membre
Lieu : Angers
Distrib. : Buster
Inscription : 12-08-2015

Re : Exercice recherche de petit et grand chiffre dans une liste Bash

Tu peux créer une première fonction qui prend le minimum de 2 valeurs. J'utilise l'opérateur ternaire "? :" à la place du "if then else" :

function min() {
    echo $(( $1 < $2 ? $1 : $2 ))
}


Exemple d'utilisation:

min 7 4
 


4


Et une autre qui prend le minimum d'une liste par récursivité :

function minimum() {
    case $# in
        0) echo
            ;;
        1) echo $1
            ;;
        2) min $1 $2
            ;;
        *) minimum $(min $1 $2) ${@:3}
    esac
}
 


A noter pour prendre la valeur minimum d'une liste, on peut aussi trier la liste et prendre le premier élément :

printf "%s\n" ${!tableaux1[*]} | head -1

Dernière modification par Beta-Pictoris (21-03-2019 00:25:38)

Hors ligne

#6 21-03-2019 00:43:03

otyugh
CA Debian-Facile
Lieu : Quimperlé/Arzano
Distrib. : Debian Stable
Inscription : 20-09-2016
Site Web

Re : Exercice recherche de petit et grand chiffre dans une liste Bash

@Barbacle :
Quel est le problème que tu as concrètement ? Dans l'idée ton code marche, je l'aurai fait pareil. Y a juste plein de petites erreurs de synthaxe. Plein - et assez évidentes.

Genre "them" à la place de "then". Ou d'absence d'espace avant ou après le "[" ou "]"


Tu va même plus loin que ce que tu demandes en faisant une opération un peu complexe au début, mais tu fais des erreurs élémentaire d'écriture pour passer les arguments, par exemple.

Ça ressemble beaucoup à des erreurs qu'on ferait en faisante une copie manuscrite de quelque chose qu'on ne comprend pas bien. ^^'

Dernière modification par otyugh (21-03-2019 00:53:31)


datalove-datalove-s1-2.png agendadulibre-lagendadulibre.png arzinfo-arzinfo.png

Hors ligne

#7 21-03-2019 12:05:49

Barbaclefou
Membre
Inscription : 20-03-2019

Re : Exercice recherche de petit et grand chiffre dans une liste Bash

Oui désole quand j'ai recopié, j'ai fait plein d'erreur j'ai un anglais français pour le "them". Pour le reste des erreurs c'est moi qui ai essayé de comprendre et de faire des tests.
Je vais bien regarder le code et surtout le comprendre. merci.

Je vais bien regarde vos explication cette après midi, j'aurai plus de temps

Le problème de mon code que j'ai fait en haut il ne fonctionne pas correctement. Serte la fonction de recherche fonctionne.

Mais j'ai un problème avec mon "écho" qui me donne pas les bonnes valeur et je ne comprend pas cette erreur.

Mettons que je rentre de valeur a mon raid "3 5 4", lui il va me donnée le nombre d’élément "0 1 2"

dans mon
echo max j'ai 2
echo min j'ai 0

Dernière modification par Barbaclefou (21-03-2019 13:47:09)

Hors ligne

#8 21-03-2019 13:44:42

Erutluc
Membre
Inscription : 25-12-2017

Re : Exercice recherche de petit et grand chiffre dans une liste Bash

Salut
Le programme shellcheck est trés utile pour trouver les erreurs de syntaxes.

Hors ligne

#9 21-03-2019 14:36:28

otyugh
CA Debian-Facile
Lieu : Quimperlé/Arzano
Distrib. : Debian Stable
Inscription : 20-09-2016
Site Web

Re : Exercice recherche de petit et grand chiffre dans une liste Bash

Moi j'utilise "set -x" en début de programme, c'est très pédagogique et pratique pour deboguer.

datalove-datalove-s1-2.png agendadulibre-lagendadulibre.png arzinfo-arzinfo.png

Hors ligne

#10 21-03-2019 18:46:35

Barbaclefou
Membre
Inscription : 20-03-2019

Re : Exercice recherche de petit et grand chiffre dans une liste Bash

oui je viens de voir mon erreur. je dois le refaire car il peut avoir plusieurs valeurs dans mes entrées.

Hors ligne

#11 21-03-2019 22:55:22

Barbaclefou
Membre
Inscription : 20-03-2019

Re : Exercice recherche de petit et grand chiffre dans une liste Bash

voila enfin réussi


chiffres=([*])
read -p "saisir un tableau d'entier : " -a chiffres

max=$chiffres
min=$chiffres

for element in ${chiffres[*]};do

  if [ $element -lt $min ]; then
                min=$element
        fi


  if [ $element -gt $max ]; then
    max=$element
  fi

done
echo -e "\n""Note minimal: " $min "\n"
echo "Note maximale: " $max
 

Dernière modification par Barbaclefou (21-03-2019 22:56:48)

Hors ligne

Pied de page des forums