Pular para o conteúdo

Código em Shell Script [RESOLVIDO]

Responder tópico
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
  • Denunciar
  • Indicar

1. Código em Shell Script [RESOLVIDO]

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"

Responder tópico

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

2. Re: Código em Shell Script

Melhor resposta

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]

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]

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]

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
______________________________________________________________________
__

Responder tópico

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Responder tópico

Entre na sua conta para responder.

Fazer login para responder