VideoCorso di Programmazione in C
Iniziamo oggi con il primo video corso di programmazione in c, in questa lezione si parlerà di problem solving, input/output, algoritmi e fasi di sviluppo di un progetto… …l’articolo continua »
VideoCorso di Programmazione in C – Lezione 2
In questa lezione si parla di problemi ed algoritmi e di linguaggio naturale e pseudocodice… …l’articolo continua »
VideoCorso di Programmazione in C – Lezione 3 – Strutture di Controllo
In questa lezione parliamo delle Strutture di Controllo (sequenza, selezione ed iterazione… …l’articolo continua »
C – Files ad accesso casuale
Se il supporto sul quale sono registrati i dati è gestito da un dispositivo che lo consente, è possibile accedere ad una registrazione qualsiasi contenuta nel file, specificando la sua posizione relativa all’interno del file stesso. La logica di gestione di un file ad accesso casuale somiglia a quella conosciuta della gestione di una tabella. Anche in quel caso i record erano accessibili specificando la loro posizione relativa. Spingendo la similitudine con gli argomenti trattati in precedenza si può dire che i record in un file sequenziale sono elaborati come gli elementi di una coda, in un file ad accesso casuale come una tabella. …l’articolo continua »
C – I dati su memorie di massa: files sequenziali
Le strutture dati trattate fino a questo punto, prevedono la registrazione degli elementi su locazioni di memoria centrale. La memoria centrale, in ragione delle sue caratteristiche, si presta a due tipi di utilizzo:
- Per la sua limitatezza è opportuno utilizzarla per la conservazione dei dati strettamente indispensabili per l’elaborazione in corso.
- Per la sua volatilità consente di conservare i dati limitatamente al solo tempo di esecuzione di un programma.
Se si vogliono conservare grandi quantità di dati e utilizzarli in tempi diversi, è necessario affidarsi a supporti permanenti che non hanno le limitazioni della memoria centrale: sono quelli che comunemente sono chiamate memorie di massa.
Nell’esempio successivo si gestiranno una serie di libri, conservandone in un file su memoria di massa i dati. I dati sui libri saranno registrati uno di seguito all’altro: quando si tratterà di rileggerli, l’ordine di reperimento delle informazioni sarà lo stesso di quello che si è utilizzato per la scrittura. I dati saranno quindi elaborati in maniera sequenziale. …l’articolo continua »
C – L’input-output astratto
Le periferiche disponibili in un sistema di elaborazione sono, dal punto di vista hardware, anche molto diverse fra di loro anche se dal punto di vista dell’utente le funzioni che svolgono possono essere assimilabili. Si pensi, per esempio, alle differenze sostanziali fra una stampante a getto di inchiostro e una laser: dal punto di vista dell’utente si tratta in tutte e due i casi di una stampante (una periferica che produce un output su supporto cartaceo), dal punto di vista hardware si tratta di due cose distinte almeno quanto lo potrebbero essere, per esempio, una stampante a getto di inchiostro e una tastiera. …l’articolo continua »
C – Gestione di una lista concatenata
La lista concatenata è la struttura ideale da utilizzare quando si debbano rappresentare insiemi di dati in cui le operazioni di inserimento e cancellazione siano prioritarie. Tali operazioni, come si vedrà, vengono permesse in maniera estremamente agevole dalla struttura. …l’articolo continua »
C – La ricorsione
Il linguaggio C consente l’uso di funzioni ricorsive. Una funzione ricorsiva è una funzione che richiama sé stessa (ricorsione diretta) o richiama una funzione che a sua volta la richiama (ricorsione indiretta). Affinché il procedimento abbia fine è necessario che siano verificate le due seguenti proprietà:
Debbono esistere dei parametri (valori base) per cui la funzione non richiami sé stessa.
Ogni volta che la funzione richiama sé stessa i parametri devono essere più vicini ai valori base.
L’uso di tali funzioni è di utilità per la codifica di algoritmi che sono definiti ricorsivamente. Un esempio classico di algoritmo ricorsivo è quello che definisce il fattoriale di un numero. …l’articolo continua »
C – Coda con allocazione dinamica
La logica della gestione di una coda, fatte salve le specificità, è simile alla logica di gestione dello stack: si dovrà tenere conto solo del fatto che qui si devono gestire due puntatori… …l’articolo continua »
C – Stack con allocazione dinamica
Si riportano di seguito le funzioni per la gestione di uno stack solo che, stavolta, gli elementi nello stack sono allocati dinamicamente… …l’articolo continua »


