Ir para conteúdo
Fórum Script Brasil
  • 0

Variável Global x Local


Gabiccs

Pergunta

Criei um código que deveria encontrar o zero da função. Mas, deve ser aplicado 21 vezes (valores diferentes).

Fiz as matrizes que indicam tais valores, mas não consigo fazer o código percorrer as matrizes.

O resultado sempre apresenta os valores para quando 'n=0'.

'n' foi declarado como uma variável global.


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

int n = 0;

double f(float o)
{
double q[21]= {388.07341, 418.81479, 442.16885, 462.16931, 480.01095, 496.37744, 511.99764, 525.99764, 541.28612, 555.60796, 570.77167, 593.81948, 616.10838, 639.92981, 648.86987, 658.60439, 666.37960, 672.93722, 677.64320, 677.64320, 677.64320};
double p[21]= {131.31613, 141.60402, 148.87696, 155.24767, 161.23076, 166.96861, 171.67016, 179.48304, 187.87701, 191.80595, 202.06493, 225.74231, 258.89635, 286.37328, 301.45585, 317.76931, 334.90509, 353.95479, 375.74816, 404.68645, 420.15252};
double f[21]= {0.00022, 0.00068, 0.00124, 0.00192, 0.00275, 0.00376, 0.00494, 0.00659, 0.00910, 0.01179, 0.01553, 0.02290, 0.03279, 0.04229, 0.04697, 0.05168, 0.05684, 0.06319, 0.07201, 0.08735, 0.09867};

return (q[n] - o * pow (1 + 2.25*f[n]*f[n] - 2*1.5*f[n]*cosh ((3*p[n])/(2*o)),1/2));
}

main ()
{
int i, maxi;
i=1;
maxi=30;

float a,b, med, E;
a=300;
b=1000;
E= 0.0001;

while ((n=!20)) {
do {
med=(a+b)/2;
if (f(a)*f(med)<0)
{ b=med; }
else
{ a=med; }
i++;
}while (((b-a)>E) || (i<=maxi));

printf(" Ponto %d \nA raiz esta entro o intervalo %f e %f\n Sendo aproximadamente %f\n Foram necessarias %d iteracoes\n\n\n",n, a, b, med, i);
n++;
}

system ("pause");
} [/codebox]

É possível incrementar o valor de uma variavel global??

Por favor alguém me ajude!!

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

é, realmente essa parte estava errada. Obrigada!

Mas ainda assim o código não faz o que eu qria.

porque esse 'n' declarado na função main não percorre as matrizes da função f, que era o que eu precisava...

E, não sei como fazer isso.

Acredito que seja com ponteiros... Mas, como foge do que eu sei, vou ter que estudar ainda.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...