
clc;

numAtual = 0;
numAnt   = 0;
maior    = 0;
menor    = 0;
menorPJ  = -1;
numPJ    = -1;
somaPF   = 0;
somaPJ   = 0;
mediaPF  = 0;
mediaPJ  = 0;
mediaGL  = 0;
contPF   = 0;
contPJ   = 0;
kwhConsumido = -1;

kwhMes   = -1;
 
while ( kwhMes < 0 )
  kwhMes   = input ( 'Favor informar o preCo do kwh neste mEs: ' );
  if ( kwhMes < 0 )
    printf ( ' O nUmero de kWh mEs tem de ser maior ou igual a zero. \n ' );
  end  
end 
 
printf ( ' \n Para sair digitar um nUmero negativo como nUmero de consumidor. \n \n' );
 
while ( numAtual >= 0 )

  numAnt = numAtual;
  
  if ( 0 == numAtual )

    while ( 1 != numAtual )
      numAtual = input ( 'Informar o nUmero do consumidor: ' );    
      if ( 1 != numAtual ) 
		    printf ( ' O nUmero do primeiro consumidor tem que ser 1. \n ' );
		  end
    end 
  
  else 

	  while ( ( numAnt >= numAtual ) && ( numAtual >= 0 ) )
	    numAtual = input ( 'Informar o nUmero do consumidor: ' );
		
      if ( ( numAnt >= numAtual ) && ( numAtual > 0 ) )
		     printf ( ' O nUmero do consumidor atual tem que ser maior que o do anterior. \n ' );
		  end
    end

  end 
    
  if ( numAtual > 0 )
	  kwhConsumido = -1;
    while (kwhConsumido < 0)
	   kwhConsumido = input ( 'Informar o consumo em kWh: ' );
		  if ( kwhConsumido < 0 )
		    printf ( ' O nUmero de kWh consumido tem de ser maior ou igual a zero. \n ' );
		  end
	  end

	  tipoPessoa = 0;
	  while ( ( tipoPessoa ~= 1 ) && ( tipoPessoa ~= 2 ) ) 
		  tipoPessoa = input ( 'Informar o tipo do consumidor: 1 - Pessoa FIsica; 2 - Pessoa JurIdica. ' );
		  if ( ( tipoPessoa ~= 1 ) && ( tipoPessoa ~= 2 ) ) 
		     printf ( ' Tipo nAo vAlido. \n ' );
		  end	
	  end 
  
	  valorPgtoCons = kwhMes * kwhConsumido;
	  printf ( ' O valor pago pelo consumidor de nUmero %d E de %f. \n \n', numAtual, valorPgtoCons );

	  if ( 0 == numAnt)
		  maior   = valorPgtoCons;
		  menor   = valorPgtoCons;	
	  else
	  	if ( valorPgtoCons > maior )
		       maior = valorPgtoCons;
		  else
			  if ( valorPgtoCons < menor )
				  menor = valorPgtoCons;
			  end		
		  end
	  end
	
	  if ( 1 == tipoPessoa )
		  somaPF = somaPF + valorPgtoCons;
		  contPF = contPF + 1;
	  else
		  somaPJ = somaPJ + valorPgtoCons;
		  contPJ = contPJ + 1;
		  if ( ( valorPgtoCons < menorPJ ) || ( -1 == menorPJ ) ) 
		     menorPJ = valorPgtoCons;
 		     numPJ   = numAtual;
		  end
	  end
  end 
end

if ( ( contPF + contPJ ) > 0 )
    
    mediaGL = ( somaPF + somaPJ ) / ( contPF + contPJ ); 

    printf ( ' \n \n ' );
    printf ( ' O maior valor pago Eh: %f \n ', maior );
    printf ( ' O menor valor pago Eh: %f \n ', menor );
    printf ( ' A media geral Eh: %f 		 \n ', mediaGL );
    
    if ( contPF > 0 )
       mediaPF = somaPF / contPF;
       printf ( ' A media de pessoa fIsica Eh: %f \n ', mediaPF );
    else
       printf ( ' NAo houve entrada de dados de consumidores pessoa fIsica. \n ' );
    end
 
    if ( contPJ > 0 )
       mediaPJ = somaPJ / contPJ;
       printf ( ' A media de pessoa jurIdica Eh: %f \n ', mediaPJ );
       printf ( ' A pessoa jurIdica mais econOmia Eh de nUmero: %d \n ', numPJ )
    else
       printf ( ' NAo houve entrada de dados de consumidores pessoa jurIdica. \n ' ); 
    end
else 
    printf ( ' \n \n ' );
    printf ( ' NAo houve entrada de dados de consumidores. \n ' );
end
 


