public static void Main()
Console.WriteLine("O presente programa irá analisar/calcular os principais Indicadores de Estrutura/Endividamento(Autonomia Financeira, Solvabilidade e Endividamento)\ne Liquidez (Liquidez Geral, Liquidez Imediata e Fundo Maneio) da sua empresa, tendo a hipótese de escolher o números de anos de atividade analisar.\nInsira o nome da sua empresa:");
string nome_empresa=Console.ReadLine();
Console.WriteLine("Insira o setor de atividade da sua empresa:");
string setor_atividade=Console.ReadLine();
string valor_ano_constituicao;
int data_atual=DateTime.Today.Year;
Console.WriteLine("Insira o ano de constituição da sua empresa:");
valor_ano_constituicao=Console.ReadLine();
if(!int.TryParse(valor_ano_constituicao, out ano_constituicao) || ano_constituicao>data_atual )
Console.WriteLine("Erro na introdução do ano de constituição.");
while(!int.TryParse(valor_ano_constituicao, out ano_constituicao) || ano_constituicao>data_atual );
Console.WriteLine("A empresa " + nome_empresa +" tem" +(data_atual-ano_constituicao) + " anos de atividade" +" e atua no setor de " + setor_atividade +". Vamos lá começar análise de valores!!");
Empresa empresa_Utilizador = new Empresa (nome_empresa, setor_atividade, ano_constituicao);
bool perguntar_Nova_Analise = true;
empresa_Utilizador.introduzir_dados_analise();
empresa_Utilizador.apresentar_resultados_estrutura();
empresa_Utilizador.apresentar_resultados_liquidez();
Console.WriteLine("Deseja analisar outro ano?");
Console.WriteLine("[S]im / [N]ão");
string opcao = Console.ReadLine();
perguntar_Nova_Analise = true;
empresa_Utilizador.introduzir_dados_analise();
empresa_Utilizador.apresentar_resultados_estrutura();
empresa_Utilizador.apresentar_resultados_liquidez();
perguntar_Nova_Analise = true;
empresa_Utilizador.introduzir_dados_analise();
empresa_Utilizador.apresentar_resultados_estrutura();
empresa_Utilizador.apresentar_resultados_liquidez();
perguntar_Nova_Analise = false;
perguntar_Nova_Analise = false;
Console.WriteLine("Hipótese Inválida, introduza 'S' para analisar outro ano ou 'N' para terminar.");
while (perguntar_Nova_Analise);
Console.WriteLine("Obrigado por usar a aplicação. Fim.");
public double capital_proprio;
public double ativo_corrente;
public double passivo_corrente;
public double disponibilidades;
public Empresa (string nome, string setor, int ano_const)
this.ano_const=ano_const;
public int getAno_const()
public void introduzir_dados_analise ()
bool nao_Pode_Continuar = true;
Console.WriteLine("Insira o ano que pretende avaliar:");
stringUtilizador=Console.ReadLine();
if (!int.TryParse(stringUtilizador, out this.ano_analise))
Console.WriteLine("Erro: não introduziu um ano!");
else if (this.ano_analise < this.ano_const)
Console.WriteLine("Erro: o ano de análise pretendido é anterior à constituição da empresa!");
else if (this.ano_analise > DateTime.Now.Year)
Console.WriteLine("Erro: o ano de análise pretendido ainda não aconteceu!");
nao_Pode_Continuar = false;
while(nao_Pode_Continuar);
nao_Pode_Continuar = true;
Console.WriteLine("Os elementos a inserir devem ser extraídos do Balanço Contabilístico ou IES do respetivo ano de análise: " + this.ano_analise + ".");
Console.WriteLine("Insira o valor do Ativo (em Euros) da " + this.nome + " em " + this.ano_analise + ":");
stringUtilizador=Console.ReadLine();
if (!double.TryParse(stringUtilizador, out this.ativo))
Console.WriteLine("Erro: não introduziu um valor!");
nao_Pode_Continuar = false;
while(nao_Pode_Continuar);
nao_Pode_Continuar = true;
Console.WriteLine("Insira o valor do Capital Próprio (em Euros) da " + this.nome + " em " + this.ano_analise + ":");
stringUtilizador=Console.ReadLine();
if (!double.TryParse(stringUtilizador, out this.capital_proprio))
Console.WriteLine("Erro: não introduziu um valor!");
else if (this.capital_proprio > this.ativo)
Console.WriteLine("Erro: o valor do Capital Próprio não pode ser superior ao Ativo!");
nao_Pode_Continuar = false;
while(nao_Pode_Continuar);
nao_Pode_Continuar = true;
Console.WriteLine("Insira o valor do Passivo (em Euros) da " + this.nome + " em " + this.ano_analise + ":");
stringUtilizador=Console.ReadLine();
if (!double.TryParse(stringUtilizador, out this.passivo))
Console.WriteLine("Erro: não introduziu um valor!");
else if (this.passivo > this.ativo)
Console.WriteLine("Erro: o valor do Passivo não pode ser superior ao Ativo!");
nao_Pode_Continuar = false;
while(nao_Pode_Continuar);
nao_Pode_Continuar = true;
if(this.ativo!=(this.capital_proprio+this.passivo))
Console.WriteLine("O valor do Ativo tem que ser igual a soma do Capital Próprio e Passivo. Volte novamente a inserir os valores para o Ano "+this.ano_analise);
while(this.ativo!=(this.capital_proprio+this.passivo));
Console.WriteLine("Insira o valor do Ativo Corrente (em Euros) da " + this.nome + " em " + this.ano_analise + ":");
stringUtilizador=Console.ReadLine();
if (!double.TryParse(stringUtilizador, out this.ativo_corrente))
Console.WriteLine("Erro: não introduziu um valor!");
else if (this.ativo_corrente > this.ativo)
Console.WriteLine("Erro: o valor do Ativo Corrente não pode ser superior ao Ativo!");
nao_Pode_Continuar = false;
while(nao_Pode_Continuar);
nao_Pode_Continuar = true;
Console.WriteLine("Insira o valor do Passivo Corrente (em Euros) da " + this.nome + " em " + this.ano_analise + ":");
stringUtilizador=Console.ReadLine();
if (!double.TryParse(stringUtilizador, out this.passivo_corrente))
Console.WriteLine("Erro: não introduziu um valor!");
else if (this.passivo_corrente > this.passivo)
Console.WriteLine("Erro: o valor do Passivo Corrente não pode ser superior ao Passivo!");
nao_Pode_Continuar = false;
while(nao_Pode_Continuar);
nao_Pode_Continuar = true;
Console.WriteLine("Insira o valor do Disponibilidades (em Euros) da " + this.nome + " em " + this.ano_analise + ":");
stringUtilizador=Console.ReadLine();
if (!double.TryParse(stringUtilizador, out this.disponibilidades))
Console.WriteLine("Erro: não introduziu um valor!");
else if (this.disponibilidades > this.ativo_corrente)
Console.WriteLine("Erro: o valor das disponibilidades não pode ser superior ao valor ao Ativo Corrente!");
nao_Pode_Continuar = false;
while(nao_Pode_Continuar);
nao_Pode_Continuar = true;
public void apresentar_resultados_estrutura()
Console.WriteLine("Apresentação dos rácios de Estrutura e Endividamento do ano " + this.ano_analise+".");
if(this.autonomia_financeira()<0.30)
this.textoGenerico("uma Autonomia Financeira", this.autonomia_financeira());
Console.WriteLine("Entende-se que actividade da empresa é financiada em grande parte por capitais alheios, logo pode excessiva dependencia de capitais alheios.");
else if (this.autonomia_financeira()>=0.30)
Console.WriteLine("A empresa apresenta uma Autonomia Financeira no ano" + this.ano_analise + " foi de: "+ this.autonomia_financeira().ToString("0.00%") + " .\n Entende-se um bom grau de Autonomia financeira, sendo que actividade da empresa é financiada por parte do seu próprio capital.");
if(this.solvabilidade()>=1)
Console.WriteLine("A empresa apresenta uma Solvabilidade no ano " + this.ano_analise + " foi de: "+ this.solvabilidade().ToString("0.00%") + ".\n Entende-se que o património da empresa é suficiente para cobrir todas as suas dívidas.");
else if (this.autonomia_financeira()<1)
Console.WriteLine("A empresa apresenta uma Solvabilidade no ano" + this.ano_analise + " foi de: "+ this.solvabilidade().ToString("0.00%") + " .\n Entende-se que o património da empresa não é suficiente para cobrir todas as suas dívidas");
Console.WriteLine("A empresa apresenta um Endividamento no ano " + this.ano_analise + " foi de: "+ this.endividamento().ToString("0.00%") + ".\n Entende-se que a empresa financia a sua atividade em "+ this.endividamento().ToString("0.00%") +" de capitais alheios.");
public void apresentar_resultados_liquidez()
Console.WriteLine("Apresentação dos rácios de Liquidez e Fundo Maneio do ano " + this.ano_analise+".");
if(this.liquidez_geral()>1)
Console.WriteLine("A empresa apresenta uma Liquidez Geral no ano " + this.ano_analise + " foi de: "+ this.liquidez_geral() + " €.\n Entende-se que a empresa possui capital disponível suficiente para arcar com todas as suas obrigações." );
else if (this.liquidez_geral()==1)
Console.WriteLine("A empresa apresenta uma Liquidez Geral no ano" + this.ano_analise + " foi de: "+ this.liquidez_geral() + " €.\n Entende-se que o capital e as obrigações são equivalentes" );
Console.WriteLine("A empresa apresenta uma Liquidez Geral no ano " + this.ano_analise + " foi de: "+ this.liquidez_geral() + " €.|n Entende-se que a empresa não possui o capital suficiente para arcar com todas as suas obrigações." );
if(this.liquidez_imediata()>1)
Console.WriteLine("A empresa apresenta uma Liquidez Imediata no ano " + this.ano_analise + " foi de: "+ this.liquidez_imediata() + " €.\n Entende-se que a empresa possui capital disponível suficiente para arcar com todas as suas obrigações a curto prazo." );
else if (this.liquidez_imediata()==1)
Console.WriteLine("A empresa apresenta uma Liquidez Imediata no ano" + this.ano_analise + " foi de: "+ this.liquidez_imediata() + " €.\n Entende-se que o capital e as obrigações são equivalentes a curto prazo" );
Console.WriteLine("A empresa apresenta uma Liquidez imediata no ano " + this.ano_analise + " foi de: "+ this.liquidez_imediata() + " €.|n Entende-se que a empresa não possui o capital suficiente para arcar com todas as suas obrigações a curto prazo." );
if(this.ativo_corrente>this.passivo_corrente)
Console.WriteLine("A empresa apresenta um Fundo Maneio Positivo no ano " + this.ano_analise + " foi de: "+ this.fundo_maneio() + " €" );
else if (this.ativo_corrente==this.passivo_corrente)
Console.WriteLine("A empresa apresenta um Fundo Maneio Nulo no ano" + this.ano_analise + " foi de: "+ this.fundo_maneio() + " €" );
Console.WriteLine("A empresa apresenta um Fundo Maneio Negativo no ano " + this.ano_analise + " foi de: "+ this.fundo_maneio() + " €" );
public double autonomia_financeira( )
return (this.capital_proprio/this.ativo);
public double solvabilidade()
return this.capital_proprio/this.passivo;
public double endividamento()
return this.passivo/this.ativo;
public double liquidez_geral()
return this.ativo_corrente/this.passivo_corrente;
public double liquidez_imediata()
return this.disponibilidades/this.passivo_corrente;
public double fundo_maneio()
return this.ativo_corrente - this.passivo_corrente;
public void textoGenerico (string analise, double valor)
if (analise == "uma Solvabilidade" || analise == "um Endividamento" || analise == "uma Autonomia Financeira")
Console.WriteLine("A " + this.getNome() + " apresenta " + analise + "no ano " + this.ano_analise + " foi de: "+ valor.ToString("0.00%"));
Console.WriteLine("A " + this.getNome() + " apresenta " + analise + "no ano " + this.ano_analise + " foi de: "+ valor + " €" );