Oppure

Loading
Questo topic e' stato chiuso dal moderatore.
28/01/12 19:22
nino9401
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)

#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");
}
aaa
28/01/12 19:44
nessuno
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 28/01/12 19: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à.
28/01/12 19:52
nino9401
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??
aaa
28/01/12 20:07
nino9401
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 28/01/12 20:11
aaa
28/01/12 20:08
nino9401
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... :(
aaa
28/01/12 20:09
nino9401
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... :(
aaa
28/01/12 20:45
nessuno
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 ...

mi sapresti aiutare??


Quando chiami la funzione dimensiona scrivi

dimensiona(&N);

che diventerà

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à.
28/01/12 23:51
Lupinthe3d
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 ?
aaa