Programa de Equacoes Nao Lineares (Chamando funções)

1. Programa de Equacoes Nao Lineares (Chamando funções)

Perfil removido
removido

(usa Nenhuma)

Enviado em 02/03/2017 - 16:40h

main.c

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "MetodoBissecao.h"
#include "MetodoFalsaPosicao.h"
#include "MetodoLagrande.h"

int main(){
int op;
float v1,v2,v3;
printf("Programa de Equacoes Nao Lineares\n");
printf("1 - Metodo da Bissecao\n");
printf("2 - Metodo da Falsa Posicao\n");
printf("3 - Metodo de Lagrande\n");
scanf("%i",&op);
switch(op){
case 1:
tela_p1(v1,v2,v3);
break;

case 2:
//printf();
break;

case 3:
//printf();
break;

default:
//printf();
break;
}
system("PAUSE");
}


MetodoBissecao.c

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "MetodoBissecao.h"
#include "MetodoFalsaPosicao.h"
#include "MetodoLagrande.h"
#import "main.c"

/* Determine a raiz aproximada de x^3-9x+3 . No intervalo [0,1] com o erro E ~ 0.01*/

float f1 (float x1){
float y1;
y1 = pow(x1,3)-9*x1+3;
return y1;
}

float bissecao (float a1, float b1,float tol){
float c1, fa, fb, fc;
fa = f(a1);
fb = f(b1);
while (fabs (b1-a1) > tol){
c1 = (a1+b1)/2;
fc = f1(c1);
if (fa * fc < 0){
b1=c1;
fb = fc;
}
else{
a1 = c1;
fa = fc;
}
}
c1 = (a1+b1)/2;
return c1;
}

void tela_p1(float a1, float b1, float c1, float tol){
printf("***METODO DA BISSECAO***\n\n");
printf("a = ");
scanf("%f", &a1);
printf("b = ");
scanf("%f", &b1);
printf("erro = ");
scanf("%f", &tol);
if (f1(a1) * f1(b1) > 0){
printf("O intervalo nao e valido.\n\n");
printf("Digite um novo intervalo = \n\n ");
printf("a= ");
scanf("%f", &a1);
printf("b= ");
scanf("%f", &b1);
}
c1 = bissecao (a1, b1, tol);
printf("Raiz aproximada = %0.4f", c1);
}

MetodoBissecao.c

float f1(float y1);
float bissecao (float a1, float b1,float tol);
void tela_p1(float a1, float b1, float c1, float tol);






Criei um projeto, mas o problema é na hora de chamar a funcao tela_p1(v1,v2,v3);
Podem me sugerir o erro ?


  


2. Re: Programa de Equacoes Nao Lineares (Chamando funções)

Paulo
paulo1205

(usa Ubuntu)

Enviado em 02/03/2017 - 17:33h

Qual problema? Ajuda se você der dicas que nos ajudem a saber onde começar a procurar. Dá SIGSEGV? Informa a raiz errada? Não compila? Quais mensagens de erro você recebe?


3. Seguintes erros:

Perfil removido
removido

(usa Nenhuma)

Enviado em 04/03/2017 - 13:09h

18 4 C:\Users\...\main.c [Error] a label can only be part of a statement and a declaration is not a statement
18 9 C:\Users\...\main.c [Error] conflicting types for 'tela_p1'


4. Re: Programa de Equacoes Nao Lineares (Chamando funções)

Paulo
paulo1205

(usa Ubuntu)

Enviado em 06/03/2017 - 10:57h

ssilva27 escreveu:

18 4 C:\Users\...\main.c [Error] a label can only be part of a statement and a declaration is not a statement
18 9 C:\Users\...\main.c [Error] conflicting types for 'tela_p1'


Ambas as mensagens indicam que você provavelmente cometeu algum erro de digitação ou sintaxe.

A segunda mensagem diz que na linha 18 do arquivo main.c existe um conflito de tipos referente ao nome tela_p1. A única chance disse ocorrer é se você estiver tentando redeclarar essa função, em lugar de apenas chamá-la (ou seja: você deve ter escrito algo como “int tela_p1(v1, v2, v3)”, em vez de simplesmente “tela_p1(v1, v2, v3)”). E isso explicaria a primeira mensagem, pois o label associado a um case dentro do bloco de um comando switch obrigatoriamente tem se apontar para um comando (statemente), que pode ser um comando de controle de fluxo (if, while, for, outro switch etc.) ou uma chamada a função, mas não uma declaração de função.


Entretanto, o código que você postou na primeira mensagem NÃO possui esse erro. Você provavelmente mexeu no programa depois de perguntar aqui, e as mensagens de erro que você colou na segunda mensagem provavelmente se referem a esse código já mexido. Certo?






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts