Algorítimo em Shell [RESOLVIDO]

13. Re: Algorítimo em Shell [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 17/04/2021 - 22:02h


mauricio123 escreveu:


Demorou, mas cheguei. Vou até guardar como aprendizado.


#!/bin/bash

pop_a=80000
pop_b=200000
ano=0

while (($(bc <<< "$pop_a>=$pop_b") < 1)); do
pop_a=$( bc <<< "$pop_a * 1.03" )
pop_b=$( bc <<< "$pop_b * 1.015" )
let ano++
done
echo "A ultrapassa B em $ano anos"


Ficou parecido com o do nosso amigo acima. É a melhor forma de se resolver.
___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento

Parecido KKKKKK.
Quase uma cópia . . . .
Até o:
(($(bc <<< "${pais_A}>=${pais_B}") > 0)) && break
Rsrsrsrsrsrs
______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________




  


14. Re: Algorítimo em Shell [RESOLVIDO]

Mauricio Ferrari
mauricio123

(usa Slackware)

Enviado em 17/04/2021 - 22:05h


(($(bc <<< "${pais_A}>=${pais_B}") > 0)) && break

Isso foi. Era uma sugestão de melhoria para teu código.

___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento



15. Re: Algorítimo em Shell [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 18/04/2021 - 01:09h

Gutosoni, já está resolvido, mas,
fica para consulta e aprendizado, muito mais rápido.....
awk '{ano=0;pa=80000;pb=200000;}
{while(pa<pb){ano+=1;pa=(pa*1.03);pb=(pb*1.015);printf "PA: %s PB: %s Ano: %02d\n",pa,pb,ano}
{print "\nPA superou PB em " ano" anos\n"}}' <<< ""



______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________




16. Re: Algorítimo em Shell [RESOLVIDO]

Mauricio Ferrari
mauricio123

(usa Slackware)

Enviado em 18/04/2021 - 16:25h


msoliver escreveu:

Gutosoni, já está resolvido, mas,
fica para consulta e aprendizado, muito mais rápido.....
awk '{ano=0;pa=80000;pb=200000;}
{while(pa<pb){ano+=1;pa=(pa*1.03);pb=(pb*1.015);printf "PA: %s PB: %s Ano: %02d\n",pa,pb,ano}
{print "\nPA superou PB em " ano" anos\n"}}' <<< ""



______________________________________________________________________
Att.: Marcelo Oliver
______________________________________________________________________



Eita superou. Até eu vou deixar anotado.

___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento



17. Solução em awk aprimorada

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 22/04/2021 - 21:13h

Fazendo a "evolução, mês a mês"....
A Resposta é :
62 Anos e 6 meses
-------------------------------------------------------------------------------
Um Mês:
1/12=0.083333333333

1.5% ao ano, no mês:
awk '{printf "%.012f\n",$1**$2}' <<< "1.015 0.083333333333"
1.001241487716
3% ao ano, no mês:
awk '{printf "%.012f\n",$1**$2}' <<< "1.03 0.083333333333"
1.002466269772

----------------------------------------------------------------------------------------------------------------
awk '{mes=0;pa=80000;pb=200000;}
{while(pa<pb){printf "PA: %.2f - PB: %.2f - TT_Meses: %02d - Ano(s): %02d - Meses: %02d\n",pa,pb,mes,int(mes/12),(mes>=12)?str=(int(mes%12)):str=mes;
mes+=1;pa=(pa*1.002466269772);pb=(pb*1.001241487716);}
{printf "\nPA: %.2f - PB: %.2f - TT_Meses: %03d - Ano(s): %02d - Meses: %02d\n\n",pa,pb,mes,int(mes/12),int(mes%12)}}' <<< "" > saida.txt

PA: 507477.20 - PB: 507174.76 - TT_Meses: 750 - Ano(s): 62 - Meses: 06
----------------------------------------------------------------------------------------------------------------


Att.: Marcelo Oliver





18. Re: Algorítimo em Shell [RESOLVIDO]

Mauricio Ferrari
mauricio123

(usa Slackware)

Enviado em 23/04/2021 - 08:20h


msoliver escreveu:

Fazendo a "evolução, mês a mês"....
A Resposta é :
62 Anos e 6 meses
-------------------------------------------------------------------------------
Um Mês:
1/12=0.083333333333

1.5% ao ano, no mês:
awk '{printf "%.012f\n",$1**$2}' <<< "1.015 0.083333333333"
1.001241487716
3% ao ano, no mês:
awk '{printf "%.012f\n",$1**$2}' <<< "1.03 0.083333333333"
1.002466269772

----------------------------------------------------------------------------------------------------------------
awk '{mes=0;pa=80000;pb=200000;}
{while(pa<pb){printf "PA: %.2f - PB: %.2f - TT_Meses: %02d - Ano(s): %02d - Meses: %02d\n",pa,pb,mes,int(mes/12),(mes>=12)?str=(int(mes%12)):str=mes;
mes+=1;pa=(pa*1.002466269772);pb=(pb*1.001241487716);}
{printf "\nPA: %.2f - PB: %.2f - TT_Meses: %03d - Ano(s): %02d - Meses: %02d\n\n",pa,pb,mes,int(mes/12),int(mes%12)}}' <<< "" > saida.txt

PA: 507477.20 - PB: 507174.76 - TT_Meses: 750 - Ano(s): 62 - Meses: 06
----------------------------------------------------------------------------------------------------------------


Att.: Marcelo Oliver




Assim fica mais preciso.
___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/MauricioFerrari-NovaTrento




01 02