Ir ao conteúdo

Posts recomendados

Postado

Boa noite, Galera

 

A fórmula está errada? Os resultados estão saindo próximos mas errados.

 

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

/*Faça uma função que receba por parâmetro os valores necessário para o cálculo da fórmula de báskara e imprima as suas
raízes, caso seja possível calcular.*/
	void recebe_valor();
	void calcula_valor(float a, float b, float c);
	float imprime_valor(float raiz1, float raiz2, float bhask);
	
int main() {
	recebe_valor();
	return 0;
}

void recebe_valor(){
	float a, b, c;
	printf("Para calcular a formula de bhaskara digite as seguintes variaveis: a, b, c:\n");
  	scanf("%f %f %f", &a, &b, &c);
  	
  	calcula_valor(a, b, c);
}

void calcula_valor(float a, float b, float c){
	float bhask=0;
	float raiz1=0, raiz2=0;

		bhask= (pow(b,2)-(4*a*c));		

	if(bhask<1){
		printf("Nao ha raiz na funcao:\n");
		return 0;
	}
	
	imprime_valor (raiz1, raiz2, bhask);
}

float imprime_valor(float raiz1, float raiz2, float bhask){
		float b;
			
		raiz1 = ((-b)+ sqrt(bhask));
		printf("A primeira raiz eh:%2.f\n",raiz1);
		
		raiz2 = ((-b)-sqrt(bhask));
		printf("A segunda raiz eh:%2.f",raiz2);
	}

 

Postado
52 minutos atrás, Dafne Guimarães disse:

float imprime_valor(float raiz1, float raiz2, float bhask)

{

float b;

 

raiz1 = ((-b)+ sqrt(bhask));

printf("A primeira raiz eh:%2.f\n",raiz1);

 

raiz2 = ((-b)-sqrt(bhask));

printf("A segunda raiz eh:%2.f",raiz2);

 

}

Qual o valor de b nessa função? não está vazio?

  • Obrigado 1
  • Membro VIP
Postado

Olá @Dafne Guimarães.

 

10 horas atrás, Dafne Guimarães disse:

int main() {
	recebe_valor();
	...
}

void recebe_valor(){
  ...
  calcula_valor(a, b, c);
}

void calcula_valor(float a, float b, float c){
  ...
  imprime_valor (raiz1, raiz2, bhask);
}

 

 

Outro ponto importante. Você não deve ficar invocando um procedimento dentro do outro. O mais correto seria deixar a função terminar, ai volta para o main() e invoca um próximo método.

 

Perceba que o nome do primeiro método é recebe_valor(). Dentro dele você invoca o calcula_valor(), mas entenda que uma coisa não está "dentro" da outra! Receber é receber, calcular é calcular... são etapas diferentes. Primeiro recebe, depois calcula, depois imprimi. Da forma que você fez, fica parecendo que "calcular" é uma sub-estapa para receber! E não é!

 

 

Poderia ser algo como:

int main() {
    recebe_valor();
    calcula_valor(a, b, c);
    imprime_valor (raiz1, raiz2, bhask);
}

Veja que isso é só um esboço, você precisa efetuar as adaptações necessárias, como usar algumas variáveis globais, e/ou fazer alguma função retornar algum valor etc.

 

 

No aguardo.

  • Obrigado 1
Postado
9 horas atrás, omegahugal disse:

Qual o valor de b nessa função? não está vazio?

Shii! Foi isso o meu erro! Esqueci de passar o valor no float imprime_valor (float raiz1, float raiz2, float bhask, float b). Modifiquei lá em cima e agora foi! Além do (2.a) que esqueci de pôr debaixo da função. 

9 horas atrás, omegahugal disse:


float imprime_valor(float raiz1, float raiz2, float bhask)

{

 

valeu, muito obrigada! :)

adicionado 1 minuto depois
11 minutos atrás, Simon Viegas disse:

Olá @Dafne Guimarães.

 

 

Outro ponto importante. Você não deve ficar invocando um procedimento dentro do outro. O mais correto seria deixar a função terminar, ai volta para o main() e invoca um próximo método.

 

Perceba que o nome do primeiro método é recebe_valor(). Dentro dele você invoca o calcula_valor(), mas entenda que uma coisa não está "dentro" da outra! Receber é receber, calcular é calcular... são etapas diferentes. Primeiro recebe, depois calcula, depois imprimi. Da forma que você fez, fica parecendo que "calcular" é uma sub-estapa para receber! E não é!

 

 

Poderia ser algo como:


int main() {
    recebe_valor();
    calcula_valor(a, b, c);
    imprime_valor (raiz1, raiz2, bhask);
}

Veja que isso é só um esboço, você precisa efetuar as adaptações necessárias, como usar algumas variáveis globais, e/ou fazer alguma função retornar algum valor etc.

 

 

No aguardo.

 

Pois é, então, eu fazia isso, ai ontem mandando pra uma colega ele falou disso e falou pra fazer como eu fiz nessa programação ae. Mas já que você está falando isso, vou voltar a fazer como antes mesmo. Lembro do professor ter ensinado como você falou.

 

Obrigada.

  • Amei 1
  • Membro VIP
Postado
9 minutos atrás, Dafne Guimarães disse:

Pois é, então, eu fazia isso, ai ontem mandando pra uma colega ele falou disso e falou pra fazer como eu fiz nessa programação ae. Mas já que você está falando isso, vou voltar a fazer como antes mesmo. Lembro do professor ter ensinado como você falou.

 

Beleza. Qualquer coisa posta o código atual para analisarmos ou, se for o caso, onde tem dúvidas.

 

No aguardo.

  • Curtir 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...