Estou tentando fazer um código para um trabalho de cálculo numérico. O programa tem que receber o intervalo inicial (a, B) e o número de iterações (i) e mostrar as iterações pelo metódo da Bisseção para achar as raizes da equação: f(x)=(x-4)^1/2+x-9, cuja raiz está entre o intervalo 7 e 8.
O código que eu montei foi esse:
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <iostream>
main()
{ int a,b,i,k,c;
float x,fx,fa;
c=0;
while (c!=1) {
printf("Digite o primeiro numero do intervalo inicial:");
scanf("%d",&a);
printf("\n");
printf("Digite o último numero do intervalo inicial:");
scanf("%d",&b);
printf("\n");
if (a>7||b<8){
printf("Erro, a raiz não se encontra nesse intervalo. Favor digitar outro.");
printf("\n");
} else {
c=1;
}
}
printf("Digite o numero de iteracoes:");
scanf("%d",&i);
printf("\n");
for (k=1; k<=i; k++) {
x=((a+b)/2);
fx=(sqrt(x-4))+x-9;
fa=(sqrt(a-4))+a-9;
if(fx*fa<0){
a=x;}
else {
b=x;}
printf("x%f=%f",&k,&x );
printf("\n");
}
}
O que está acontecendo: Não importa o valor que eu coloque, o resultado sai sempre o mesmo e errado. Suspeito que algo esteja errado na sintaxe e os números digitados não estão sendo armazenados corretamente. Algo pode estar errado nas operações em si também.
o log de erro do compiler foi esse:
Compiler: TDM-GCC 4.7.1 64-bit
Executing g++.exe...
g++.exe "C:\Users\Fernanda\Desktop\Untitled1.cpp" -o "nul" -I"C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\include" -L"C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib" -static-libgcc
nul.exe: final close failed: File truncated
collect2.exe: error: ld returned 1 exit status
Execution terminated
Pergunta
fernandadmf
Olá!
Estou tentando fazer um código para um trabalho de cálculo numérico. O programa tem que receber o intervalo inicial (a, B) e o número de iterações (i) e mostrar as iterações pelo metódo da Bisseção para achar as raizes da equação: f(x)=(x-4)^1/2+x-9, cuja raiz está entre o intervalo 7 e 8.
O código que eu montei foi esse:
O que está acontecendo: Não importa o valor que eu coloque, o resultado sai sempre o mesmo e errado. Suspeito que algo esteja errado na sintaxe e os números digitados não estão sendo armazenados corretamente. Algo pode estar errado nas operações em si também.
o log de erro do compiler foi esse:
Agradeço qualquer ajuda.
Editado por fernandadmfLink para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
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.