nino9401 (Normal User)
Newbie
Messaggi: 6
Iscritto: 28/01/2012
|
Questo topic è stato chiuso dal moderatore cosa c'è che non va nel mio codice, nn mi fà il risultato atteso, è la prima volta che mi trovo in difficoltà -.-"
Titolo:
Scrivere un programma, facendo uso di funzioni che permette di eseguire la somma di due polinomi omogenei
P1(x) e P2(x) di grado N(max=5)
( definire gli elementi dei polinomi come record aventi due campi {(coeff)(grado) )
Visualizzare il polinomio risultante (stampa tramite funzione)
Codice sorgente - presumibilmente C++ |
#include<iostream.h> typedef struct Polinomio { float coeff; int grado; }; Polinomio P1[5],P2[5],S[5]; void dimensiona(void) { int N; do{ cout<<"qual'e' il grado del polinomio da inserire?"; cin>>N; }while(N<0 || N>5); return; } void carica(Polinomio P1[],int N) { int I; for(I=0;I<N;I++) { cout<<"inserisci coefficiente"; cin>>P1[I].coeff; cout<<"inserisci grado"; cin>>P1[I].grado; } return; } int somma(Polinomio P1[], int N,Polinomio P2[]) { int I; for(I=0;I<N;I++) { if(P1[I].grado==P2[I].grado) S[I].coeff=P1[I].coeff+P2[I].coeff; } return S[I].coeff; } void stampa(Polinomio S[],int N,Polinomio P1[], Polinomio P2[]) { int I; cout<<"la somma dei singoli coefficienti e'"; for(I=0;I<N;I++) { cout<<S[I].coeff<<" "; if(P1[I].grado!=P2[I].grado) { cout<<P1[I].coeff; cout<<"\t"; cout<<P2[I].coeff; }} return; } main() {int N; dimensiona(); cout<<endl<<endl; carica(P1,N); cout<<endl<<endl; carica(P2,N); cout<<endl<<endl; somma(P1,N,P2); cout<<endl<<endl; stampa(S,N,P1,P2); cout<<endl<<endl; system("PAUSE"); }
|
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6403
Iscritto: 03/01/2010
|
E cosa non va? Dobbiamo immaginarlo?
Quale input fornisci? Quale output hai? Quale dovresti avere?
Hai errori in compilazione? In esecuzione? Quali !?
L'unica cosa evidente di sbagliato è che utilizzi una variabile
N
nel main, e un'altra N nella funzione dimensiona ...
Ovviamente devi usare quella del main, passandola alla funzione dimensiona per puntatore.
Ultima modifica effettuata da nessuno il 28/01/2012 alle 20:47
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
nino9401 (Normal User)
Newbie
Messaggi: 6
Iscritto: 28/01/2012
|
ero venuto qua per chiedere ma tu hai scritto un sacco di ? senza dirmi molto, cmq la so la teoria sulle variabili globali e locali, ma se io non la metto dentro la funzione dimensiona mi porta l'errore... -.-"
mi sapresti aiutare??
|
|
nino9401 (Normal User)
Newbie
Messaggi: 6
Iscritto: 28/01/2012
|
io è solo 1 anno e mezzo che faccio informatica e mi sn innamorato della programmazione, ma è da poco che ci è stato spiegato il record... io ho provato a farlo ma adesso non so + come agire...
Ultima modifica effettuata da nino9401 il 28/01/2012 alle 21:11 |
|
nino9401 (Normal User)
Newbie
Messaggi: 6
Iscritto: 28/01/2012
|
io è solo 1 anno e mezzo che faccio informatica e mi sn innamorato della programmazione, ma è da poco che ci è stato spiegato il record... io ho provato a farlo ma adesso non so + come agire...
|
|
nino9401 (Normal User)
Newbie
Messaggi: 6
Iscritto: 28/01/2012
|
io è solo 1 anno e mezzo che faccio informatica e mi sn innamorato della programmazione, ma è da poco che ci è stato spiegato il record... io ho provato a farlo ma adesso non so + come agire...
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6403
Iscritto: 03/01/2010
|
Postato originariamente da nino9401:
ero venuto qua per chiedere ma tu hai scritto un sacco di ? senza dirmi molto |
Senti ... se ti ho fatto delle domande (tanti ? si dice "tante domande") vuol dire che tu hai aperto una discussione senza dare le giuste informazioni per poterti rispondere.
Se preferisci non avere alcuna risposta (o peggio, aver chiuso la discussione) fai pure ma sei tu ad avere il problema e sarebbe opportuno per te rispondere alle domande che ti fa qualcuno che si è *interessato* al TUO problema.
cmq la so la teoria sulle variabili globali e locali |
No ... non mi pare, perché se la conoscessi non avresti scritto quel codice sbagliato.
ma se io non la metto dentro la funzione dimensiona mi porta l'errore... -.-" |
Proprio perché non conosci la teoria ...
Quando chiami la funzione dimensiona scrivi
dimensiona(&N);
che diventerà
Codice sorgente - presumibilmente C/C++ |
void dimensiona(int *num)
{
do{
cout<<"qual'e' il grado del polinomio da inserire?";
cin>>*num;
}while(*num<0 || *num>5);
return;
}
|
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
Lupinthe3d (Normal User)
Newbie
Messaggi: 10
Iscritto: 24/01/2012
|
prima di commentarti il codice, dimmi una cosa : l'errore te lo da in compilazione, oppure il programma va in esecuzione ma senza i risultati sperati ?
|
|
HeDo (Founder Member)
Guru^2
Messaggi: 2765
Iscritto: 21/09/2007
|
|
|