Si stampino quindi il vettore V3 cosi' ottenuto e le medie d

di il
77 risposte

77 Risposte - Pagina 4

  • Re: Si stampino quindi il vettore V3 cosi' ottenuto e le medie d

    Ok allora inserisco direttamente qui il nuovo quesito? siccome devo :
    Siano dati in ingresso i riempimenti n1 ed n2 ed i valori di due vettori V1 e V2
    di interi. Si scriva un programma che, per ogni elemento di V1, verifichi se e'
    presente in V2 ed in caso positivo lo elimini da V1. Si stampi il vettore V1
    risultante ed il numero di elementi eliminati o un opportuno messaggio se non
    ci sono elementi da eliminare. Si faccia l'ipotesi che in ognuno dei due vettori i
    valori siano diversi fra loro. Si strutturi il programma in opportuni sottoprogrammi.
    Esempi:
    INPUT
    n1 = 4 V1 = 7 5 3 4
    n2 = 6 V2 = 1 3 7 6 8 2
    OUTPUT
    Dal vettore V1 sono stati eliminati 2 elementi. Il vettore V1 risultante e': 5 4

    INPUT: n1 = 7 V1 = 14 10 2 13 8 7 9
    n2 = 6 V2 = 3 4 5 12 1 6
    OUTPUT: Non ci sono elementi di V1 uguali ad elementi di V2.
  • Re: Si stampino quindi il vettore V3 cosi' ottenuto e le medie d

    Allora cerco di ragionare per gradi ..altrimenti mi perdo.
    Ho inserito i due rimepimenti e quindi mi inserisce il programma i due vettori.
    Quindi adesso voglio scrivere un programma che, per ogni elemento di V1, verifichi se e'
    presente in V2 ed in caso positivo lo elimini da V1.
    Devo effettuare l'introduzione di una funzione Bool? del tipo se trovato....ma dovrei indicare il numero degli elementi del vettore?
    oppure potrei usare una funzione differente a tuo giudizio?
    mmm
  • Re: Si stampino quindi il vettore V3 cosi' ottenuto e le medie d

    Scrivi una funzione che ti trova se un numero è presente in un array e che ti ritorna un bool
    
    bool cercaNumero(int numero, int size, int vet[])
    {
     ...........
    }
    
    poi prosseguiamo col resto.
  • Re: Si stampino quindi il vettore V3 cosi' ottenuto e le medie d

    Bool trovato (float vett[],int n,int num){
    int i=0;
    bool trovato=false;
    for (int i=0;i<n;i++) {
    if (vett==num)
    return true;
    }
    return trovato;
    }
  • Re: Si stampino quindi il vettore V3 cosi' ottenuto e le medie d

    Giusto?
  • Re: Si stampino quindi il vettore V3 cosi' ottenuto e le medie d

    OK. cerca anche di mettere i tag code così di capisce il codice dal testo. praticamente metti:
    [ poi code poi ] poi ci metti il tuo listato e poi [ poi / poi code poi ]

    Adesso fai una funzione che ti elimina un elemento passato per indice e non per valore, cioè io ti passo la posizione del numero da eliminare non il numero.
    
    void eliminaPoiszione(int pos, int size, int vet[])
    {
    ..........
    }
    
  • Re: Si stampino quindi il vettore V3 cosi' ottenuto e le medie d

    Non ho compreso per i tag code....o meglio non so farlo presumo....
    mmmm
  • Re: Si stampino quindi il vettore V3 cosi' ottenuto e le medie d

    Invece di fare risposta rapida scegli editor completo. una volta messo il tuo listato selezionalo tutto e scegli il pulsante code. vedrai che aggiungerà [code] all'inzio codice e [/code] alla fine
  • Re: Si stampino quindi il vettore V3 cosi' ottenuto e le medie d

    Mi sto trovando adesso in difficoltà....
  • Re: Si stampino quindi il vettore V3 cosi' ottenuto e le medie d

    /*Prova del 18.06.2010
    Siano dati in ingresso i riempimenti n1 ed n2 ed i valori di due vettori V1 e V2 
    di interi. Si scriva un programma che, per ogni elemento di V1, verifichi se e' 
    presente in V2 ed in caso positivo lo elimini da V1. Si stampi il vettore V1 
    risultante ed il numero di elementi eliminati o un opportuno messaggio se non 
    ci sono elementi da eliminare. Si faccia l'ipotesi che in ognuno dei due vettori i 
    valori siano diversi fra loro. Si strutturi il programma in opportuni sottoprogrammi.
    Esempi:
    INPUT
    n1 = 4		V1  =    7  5  3  4
    n2 = 6		V2  =    1  3  7  6  8  2
    OUTPUT
    Dal vettore V1 sono stati eliminati 2 elementi. Il vettore V1 risultante e':	5  4
    
    INPUT:	n1 = 7		V1 =  14  10  2  13  8  7  9
    		n2 = 6		V2 =  3  4  5  12  1  6
    OUTPUT:	Non ci sono elementi di V1 uguali ad elementi di V2.*/
    #include<iostream>
    using namespace std;
    #include<stdlib.h>
    
    //Prototipi delle funzioni
    void input(int &n,float vett[],int num);
    bool trovato (float vett[],int n,int num);
    void output(int n,float vett[],int num);
    
    int main(){
        int n1;
        int n2;
        int n3;
        int num;
        float vett1[100];
        float vett2[100];
        
    //Chiamate delle funzioni
    cout<<"Inserisci il riempimento N1\n";
    input(n1,vett1,1);
    cout<<"V1= "<<endl;
    output(n1,vett1,1);
    cout<<"Inserisci il riempimento N2\n";
    input(n2,vett2,2);
    cout<<"V2= "<<endl;
    output(n2,vett2,2);
    
    cout<<"gli elementi di V1 presenti in V2 sono\n"<<num;
    
    
    
    system("PAUSE");
    return 0;
    }
    
    void input(int&n,float vett[],int num){
         cin>>n;
         cout<<"Assegna"<<n<<"elementi del vettore"<<num<<"\n";
         for (int i=0;i<n;i++)
         cin>>vett[i];
          }
    bool trovato (float vett[],int n,int num){
         int i=0;
         bool trovato=false;
         for (int i=0;i<n;i++) {
             if (vett[i]==num)
             return true;
             }
              return trovato;
              }
         
         
    void output(int n,float vett[],int num) {
         for (int i=0;i<n;i++)
         cout<<" "<<vett[i];
         cout<<"\n";
         }
    
  • Re: Si stampino quindi il vettore V3 cosi' ottenuto e le medie d

    Ho inserito il programma fin dove sono riuscito a scriverlo.... con i tag
  • Re: Si stampino quindi il vettore V3 cosi' ottenuto e le medie d

    Questa funzione non riesco a trovarla....
  • Re: Si stampino quindi il vettore V3 cosi' ottenuto e le medie d

    Intanto mettiamo a posto il trovato.
    
    bool trovato (float vett[],int n,int num)
    {
    	for (int i=0;i<n;i++) 
    	{
    		if (vett[i]==num)
    			return true;
    	}
    	return false;
    }
    
    così mi pare stia meglio. Adesso vediamo come puoi eliminare un elemento da un array. La procedura è:

    partire dalla posizione da eliminare e copiare il dato che sta una poszione + avanti nella posizione corrente. una cosa del tipo:
    
    per i che va da pos a n -1 compreso
      copia in i il contenuto di i+1
    alla fine metti n = n -1 (quindi eliminiamo l'ultimo elemento)
    
  • Re: Si stampino quindi il vettore V3 cosi' ottenuto e le medie d

    Ok, ora mi serve allora un po' di tempo per riflettere e studiare bene questo passaggio siccome ho compreso una mezza cosa ma lo ritengo un po' più complessa in base alle mie nozioni...cmq vorrei focalizzare con più attenzione e se puoi inserirmi un abbozzo di funzione te ne sarei grato siccome non ho alcuna forma di esempio qui con me.
  • Re: Si stampino quindi il vettore V3 cosi' ottenuto e le medie d

    
    forma ridotta (da studiare :) )
    void eliminaPosizione(int pos, int & size, int vet[])
    {
    	while(pos < size - 1)
    		vett[pos] = vett[++pos];
    	size--;
    }
    
    forma estesa
    void eliminaPosizione(int pos, int & n, int vet[])
    {
    	for(int i = pos; i < n - 1; i++)
    		vett[i] = vett[i+1];
    	n = n - 1;
    }
    
Devi accedere o registrarti per scrivere nel forum
77 risposte