sabato 2 luglio 2011

Indice di massa corporea :D

Salve!

La prossima settimana, forse, andrò qualche giorno al mare. Il "forse" è d'obbligo. La mia bilancia, infatti, non mi considera un soggetto idoneo per la prova costume :( L'alternativa sarebbe di andare lo stesso al mare, ma indossando la muta. Vediamo un pò. Che poi la muta è nera e il nero snellisce! :D

Tuttavia il peso è un valore relativo, in quanto va rapportato all'altezza. Introduco, così, il concetto di IMC

L'indice di massa corporea (IMC appunto) esprime il rapporto tra peso e altezza di un individuo (adulto). Il risultato di questo rapporto, poi, va confrontato con i valori di una  tabella fornita dall'OMS al fine di individuare il proprio stato di salute: peso forma, sovrappeso, sottopeso, etc.

 Passiamo alla formula.

IMC=p/h^2  #peso (espresso in kg) fratto l'altezza al quadrato (espressa in m)

L'idea di poter smentire l'oracolo della bilancia mi ha reso euforico! Ed è stato questo il motivo per cui ho creato uno script che ho nominato "imc".

Questo script, il cui risultato è molto approssimativo, risolve l'espressione di cui sopra e confronta l'imc con i valori della tabella dell'OMS stampando a video il verdetto. Ripeto, il risultato non va preso come oro colato.

Ecco il testo dello script

#!/bin/bash
#Autor: Bit3Lux
#Indice di massa corporea per individui adulti

echo "Dimmi il tuo peso in kg. Esempio: 65"
read peso
echo "dimmi la tua altezza in m. Esempio: 1.70"
read altezza

a=$(echo $altezza^2 | bc)
mic=$(echo $peso/$a | bc)

echo "il tuo indice di massa corporea è pari a $mic"

if [ $mic -ge 40 ]; then
   echo "Sovrappeso di terzo grado. devi metterti a dieta seriamente"

elif [ $mic -ge 35 ]; then
   echo "Sovrappeso di secondo grado. mettiti a dieta!"

elif [ $mic -ge 30 ]; then
   echo "Sovrappeso di primo grado. mettiti a dieta!"

elif [ $mic -ge 25 ]; then
   echo "sovrappeso. Dieta! :D"

elif [ $mic -ge 18 ]; then
   echo "sei OK!!!! Ti invidio"

elif [ $mic -le 18 ]; then
   echo "devi ingrassare!!! Mangia :D"
fi

echo "i valori di questo script sono molto approssimativi"

exit 0

Va salvato su un file di testo, sulla scrivania, e nominato imc.sh

aperto il terminale, ci spostiamo sulla scrivania con

$ cd Scrivania

e lo rendiamo eseguibile

$ chmod +x imc.sh

lanciamo lo script

$ ./imc.sh

Dopo aver risposto alle domande, otterrete il verdetto. Il mio è stato molto salato :((

Vedete? :(


PS1. I dati della tabella li ho presi da wikipedia (qui); o forse dovrei dire che mi sono ispirato a quei dati... :D
PS2. Sarebbe bello se l'amico Juhan realizzasse qualcosa di simile nel suo linguaggio (python) :D :D
PS3. Sicuramente il caro Lightuono dirà che si può fare di meglio. Lo so! Per questo ho anticipato il tuo commento. :D
PS4. Nonostante il crudele verdetto, ho mangiato una pizza stracarica di mozzarella di bufala accompagnata da mezzo litro di vino, senza contare il cannolo siciliano :D


Ciao :D

22 commenti:

  1. Ottimo ma: ho obiezioni di fondo e metodocogiche, come vado a illustrare.
    1) Bilance, OMS, la dietista di una mia amica e adesso scopro anche Wikipedia ce l'hanno con me. Bit3Lux non ti ci mettere anche te, per favore.
    2) Siccome il tuo script fa esattamente quello che deve fare (mentendo, non è vero che sono sovrappeso) non è necessario ricorrere a Python. Se proprio uno volesse potrebbe usare calc o bc, tools che ho illustrato recentemente. Se poi volesse strafare ci sarebbe anche dc (prossimamente lo presento).
    3) Certo che se uno volesse far pratica con Python potrebbe; così come con qualsiasi altro linguaggio di scripting o compilato.
    4) Io al mare non ci vado anche per noiosi problemi personali; il costume non devo metterlo; il nero assorbe tutte le lunghezze d'onda della luce, quindi fa più caldo.
    5) La bellezza (e l'obesità) è nell'occhio di chi guarda.

    RispondiElimina
  2. @Juhan
    Caspita, mi hai dato molti spunti su cui riflettere. Scopro, con grande stupore, che anche l'obesità è nell'occhio di chi guarda; un pò come la trave o la pagliuzza o cose del genere. Ma poi se vai sulla luna non c'è neanche la forza di gravità. DC? Per un pò ho temuto, poi ho capito che non si tratta affatto di quella roba lì. :)

    RispondiElimina
  3. Si impara sempre qualcosa, se sei di mente aperta. No, dc è una delle meraviglie di Unix/Linux, prossimamente...

    RispondiElimina
  4. Dunque dunque qui si parla di pesi e pesi. Ma io ieri che ho mangiato 3 fette di torta, come sono messso ora ? haha XD

    Questa sera mi posterò il risultato dello script e ne vedremo delle belle :)

    RispondiElimina
  5. Una cattiveria da prof. bastardo di quelli che non dimenticherai per tutta la vita (io ho una lista troppo lunga).

    Vado?
    Ecco: Si lascia al lettore la versione dello script che non usa bc ma expr. Ovviamente l'altezza dovrà essere espressa in cm invece che m; il lettore stesso dovrà altresì dire il perché. Si richiede inoltre una valutazione comparata tra le due versioni.

    Ma un momento: 1) non voglio finire in quella lista di nessuno: io sono (fondamentalmente) un buono; 2) è domenica e ora sta anche iniziando a far caldo.
    Laonde per cui: non si consideri questo commento.

    RispondiElimina
  6. @Lightuono
    Ma il bello sai qual è? E' il peso specifico! Quello rimane sempre lo stesso :D :D :D

    RispondiElimina
  7. @Juhan
    No caro Juhan, ormai lo hai scritto e quindi il commento è perfettamente valido. Penso che il quesito che poni sia azzeccatissimo. Ti dirò di più, sei stato troppo buono a fare quella precisazione (l'altezza in cm) :D Io, ad esempio, non l'avrei fatta ;)

    RispondiElimina
  8. @Bit3Lux

    Sei pronto alla modifica dello script secondo le indicazioni del grande @Juhan?

    RispondiElimina
  9. @Lightuono
    s/grande/grosso/
    o in alternativa s/grande/obeso/
    Ma a parte quello ci sarebbe ancora da affrontare il problema del separatore decimale "," al posto di "." e poi, se vuoi, ci penso su. Ma fa caldo e se non sbaglio voi siete vicino al mare. Dai!

    RispondiElimina
  10. La mia shell mi ha risposto cosi:


    picchio@Linuxbox ~/Scaricati $ ./IMC.sh
    Dimmi il tuo peso in kg. Esempio: 65
    100
    dimmi la tua altezza in m. Esempio: 1.70
    1.86
    il tuo indice di massa corporea è pari a 28
    sovrappeso. Dieta! Ma visto che mi piaci cosi fai quello che ti pare :D
    i valori di questo script sono molto approssimativi
    picchio@Linuxbox ~/Scaricati $

    PS: davvero un ottimo scriptino :D

    RispondiElimina
  11. @Picchio
    Non mi dire! Quasi sei alto quanto me. :D :D Anche col peso non scherzi. Vedi? Devi mangiare meno dolci ahahhahah
    "ma visto che mi piaci così, fai quello che ti pare" questa frase non è farina del mio sacco. LOL
    Tranquillo Picchio, Oltre a me anche Lightuono e Juhan hanno lo stesso problema di peso. LOOOOL

    RispondiElimina
  12. Ma io ancora non mi sono pesato XD XD

    RispondiElimina
  13. @Lightuono
    e faresti meglio a non farlo :D :D LOOOL

    RispondiElimina
  14. lightuono@plutone:~$ ./imc.sh
    Dimmi il tuo peso in kg. Esempio: 65
    76
    dimmi la tua altezza in m. Esempio: 1.70
    1.75
    il tuo indice di massa corporea è pari a 24
    sei OK!!!! Ti invidio
    i valori di questo script sono molto approssimativi

    RispondiElimina
  15. @Lightuono
    Ma non è possibile!!!!!! Ci sarà qualche errore LOOOL
    Chissà quale sarà stato il responso di Juhan? #soncurioso :D

    RispondiElimina
  16. Verifichiamo se c'è qualche bug.. ahahahahhaha LOL

    RispondiElimina
  17. * : Scrivania $ chmod +x imc.sh
    * : Scrivania $ ./imc.sh
    Dimmi il tuo peso in kg. Esempio: 65
    102
    dimmi la tua altezza in m. Esempio: 1.70
    1.82
    il tuo indice di massa corporea è pari a 30
    Sovrappeso di primo grado. mettiti a dieta!
    i valori di questo script sono molto approssimativi
    * : Scrivania $

    RispondiElimina
  18. @Juhan
    Io, tu e picchio siamo rovinati! Hai visto il responso dato dallo script a Lightuono? Secondo me Lui ha inserito dati falsi, non si spiega diversamente!!! :D

    RispondiElimina
  19. Vogliamo la foto di Lightuono! (in costume)
    Se vuole me la può mandare che la pubblico nel mio blog

    RispondiElimina
  20. @Juhan
    Si la vogliamo! Pure io la pubblicherò sul mio blog! Del resto, è un modo come un altro per conoscerlo meglio. :D

    RispondiElimina
  21. ...e questo l'output della mia shell:


    vladi@debian:~$ ./imc.sh
    Dimmi il tuo peso in kg. Esempio: 65
    84
    dimmi la tua altezza in m. Esempio: 1.70
    1.87
    il tuo indice di massa corporea è pari a 24
    sei OK!!!! Ti invidio
    i valori di questo script sono molto approssimativi

    Bellissimo script, chissà che pian piano pure io.. col tempo.. :))

    RispondiElimina
    Risposte
    1. In queste cose ci vuole un pò di passione! E a te non manca :))

      Elimina