Dai file della collana: gli stessi indici e le stesse note da cui nascono i libri.
I programmi d'esempio
Ogni programma dei libri è un progetto a sé, in una cartella con il numero del capitolo: I.1/PrimoSegnale, I.10/Analizzatore, I.19/Decimazione. Si compila e si avvia da solo, senza gli altri.
Che cosa serve
- l'SDK di .NET 10 (da dot.net), per Windows, Linux o macOS;
- un editor: il volume 1 usa Visual Studio Code con l'estensione C# Dev Kit, e il capitolo I.0 lo spiega passo per passo, debug compreso.
Avviare un programma
Dal terminale, nella cartella del programma:
cd I.19/Decimazione
dotnet run -c Release
Il primo avvio scarica i pacchetti che servono (per i programmi con la finestra, Avalonia e Skia) e compila; i successivi partono subito. -c Release conta per i programmi che misurano tempi, come le FFT del capitolo I.8 o la polifase del capitolo I.19: in Debug il compilatore non ottimizza e i tempi non sono quelli del libro.
I dati dei grafici
Molti programmi, oltre alle misure sul terminale, scrivono i dati dei grafici del libro in file CSV:
dotnet run -c Release -- dati cartella
I file usano il punto decimale e il punto e virgola come separatore, e si aprono in un foglio di calcolo o in qualunque programma di grafici. Le uscite sul terminale invece sono nella lingua del computer: con Windows in italiano, la virgola decimale.
I file collegati
Un capitolo usa spesso le classi dei capitoli prima: la decimazione del capitolo I.19 usa il progetto dei FIR del capitolo I.13 e le finestre del capitolo I.9. I file non sono copiati: il .csproj li collega con <Compile Include="..\..\I.13\Fir\Progetto.cs" Link="Progetto.cs" />. Per questo la cartella di un programma va tenuta dentro la cartella degli esempi, con le altre: spostata da sola, non trova più i file che collega.
Le regole del codice
I programmi seguono le regole della collana: nomi italiani, una classe per file, un commento su ogni membro, righe entro 80 caratteri. Non ci sono funzioni lambda: dove servirebbe una funzione passata come argomento c'è un metodo con il suo nome, che si legge e si mette in un punto d'interruzione. Le classi sono internal, come in un programma vero; il loro riferimento è nella pagina API.
Licenza
MIT: si possono copiare, modificare e usare anche nei propri programmi commerciali, purché resti la nota di copyright (il file LICENSE della cartella degli esempi).