FONDATO E DIRETTO DA: ERALDO M. RICCIARDI

....

domenica 28 luglio 2013

Programmazione in C Lezione 1: Hello world



Ciao mondo


Con la locuzione “Ciao mondo” ci si riferisce al primo programma scritto in linguaggio C all'inizio del libro “Il Linguaggio C” degli informatici Brian Kernighan e Dennis Ritchie. Il programma in questione non fa altro che stampare a video la scritta “Ciao mondo” da cui prende il nome. Essendo un programma molto semplice da realizzare, viene spesso utilizzato per introdurre il linguaggio C ai nuovi programmatori e studenti e spiegarne le caratteristiche principali di questo linguaggio.
Prima di iniziare a programmare, dobbiamo prima crearci un ambiente adatto per scrivere e far girare i nostri programmi. La scelta della maggior parte dei programmatori e dei docenti universitari ricade su un ambiente Linux (anche girato su macchina virtuale) con il semplice editor di testi GEDIT e il terminale del Sistema Operativo. Se però non volete cambiare sistema operativo o installarvi una macchina virtuale, la vostra scelta cadrà sicuramente su programmi specifici. I migliori sono sicuramente CodeBlocks e Dev-C++ (quest’ultimo verrà mostrato in tutte le schermate del corso, potete scaricarlo gratuitamente dal Sito Ufficiale).


Questo è il nostro piccolo codice per visualizzare “Hello word”:

#include<stdio.h>

main()
{
      printf("Hello word\n");
     
      system("PAUSE");
      return 0;
      }



Nella foto potete vedere l’ambiente di Dev-C++: per iniziare un nuovo progetto basta cliccare “File” -> Nuovo -> File Sorgente oppure tenere premuto Ctrl + N.
La prima riga del programma (quella in verde) è una “direttiva al preprocessore”: ovvero comunica al compilatore di andare a leggere un altro file durante la compilazione del programma. La compilazione è quel processo per cui dal file Helloword.c (il file di testo) si passerà a Helloword.exe (in windows sarà un .exe ma in altri sistemi operativi le estensioni dell’eseguibile risulteranno differenti). Il file <stdio.h> è una libreria, contiene ovvero alcune funzioni standard messe a disposizione da altri programmatori (come la printf che andremo a utilizzare). Le librerie sono già incluse nell’installer di Dev-C++. 

main() indica dove inizia il vero programma: prima potreste voler inserire primitive di funzioni o definizioni di liste (argomenti che saranno trattati più avanti nel corso).

printf(“”) è una funzione contenuta nella libreria <stdio.h>. Tutto quello che viene inserito tra le virgolette (quello che vedete in rosso, per intenderci) sarà stampato a video durante l’esecuzione del programma. \n indica dove bisogna andare a capo. Ricordatevi di porre il ; alla fine di ogni funzione per segnalare la fine della funzione, o otterrete degli errori in fase di compilazione.

system(“PAUSE”) è una funzione che mi sono permesso di aggiungere io per rendere leggibile l’output del programma: fa comparire a video la scritta “Premere un tasto per continuare . . .” e blocca l’esecuzione del programma finché non viene premuto un qualsiasi tasto. Si tratta di una funzione base di windows, che non potrete usare su altri sistemi operativi. Senza questa funzione il vostro programma terminerebbe all’istante e non avreste il tempo di visualizzare l’output.

return 0 indica la fine del programma, che restituisce come valore 0 (assenza di errori). Vedremo in seguito come utilizzare return per segnalare errori o per restituire determinati valori alla fine di piccole funzioni scritte da noi.

Le parentesi graffe {} poste all’inizio e alla fine del programma possono essere utilizzate (oltre per marcare inizio e fine di un programma) per segnalare sezioni particolari di codice (negli if o nei Do while, come vedremo in seguito). Ricordatevi sempre che per ogni parentesi aperta { deve essercene un’altra chiusa } altrimenti riceverete degli errori in fase di compilazione.

L’ultima riga (quella azzurra che vedete solo in foto), non fa parte del programma: si tratta di commenti che potete inserire per spiegare particolari sezioni di codice o, come ho fatto io, per firmare il vostro programma. Tutto quello che inserirete nei /* */ verrà ignorato dal compilatore.

A questo punto clicchiamo sul tasto “Compila & Esegui” (o premiamo F9) e dovremmo avere il seguente output: 



Ci siete riusciti? Avete incontrato qualche difficoltà o avete dei dubbi? Fatemelo sapere nei commenti dell’articolo o sulla  Pagina ufficiale di Nerderia in compagnia.  
Sarò lieto di aiutarvi e di risolvere ogni vostro dubbio!
Tutorial a cura di DoomDragon

13 commenti:

  1. l'esecuzione riesce perfettamente se non inserisco la funzione system("Pause"); perchè se la inserisco Dev C++ mi restituisce un errore dicendomi che la funzione non è dichiarata..

    RispondiElimina
    Risposte
    1. Su che sistema operativo sei?

      Elimina
    2. su XP.. e uso l'app citata sopra.. comunque sono riuscito a risolvere, riscrivendola in questa forma..e utilizzando sempre il pause

      #include

      using namespace std;

      int main() {
      cout << "Hello World\n";
      system("Pause");
      return 0;
      }

      e stavolta ha funzionato XD

      Elimina
    3. dimenticavo... #include
      sotto il suggerimento di un amico

      Elimina
    4. sul mio computer (e su quelli dell'università) girava come detto nell'articolo, comunque il corso è di programmazione C, forse hai salvato il file come un file C++ e non .c

      Elimina
  2. il progetto è stato salvato come cpp e il "render" è il semplice exe.. però stranamente con il c++ funge.. mentre con il c# no :|

    RispondiElimina
    Risposte
    1. Hai provato a salvare il programma descritto nell'articolo in .c direttamente? A farlo identico a quello mostrato nello screen? Mi sembra strano a me ha sempre funzionato così, dovrebbe chiamarsi helloword.c non .cpp

      Elimina
    2. così ha funzionato XD non sapevo che dovevo salvare prima il progetto in tale formato... GOOD.. allora aspetto le prossime uscite XD

      Elimina
    3. alla prossima! Lieto di esserti stato utile, credo che queste lezioni avranno cadenza di 1 o 2 a settimana, dipende da con quale frequenza gli altri gestori del blog postano, non vorrei intasare il blog in un solo giorno e lasciarlo vuoto in altre date

      Elimina
  3. Scusa Vincenzo ma secondo me ti sbagli, non dipende ne dal s.o. ne da come viene salvato il file.
    Semplicemente hai dimenticato di includere la libreria
    "stdlib.h" perché system("pause") per l'appunto è una funzione della libreria "stdlib.h".
    Così dovrebbe funzionare anche senza prima salvare il progetto come ".c".

    RispondiElimina
    Risposte
    1. No sul mio pc gira normalmente senza includere la stdlib semplicemente se uno lo salva come file C++ e nel codice usa funzioni del C è normale che poi in compilazione dia errore :)

      Elimina
  4. Risposte
    1. Grazie mille, a breve (spero prima di ferragosto) la seconda lezione.

      Elimina