Avendo riacquisito il copyright alla scadenza del contratto, ho deciso di pubblicarle come freeware non commerciale: possono essere liberamente distribuite per usi non commerciali purché non vengano in alcun modo alterate. Il file corsodic.zip originale va distribuito intatto, incluso il presente documento.
In tutta l'opera, dove si legge:
Copyright (C) 1990 Gruppo Editoriale Jacksonsi deve intendere:
Copyright (C) 1990 Gruppo Editoriale Jackson Copyright (C) 2002 Enrico ColombiniAl momento non ho in programma di pubblicare anche la parte stampata del corso, perché ciò richiederebbe parecchio lavoro di revisione. Le lezioni interattive contengono comunque le stesse informazioni, anche se in forma differente.
Per quanto riguarda la riproduzione di singoli programmi C o C++ di esempio, essa è libera per uso non commerciale, purché venga conservata l'indicazione del copyright.
Chi desiderasse fare uso commerciale dell'opera o dei relativi programmi, ad esempio per inclusione in testi didattici non gratuiti, può scrivermi per eventuali accordi o richieste specifiche.
Le tecniche impiegate nei programmi C o C++ di esempio (incluse parti di codice) possono essere liberamente usate nei propri programmi, anche commerciali: insegnare a programmare è l'obiettivo del corso! Per la riproduzione di programmi completi vedi sopra.
I driver .bgi contenuti in alcune lezioni sono liberamente distribuibili se allegati all'opera, ma sono soggetti al copyright Borland.
Nota: il decompressore deve mantenere le directory (cartelle). In altri termini, chi usa pkunzip deve aggiungere l'opzione -d. Nessun accorgimento particolare è richiesto per chi usa info-zip, Aladdin Expander o WinZip.
Per leggere una lezione basta aprire la relativa cartella (directory) ed eseguire il programma corsodic.exe, ad esempio con un doppio clic da Windows, seguendo poi le istruzioni dei menu e il relativo help in linea.
Il programma è basato su MS-DOS e funziona anche sotto Windows, sia in una finestra che a schermo intero; questa seconda scelta è preferibile per la migliore leggibilità e fedeltà alle proporzioni originali. In ambiente Windows si passa da una modalità all'altra con Alt-Invio (Alt-Enter).
Alcuni dei caratteri semigrafici impiegati per le cornici o nei programmi di esempio possono essere rappresentati in modo non corretto (ad esempio sotto forma di lettere accentate) su un PC con sistema operativo italiano.
Ad esempio, aprendo una finestra MS-DOS nella cartella (directory) Lezione1 e scrivendo E1 si ottiene una lista dei programmi dimostrativi della lezione 1 del corso esperti:
E1 TABULA E1 ACCENTI E1 ANGOLI E1 COLORI E1 PISTONEScrivendo quindi E1 COLORI verrà eseguito il programma dimostrativo COLORI. Ciò può essere utile per rieseguire dei programmi senza dover avviare la relativa lezione e scorrerla fino al punto desiderato.
Inoltre, i programmi che inviano comandi diretti alla stampante, come GRAFILE della lezione 7 esperti, possono non funzionare o causare effetti indesiderati, specie con stampanti costruite solo per Windows (con la mia Epson Stylus Color 850 le stampe sono regolari).
- Cos'è il C - Compilatori e ambienti integrati - Installazione e uso - Editing dei programmi - Il primo programma C - Componenti del programma - Funzioni: printf e main - Errori di compilazione - Aspettare un Return - A capo con \nLezione B2:
- Stampare un numero intero - Stampe miste - Variabili, tipo, e dichiarazione - Operatori aritmetici: il programma SOMMA - Espressioni: il programma CALCOLI - Incrementi, operatori di assegnazione - Assegnazioni: il programma ASSEGNA - Limiti degli interi e overflow - Inizializzazioni e costanti - Linee lunghe - Formato di stampa: il programma ALLINEALezione B3:
- Input di interi: scanf, il programma DOPPIO - Esecuzione condizionale: il programma FILM - Istruzioni composte: il programma QUADRATO - Valore di un confronto - Scelte multiple, operatori logici - Long int: il programma TEMPO - Numeri reali: double, float, long double - Stampe ed input di reali: il programma SFERA - Ritorno di un valore: il programma SECONDI - Funzioni matematiche: sqrt, il programma SECGRADO - Switch, operatore ternario: il programma INVENTALezione B4:
- Cicli: while, do - Variabile di controllo: for, il programma FATTORIA - Uscire da un ciclo: break, continue - Caratteri: putchar, il programma CHARSET - Codice ASCII esteso, caratteri di controllo - Funzioni trigonometriche: il programma TEXTSIN - Costanti: #define, enum, il programma MULTA - Leggere un carattere: getchar - Assegnazioni nei confronti: il programma CRIPTO - Test sui caratteri: il programma LEGGENUM - Un problema: EOFLezione B5:
- Programmazione strutturata: funzioni - Variabili locali - Ritornare un valore: il programma MINMAX - Passaggio di parametri - Passaggio per valore: il programma MCD - Tipo degli argomenti e del valore ritornato - Prototipi di funzione: il programma INVESTE - Conversioni automatiche ed esplicite: cast - Variabili globali: il programma RETTANG - Variabili statiche e locali ad un blocco - Parametri vecchio stileLezione B6:
- Array - Inizializzazione, array a più dimensioni. - Il programma PARIDISP - Pointer - Passaggio per riferimento: il programma ERONE - Passare un array: il programma INVERTE - Operazioni sui pointer, pointer e array - Passare array come pointer: il programma PRIMI - Unsigned - Numeri pseudocasuali: il programma DADI - Pointer a pointer, array di pointerLezione B7:
- Il tipo char, array di char - Stringhe, char e int, il programma SPECCHIO - Stringhe e pointer, passare una stringa, costanti stringa - Stampare una stringa: printf e puts, il programma SEPARA - Input di una stringa: gets, funzioni stringa - Confronti tra stringhe: strcmp, il programma FIGURA - scanf di stringhe, sprintf, sscanf - Conversioni dirette: il programma RIPETE - Array di stringhe - Ricerche in una stringa: il programma PAROLA - Forme conciseLezione B8:
- Strutture - Passaggio di strutture: il programma FORZE - Array di strutture, inizializzazione - Pointer a strutture - Dimensione: sizeof, il programma CARTE - Tipi composti: typedef - Convenzioni, il programma PIANO - Orologio/calendario: time - clock, il programma DATTILO - Compilazione condizionale, debug - Debugger e organizzazione
- File, modo sequenziale e random, file testo - Scrivere in un file, leggere da un file - End of file: il programma TABULA - Accesso in modo binario, file predefiniti - Errori dei file, la stampante come un file - ungetc, ridirezione e filtri: il programma ACCENTI - Controllo del video, video alfanumerico e colori - Il driver ANSI.SYS - Libreria di console, BIOS e memoria video - La libreria Jackson: i programmi ANGOLI e COLORI - Caratteri semigrafici: il programma PISTONELezione E2:
- Argomenti di main: il programma ARG - Accesso al DOS e variabili di ambiente - File binari, scrittura e lettura - Input da tastiera, libreria di console - Tasti speciali - Input con DOS e BIOS - La libreria Jackson: il programma TASTI - Input controllato: il programma INPCON - Stampante: comandi e sequenze di escape - Il programma LISSAJ - Il programma LIFELezione E3:
- Codice binario - Complemento a due - Esadecimale e ottale: il programma CONVERTE - Esadecimale in C: il programma ESAMINA - Programmazione modulare - Variabili esterne, type checking - Header: funzioni e librerie - Jconio.c e Jconio.h: make, il programma BINARIO - Operazioni sui file, errori dei file: errno - Il programma LIBRILezione E4:
- Operatori logici bitwise, usare i singoli bit - Ancora sui bit: shift - Pointer a funzioni, atexit - Ordinamento: qsort, il programma ORDINA - Array indice: il programma ALFAPAR - Video grafico, schede grafiche - Librerie grafiche, scegliere il modo grafico - Scegliere un modo col Turbo C ed il Quick C - Accendere un pixel: il programma RIMBALZA - Linee rette, cancellazione e rettangoli - Fattore di quadratura: il programma SPIRALILezione E5:
- File random - Posizionamento: fseek, il programma AGENDA - Sostituzioni con #define: macro - Macro e funzioni, ancora sulle macro - Macro e portatilità: capire JCONIO.H - Libreria grafica Jackson: il programma INFOGRAF - Ricorsione: il programma FATTORIC - Frattali: il programma FIOCCO - Union, scomporre un int - I registri della CPU - Chiamate al BIOS: il programma SIMBOLILezione E6:
- Array dinamici, chiedere memoria: malloc - calloc e free, heap e rischi - Leggere aree video: il programma FINESTRA - Variabili e funzioni statiche, stack - Il programma FINESTRE - Dischi MS-DOS, funzioni DOS, il programma SPAZIO - File e directory, agire sulle directory - Bit field, findfirst/findnext: il programma XDIR - Errori hardware, harderr: il programma ERRORI - Porte di I/O - Ottimizzazione, register, la virgolaLezione E7:
- Segmenti e offset - Modelli di memoria - Tipi di pointer, problemi con i pointer - Memoria video: il programma MEMVIDEO - Pointer huge, array più grandi di 64K - Scrivere sul video grafico, font - Caratteri con il BIOS: il programma SOMMASIN - Stampare grafici, strisce grafiche - Comandi grafici, stampare una striscia grafica - Il programma GRAFILE - Il linguaggio PostScriptLezione E8:
- Limiti del C, dal C al C++ - Il primo programma C++, iostream: cout - Output concatenato, input ed errori - Reference, overloading, argomenti di default - Nuovi tipi: complex, classi e nuovi tipi - Dati privati e funzioni pubbliche, oggetti e costruttore - Funzioni inline, usare un oggetto, il programma ORARIO - Definire gli operatori: il programma FRAZIONI - Distruttore: new e delete, il programma SCRITTE - Componenti statiche: il programma DUEDADI - Ereditarietà: il programma LABIRINT