Código em Shell Script [RESOLVIDO]

1. Código em Shell Script [RESOLVIDO]

flavio
gutosoni

(usa KDE Neon)

Enviado em 17/04/2021 - 18:44h

Olá pessoal!

Estou tentando criar um algorítimo em shell do problema a seguir, mas não estou tendo êxito dentro do loop. Sei que precisa do bc, mas não sei como inseri-lo. Alguém saberia criar esse algorítimo?

Supondo que a população de um país A seja da ordem de 80000 habitantes com uma taxa anual de crescimento de 3% e que a população de B seja 200000 habitantes com uma taxa de crescimento de 1.5%. Faça um programa que calcule e escreva o número de anos necessários para que a população do país A ultrapasse ou iguale a população do país B, mantidas as taxas de crescimento.


#!/usr/bin/env bash

pop_a=80000
pop_b=200000
ano=0

while [ "$pop_a" -le "$pop_b" ]; do
pop_a+=$pop_a*0.03
pop_b+=$pop_b*0.015
ano+=1
done
echo "A ultrapassa B em $ano anos"



  


2. MELHOR RESPOSTA

Mauricio Ferrari
mauricio123

(usa Slackware)

Enviado em 17/04/2021 - 19:21h

segue as seguintes correçoes.
testa se vai:


#!/usr/bin/env bash

pop_a=80000
pop_b=200000
ano=0

while [ "$pop_a" -le "$pop_b" ]; do
let pop_a=pop_a*0.03
let pop_b=pop_b*0.015
let ano+=1
done
echo "A ultrapassa B em $ano anos"


OBS: LINK SOLUÇÃO: https://www.vivaolinux.com.br/topico/Shell-Script/Algoritimo-em-Shell

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


3. Re: Código em Shell Script [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

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


mauricio123 escreveu:

segue as seguintes correçoes.
testa se vai:


#!/usr/bin/env bash

pop_a=80000
pop_b=200000
ano=0

while [ "$pop_a" -le "$pop_b" ]; do
let pop_a=pop_a*0.03
let pop_b=pop_b*0.015
let ano+=1
done
echo "A ultrapassa B em $ano anos"




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


Boa noite Mauricio.
Testei aqui e não "rodou"...
/testes_01.sh: linha 8: let: pop_a=pop_a*0.03: erro de sintaxe: operador aritmético inválido (token de erro é ".03")
./testes_01.sh: linha 9: let: pop_b=pop_b*0.015: erro de sintaxe: operador aritmético inválido (token de erro é ".015")






4. Re: Código em Shell Script [RESOLVIDO]

flavio
gutosoni

(usa KDE Neon)

Enviado em 17/04/2021 - 20:17h


msoliver escreveu:


mauricio123 escreveu:

segue as seguintes correçoes.
testa se vai:


#!/usr/bin/env bash

pop_a=80000
pop_b=200000
ano=0

while [ "$pop_a" -le "$pop_b" ]; do
let pop_a=pop_a*0.03
let pop_b=pop_b*0.015
let ano+=1
done
echo "A ultrapassa B em $ano anos"




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


Boa noite Mauricio.
Testei aqui e não "rodou"...
/testes_01.sh: linha 8: let: pop_a=pop_a*0.03: erro de sintaxe: operador aritmético inválido (token de erro é ".03")
./testes_01.sh: linha 9: let: pop_b=pop_b*0.015: erro de sintaxe: operador aritmético inválido (token de erro é ".015")





Perdão, eu tenho um código em python com o mesmo nome do arquivo daí eu executei o script errado. O código do Maurício realmente não funciona.


5. Re: Código em Shell Script [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 17/04/2021 - 20:48h

Pensei que meu "bash" tava pirado!!!! rsrsrsr
O "script", tem mais erros.....
Mesmo que
let pop_a=pop_a*0.03
let pop_b=pop_b*0.015

Funcionassem, a partir do 3º ANO,
A população de A e B, tem casas decimais,
E acusa erro no teste do while
while [ "$pop_a" -le "$pop_b" ];
Esse teste, não está de acordo com o solicitado: população do país A ultrapasse ou iguale a população do país B,,
'-le' =» "É menor igual (LessEqual)",
logo, deveria ser:
-ge =» "É maior igual (GreaterEqual)"

É Isso!
______________________________________________________________________
Importante: lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p'
Att.: Marcelo Oliver
______________________________________________________________________
__



6. Re: Código em Shell Script [RESOLVIDO]

Mauricio Ferrari
mauricio123

(usa Slackware)

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


Devido a confusão, vou postar o link da solução que está no tópico a seguir:

https://www.vivaolinux.com.br/topico/Shell-Script/Algoritimo-em-Shell

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







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts