Ir ao conteúdo

C Problema de códigos em C envolvendo radiciação (Fórmulas Extensas )


Ir à solução Resolvido por Midori,

Posts recomendados

Postado

Programa em linguagem C

.Screenshot_1.png.287497abcb7a1782b0c9b111e8ff8345.png

 

Entradas

As entradas

f,L,Q,ΔH,ϑf

devem ser solicitadas nesta ordem.

Considere ainda que

g=9.81

,

ε=0.000002

  e

π

são constantes e NÃO devem ser pedidos como entradas. O valor de

π

a ser usado deve ser o valor da constante PI, disponível na biblioteca math (math.pi).

 

Saídas

Seu programa deve ter como saídas, os valores de

D,Rey,k

(com 4 casas decimais, cada um), nesta ordem.

 

Exemplo

 

Entrada

0.2

50000

0.65

22

0.000001

 

Saída

1.7382

476122.1893

0.0132

 

Dicas

Em C, o logaritmo na base 10 pode ser calculado com a função (disponível na biblioteca math):

#include <math.h> log10(expressao)

Ex:

log10(a*b)     // calcula o logaritmo na base 10 do resultado da expressão a * b (multiplicação).

 

Estou programando desta forma:

#include <stdio.h>
#include <math.h>
#define PI 3.14159
int main(){

    float f,L,Q,deltaH,O,g,e,Rey,k,D;
    printf("Digite o valor de f: ");
    scanf("%f", &f);
    printf("Digite o valor de L: ");
    scanf("%f", L);
    printf("Digite o valor de Q: ");
    scanf("%f", &Q);
    printf("Digite o valor de deltaH: ");
    scanf("%f", &deltaH);
    printf("Digite o valor de O: ");
    scanf("%f", &O);
    e=0.000002;
    g=9.81;
    D=sqrtˆ5(8*f,L*Q*Q/PI*PI*g*deltaH);
    Rey=4*Q/PI*D*O;
    k=0.25/(log10((e/3.7*D)+5.74/Reyˆ0.9))ˆ2;
    printf("%.4f",D);
    printf("%.4f",Rey);
    printf("%.4f",k);
    return 0;
}

Erro notável que não encontro solução: input de raízes maiores ou menores que 2.

Postado

Usa a função pow() como o @Lucca Rodrigues disse.

40 minutos atrás, Lord comander disse:

(8*f,L*Q*Q/PI*PI*g*deltaH)

Também, aquela virgula depois do f e antes do L, quando deveria ser o símbolo de multiplicação (e organiza a prioridade das operações com parênteses pra evitar confusão ou erros depois).

 

  • Curtir 1
  • Obrigado 1
  • Solução
Postado

@Lord comander Para calcular a raiz quinta eleve a 1/5 (0.2) com a função pow mencionada acima,

 

#include <stdio.h>
#include <math.h>

#define g 9.81
#define e 0.000002

int main(){
    double f,L,Q,Delta,Theta,D,Rey,k;

    scanf("%lf",&f);
    scanf("%lf",&L);
    scanf("%lf",&Q);
    scanf("%lf",&Delta);
    scanf("%lf",&Theta);
    
    D = pow((8*f*L*Q*Q)/(M_PI*M_PI*g*Delta),0.2);
    Rey = (4*Q)/(M_PI*D*Theta);
    k = 0.25/pow(log10(e/3.7*D + 5.74/pow(Rey,0.9)),2);
    
    printf("%.4lf\n%.4lf\n%.4lf\n",D,Rey,k);
    
    return 0;
}

 

  • Curtir 2
  • Obrigado 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...