Ordinamento dati da file

di il
4 risposte

Ordinamento dati da file

CIao a tutti
Volevo chiedervi una cosa che mi sta facendo impazzire

Mettiamo che io abbia un file contenente dei dati disposti su due colonne per semplicità chiamiamole colonna X e colonna Y e una colonna dipende dall'altra come per esempio se avessimo che la colonna X sia la temperatura e Y il tempo a cui l'ho misurata

Li carico dentro ad un vettore dinamico, ora la mia domanda è come faccio per esempio ad ordinare la colonna X facendo in modo che anche la colonna Y si ordini in base ad X

Esempio:

X Y
3 2
2 1
5 3

ed io voglio avere

X Y
2 1
3 2
5 3
Spero di essere stato il più chiaro possibile
Un saluto a tutti

4 Risposte

  • Re: Ordinamento dati da file

    Utilizza semplicemente un vettore di struct con due campi X e Y. L'ordinamento lo fai come vuoi, visto che ti riferisci all'indice iesimo del vettore avendo sia x che y come campi.

    Usare due vettori paralleli può comportare qualche complicazione di codice maggiore, sarebbe fattibile se quando fai l'ordinamento scorri i due vettori e in funzione dell'ordinamento che desideri aggiorni anche l'opportuno campo del secondo vettore.
  • Re: Ordinamento dati da file

    [quote="SVNiko"]Utilizza semplicemente un vettore di struct con due campi X e Y. L'ordinamento lo fai come vuoi, visto che ti riferisci all'indice iesimo del vettore avendo sia x che y come campi.

    Non mi è molto chiaro il procedimento
    cioè creare la struct ok ma non capisco poicome ordinarli
  • Re: Ordinamento dati da file

    Dichiara una struct ad esempio:
    
    struct valore{
       int x;
       int y;
    }
    
    Il vettore dei valori lo chiami ad esmpio:
    struct valore valori[MAX];
    Adesso quando ordini vuoi ordinare ad esempio il campo x, ovvero vedendo il tuo esempio hai:

    i X Y
    0 3 2
    1 2 1
    2 5 3

    e vuoi ottenere:
    i X Y
    1 2 1
    0 3 2
    2 5 3

    Quando fai l'ordinamento devi spostare l'intera struct all'indice i.
  • Re: Ordinamento dati da file

    Ok forse ho capito
    ora provo e vediamo se riesco grazie mille per l'aiuto
Devi accedere o registrarti per scrivere nel forum
4 risposte