[C] Problema con gli array

Messaggioda SimoneSc » 11/01/2021, 19:41

Salve ho un esercizio nel quale mi viene richiesto questo:

"Attraverso una funzione denominata genconv generare in maniera casuale una coppia di coordinate
$(x_i, y_i)$, e salvarle in un vettore denominato pcoord di tipo e dimensioni opportune."

Io per generare le coordinate x e y e assegnarle a un vettore ho sempre utilizzato due array separati. In questo caso come devo fare? Utilizzare un array bidimensionale?

Grazie e buona serata.
SimoneSc
New Member
New Member
 
Messaggio: 26 di 84
Iscritto il: 06/09/2020, 09:05

Re: [C] Problema con gli array

Messaggioda Super Squirrel » 11/01/2021, 21:28

SimoneSc ha scritto:In questo caso come devo fare? Utilizzare un array bidimensionale?

Ciao, effettivamente la cosa più semplice potrebbe essere utilizzare una matrice 2xN, ma volendo puoi anche utilizzare un vettore di 2N elementi in cui le coppie di coordinate possono essere associate in vario modo:
- x y x y x y x y x y
- x x x x x y y y y y
...

P.S.
Non hai ancora studiato le struct?
Chi dorme in democrazia, si sveglia in dittatura.
Super Squirrel
Senior Member
Senior Member
 
Messaggio: 587 di 1486
Iscritto il: 16/05/2013, 22:05

Re: [C] Problema con gli array

Messaggioda SimoneSc » 12/01/2021, 18:47

No purtroppo non l'ho ancora fatte. Credo che proverò a salvare in un unico array perché poi devo verificare che queste coordinate rispetto determinate condizioni e non saprei come farlo con un array bidimensionale :(

Infatti dovrei riuscire a scrivere una funzione che mi genera delle coordinate x e y casuali e le salva appunto in questo array chiamato pcoord e poi dovrei scrivere un'altra funzione che prende in input questo array e verifica delle condizioni.

Se mi deste un input dal quale partire ve ne sarei grato!
SimoneSc
New Member
New Member
 
Messaggio: 27 di 84
Iscritto il: 06/09/2020, 09:05

Re: [C] Problema con gli array

Messaggioda vict85 » 13/01/2021, 15:03

In sostanza suppongo che tu debba creare una funzione dichiarata come:
Codice:
void genconv( unsigned int N, int pcoord[], unsigned int pcoordSize );

o anche senza pcoordSize. Sbaglio? Il valore di ritorno potrebbe anche essere qualche forma di segnalazione di eventuali errori.

Nota che si deve avere N * 2 <= pcoordSize.

Per usare un array di vettori bidimensionali, basterebbe esare:
Codice:
void genconv( unsigned int N, int pcoord[][2], unsigned int pcoordSize );


Dal punto di vista del codice assembly creato non dovrebbe cambiare nulla.
vict85
Moderatore
Moderatore
 
Messaggio: 10283 di 19253
Iscritto il: 16/01/2008, 00:13
Località: Berlin


Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite