Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente bannato
    Registrato dal
    Nov 2005
    Messaggi
    128

    [C++]semplice esercizio sui vettori

    dunque questo è l'esercizio:

    Prova 1
    Siano assegnati in ingresso, da tastiera, due vettori di interi V1 e V2 ed un intero k.
    Si scriva un programma che individui e stampi il valore val e la posizione pos del primo elemento di V1 il cui valore è maggiore dell’elemento di posto k del vettore V2.
    Il programma deve essere articolato in funzioni (ad es.: input, output, trovaprimo).
    Suggerimento: la funzione trovaprimo riceve in ingresso V1, V2 e k e restituisce come parametri di uscita val e pos.
    Esempi
    INPUT: V1 = 2 4 1 3 7 6 9 V2 = 3 4 5 12 1 6 k = 2
    OUTPUT: val = 7 pos = 4
    INPUT: V1 = 2 4 1 3 7 6 9 V2 = 3 4 5 12 1 6 k = 0
    OUTPUT: val = 4 pos = 1



    l'ho provato a fare cosi':
    codice:
    #include <stdlib.h>
    #include <iostream>
    using namespace std;
    void input(int v[]);
    void trovaprimo (int v1[], int v2[],int &val,int &pos,int k);
    void output (int val, int pos);
    int main()
    {  int v1[7], v2[7];
       int k;
       int val,pos;
       
       cout<< "inserire i valori del primo vettore\n\n\n";
       input(v1);
       cout <<"inserire i valori del secondo vettore\n\n\n";
       input(v2);
       cout << "inserire un valore intero\n";
       cin>>k;
      trovaprimo(v1,v2,val,pos,k);
       
       output(val,pos);
        
     system("PAUSE");
     return 0;
        
    }
    
    void input (int v[])
    {
          int i;
          for (i=0;i<7;i++)
            cin>>v[i];
    }
    
    void trovaprimo (int v1[], int v2[],int &val,int &pos,int k)
    {
       int i,j;
       j=0;
       v2[k]=i;
       while (v1[j]<=i)
        { j++;
        }
        val=v1[j];
        pos=j;
    }
    
    void output (int val,int pos)
    {
         cout <<"il valore cercato è " << val << "e si trova nella posizione" << pos;
         cout <<"\n\n";
    }
    ma non funzia. Vorrei capire dove ho sbagliato.
    P.s: non si possono usare i puntatori ma solo gli indirizzi con il &...


    ciao,
    antonio

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Non ho fatto tutte le prove ma mi sembra che

    v2[k]=i;

    debba essere

    i=v2[k];

  3. #3
    Prova così... dovrebbe funzionare anche se sono anni che nn tocco un programma in c++

    #include <stdlib.h>
    #include <iostream>
    using namespace std;
    void input(int v[]);
    void trovaprimo (int v1[], int v2[],int &val,int &pos,int k);
    void output (int val, int pos);
    int main()
    { int v1[7], v2[7];
    int k;
    int val,pos;

    cout<< "inserire i valori del primo vettore\n\n\n";
    input(v1);
    cout <<"inserire i valori del secondo vettore\n\n\n";
    input(v2);
    cout << "inserire un valore intero\n";
    cin>>k;
    trovaprimo(v1,v2,val,pos,k);

    output(val,pos);

    system("PAUSE");
    return 0;

    }

    void input (int v[])
    {
    int i;
    for (i=0;i<7;i++)
    cin>>v[i];
    }

    void trovaprimo (int v1[], int v2[],int &val,int &pos,int k)
    {
    int x = v2[k];

    for ( int i = 0; i < 7; i++ ){
    if ( v1[i] > x ){
    val = v1[i];
    pos = i;
    }
    }
    }

    void output (int val,int pos)
    {
    cout <<"il valore cercato è " << val << "e si trova nella posizione" << pos;
    cout <<"\n\n";
    }
    ------------------
    Non dire gatto! se non l'hai nel sacco!!!
    ------------------

  4. #4
    Utente bannato
    Registrato dal
    Nov 2005
    Messaggi
    128
    ok ora funzica.. avevo sbagliato quel fatto sulla i.

    Guardate quest'altro che non riesco a far funzionare:

    TRACCIA:
    Prova 3
    Siano assegnati in ingresso, da tastiera, un vettore di interi V, il suo riempimento n ed un intero k.
    Si scriva un programma che elimini dal vettore V tutti gli elementi il cui valore è maggiore di k e calcoli il numero num di elementi eliminati. Si stampino quindi il vettore V modificato ed il valore num.
    Il programma deve essere articolato in funzioni (ad es.: input, output, elimina).
    Suggerimento: la funzione elimina riceve in ingresso n, V e k e restituisce come valore di ritorno num.
    Esempi
    INPUT: n = 7 V = 7 4 1 3 7 2 9 k = 4
    OUTPUT: V = 4 1 3 2 num = 3

    INPUT: n = 7 V = 7 4 1 3 7 2 9 k = 12
    OUTPUT: V = 7 4 1 3 7 2 9 num = 0



    MIO SVOLGIMENTO:

    codice:
    #include <stdlib.h>
    #include <iostream>
    using namespace std;
    void input (int v[], int &n, int &k);
    void elimina(int v[], int &n, int k, int &num);
    void output(int v[], int &num, int &n); 
    
    
    int main()
    {
     int v[100];
     int n,k;
     int num=0;
     input(v,n,k);
     elimina(v,n,k,num);
     output(v,num,n);
     
     
     
     
     system("PAUSE");
     return 0;
    
    }
    
    
    void input (int v[], int &n, int &k)
    {
         int i;
         cout<<"inserisci il numero di elementi costituenti il vettore\n\n";
         cin>>n;
         cout <<"inserisci gli elementi del vettore\n\n";
         for (i=0;i<n;i++)
             cin>>v[i];
         cout<<"\n\ninserisci ora un valore intero k";
         cin>>k;
    }
    
    void elimina(int v[], int &n, int k, int &num)
    {
         int i=0;
         while(i<n)
         {
             if(v[i]>k)
               {v[i]=v[i+1];
                num++;
                }
                else
               i++;
               
         }
    }
    
    void output(int v[],int &num, int &n)
    {
         cout<<"i valori del vettore modificato sono\n\n";
          for (int i=0;i<n;i++)
            cout <<v[i]<<"\t";
          cout <<" il numero di elementi elininati e\'"<<num<<"\n\n\n";
    }
    qualcuno può correggermelo mettendo in grassetto la parti errate che ha corretto?? Mi sa che sbaglio sul while, come va fatto???

  5. #5
    ciao senti questo testo è un esercizio di una prova d'esame di una prof d'informatica di napoli Livia solimene ce ne sono altre 6 nn è che avresti le soluzione se la prof è la stessa?

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Guarda che il thread a cui hai risposto e' del 2005 ...!

    Magari il tizio non segue piu' questo forum da anni !

    E poi, questo tipo di richieste, dovresti farle in privato ...

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301

    Moderazione

    Concordo, sottoscrivo e chiudo. Invito anche a leggere il Regolamento di quest'area.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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 © 2024 vBulletin Solutions, Inc. All rights reserved.