Discussione Ufficiale Programmiamo con Inforge | Esercitazione 02 in C | Livello base

Una Discussione Ufficiale punta a raccogliere tutte le informazioni su un argomento o un fatto di attualità, con costanti aggiornamenti da parte del creatore e dei partecipanti.

Sax3r28

Utente Gold
8 Aprile 2016
625
310
248
Normalmente in C++ per cose come queste usi i vector, non gli array (il vector viene ridimensionato in automatico "internamente"). Quindi volendo potresti anche usare un vector; ovviamente sarebbe più semplice rispetto a una soluzione in C dove è necessario gestire anche le riallocazioni. ;)
Da quel che ricordo, e riguardando i file vecchi, i vector non ce li fecero mai usare :eek: abbiamo sempre usato array.

Riguardo il puntatore intendevo che solitamente alle funzioni si passano gli argomenti giusto? Come dei valori ad una funzione(int x, int y, int z) fuori dal main che ne calcola la media.
Con il puntatore invece vai a lavorare direttamente sulla memoria se ricordo bene, e la funzione dell'ordinare dopo ogni inserimento potrei scriverla come quella dell'inserimento normale aggiungendo il sort, o sto mischiando le cose?
Vedo che tutti quanti avete usato bene o male una lista... nessuno ha voglia di provare altre soluzioni?
Non ho la minima idea di cos'altro si può fare e ne butto una così, una matrice? :asd:
 

Dazorn

Utente Gold
23 Dicembre 2014
752
250
269
Guardando il codice non mi è sembrato di aver visto l'inserimento con ordinamento
E' di default quando vai ad inserire una nuova persona con la funzione insert_person.
Non liberi mai la memoria allocata, nè sulle stringhe nè rispetto agli elementi della lista
Questo è vero hahaha, me ne sono proprio dimenticato :)
Messaggio unito automaticamente:

Non ho la minima idea di cos'altro si può fare e ne butto una così, una matrice? :asd:
Una cosa che mi viene in mente è un'albero binario.
 
  • Mi piace
Reactions: Valley
Banner pubblicitario per Bright Data su Inforge.net azienda di vendita Proxy, Data Collector e Content Unlocker

DispatchCode

Moderatore
24 Maggio 2016
392
263
193
Da quel che ricordo, e riguardando i file vecchi, i vector non ce li fecero mai usare :eek: abbiamo sempre usato array.

A scuola è molto probabile non ve li abbiano fatti utilizzare. Alla fine è importante capire le strutture di base.
Ma se consulti la documentazione vedrai che non è complesso da utilizzare, e ti semplifica anche le operazioni. https://www.cplusplus.com/reference/vector/vector/
Chiaro che essendo C++ un linguaggio complesso, dovrai poi andare a guardare altri argomenti (iteratori, template e quant'altro).

Riguardo il puntatore intendevo che solitamente alle funzioni si passano gli argomenti giusto? Come dei valori ad una funzione(int x, int y, int z) fuori dal main che ne calcola la media.
Con il puntatore invece vai a lavorare direttamente sulla memoria se ricordo bene, e la funzione dell'ordinare dopo ogni inserimento potrei scriverla come quella dell'inserimento normale aggiungendo il sort, o sto mischiando le cose?

Si, il puntatore memorizza un indirizzo. Quando modifichi della memoria puntata, il valore cambia per tutti (ovvero se hai 2 puntatori al medesimo indirizzo, entrambi risentiranno della variazione del valore).

Comunque si, puoi anche aggiungere un sort.

E' di default quando vai ad inserire una nuova persona con la funzione insert_person.

E' vero, ieri me l'ero perso.

Non ho la minima idea di cos'altro si può fare e ne butto una così, una matrice? :asd:

Una cosa che mi viene in mente è un'albero binario.

Io ad esempio per non utilizzare una linked list ho riservato N bytes contigui che vado ad espandere quando non sono più sufficienti, v->p_vector = malloc(v->size * sizeof(person));. Quindi in sostanza è un "array dinamico".
 
DOWNLOAD

theDust1n

Utente Bronze
11 Febbraio 2020
37
7
20
View attachment 50643

Programmiamo con Inforge | Presentazione

Ad oggi, sul web, si trovano moltissime guide sui vari linguaggi di programmazione e sulle loro molteplici applicazioni. Tuttavia, chi si approccia a queste risorse, non sempre riesce a mettere in pratica ciò che ha appreso. Al fine di limitare queste mancanze, nasce Programmiamo con Inforge.

In questa rubrica potrai scrivere codice per la risoluzione di alcuni problemi legati alla programmazione, mettendo in pratica quanto stai apprendendo dalla teoria oppure mostrando le tue abilità e competenze nel campo dell’informatica.


Partiamo dalle basi del C

In questa guida puoi trovare i testi per studiare e approfondire il C: I migliori libri per imparare e approfondire il C
In questa discussione puoi trovare le risposte alle domande più frequenti su come scrivere codice in C: Frequently asked questions: da dove si parte?


Esercitazione 02 in C | Livello base | [Strutture dati]

Conoscere le strutture dati e saper lavorare su di esse è un aspetto fondamentale della programmazione; con queste entità è possibile organizzare insiemi di dati e compiere una serie di operazioni su di essi.
L'esercitazione si compone di 2 esercizi nei quali ti sarà richiesto di definire una struttura dati che supporti determinate operazioni basilari (è possibile scegliere la struttura che più ti aggrada, ad esempio una lista) come l'inserimento, la ricerca e la cancellazione.

*** Hidden text: cannot be quoted. ***



Soluzioni

Per rendere l'esercitazione più interessante, non verrà pubblicata alcuna soluzione! Spetterà a te scrivere la tua versione del codice e pubblicarla in questo thread così che possa essere valutata dai moderatori e dalla community; il modo migliore per imparare!


Conclusioni

Pubblica la soluzione ottimale per risolvere gli esercizi e ricorda che puoi confrontarti con il resto della community in questo thread, chiedere aiuto o aiutare gli altri ;)
Bene
 
DOWNLOAD
Banner pubblicitario per Bright Data su Inforge.net azienda di vendita Proxy, Data Collector e Content Unlocker

Kode

Utente Emerald
10 Dicembre 2013
1,213
336
393
Comunque vi state superando in questa esercitazione, mi avete impressionato. Ho visto soluzioni semplici ed efficace e complesse (o come dico io "risultati dello smanettare"). Continuate cosi :)
 
  • Mi piace
Reactions: Shin Rea
Banner pubblicitario per Bright Data su Inforge.net azienda di vendita Proxy, Data Collector e Content Unlocker
DOWNLOAD