duvidas em 2 exercícios em Shell script [RESOLVIDO]

1. duvidas em 2 exercícios em Shell script [RESOLVIDO]

thiago altair coli
tikosk8

(usa Outra)

Enviado em 22/09/2016 - 08:42h

bom dia , pessoal não sou muito bom em shell script ainda mas ja consigo fazer alguns exercicios mas nao estou conseguindo fazer esses dois se alguem puder me ajudar eu agradeço:
1) Faça um Script que obtenha a idade de uma pessoa e verifica se uma pessoa é maior ou menor de idade, mostre uma mensagem com a sua situação

2) O índice da massa corpórea (IMC) é usado pelos nutricionistas para determinar se estamos magros ou acima do peso. Faça um algoritmo que calcule o IMC de uma pessoa qualquer, dada sua altura e peso. O IMC é calculado como peso em kg, dividido pelo quadrado da altura, em metros:
A situação de uma pessoa é baseada na tabela abaixo:
IMC Situação
<= 18.5 Magro
> 18.5 e <= 25 Peso Normal
> 25 e <= 30 Acima do Peso
> 30 Obeso

Utilizando a tabela acima, mostre qual é a situação dessa pessoa



  


2. Re: duvidas em 2 exercícios em Shell script [RESOLVIDO]

William Amaral de Souza
Williamm

(usa Linux Mint)

Enviado em 24/09/2016 - 22:17h

Os meus favoritos antes de qualquer duvida..

http://www.guiafoca.org/

https://www.vivaolinux.com.br/dica/Aulas-Shell-Script-do-zero-Parte-1

http://www.devin.com.br/shell_script/

Começa teu script e posta as duvidas..


3. Re: duvidas em 2 exercícios em Shell script

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 24/09/2016 - 22:25h

tikosk8 escreveu:

bom dia , pessoal não sou muito bom em shell script ainda mas ja consigo fazer alguns exercicios mas nao estou conseguindo fazer esses dois se alguem puder me ajudar eu agradeço:
1) Faça um Script que obtenha a idade de uma pessoa e verifica se uma pessoa é maior ou menor de idade, mostre uma mensagem com a sua situação

2) O índice da massa corpórea (IMC) é usado pelos nutricionistas para determinar se estamos magros ou acima do peso. Faça um algoritmo que calcule o IMC de uma pessoa qualquer, dada sua altura e peso. O IMC é calculado como peso em kg, dividido pelo quadrado da altura, em metros:
A situação de uma pessoa é baseada na tabela abaixo:
IMC Situação
<= 18.5 Magro
> 18.5 e <= 25 Peso Normal
> 25 e <= 30 Acima do Peso
> 30 Obeso
Utilizando a tabela acima, mostre qual é a situação dessa pessoa


----------------------------------------------------------------------------------------
1º Exercicio:


#!/bin/bash
AC=$(date +%Y)
MC=$(date +%-m)
NDC=$(date +%-j)
CVD="\x1b[0;38;5;118m"
CVM="\x1b[0;38;5;196m"
CF="\x1b[m"
COLS=$(tput cols)

Lin() { printf '%*s' "$((COLS/2))" '' | sed "s/ /—/g" ;echo; }

tput clear
read -p " NOME: " -e NOME
echo -en " Data de Nascimento.\n DIA/MES/ANO: "
read -n2 DIA;read -p "/" -n2 MES;read -p "/" -n4 ANO
#VALIDA DATA
DM=$(cal "$MES" "$ANO"|egrep -wo '([0-9]{2})'|tail -n1)
(("$DIA" > "$DM")) && { echo -e ""$CVM"\n\n Data:$DIA/$MES/$ANO INCORRETA\n MêS \"$MES\" TêM $DM DIAS"$CF"\n" ; exit 0 ; }
DIA=$(sed 's/^0//' <<< "$DIA")
MES=$(sed 's/^0//' <<< "$MES")
#CALCULA IDADE
NDIA=$(date -d "$ANO-$MES-$DIA" +%-j)
if [[ $AC -gt $ANO && $MC -ge $MES && $NDC -ge $NDIA ]];then
IDD=$((AC-ANO))
else
IDD=$(((AC-ANO)-1))
fi


echo -e "\n\n $(Lin)"
if (($IDD>=18));then
echo -e "$CVD É MAIOR DE IDADE.$CF"
else
echo -e "$CVM É MENOR DE IDADE.$CF"
fi
((IDD<1)) && IDD="menos de 01 ano" || IDD="$IDD ano(s)"
echo -e " $NOME tem "$IDD".\n $(Lin)\n"

CARACTERISTICAS:
VERIFICA se a DATA é VáLIDA
MOSTRA somente a idade completa, isto é, se já fez aniversário no ano corrente.

Copie, cole no editor de TEXTOS, salve com o nome IDADE.sh, e, de permissão de execução.
EXEMPLO:
chmod +x IDADE.sh
Pronto....

att.:
Marcelo Oliver




4. Re: duvidas em 2 exercícios em Shell script [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 24/09/2016 - 22:50h

http://i.imgur.com/NLji5nx.jpg


5. Re: duvidas em 2 exercícios em Shell script [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 26/09/2016 - 12:34h

tikosk8 escreveu:

bom dia , pessoal não sou muito bom em shell script ainda mas ja consigo fazer alguns exercicios mas nao estou conseguindo fazer esses dois se alguem puder me ajudar eu agradeço:
1) Faça um Script que obtenha a idade de uma pessoa e verifica se uma pessoa é maior ou menor de idade, mostre uma mensagem com a sua situação

2) O índice da massa corpórea (IMC) é usado pelos nutricionistas para determinar se estamos magros ou acima do peso. Faça um algoritmo que calcule o IMC de uma pessoa qualquer, dada sua altura e peso. O IMC é calculado como peso em kg, dividido pelo quadrado da altura, em metros:
A situação de uma pessoa é baseada na tabela abaixo:
IMC Situação
<= 18.5 Magro
> 18.5 e <= 25 Peso Normal
> 25 e <= 30 Acima do Peso
> 30 Obeso

Utilizando a tabela acima, mostre qual é a situação dessa pessoa

-----------------------------------------------------------------------------------
2º EXERCICIO
#!/bin/bash
CVD="\x1b[0;38;5;118m"
CVM="\x1b[0;38;5;196m"
CAM="\x1b[0;38;5;11m"
CF="\x1b[m"
COLS=$(tput cols)

Lin() { printf '%*s' "$((COLS/4))" '' | sed "s/ /—/g" ;echo; }

if [[ $1 && $2 ]];then
PP="$1" ; HH="$2"
PP=${PP//,/.}
HH=${HH//,/.}
awk -F" " '{IMC=$1/$2^2} {if(IMC<=18.5)QLF="'$CAM'MAGRO";
else if(IMC>18.5&&IMC<=25)QLF="'$CVD'PESO NORMAL";
else if(IMC>25&&IMC<=30)QLF="'$CAM'ACIMA do PESO";
else if(IMC>30)QLF="'$CVM'OBESO";
print "\n '$(Lin)'\n IMC:"IMC"\n "QLF"'$CF'\n '$(Lin)'\n"}' <<< "$PP $HH"
else
echo -e "$CVM\n USAGE: $0 PESO ALTURA\n"$CAM" Ex.: $0 80.400 1,85"$CF"\n"
fi


É isso....
Copie, cole no editor de TEXTOS, salve como IMC.sh, e de permissão de execução:
chmod +x IMC.sh

CARACTERISTICAS:
Aceita "." e "," como separador de casa decimal.
Depende da "faixa do IMC", mostra com cor diferente.
MODO de USO: ./IMC.sh PESO ALTURA
Se te AJUDEI, marque a minha RESPOSTA como "A MELHOR" !!!! :)
Att.:
marcelo oliver








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts