PDA

Visualizza la versione completa : c++ funzione booleana con contatore


wgd-developer
02-05-2008, 22:20
Buona sera, ho questo esercizio, sembrava semplice, ma niente... non vuole girare...



/*
Assegnata una matrice quadrata NxN, scrivere una funzione booleana ricerca
che stampi vero se i numeri dispari ricorrono pi volte dei pari.
*/

#include<iostream>
#include<cstdlib>

using namespace std;
const int rigmax=50;
const int colmax=50;

using namespace std;
bool PariDispari(int [][colmax], int , int , int &);
void StampaMat(char, int [][colmax], int);

int main()
{
int A[rigmax][colmax];
int n,m, conta;
cout<<"inserisci righe : ";
cin>>n;
cout<<"inserisci colonne : ";
cin>>m;


int i=0, j=0, sommaP=0, sommaD=0;

cout<<PariDispari(A, n, m, conta);
cout<<sommaP<<endl;
cout<<sommaD<<endl;

StampaMat('A', A, n);

system("pause");
}


bool PariDispari(int A, int n, int m, int &conta){
if(n<0){
if(conta>0){
return true;}
else{
return false;
}
}
else {
if(m<0)
return PariDispari(A, n-1, m, conta);
else
{
if (A[n][m]%2==0){
return PariDispari(A, n-1, m, conta-1);
}
else
return PariDispari(A, n-1, m, conta+1);
}

}


void StampaMat(char nomemat,const int A[][m], int n, int m) {
int i,j;
for (i=0;i<n;i++) {
for (j=0; j<n; j++)
cout<<nomemat<<"["<<i<<"]["<<j<<"]="<<A[i][j]<<" ";
cout<<endl;
}
}



l'errore st nella functionparidispari

oregon
02-05-2008, 22:44
S ... ma quando proponi un problema devi "spiegare" un po' cosa dovrebbe fare il programma, cosa fa ogni funzione, di quale errore parli ... altrimenti nessuno ti rispondera' ...

wgd-developer
02-05-2008, 22:56
il problema st esposto nell'intestazione, nei commenti...
la prima cosa la cosidetta TRACCIA

l'errore st nella funzione booleana(c' ne solo una)

quello che f si intuisce dalla traccia...

e se sapevo l'errore preciso lo corregevo io...

grazie lo stesso

oregon
02-05-2008, 23:09
Originariamente inviato da wgd-developer
il problema st esposto nell'intestazione, nei commenti...
la prima cosa la cosidetta TRACCIA

l'errore st nella funzione booleana(c' ne solo una)

quello che f si intuisce dalla traccia...

e se sapevo l'errore preciso lo corregevo io...


Va be' ... non hai capito nulla di quello che ti ho detto ...

Comunque, non c'e' nessun commento e non si deve "intuire" ... semmai tu devi SPIEGARE ...



grazie lo stesso

Prego

wgd-developer
02-05-2008, 23:34
Scusa eh, ma :

Assegnata una matrice quadrata NxN, scrivere una funzione booleana ricerca
che stampi vero se i numeri dispari ricorrono pi volte dei pari.

cosa potrebbe mai significare???

poi inoltre non ho resistito, perch ho visto il 60 % dei tuoi messaggi e non sono altro che "specifa qua, cosa fa la, etc..."
regalala una riga di codice...

mondobimbi
03-05-2008, 09:01
Originariamente inviato da wgd-developer
Scusa eh, ma :

Assegnata una matrice quadrata NxN, scrivere una funzione booleana ricerca
che stampi vero se i numeri dispari ricorrono pi volte dei pari.

cosa potrebbe mai significare???
...


questa la tua consegna e potrebbe tornare utile per scrivere la funzione al tuo posto. Quello che non si capisce e come tu hai pensato di risolvere i problema.

A parte che il codice come lo hai postato non compilabile e che dovresti almeno renderlo tale, dovresti inoltre commentare il codice indicando le tue intenzioni e il significato degli argomenti.



/*
A una matrice quadrata
int n, m sono gli indici ... ?
conta il "contatore??" che contiene il numero di "?". E' passato per riferimento in quanto ....
*/
bool PariDispari(int A[][colmax], int n, int m, int &conta);


e cos via
ciao
sergio

Stoicenko
05-05-2008, 10:25
in pi sarebbe utile sapere che errore viene indicato dal compilatore (se l'errore a compile time) o l'errore segnalato a runtime...

dire che l'errore in una funzione dice tutto e dice nulla...

edit: visto cos alla chiamata di PariDispari nel main la variabile conta nonn inizializzata

oregon
05-05-2008, 10:30
Come vedi non sono solo io che chiedo maggiori info ... a questo punto impiega il tempo a dare le informazioni richieste perche' gli altri risolvano il tuo problema, piuttosto che fare inutili statistiche sulle mie risposte ...

PeppePes88
05-05-2008, 12:39
Scusate ma l'errore non nella funzione Pari dispari?

guarda che quando implementi la funzione non dichiari che A una matrice, ed essendo diverso dal prototipo dichiarato prima un errore;


dichiarazione : bool PariDispari(int [][colmax], int , int , int &);
definizione : bool PariDispari(int A, int n, int m, int &conta)

questi devono essere uguali!!!

Poi io non ho capito come inserisci i numeri nelle righe e colonne??

Dal cin prendi solo un valore...

Stoicenko
06-05-2008, 11:47
prototipo errato (anzi dichiarazione errata, A non un intero ma una matrice), matrice non inizializzata, contatore non inizializzato..

Intanto controlla questi 3..

Loading