média,valor máximo e valor mínimo

Publicado por Rômulo Torres Silva 21/10/2007 (última atualização em 04/07/2014)

[ Hits: 12.291 ]

Homepage: pankdo.equipesound.com

Download mmm.sh

Download media_minimo_maximo (versão 2)




Esse script extremamente simples tem a função de mostrar o maior valor, o menor valor e tirar a mÉdia aritmética de n termos informados (não importando o numero de termos).

Pode ser passado a ele um arquivo contendo os números separados por espaço como parâmetro, fazendo o uso do comando  'cat  /endereço_do_arquivo' (nÃo esquecer do caracter  ' antes e depois)

  



Versões atualizadas deste script

Versão 2 - Enviado por Vitor Augusto M. Pio em 02/07/2014

Changelog: - Removi o excesso de comentários.
- Alterei a forma de uma maneira que não haja limites de mínimo e máximo.

Um abraço, espero ter ajudado.

Download media_minimo_maximo


Esconder código-fonte

soma=0 #Essa variável vai servir de acumulador dos valores 
max=0 #Essa variável vai armazenar o maior valor de todos por isso ela e inicializada com 0
min=1000000000 #Essa variável vai armazenar o menor valor de todos por isso ela e #inicializada com um numero muito alto

div=$#  #O $# traz o numero total de parâmetros q foram passados que sera util para tirar a #media ao final

while [ $# -gt 0 ] ;do #Esse loop permanece enquanto tiverem parâmetros na linha de comando
   if [ $1 -gt $max ] ;then #Testa se o 1°parâmetro e o maior ate o momento
      max=$1 #Se for armazena o seu valor como sendo o maior
   fi

   if [ $1 -lt $min ] ;then #Testa se o 1°parâmetro e o menor ate o momento
      min=$1 #Se for armazena o seu valor como sendo o menor
   fi

   soma=$(($soma+$1)) #soma o valor do 1° parâmetro com os outros valores ja #armezenados

   shift # Esse comando e o segredo ele faz com que todos os parâmetros sejam movidos 1 #para a esquerda fazendo com que, o que era o 1° deixe de existir, com que o segundo #assuma o lugar do 1°, com que o terceiro assuma o lugar do 2° e assim sucessivamente 

done # fecha o laço  do loop voltando ao teste da condição 

#após não haverem mais termos na linha sai do loop

media=$(($soma/$div)) #calcula a media

echo "A media dos $div termos e: $media" #mostra a media e o numero de termos 
echo "O valor maximo e: $max" #mostra o maior valor
echo "O vamor minimo e: $min" #mostra o menor valor

Scripts recomendados

Firewall simples mas muito util

Controlando espaço de disco com quotas

Limpar e resolver erros de arquivos trava no APT

Hello World em Octave

Array de números aleatórios não-repetidos de um intervalo em Shellscript (Bashscript)


  

Comentários
[1] Comentário enviado por vitinho217 em 02/07/2014 - 12:01h

Cara você não pode supor que o valor máximo deve começar em 0, e se eledifitar -3 por exemplo, assim como você não pode supor que o valor minimo começa em 1000000000, e se o usuário entra com 1000000001


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts