Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2014
    residenza
    torino
    Messaggi
    3

    [C] programma con funzioni

    ciao a tutti;
    sto impazzendo con questo programma che sto svolgendo in virtù della preparazione all'esame di elementi di informatica e ogni volta non mi parte per una ragione diversa!
    aiutoooo!
    Si scriva un metodo generaVettore che riceve in ingresso due vettori di interi positivi di uguale dimensione V1 e V2, e
    restituisce un vettore di interi V3 di dimensione pari alla dimensione di V1 (V2 ) in cui la generica posizione i è così
    ottenuta:
    • Se i è un indice pari V3[i] = somma degli elementi di V1 con indice maggiore di i.
    • Se i è un indice dispari V3[i] = prodotto degli elementi di V2 con indice maggiore di i.
    • L’ultimo elemento del vettore V3 sarà invece posto uguale a 0
    Ad esempio, se V1= [ 2, 5, 11, 3, 7 ] e V2= [ 1, 2, 4, 3, 2] il vettore restituito è V3 = [ 26, 24, 10, 2, 0]
    ----- Io ho fatto così, ma non mi parte! (perché e come dovrei fare?)--------
    codice:
    #include <iostream>
    using namespace std;
    
    
    
    
    int* generaVettore(int v1[], int v2[], int d1, int d2){
    int* v3= new int [d1];
    int d3=0;
    
    
    
    
    for(int i=0; i<d1; i++){
            if(i%2==0){                   
                  v3[i] = somma(v1,d1);
                  d3++;    
            }
            else if (i%2 !=0){
                 v3[i]= prodotto(v2,d2);
                 d3++;
                 }
                 else {v3[i]=0;}
            }
         return v3;
    }
    
    
    
    
    
    
    int* somma(int v1[], int d1){
         
         int somma=0;
         d1=0;
         for(int i=0; i< d1; i++){
                 somma+=v1[i+1];  
                 d1++;           
                 }
       
                 
                 return somma;
    }
    
    
    int* prodotto(int v2[], int d2){
         
         
         int prodotto=0;
         d2=0;
         for(int i=0; i<d2; i++){
                 prodotto *=v2[i+1];             
                  d2++;
                 }
                 
                 return prodotto;
    }
         
         
         int main(){
             
             
              int v1[]={2, 5, 11, 3, 7};
           int v2[]={1, 2, 4, 3, 2};
       
           
           int* vrest;
           vrest=generaVettore(v1,v2,d1,d2);
           
           
        for (int i=0; i<5; i++){
            cout<<"valore: "<<i<<"  :"<<vrest[i]<<endl;
    
    
    
    
         }
    system("pause");
        return 0;
    spero siate così galanti e cortesi da aiutare una povera ragazza in difficoltà.
    grazie
    Ultima modifica di MItaly; 26-11-2014 a 14:33 Motivo: Tag CODE

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Nel main non devi chiamare la funzione con d1,d2 ma con 5,5
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2014
    residenza
    torino
    Messaggi
    3

    re

    Quote Originariamente inviata da oregon Visualizza il messaggio
    Nel main non devi chiamare la funzione con d1,d2 ma con 5,5

    si però mi da un problema in:

    ...... for(int i=0; i<d1; i++){
    if(i%2==0){
    v3[i] = somma(v1,d1); //mi da un problema qui!!!
    d3++;
    } .....

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non sai indicare in dettaglio che problema?

    P.S. Perché la funzione somma e la funzione prodotto restituiscono un puntatore ad intero (int *) ? Dovrebbero restituire un semplice intero (int) ...
    Ultima modifica di oregon; 26-11-2014 a 15:06
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2014
    residenza
    torino
    Messaggi
    3
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Non sai indicare in dettaglio che problema?

    P.S. Perché la funzione somma e la funzione prodotto restituiscono un puntatore ad intero (int *) ? Dovrebbero restituire un semplice intero (int) ...
    ah e quindi come dovrebbe venire il programma per partire ed eseguire correttamente le istruzioni?

    scusa se ti faccio perdere tempo

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Beh ... te l'ho detto ... non devi restituire un puntatore ma un intero.

    E non mi pare il solo errore ... ad esempio, per effettuare molte moltiplicazioni devi iniziare da 1 e non da 0 ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.