Corso di programmazione Java (C) by Fabio Ciucci 1996 Minicorso di C (come primo requisito)

Questo minicorso serve per imparare gli elementi del C che sono stati
mantenuti dal Java, ma naturalmente e' necessario scrivere esempi
compilabili e funzionanti, per cui e' inevitabile che siano incluse alcune
cose non presenti in Java, o diverse.
Comunque, dato che il Java produce solo file eseguibili dall'interprete,
piuttosto lento e non disponibile sui sistemi obsoleti, puo' tornarvi utile
scrivere alcuni programmini in C che creino eseguibili per il vostro
particolare sistema operativo, magari da usare al lavoro, sul vecchio 286.
Anche se non vi interessa assolutamente programmare in C, considerate che
nella parte sul Java si danno per scontati i costrutti if else, while, for,
e tutti i concetti qui presentati, molti dei quali fondamentali per la
programmazione in qualsiasi linguaggio.
Inoltre, se non avete ancora un sistema operativo in grado di supportare
il Java (ad esempio windows 3.1), potete gia' iniziare a programmare in C,
in modo da non partire da zero quando avrete la possibilita' di compilare
sorgenti Java.
Chi avesse esperienze di Basic o Pascal, puo' leggere i brevi confronti
introduttivi bas2c.txt e pas2c.txt, presenti in questa directory.

Se volete provare i listati, vi occorre un compilatore ANSI C, ne esistono
vari PD, ed e' facile trovare vecchie versioni del turbo C della Borland,
che sono state incluse spesso in corsi vari nelle edicole.

Comunque, i listati sono molto semplici e commentati, per cui potete anche
intuire il risultato, se usate questo minicorso solo per imparare il Java
e non volete perdere tempo.

NOTA: In C, per delimitare un blocco, si usano le parentesi graffe { },
      che pero' non sono presenti nella tastiera italiana. Per scrivere
      questi caratteri, su PC, occorre premere ALT, e lasciandolo premuto
      scrivere il numero ASCII equivalente sul tastierino numerico,
      quindi lasciare il tasto ALT.
      Per esempio, premete ALT, e lasciandolo premuto scrivete 123 usando
      il tastierino numerico, quindi lasciate il tasto ALT: comparira'
      il carattere {. Con 125 si genera il carattere }.
      Quando si apre un blocco normalmente ci si sposta avanti a
      scrivere, mentre quando si richiude si ritorna indietro. Questo
      per rendere piu' chiara la struttura del programma, ad esempio:

      main()
      {                                         /* Apertura del main */
         for(i=0;i<9;i++) {                     /* Apertura del for */
            if(i=2) {                           /* Apertura dell'if */
                printf("i vale 2!");
                printf("chi l'avrebbe detto?");
            }                                   /* Chiusura dell'if */
            else {                              /* Apertura dell'else */
                printf("i vale 2!");
                printf("chi l'avrebbe detto?");
            }                                   /* Chiusura dell'else */
         }                                      /* Chiusura del for */
      }                                         /* Chiusura del main */

      In questo modo e' evidente che sia if che else sono contenuti
      nel for, il quale a sua volta e' contenuto nel main.
      Si potrebbe anche evitare questa convenzione, ma si renderebbe tutto
      molto oscuro e criptico:

      main() { for(i=0;i<9;i++) { if(i=2) { printf("i vale 2!");
      printf("chi l'avrebbe detto?"); } else { printf("i vale 2!");
      printf("chi l'avrebbe detto?"); } } }

      Questo e' lo stesso listato, e viene compilato correttamente.
      Pero' la mancanza di commenti e la disposizione inespressiva
      fa si' che anche un programmatore esperto debba scervellarsi
      per comprenderlo. Quindi vi esorto a disporre le istruzioni in
      modo simile all'esempio "buono", e a commentare il piu' possibile,
      pensando che un listato che puo' comprendere velocemente anche
      un altra persona vale di piu' di uno che capite solo voi.
      State certi che avrete problemi anche a capire un vostro listato,
      se non e' commentato e non lo vedete da molto tempo.

Dato che questa e' la prima versione del corso, ci sono pochi esempi; nelle
prossime versioni la situazione migliorera'.
I listati contengono le singole lezioni nelle ampie zone di commento.

Se volete approfondire, esistono molti buoni libri di C in commercio.
Ora possiamo passare all'innovazione dell'object oriented programming,
la OOP, la programmazione degli anni '90. Ossia il C++, poi il Java!