Ciao, sono nuovo sia nel forum che nell'ambito della programmazione, ma veniamo al dunque...
devo scrivere un programma che :
Creare un file “main.c”. Nel file, si realizzi in linguaggio C la funzione corrispondente alla seguente
dichiarazione:
extern int soluzioni(double a, double b, double c, double *x1, double *x2);
La funzione, utilizzando quella per il calcolo del discriminante dell’esercizio precedente e quella
per il calcolo della radice quadrata vista a lezione, calcola le soluzioni dell’equazione di secondo
grado ax^2+bx+c=0 e ne ritorna il numero.
Se ? < 0, la funzione ritorna 0 e non modifica le variabili puntate da x1 e x2.
Se ? = 0, la funzione ritorna 1, se ? > 0 la funzione ritorna 2. In entrambi i casi le soluzioni sono
date da
x1 =(-b + v?) /2a
x2 =(-b - v?)/2a
e vengono assegnate alle variabili puntate da x1 e x2.
la funzione del discriminante creata in precedenza funziona senza nessun problema, invece questo proprio non ne vuole sapere di compilarsi.
qualcuno che mi aiuta please? sono quasi due ore che ci sbatto la testa
ERRORI
1>------ Inizio compilazione: Progetto: ex3, Configurazione: Debug Win32 ------
1>soluzioni.obj : error LNK2019: riferimento al simbolo esterno _discriminante non risolto nella funzione _soluzioni
1>MSVCRTD.lib(exe_main.obj) : error LNK2019: riferimento al simbolo esterno _main non risolto nella funzione "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ)
1>C:\Users\Mike\Documents\Visual Studio 2015\Projects\ex 26-11-2016\ex3\Debug\ex3.exe : fatal error LNK1120: 2 esterni non risolti
========== Compilazione: 0 completate, 1 non riuscite, 0 aggiornate, 0 ignorate ==========
riporto qui il codice.
MAIN.C
#include "soluzioni.h"
int main(void) {
double a, b, c, x1, x2;
int risultato;
risultato = soluzioni(a, b, c, &x1, &x2);
return 0;
}
SOLUZIONI.H
#ifndef SOLUZIONI_H
#define SOLUZIONI_H
extern int soluzioni(double a, double b, double c, double *x1, double*x2);
#endif // !SOLUZIONI_H
#ifndef DISCRIMINANTE_H
#define DISCRIMINANTE_H
extern double discriminante(double a, double b, double c);
#endif // !DISCRIMINANTE_H
SOLUZIONI.C
#include <math.h>
extern double discriminante(double a, double b, double c);
int soluzioni(double a, double b, double c, double *x1, double*x2) {
double delta;
delta = discriminante(a, b, c);
if (delta < 0)
return 0;
if (delta == 0)
return 0;
if (delta > 0)
*x1 = (-b + sqrt(delta)) / (2 * a);
*x2= (-b - sqrt(delta)) / (2 * a);
return 2;
}
DISCRIMINANTE
double discriminante(double a, double b, double c) {
double delta;
delta = ((b*b) - 4 * (a*b));
return delta;
}