PDA

View Full Version : [C++] Problema con programma che legge valori....


pixie
17-12-2007, 21:37
Questa è solo una porzione di programma ma mi da un errore che non capisco:

include <iostream>
#include <math.h>
using namespace std;

#define _DEBUG_

// Prototipo procedura immissione valori
void coeff (char *mess, float *a, float *b, float *c);


void main (int argc, char **argv)
{
int var_sel;

cout << "Digita:" << endl << "=> Numero 1: per avviare il programma";
cout <<"=> Numero 2: per terminare il programma";

cin >> var_sel;

while (var_sel > 2)
{
cout <<"Reinserisci numero. Deve essere 1 o 2";
cin >> var_sel;
}


switch (var_sel)
{
// Caso 1: avvio del programma
case 1:
{
#ifdef _DEBUG_
cout <<"Hai deciso di avviare il programma.";
#endif
COEFF ();
}

// Caso 2: termine del programma
case 2:
{
#ifdef _DEBUG_
cout <<"Hai deciso di terminare il programma. BUONA GIORNATA";
#endif
}
break;

}
}


// Implementazione della procedura per la lettura dei coefficienti
void coeff (char *mess, float *a, float *b, float *c)
{
cout <<mess <<endl;

// Inserimento primo coefficiente
cout << "Immetti il primo coefficiente: ";
cin >> *a;

// Ciclo che permette di reinserire "a" nel caso questo sia zero
while (*a == 0)
{
cout << "Reinserisci primo coefficiente: ";
cin >> *a;
}

// Inserimento secondo coefficiente
cout << "Immetti il secondo coefficiente: ";
cin >> *b;

// Inserimento terzo coefficiente
cout << "Immetti il terzo coefficiente: ";
cin >> *c;

system ("pause");
}



Il programma deve calcolare un'equazione di secondo grado soltanto che mi da errore dove ho scritto maiuscolo e non capisco perchè...PER FAVORE...potreste mettermela voi giusta....PLEASE....grazie

Broadband
17-12-2007, 22:17
Ciao,

non è che io sia un esperto... ma tu hai definito la tua funzione con una serie di argomenti char* . Tuttavia quando chiami la funzione non gli passi niente. E' normale che ti dia errori.

Ciau

pixie
17-12-2007, 22:20
ho provato pure a passargli dei parametri ma mi da un errore di sintassi....non capisco cavolo....AIUTOOOO

vizzz
17-12-2007, 22:32
metti il codice nel tag code, così non si legge molto e incolla qui anche l'errore.

pixie
17-12-2007, 22:37
include <iostream>
#include <math.h>
using namespace std;

#define _DEBUG_

// Prototipo procedura immissione valori
void coeff (char *mess, float *a, float *b, float *c);


void main (int argc, char **argv)
{
int var_sel;

cout << "Digita:" << endl << "=> Numero 1: per avviare il programma";
cout <<"=> Numero 2: per terminare il programma";

cin >> var_sel;

while (var_sel > 2)
{
cout <<"Reinserisci numero. Deve essere 1 o 2";
cin >> var_sel;
}


switch (var_sel)
{
// Caso 1: avvio del programma
case 1:
{
#ifdef _DEBUG_
cout <<"Hai deciso di avviare il programma.";
#endif
COEFF ();
}

// Caso 2: termine del programma
case 2:
{
#ifdef _DEBUG_
cout <<"Hai deciso di terminare il programma. BUONA GIORNATA";
#endif
}
break;

}
}


// Implementazione della procedura per la lettura dei coefficienti
void coeff (char *mess, float *a, float *b, float *c)
{
cout <<mess <<endl;

// Inserimento primo coefficiente
cout << "Immetti il primo coefficiente: ";
cin >> *a;

// Ciclo che permette di reinserire "a" nel caso questo sia zero
while (*a == 0)
{
cout << "Reinserisci primo coefficiente: ";
cin >> *a;
}

// Inserimento secondo coefficiente
cout << "Immetti il secondo coefficiente: ";
cin >> *b;

// Inserimento terzo coefficiente
cout << "Immetti il terzo coefficiente: ";
cin >> *c;

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

pixie
17-12-2007, 22:39
scusate ho sbagliato prima:

void main (int argc, char **argv)
{
int var_sel;

cout << "Digita:" << endl << "=> Numero 1: per avviare il programma";
cout <<"=> Numero 2: per terminare il programma";

cin >> var_sel;

// Ciclo che non permette di inserire un numero maggiore di 2
while (var_sel > 2)
{
cout <<"Reinserisci numero. Deve essere 1 o 2";
cin >> var_sel;
}


switch (var_sel)
{
// Caso 1: avvio del programma
case 1:
{
#ifdef _DEBUG_
cout <<"Hai deciso di avviare il programma.";
#endif

coeff ();
}

// Caso 2: termine del programma
case 2:
{
#ifdef _DEBUG_
cout <<"Hai deciso di terminare il programma. BUONA GIORNATA";
#endif
}
break;

}
}


// Implementazione della procedura per la lettura dei coefficienti
void coeff (char *mess, float *a, float *b, float *c)
{
cout <<mess <<endl;

// Inserimento primo coefficiente
cout << "Immetti il primo coefficiente: ";
cin >> *a;

// Ciclo che permette di reinserire "a" nel caso questo sia zero
while (*a == 0)
{
cout << "Reinserisci primo coefficiente: ";
cin >> *a;
}

// Inserimento secondo coefficiente
cout << "Immetti il secondo coefficiente: ";
cin >> *b;

// Inserimento terzo coefficiente
cout << "Immetti il terzo coefficiente: ";
cin >> *c;

system ("pause");
}

pixie
17-12-2007, 22:40
ah si ci manca la dichiarazione della funzione
// Prototipo procedura immissione valori
void coeff (char *mess, float *a, float *b, float *c);

tomminno
17-12-2007, 23:45
Ti sei dimenticato di riportare gli errori che ti dà il compilatore.
Comunque sbagli a chiamare coeff:

float a,b,c;
char * msg = "Messaggio inutile";//sarebbe const char *
coeff(msg,&a,&b,&c);

Anche se non c'è motivo di passare il primo paramentro a coeff visto che lo deve solo stampare.