Newsgroup: it.comp.lang.c
Titolo: programma da debuggare

salve,
ho il dev c++
ho compilato il seguente programma, dove:
1)prima scrivo il prototipo delle funzioni f_varianza ed f_test_frame;
2)poi scrivo il main;
3)poi scrivo il codice interno delle funzioni;
non serve che voi sappiate cosa fa, e cosa non fa, penso al 99% si tratti di
un errore di forma.
ecco l'intero programma:
*inizio programma*
#include <stdio.h>
#include <stdlib.h>
/*la funzione f_varianza() si limita a calcolare la varianza del vettore:
energia_sub[n°subframe] , associato ad ogni frame*/
/*la funzione f_test_frame() stabilisce se il frame passatogli come
argomento,
 sia di voce o di rumore, mediante la comparazione dei valori restituiti
dalla
 funzione f_varianza, per tale frame, e per il frame del rumore*/
double f_varianza(int *segnale,int n_campioni_ogni_frame, int frame);
int f_test_frame(int *segnale,int n_campioni_ogni_frame,int frame,
double varianza_rumore);
int main()
{
int n_campioni=400;
int n_campioni_ogni_frame=80;
/*la variabile frame è l'indice con la posizione del frame. questo indice va
da
 zero a "n°frame-1"*/
int frame;
int n_frame;
int segnale[n_campioni];
int esito;
double varianza_rumore;
int i;
/*ora viene creato il segnale da testare. Esso contiene molti frame*/
for(i=0;i<=n_campioni;i++)
{
segnale[i]=i^2+1;
}
n_frame=n_campioni/n_campioni_ogni_frame;
frame=0;
/*ora si ipotizza che il primo frame del segnale sia del rumore */
varianza_rumore=f_varianza(segnale,n_campioni_ogni_frame, frame);
esito= f_test_frame(segnale,n_campioni_ogni_frame, frame,varianza_rumore)  ;
printf("%i\n", esito);
getchar();
system("pause");
}
/*qui termina il main()*/
/*ora descriviamo la funzione f_varianza()*/
f_varianza(segnale,n_campioni_ogni_frame,frame)
{
 int n_subframe=n_campioni_ogni_frame/4;
 int energia_sub[n_subframe];
 int somma=0;
 int varianza;
 double media_energia_sub, energia_sub;
 /*ora creo il vettore energia_sub[n_subframe]*/
 for(m=0;m<n_subframe;m++)
{
 somma=0;
 for(i=0;i<4;i++)
 {
  somma=somma+segnale[frame*4+i];
  }
  energia_sub[m]=somma;
 }
/*ora calcolo il valore medio del vettore energia_sub[n°subframe]*/
  somma=0;
 for(m=0;m<n_subframe;m++)
{
 somma=somma+energia_sub[m];
}
media_energia_sub=somma/n_subframe;
/*ora calcolo la varianza del vettore energia_sub[n°subframe]*/
  somma=0;
 for(m=0;m<n_subframe;m++)
{
 somma=somma+(energia_sub[m]-media_energia_sub)^2;
}
varianza=somma/n_subframe;
return varianza;
}
/*ora descriviamo la funzione f_test_frame()*/
f_test_frame(segnale,n_campioni_ogni_frame, frame,varianza_rumore)
{
 varianza=f_varianza(segnale,n_campioni_ogni_frame,frame);
if ( varianza > 7*varianza_rumore ) esito=1
else esito=0;
return esito;
}
*fine programma*
ebbene nella riga 61 mi dà la coppia degli errori:
61 C:\Documenti\wfd_prova_0.cpp expected constructor, destructor, or type
conversion before '(' token
61 C:\Documenti\wfd_prova_0.cpp expected `,' or `;' before '(' token
la riga 61 è quella che contiene l'inizio del codice della funzione
f_varianza, e cioè:
f_varianza(segnale,n_campioni_ogni_frame,frame)
nella maniera analoga, gli stessi errori me li dà anche per la riga 107,
dove ci sta l'inizio del
 codice della funzione f_test_frame():
f_test_frame(segnale,n_campioni_ogni_frame, frame,varianza_rumore).
come posso correggere questi errori?
grazie,
adriano

 ecco l'intero programma:
Impara a usare un debugger, ti sarà molto utile anche in futuro
-- 
"Le opinioni dei fanatici prescindono dai fatti"
python -c "print 'bG9ybWF5bmFAZ21haWwuY29t'.decode('base64')"
Linux Registered User: 461615
http://lmainardi.blogspot.com

 come posso correggere questi errori?
dove sono finiti i tipi della funzione e dei parametri ?
g.

 Impara a usare un debugger, ti sarà molto utile anche in futuro
Ma il debugger non serve a niente finchè non sei riuscito a compilare.
E.

 
Secondo me manca l'indicazione del tipo della funzione (void, int, etc)
Un sorgente c, inoltre, dovrebbe avere come estensione .c e non cpp ma 
questo penso sia solo una questione di forma.
Ciao
Giuseppe

 Impara a usare un debugger, ti sarà molto utile anche in futuro
piu' che altro: impara il C prima.
Ciao Jack

 Ma il debugger non serve a niente finchè non sei riuscito a compilare.
È vero, hai ragione...Scusa, avevo letto male:-)


 ma questo penso sia solo una questione di forma.
No.  Usando l'estensione .cpp molti compilatori (sicuramente il gcc) 
interpretano il file come sorgente C++.
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   Registered Linux user #337974  < 
http://giovanni.homelinux.net/
 >

 
Immaginavo una cosa del genere :)
Ciao
Giuseppe