Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2015
    Messaggi
    15

    sottoprogramma c++ vettori

    ciao a tutti sto preparando l'esame di elementi di informatica e per un pò vi darò fastidio.
    innanzitutto vi ringrazio in anticipo per le risposte ricevute.
    ho fatto realizzato il seguente programma ma non parte.



    codice:
    //inserire da tastiera un riempimento e 
    //un vettore v1 e si crei una funzione
    //che copi in un v2 la posizione degli 
    //elementi positivi e un numero " nelem "
    //che indichi il numero dei negativi o nulli.
    // Si stampi infine v2 e nelem, dando
    //un messaggio nel caso in numeri sia 
    //tutti positivi o negativi. */
    #include <iostream>
    #include <stdlib.h>
    using namespace std;
    #define dim 100
    
    
    void leggi (int v1[],int&);
    void creazione_nvet (int [], int&, int [],int&, int& );
    void stampa (int&, int [],int&, int&);
    
    
    int main()
    {
        int v1[dim],N,v2[dim],M,nelem,;
        leggi (v1,N);
        creazione_nvet (v1, N, v2,M, nelem );
        stampa (N,v2,M,nelem);
        
       
        
        system("PAUSE");
        return 0;
    }
    
    
    void leggi (int v1[],int& N){
         cout<<"INSERIRE IL RIEMPIMENTO"<<endl;
         cout<<"RIEMPIMENTO ="; cin>>N;
         cout<<"INSERIRE IL VETTORE V1"<<endl;
         for(int i=0;i<N;i++){
                 cout<<"ELEMENTO V1[="<<i<<"]="; cin>>v1[i];
                 
                 }
                  
         }
    void creazione_nvet (int v1[], int& N, int v2[],int& M, int& nelem ){
         nelem=0;
         int j=0;
         for (int i=0;i<N;i++){
            if(v1[i]%2==0){
                          v2[j]=i;
                          j++;}
            }
            for (int i=0;i<N;i++){
            if(v1[i]<=0){
                          nelem=nelem+1;
                          }
            
            
         }
         
         
         v2[j+1]=nelem;
         M=j;
          
         }
    void stampa (int& N,int v2[],int& M ,int& nelem){
         for(int j=0;j<M;j++){
                          cout<<v2[j];}
         cout<<v2[j+1];
                          
         if (nelem==N){
                       cout<<"gli elementi sono tutti negativi";}
         if (nelem==0){
                       cout<<"gli elementi sono tutti positivi";}
         
    
    
    
    
    }
    Ultima modifica di MItaly; 06-12-2015 a 16:03

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Se vorrai degli aiuti dal forum devi evitare di scrivere "non parte" o "non funziona".

    Elenca gli eventuali errori di compilazione o messaggi a runtime.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2015
    Messaggi
    15
    scusate ma non frequento molto i forum,saranno sicuramente omessi nei prossimi argomenti.
    gli errori di compilazioni sono i seguenti :
    1 In function `void stampa(int&, int*, int&, int&)':
    2 name lookup of `j' changed for new ISO `for' scoping per la riga 66(cout<<v2[j+1]
    3 using obsolete binding at `j' per la riga 64 (for(int j=0;j<M;j++){) .

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Tutta quella roba per la variabile j che non puoi usare nella linea

    cout
    <<v2[j+1];
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2015
    Messaggi
    15
    ho sostituito
    codice:
    v2[M+1]=nelem
    in creazione
    mentre in stampa :
    codice:
    cout<<v2[M+1]
    in questo modo non mi da errori e il programma esegue bene.
    lo stesso programma l'ho realizzato senza l'utilizzo dei sottoprogrammi con i quali ho un pò di problemi.
    vorrei chiederti, se è possibile, il perchè la scrittura precedente non è giusta.
    grazie mille.
    Ultima modifica di MItaly; 06-12-2015 a 16:03

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non ho capito ... quale scrittura precedente?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2015
    Messaggi
    15
    mi riferivo a questo
    Tutta quella roba per la variabile j che non puoi usare nella linea


    cout
    <<v2[j+1];


  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Perché in quella riga j non esiste
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2015
    Messaggi
    15

    grazie mille per la disponibilità.

Tag per questa discussione

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.