Pagina 1 di 5 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 44
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2016
    Messaggi
    38

    scambio valori di un array

    qualcuno sa dirmi come mai implementando queste funzioni:

    void scambio_valarray(int array[],int a,int b)
    {
    int appo;
    appo=array[a];
    array[a]=array[b];
    array[b]=appo;
    }


    void inserisci (int array[],int riempimento,int &posizione, int valore)
    {
    riempimento++;
    for (int i=riempimento-1;i>posizione;i--)
    {
    scambio_valarray(array[],i,i-1);
    array[posizione]=valore;

    }
    }

    mi da questo errore?

    funzioni.cpp: In function 'void inserisci(int*, int, int, int)':
    funzioni.cpp:151:32: error: expected primary-expression before ']' token
    scambio_valarray(array[],i,i-1);

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2016
    Messaggi
    38
    ho provato anche a fare in quest'altro modo:

    void inserisci (int array[],int riempimento,int posizione, int valore)
    {


    for (int i=riempimento-1;i>posizione;i--)
    {
    array [i]=array[i-1];
    }
    riempimento++;
    array [posizione]=valore;
    }

    e nel main:

    cout<<"in quale posizione vuoi inserire l'elemento?"<<endl;
    cin>>pos;
    cout<<"che valore vuoi inserire?"<<endl;
    cin>>val;
    inserisci (numeri,rie,pos,val);

    ma mi da quest altro errore

    cd 'C:\Users\emil\Documents\NetBeansProjects\funzioni '
    C:\MinGW\msys\1.0\bin\make.exe -f Makefile CONF=Debug
    "/C/MinGW/msys/1.0/bin/make.exe" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
    make.exe[1]: Entering directory `/c/Users/emil/Documents/NetBeansProjects/funzioni'
    "/C/MinGW/msys/1.0/bin/make.exe" -f nbproject/Makefile-Debug.mk dist/Debug/MinGW-Windows/funzioni.exe
    make.exe[2]: Entering directory `/c/Users/emil/Documents/NetBeansProjects/funzioni'
    mkdir -p dist/Debug/MinGW-Windows
    g++ -o dist/Debug/MinGW-Windows/funzioni build/Debug/MinGW-Windows/funzioni.o build/Debug/MinGW-Windows/main.o
    build/Debug/MinGW-Windows/main.o: In function `main':
    C:\Users\emil\Documents\NetBeansProjects\funzioni/main.cpp:49: undefined reference to `inserisci(int*, int, int&, int)'
    collect2.exe: error: ld returned 1 exit status
    make.exe[2]: *** [dist/Debug/MinGW-Windows/funzioni.exe] Error 1
    make.exe[2]: Leaving directory `/c/Users/emil/Documents/NetBeansProjects/funzioni'
    make.exe[1]: *** [.build-conf] Error 2
    make.exe[1]: Leaving directory `/c/Users/emil/Documents/NetBeansProjects/funzioni'
    make.exe": *** [.build-impl] Error 2


    BUILD FAILED (exit value 2, total time: 2s)

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Quote Originariamente inviata da emix95 Visualizza il messaggio
    qualcuno sa dirmi
    Non puoi scrivere

    scambio_valarray(array[],i,i-1);

    ma

    scambio_valarray(array,i,i-1);
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2016
    Messaggi
    38
    ok ora è andato, ma ora ho notato un errore di tipo logico... lo so sono un caso perso
    allego la foto per farti capire meglio.. in pratica mi ripete il valore che immetto nel valore successivo a quello da me scelto

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2016
    Messaggi
    38
    eccola IMG_3685.JPG

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    C'è un po' di confusione ... il codice esatto che utilizzi qual è?

    P.S. Utilizza i tag CODE del forum per il codice altrimenti non si capisce nulla ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2016
    Messaggi
    38
    codice:
    void scambio_valarray(int array[],int a,int b){
        int appo;
        appo=array[a];
        array[a]=array[b];
        array[b]=appo;
    }
    
    
    void inserisci (int array[],int riempimento,int &posizione, int valore)
    {
        riempimento++;
        for (int i=riempimento-1;i>posizione;i--)
        {
            scambio_valarray(array,i,i-1);
            array[posizione]=valore;
        }
    }
    e nel main

    codice:
    cout<<"in quale posizione vuoi inserire l'elemento?"<<endl;    cin>>pos;
        cout<<"che valore vuoi inserire?"<<endl;
        cin>>val;
        stampa_vet (numeri,rie);

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2016
    Messaggi
    38
    sorry, ovviamente prima di stampa vet questo: inserisci (numeri,rie,pos,val);

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    No, non va bene ... posta *tutto* il codice in modo che si possa fare copia incolla per provarlo.

    Non "parti del main" ma tutto il main e non "alcune funzioni" ma tutte quelle usate.

    Non c'è tempo per ricostruire il resto ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2016
    Messaggi
    38
    è lungo... ci soni molti errori nell' intero codice. se può darci un'occhiata generale le sarei molto grato... domani ho l'esame

    codice:
    /*  * File:   main.cpp
     * Author: emil
     *
     * Created on 30 giugno 2016, 12.09
     */
    
    
    #include <cstdlib>
    #include <iostream>
    #include <stdio.h>
    #include "dichirazioni.h"
     
    using namespace std;
     
     
    int main()
    {
        int numeri[NMAX];
        int numeri1[NMAX];
        int numeri2[NMAX];
        int matr[MAXR][MAXC];
        int r,c,rie,rie1,p,valore,pos,val,nriga;
        int max,min;
        int maxm,minm;
        bool trov;
        int scelta;
        
        do
        {
        cout<<"quanti valori vuoi immettere?\n";
        cin>>rie;
        }while(rie>NMAX);
        inserisci_vet(numeri,rie);
        stampa_vet (numeri,rie);
        cout<<"la media totale del vettore e': "<<media (numeri,rie)<<endl;
        cout<<"la somma totale del vettore e': "<<somma (numeri,rie)<<endl;
        cerca_min_vet (numeri,rie,min);
        cerca_max_vet (numeri,rie,max);
        cout<<"immetti un numero intero"<<endl;
        cin>>valore;
        cerca_vet (numeri,r,valore,trov,p);
        cout<<"fai la tua scelta di ordinamento (1,2,3)"<<endl;
        cin>>scelta;
        ordina_vet (numeri,rie,scelta);
        stampa_vet (numeri,rie);
        cout<<"in quale posizione vuoi inserire l'elemento?"<<endl;
        cin>>pos;
        cout<<"che valore vuoi inserire?"<<endl;
        cin>>val; 
        inserisci (numeri,rie,pos,val);
        stampa_vet (numeri,rie);
        do
        {
        cout<<"quanti valori vuoi immettere?\n";
        cin>>rie1;
        }while(rie1>NMAX);
        inserisci_vet (numeri1,rie1);
        stampa_vet (numeri1,rie1);
        merge( numeri, rie, numeri1, rie1,numeri2);
        stampa_vet (numeri2,rie1+rie);
        inserisci_righecolonne(r,c);
        inserisci_matrice(matr,r,c);
        stampa_matrice (matr,r,c);
        cerca_min_mat (matr,r,c,minm);
        cerca_max_mat (matr,r,c,maxm);
        cerca_max_rig (matr,r,c);
        cerca_min_rig (matr,r,c);
        cerca_max_col (matr,r,c);
        cerca_min_col (matr,r,c);
        do
        {
        cout<<"inserire riga da eliminare--->";
        cin>>nriga;
        cout<<endl;
        }
        while (nriga>r-1);
        eliminariga (matr,nriga,r,c);
        stampa_matrice (matr,r,c);
        scambio_rig__col (matr,r,c);
        system ("pause");
        return 0;
    }

    codice:
    /* * To change this license header, choose License Headers in Project Properties.
     * To change this template file, choose Tools | Templates
     * and open the template in the editor.
     */
    
    
    #include <iostream>
    #include "dichirazioni.h"
     
    using namespace std;
     
     
    int somma (int array[],int riempimento)
    {
        int s=0;
        for (int i=0;i<riempimento;i++)
        {
            s+=array[i];                
        }
        return s;
    }
    
    
    void inserisci_vet (int array [],int riempimento)
    {
    cout<<"inserisci i tuoi numeri\n";
    for (int i=0;i<riempimento;i++)
    {
        cout<<"v["<<i<<"]"<<": ";
        cin>>array[i];
    }
    }
     
    void stampa_vet (int array [], int riempimento)
    {
        cout<<"i numeri contenuti nell'array attualmente sono:\n";
        for (int i=0;i<riempimento;i++)
        {        
            cout<<"v["<<i<<"]"<<": "<<array[i]<<endl;
        }
        
    }
     
    float media (int array[],int riempimento)
    {
        int s=0;
        for (int i=0;i<riempimento;i++)
        {
            s+=array[i];                
        }
        float m=(float)s/riempimento;
        return m;
    }
     
    void cerca_vet (int array [],int riempimento, int valore, bool& trovato, int &posizione)
    {
        trovato=false;
        int i=0;
        
        while (i<riempimento && !trovato)
        {
            if (array[i]==valore)
            {
                trovato=true;
                posizione=i;
            }
            else
                i++;
        }
           if (trovato)
            cout<<"elemento "<<valore<<" trovato in posizione "<<posizione<<endl;
        else
            cout<<"elemnto "<<valore<<" non trovato "<<endl;
    }
    
    
    void cerca_max_vet (int array[],int riempimento,int &max)
    {
        max=0;
        for (int i=0;i<riempimento;i++)
        {
            if (array[i]>max)
                max=array[i];
        }
        cout<<"il massimo del vettore e': "<<max<<endl;
    }
    
    
    void cerca_min_vet (int array[],int riempimento,int &min)
    {
        min=array[0];
        for (int i=0;i<riempimento;i++)
        {
            if (array[i+1]<min)
                min=array[i+1];
        }
        cout<<"il minimo del vettore e': "<<min<<endl;
    }
    
    
    void scambio_valarray(int array[],int a,int b)
    {
        int appo;
        appo=array[a];
        array[a]=array[b];
        array[b]=appo;
    }
    
    
    void inserisci (int array[],int riempimento,int &posizione, int valore)
    {
        riempimento++;
        for (int i=riempimento-1;i>posizione;i--)
        {
            scambio_valarray(array,i,i-1);
            array[posizione]=valore;
        }
    }
    
    
    void ordina_vet (int array[],int riempimento, int scelta)
    {
        switch(scelta)
        {
            case (1): select_sort(array,riempimento);
            break;
            case (2): insert_sort(array,riempimento);
            break;
            case (3): bubble_sort(array,riempimento);
            break;
            default: cout<<"valore immesso non accettato\n";
        }
    }
    
    
    void select_sort(int array[],int riempimento)
    { 
        int i;
        int min = i;
    
    
        for(int j=i+1; j<riempimento; j++) 
          if(array[j] < array[min]) //cambiare questa condizione per invertire l'ordine 
            min = j;
        scambio_valarray(array,min,i);
    }
    
    
    void insert_sort(int array[],int riempimento)
    {
        int r1=1,x;
        for (int i=1; i<riempimento; i++)
        {
            x=array[i];
            insert(array,r1,x);
        }
        
    }
    
    
    void insert(int array[],int& riempimento,int valore)
    {
        int i=riempimento-1;
        while(i>=0 && array[i]>valore)
        {
            array[i+1]=array[i];
            i--;
        }
        array[i+1]=valore;
        riempimento++;
    }
    
    
    void bubble_sort(int array[],int riempimento) //non si sa perchè ma nn ordina
    {
        int i=0,j,temp;
        int scambio = false;
        do {
        scambio=false;
        for (j=riempimento-1;j>i;j--)
          if (array[j]<array[j-1]) 
          {
            scambio_valarray(array,j,j-1);
            scambio=true;
          }
          i=i+1;
        } while(i<riempimento-1 && scambio);
    }
    
    
    void merge( int array[], int riempimento, int array1[], int riempimento1,int array2[])
    {
         int A = 0;     
         int B = 0;
         int C = 0;
    
    
         while((A<riempimento) && (B < riempimento1))
         {
              if (array[A] < array1[B])
              {
                     array2[C] = array[A];
                     A++;   
              }
             else
             {
                     array2[C] = array1[B];
                     B++;      
             }
            C++;      
         }
         while (A < riempimento)
         {
               array2[C] = array[A];
               A++;
               C++;
         }
         while (B < riempimento1)
         {
               array2[C] = array1[B];
               B++;
               C++;
         }
         return;
    }
    
    
    void inserisci_righecolonne(int &r, int &c)
    {
        cout<<"inserisci il numero di righe:\n";
        cin>>r;
        cout<<"inserisci il numero di colonne:\n";
        cin>>c;
    }
     
    void inserisci_matrice(int matrice[][MAXC],int righe,int colonne)
    {
        cout<< "Inserisci i valori della matrice: " << endl;
            for (int i=0; i<righe; i++) 
            {
            cout<<"Riga numero " << i+1 << ":" << endl;
                for (int j=0; j<colonne; j++)
                    {
                    cout<<"matr["<<i<<"]["<<j<<"]: ";
                    cin >>matrice[i][j];
                    }
            }    
    }
     
     
    void stampa_matrice (int matrice[][MAXC],int righe,int colonne)
    {
      cout<< "la matrice da te inserita e': " << endl;
            for (int i=0; i<righe; i++) 
            {
            cout<<endl;
                for (int j=0; j<colonne; j++)
                    {
                    cout<<matrice[i][j]<<endl;
                    }
            }    
    }
    
    
    void cerca_max_mat (int matrice[MAXR][MAXC],int righe,int colonne,int max)
    {
        max=0;
        for (int i=0; i<righe;i++)
        {
            for (int j=0;j<colonne;j++)
            {
                if (matrice[i][j]>max)
                    max=matrice[i][j];
            }
        }
        cout<<"il massimo della matrice e': "<<max<<endl;
    }
    
    
    void cerca_min_mat (int matrice[MAXR][MAXC],int righe,int colonne,int min)
    {
         min=matrice[0][0];
        for (int i=0; i<righe;i++)
        {
            for (int j=0;j<colonne;j++)
            {
                if (matrice[i][j]<min)
                    min=matrice[i][j];
            }
        }
         cout<<"il minimo della matrice e': "<<min<<endl;
    }
    
    
    void cerca_max_rig (int matrice[MAXR][MAXC],int righe,int colonne)
    {
        int maxrig;
        int i;
        for (i=0;i<righe;i++)
        {
            maxrig=0;
            for (int j=0;j<colonne;j++)
            {
                if (matrice[i][j]>maxrig)
                {
                    maxrig=matrice[i][j];
                }
            }
        }
        cout<<"il massimo della riga "<<i<<" e' "<<maxrig<<endl;
    }
    
    
    void cerca_min_rig (int matrice[MAXR][MAXC],int righe,int colonne)
    {
        int minrig;
        int i;
        for (i=0;i<righe;i++)
        {
            minrig=matrice[0][0];
            for (int j=0;j<colonne;j++)
            {
                if (matrice[i][j]<minrig)
                {
                    minrig=matrice[i][j];
                }
            }
        }
        cout<<"il minimo della riga "<<i<<" e' "<<minrig<<endl;
    }
    
    
    
    
    void cerca_max_col (int matrice[MAXR][MAXC],int righe,int colonne)
    {
        int maxcol;
        int i;
        for (i=0;i<colonne;i++)
        {
            maxcol=0;
            for (int j=0;j<righe;j++)
            {
                if (matrice[i][j]>maxcol)
                {
                    maxcol=matrice[i][j];
                }
            }
        }
        cout<<"il massimo della colonna "<<i<<" e' "<<maxcol<<endl;
    }
    
    
    
    
    void cerca_min_col (int matrice[MAXR][MAXC],int righe,int colonne)
    {
        int mincol;
        int i;
        for (i=0;i<colonne;i++)
        {
            mincol=matrice[0][0];
            for (int j=0;j<righe;j++)
            {
                if (matrice[i][j]<mincol)
                {
                    mincol=matrice[i][j];
                }
            }
        }
        cout<<"il minimo della colonna "<<i<<" e' "<<mincol<<endl;
    }
    
    
    void scambio_rig__col (int matrice[MAXR][MAXC],int righe,int colonne)
    {
        cout<< "la matrice invertita e': " << endl;
            for (int i=0; i<colonne; i++) 
            {
            cout<<endl;
                for (int j=0; j<righe; j++)
                    {
                    cout<<matrice[j][i]<<endl;
                    }
            }    
    }
    
    
    void eliminariga (int matrice[MAXR][MAXC],int nriga,int r,int c)
    {
        if(nriga==r-1)
        r=r-1;
        else
            for(int i=nriga;i<r-1;i++)
                for(int j=0;j<c;j++)
                    matrice[i][j]=matrice[i+1][j];
    }
    codice:
    /*  * File:   funzioni.h
     * Author: emil
     *
     * Created on 30 giugno 2016, 12.10
     */
    
    
    #ifndef FUNZIONI_H
    #define FUNZIONI_H
    
    
    
    
    
    
    #endif /* FUNZIONI_H */
    
    
    #define MAXR 10
    #define MAXC 10
    #define NMAX 10
    
    
    float media (int array[],int riempimento);
    int somma (int array[],int riempimento); 
    
    
    void inserisci_vet (int array [],int riempimento);
    void stampa_vet (int array [], int riempimento);
    void cerca_vet(int array [],int riempimento, int valore, bool& trovato, int &posizione);
    void cerca_max_vet (int array[],int riempimento,int &max);
    void cerca_min_vet (int array[],int riempimento,int &max);
    void inserisci (int array[],int riempimento,int &posizione, int valore);
    void scambio_valarray(int array[],int a,int b);
    void ordina_vet (int array[],int riempimento, int scelta);
    void select_sort(int array[],int riempimento);
    void insert_sort(int array[],int riempimento);
    void insert(int array[],int& riempimento,int valore);
    void bubble_sort(int array[],int riempimento);
    void merge( int array[], int riempimento, int array1[], int riempimento1,int array2[]);
    
    
    void inserisci_righecolonne(int &r, int &c);
    void inserisci_matrice(int matrice[MAXR][MAXC],int righe,int colonne);
    void stampa_matrice (int matrice[MAXR][MAXC],int righe,int colonne);
    void cerca_max_mat (int matrice[MAXR][MAXC],int righe,int colonne,int maxm);
    void cerca_min_mat (int matrice[MAXR][MAXC],int righe,int colonne,int minm);
    void cerca_max_rig (int matrice[MAXR][MAXC],int righe,int colonne);
    void cerca_min_rig (int matrice[MAXR][MAXC],int righe,int colonne);
    void cerca_max_col (int matrice[MAXR][MAXC],int righe,int colonne);
    void cerca_min_col (int matrice[MAXR][MAXC],int righe,int colonne);
    void scambio_rig__col (int matrice[MAXR][MAXC],int righe,int colonne);
    void eliminariga (int matrice[MAXR][MAXC],int nriga,int r,int c);

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.