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.144 ]

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

Shell Script simples usando case

Remover linhas duplicadas em arquivos

Limpeza automática de pastas com contagem de arquivos

Calculadora plus

Agenda "completa" com interface do zenity


  

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