Pular para o conteúdo

Equação [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. Equação [RESOLVIDO]

Enviado em 27/09/2011 - 11:37h

Caros colegas,

Não estou conseguindo resolver a equação abaixo usando shell script.


# Fiz até aqui...

read -p 'Entre com o valor de A: ' A
read -p 'Entre com o valor de B: ' B
read -p 'Entre com o valor de C: ' C

Como posso caucular o valor de X na equação :

AX + BC = 0

usando shell script.

Atenciosamente

fcarlos12

Responder tópico

2. Re: Equação [RESOLVIDO]

Enviado em 27/09/2011 - 11:42h


#!/bin/bash

read -p "Entre A:" A
read -p "Entre B:" B
read -p "Entre C:" C

X=$((-(B*C)/A))
echo $X
PS: Não recrie tópicos com a mesma dúvida. Se alguém puder lhe ajudar, o fará.

3. Re: Equação [RESOLVIDO]

Enviado em 27/09/2011 - 12:49h

Conforme o Hebang explicou no outro tópico, x=-BC/A, ou seja


read -p "Entre com o valor de A: "
read -p "Entre com o valor de B: "
read -p "Entre com o valor de C: "

echo "Valor de X para Ax + BC=0 ... e: $((-1*$B*$C/$A))"
Agora se for querer mais digitos use


echo "Valor de X para Ax + BC = 0 ... e: "
# ...
echo "scale=4;-1*$B*$C/$A" |bc

4. Re: Equação [RESOLVIDO]

Enviado em 28/09/2011 - 03:19h

Aproveitando as idéias das respostas anteriores:



#!/bin/bash
# Usando a cauculadora bc em shell script
# com precisão decimal - digitos decimais.

DECIMAIS=2

echo 'Cauculando o valor de X em AX + BC = 0'

read -p 'Entre com o valor de A: ' A
read -p 'Entre com o valor de B: ' B
read -p 'Entre com o valor de C: ' C


if [ $DECIMAIS -gt 0 ]
then
RST=$( echo "scale=${DECIMAIS}; ( -1 * $B * $C ) / $A" | bc )
else
RST="$(( ( -1 * ( $B * $C ) ) / $A ))"
fi

echo "O valor de X é $RST"

Indico que valides todos os valores de entrada e que use preferencialmente o método implementado com bc pois, o outro não aceita decimais.

5. Resolvido

Enviado em 28/09/2011 - 06:08h

Caros Colegas,



O script já foi resolvido, as respostas foram todas de grande valia.
Obrigado a todos.


Fcarlos12

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder