Preciso que o resultado da função calculoSilte diminua do resultado da função anterior calculoArgila. Mas retorna NaN, não sei como corrigir.
Preciso que o resultado da função calculoSilte diminua do resultado da função anterior calculoArgila. Mas retorna NaN, não sei como corrigir.
Fala, Ricardo!!! Tudo bom contigo?
Viu pedir para postar seu código completo para que possamos dar uma olhada!
Ficaremos no aguardo!
<meta charset="UTF-8">
<script>
function pulaLinha() {
document.write("<br><hr>");
}
function mostra(parametro) {
document.write(parametro);
pulaLinha();
}
mostra("<h1>Física do solo</h1>");
function calculoArgila(pesoArgila, taraCadinho, provaBranca, diluicao) {
var argila = Math.round((((pesoArgila - taraCadinho))-provaBranca)*diluicao);
mostra("Argila = " + argila);
}
function calculoSilte(pesoSilte, taraCadinho, provaBranca, diluicao) {
var silte = Math.round(((((pesoSilte - taraCadinho))-provaBranca)*diluicao))-calculoArgila;
mostra("Silte= " + silte);
}
calculoArgila(33.0849, 33.0062, 0.013, 500);
calculoSilte(32.5366, 32.4262, 0.013, 500);
// var diluicao = 500;
// var provaBranca = 0.013;
// var pesoArgila = 29.6751;
// var taraCadinho = 29.6018;
// var resultadoArgila = Math.round((((pesoArgila - taraCadinho))-provaBranca)*diluicao);
// mostra("Silte = ");
// mostra("Areia = ");
</script>
Sou novo no forum, não coloquei certo no post anterior!
Tranquilo, Ricardo!! Vamos lá!!!
O que ocorre é que ao chamar a função calculoArgila(33.0849, 33.0062, 0.013, 500);
roda perfeitamente dentro da função
function calculoArgila(pesoArgila, taraCadinho, provaBranca, diluicao) {
var argila = Math.round((((pesoArgila - taraCadinho))-provaBranca)*diluicao);
mostra("Argila = " + argila);
}
Porém, quando chamamos a outra função calculoSilte(32.5366, 32.4262, 0.013, 500);
ele entra dentro da função
function calculoSilte(pesoSilte, taraCadinho, provaBranca, diluicao) {
var silte = Math.round(((((pesoSilte - taraCadinho))-provaBranca)*diluicao))-calculoArgila;
mostra("Silte= " + silte);
}
e encontrará uma String
quando for entrar no calculaArgila
através do calculaSilte
. Por esse motivo ele gera o NotANumber
Para resolvermos podemos retirar os mostra
s de dentro das funções e também retirar o -calculoArgila
acrescentando um return
em ambos
function calculoArgila(pesoArgila, taraCadinho, provaBranca, diluicao) {
var argila = Math.round((((pesoArgila - taraCadinho)) - provaBranca) * diluicao);
return argila;
}
function calculoSilte(pesoSilte, taraCadinho, provaBranca, diluicao) {
var silte = Math.round((((pesoSilte - taraCadinho) - provaBranca) * diluicao));
return silte;
}
Após isso, vamos guardar esses cálculos em variáveis
var argila = calculoArgila(33.0849, 33.0062, 0.013, 500);
var silte = calculoSilte(32.5366, 32.4262, 0.013, 500);
Agora podemos "mostrar" os resultados chamando somente as variáveis, e no caso do Silte vamos calculá-lo dentro do "mostra"
mostra("Argila " + argila)
mostra("Silte " + (silte - argila))
Essa é uma solução! Se encontrar outra, por favor compartilhe conosco ;-)
Espero ter ajudado, Ricardo!
Um abraço e bons estudos!!!
Sim está ótimo, eu só precisava segui pra próxima aula, e aprender a usar o "return". O Código está assim:
<meta charset="UTF-8">
<script>
function pulaLinha() {
document.write("<br><hr>");
}
function mostra(parametro) {
document.write(parametro);
pulaLinha();
}
mostra("<h1>Física do solo</h1>");
function calculoArgila(pesoArgila, taraCadinho, provaBranca, diluicao) {
return Math.round((((pesoArgila - taraCadinho))-provaBranca)*diluicao);
}
function calculoSilte(pesoSilte, taraCadinho, provaBranca, diluicao) {
return Math.round((((pesoSilte - taraCadinho))-provaBranca)*diluicao);
}
var resultadoArgila = calculoArgila(33.0849, 33.0062, 0.013, 500);
var resultadoSilte = calculoSilte(32.5366, 32.4262, 0.013, 500);
mostra("Argila = " + resultadoArgila);
mostra("Silte = " + (resultadoSilte-resultadoArgila));
mostra("Areia = " + (100 - (resultadoArgila+resultadoSilte)));
</script>
Obrigado pela ajuda!