Pour
Aujourd'hui, 19h34
disedorgue
Je travail avec des chiffres à 3 décimales, le dilemme ne se posera pas. Ici j'ai simplifié le problème pour ne pas faire trop lourd....
Pour
Aujourd'hui, 19h34
disedorgue
Je travail avec des chiffres à 3 décimales, le dilemme ne se posera pas. Ici j'ai simplifié le problème pour ne pas faire trop lourd....
Ah !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $ printf -v XX '%.2f%s' 8 + 6 + 6,2 + 12 + 0,8 $ printf -v YY '%.2f%s' 5 $ printf %.10f\\n "$((10**9 * (${XX//,/})/${YY//,/}))e-9" bash: 10**9 * (800+600+620+1200+080 : valeur trop grande pour la base (le symbole erroné est «*080*»)
Euh !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $ printf -v XX '10#%.2f%s' 8 + 6 + 6.2 + 12 + 0.8 $ printf -v YY '10#%.2f%s' 5 $ printf %.10f\\n "$((10**9 * (${XX//./})/${YY//./}))e-9" 6.6000000000
Cordialement.
Perso, pour moi, c'est juste pour le fun, car si une prod refuse d'installer une commande comme bc, bah, qu'elle se débrouille toute seule...
PS: quelqu'un se lance pour la version built-in, c'est un bon exercice de vacances (pour les débutant ) ?
Cordialement.
Oula oula, le sujet était tout autre '-_-
On attend toujours votre code, cher ami.
Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.
Il faudrait faire un test de comparaison.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 awk '/#|^ *$/{next;} {v[$1]+=$2;n[$1]++;} END{for (i in n) print i,v[i]*1.0/n[i];}' groupe.txt > means_of_groupe.txt # Je me retrouve avec deux fichiers. #colone contenant les valeur a comparer awk '{print $2} ' groupe.txt > temp1.txt awk '{print $2} ' means_of_groupe.txt > temp2.txt
Je ne vois pas du tout comment faire la comparaison si ce n'est qu'en grand des listes de fichiers temporaires
Mouais, c'est un peu ce qu'on dit tous depuis le départ...
Ah ben c'est sûr, si tu dumpes chaque étape dans un fichier intermédiaire, tu te retrouveras à la fin avec autant de fichiers que d'étapes Tu ne connais pas les variables ? Et les tableaux ?? Et les pipes ??? Et le moyen de récupérer le résultat des commandes ???? Plus simplement: tu connais quoi en shell ?
Relis mon premier post. C'est pas compliqué mais... https://vimeo.com/manage/videos/733951159...
Mon Tutoriel sur la programmation «Python»
Mon Tutoriel sur la programmation «Shell»
Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
Et on poste ses codes entre balises [code] et [/code]
C'est tout à fait cela je risque de passer de fichiers temporaires en fichiers temporaires. J'ai pas de connaissance poussé c'est vrai désolé '-_- . C'est pour cela que je pose ma question ici
Oui mais enfin, il y a des limites et généralement ces limites (basses ici) correspondent aux limites hautes données par les tutos.
Parce que là, il n'y a que 3 solutions
- on te fait le code
- on te dit quoi faire étape par étape, avec à chaque fois la ligne de code correspondant (ok on fait le code donc)
- on te dit de prendre un tuto shell et le lire. C'est d'ailleurs écrit dans les règles
Sinon rien n'interdit de passer par des fichiers temporaires. Si ça te convient et que ça fonctionne...
Mon Tutoriel sur la programmation «Python»
Mon Tutoriel sur la programmation «Shell»
Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
Et on poste ses codes entre balises [code] et [/code]
Passer par des fichiers temporaires cela fait très redondant, mais si tu as des fonctions à me conseiller pour ce cas, j'irai voir sur Google
Je confirme !!!
Résultat
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 while read ligne; do echo "$ligne" done <temp2.txt
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 2 4,75 1 7,9Résultat
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 while read ligne; do echo "$ligne" done < <(cut -f2 -d' ' means_of_groupe.txt
Ce n'est pas "pour ce cas" mais "pour tous les cas" !!! Tout langage de programmation se veut général. Comment lire des lignes, extraire une info de la ligne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 2 4,75 1 7,9
Lire un fichier ligne par ligne
Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 while read ligne; do ... (traitement $ligne)... done <fichier
Cela permet de comprendre cette instruction similaire mais qui lira une "commande" au lieu de lire un fichier
(l'espace entre "< <" est important)
Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 while read ligne; do ... (traitement $ligne)... done < <(commande)
Récupérer une info X au milieu d'une string: infoX="$(echo "string" |cut ...)" (évidemment ça implique que la string est foutue de façon à pouvoir facilement repérer l'infoX)
Le reste ce n'est plus ensuite que stocker et comparer.
Et pour les moteur de recherche (pas de nom=pas de pub), la recherche que tu dois taper c'est "tutoriel shell débutant".
Mon Tutoriel sur la programmation «Python»
Mon Tutoriel sur la programmation «Shell»
Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
Et on poste ses codes entre balises [code] et [/code]
Merci je vais décortiquer tout cela...
Pour moi, read et cut pour un usage de champs, c'est déjà redondant surtout ici, ou le fichier de base est constituer de 3 champs, read c1 c2 c3 par exemple fait largement l'affaire.
Cordialement.
Mon Tutoriel sur la programmation «Python»
Mon Tutoriel sur la programmation «Shell»
Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
Et on poste ses codes entre balises [code] et [/code]
upmoyenne=5
orange=4
prune=4
citron=6
On choisit quoi ????
Prière de répondre.
Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.
Au final, tu ne codes rien de peur de faire du sale ? On apprend en codant (pas recopiant) et faire des erreurs fait partie du processus normal.
Tu as maintenant la moyenne par groupe, à toi de coder (même maladroitement), on est ici pour t'aider justement à faire plus propre (mais plus propre que "rien", c'est difficile ).
Au départ
Maintenant que tu as la moyenne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 #Groupe - Valeur - Fruit 1 20 Orange 1 10 Banane 2 100 Pomme 2 10 Banane
Il devient "facile" de calculer la distance entre la "valeur" et la moyenne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 #Groupe - Valeur - Fruit - moyenne_groupe 1 20 Orange 18 1 10 Banane 18 2 110 Pomme 40 2 10 Banane 40
Cool, la plus petite "distance" gagne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 #Groupe - Valeur - Fruit - moyenne_groupe - distance 1 20 Orange 18 20-18 2 1 10 Banane 18 18-10 8 2 110 Pomme 40 110-40 70 2 10 Banane 40 40-10 30
$moi= ( !== ) ? : ;
J'ai simplifié l'énoncer, je travaille avec des nombres à virgule avec 3 décimales -_-.
Voici le vrai fichier, groupe.txt
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 1 8 Orange 1 6,5 Banane 1 6,2 Pomme 1 12 Abricot 1 7 Mure 2 4 Pomme 2 6 Banane 2 6 Abricot 2 3 Mure
Sauriez-vous comment extraire le nom du fruit, qui se trouve le plus proche de la moyenne (colonne 2) pour son groupe (colonne 1) ?
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager