• Programmazione Android
  • CORSI ONLINE
  • Web Agency

Logo

Corsi di programmazione web e mobile online
Navigation
  • Home
  • CORSI ONLINE
  • Tutorial Pratici
  • GUIDE COMPLETE
    • Corso completo di C
    • Corso videogame con Cocos2d
    • Programmazione Cocoa Touch
  • Sezioni
    • Libri e manuali
    • Tips & Tricks
    • Risorse utili
    • Strumenti di Sviluppo
    • Materiale OpenSource
    • Framework
    • Guide Teoriche
    • Guide varie
    • Grafica e Design
    • iPad
    • News
    • Video Tutorial
    • Windows Phone
  • Pubblicità
  • About
    • Chi siamo
    • Pubblicazioni
    • Collabora
    • Sostieni devAPP

C#002 – Hello World in C++

By fa.ruocco | on 11 Marzo 2010 | 6 Comments
Pillole di C++

C/C++ Programmi e algoritmi

Eccoci al nostro secondo appuntamento con il nostro corso di C/C++. Spero che tutti quelli che comincino la lettura di questo articolo abbiano effettivamente scaricato un compilatore, perché passeremo a breve alla più classica delle applicazione, ovvero l’Hello World, da cui trarremo spunto per le prime nozioni teoriche sul C++.

Prima di far ciò parliamo un attimo, in generale, del concetto di Programma e di cosa significhi Programmare. Non volendomi di certo sostituire a professori di tutt’altro livello, ritengo lo stesso necessario chiarire cosa andiamo a fare effettivamente.

Il Programma, per definizione, è un insieme di Istruzioni che seguono un ordine sequenziale. Per istruzione si intende una qualsiasi operazione di: Assegnazione, Confronto,Calcolo.

Per essere un po’ più puntuali, potremmo dire che il Programma è un Algoritmo scritto in un linguaggio di programmazione. L’Algoritmo è invece una sequenza finita di istruzioni atta a risolvere un determinato problema attraverso l’uso di un linguaggio comprensibile all’esecutore. Attenzione! L’Algoritmo, che è alla base del programmare, non deve essere espresso, in fase di analisi, in un linguaggio di programmazione! Deve semplicemente chiarirci le idee su quale sia effettivamente il problema da risolvere. Per fase di analisi si intende quelle NECESSARIA fase di ragionamento sul problema che ci viene proposta. E’ sottointeso che “nessuna analisi” corrisponde a “NESSUN PROGRAMMA FUNZIONANTE!”

Un banale esempio di algoritmo per calcolare la somma, potrebbe essere cosi scritto per una persona con conoscenze matematiche:

  • Somma questi due numeri

Singola istruzione, comprensibile all’esecutore. Questo è un algoritmo.

Ma cosa succede se dobbiamo insegnarlo ad un bambino che sa contare solo sulle dita? L’algoritmo, in questo caso, diventerebbe piu articolato e presenterebbe alcune limitazioni logiche:

  • Indica con le dita di una mano il primo numero
  • Indica con le dita dell’altra mano il secondo numero
  • Conta tutte le dita indicate da entrambe le mani

Quali sono le limitazioni logiche? Sono dettate, in questo caso, dal massimo numero calcolabile con questo metodo, ovvero 10! Infatti una volta terminate le dita di entrambe le mani il bambino non saprà più quale dito aggiungere. Tenete bene a mente questo concetto che sarà successivamente ripreso parlando di Aritmetica Circolare. Sarà strano leggerlo ma anche il computer non sa contare oltre un certo numero!

Torniamo al concetto di Algoritmo. Il calcolatore, o meglio, il processore è in realtà più “incapace” di un bambino. Dovremmo quindi scomporre tutti i nostri problemi in operazioni banalissime per rendergli il tutto comprensibile.
Il calcolatore comprende infatti solo il linguaggio binario. Ma allora come possiamo scrivere qualcosa in C/C++ e farlo eseguire? Non volendo appesantire il discorso, basti sapere che il compilatore serve appunto a questo! Attraverso le sue fasi di compilazione rende le “complesse” istruzioni C/C++, un “banale” linguaggio macchina, composto di soli 0 e 1.

Premesse queste poche nozioni teoriche cominciamo con un po di pratica.

Hello World!

Per gli utenti MAC OS X

Apriamo il nostro xCode e selezioniamo dal menù File–>New Project–>Command Line Utility–>C++ Tool
Chiamiamo il progetto “helloWorld“, xCode aprirà per noi diversi file. Prendiamo in esame il file main.cpp che rappresenta il file base di ogni programma in C++.
All’apertura di questo file troviamo già scritte diverse direttive, non preoccupiamocene, cancelliamo semplicemente tutto!

Per gli utenti WINDOWS

Apriamo Dev-C++ e clicchiamo su File–>Nuovo–>Progetto
Selezioniamo Console Application e assicuriamoci che sia selezionata la voce C++, diamo il nome helloWorld e salviamo il tutto. Dev-C++ crea per noi un file main.cpp, cancelliamo tutto il codice che troviamo al suo interno.

A questo punto, che stiate utilizzando Mac Os X o Windows, avrete tutti davanti una pagina totalmente bianca, (il file main.cpp), il miglior punto di partenza 😉

Scriviamo questo codice al suo interno, senza preoccuparci di cosa stiamo effettivamente scrivendo, verrà spiegato subito dopo:

#include 

using namespace std;

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

Vediamo il significato di tutte le istruzioni scritte:

#include 

il C, nativamente, non include un metodo per l'input/output, ovvero per acquisire dati dalla tastiera e per stampare a video. Abbiamo quindi la necessità di includere tramite la direttiva al precompilatore #include una libreria di funzioni, ovvero un altro file, presente nella cartella di installazione del compilatore in cui siano presenti funzioni che effettuino lettura e scrittura. La funzione che utilizzeremo per la lettura sarà cin, la funzione che utilizzeremo per la scrittura a video sarà invece cout.

using namespace std;

Questa seconda istruzione ha il compito di facilitarci un po' la vita. Infatti nel file iostream che abbimo incluso con la prima direttiva, la definizione di cin e cout è data in realtà come std::cin e std::cout. Utilizzando using namespace std; possiamo di fatto non scrivere std:: ad ogni richiamo di cin e cout con un grossissimo risparmio di tempo.

Da notare la presenza del ; che nel C/C++ è il delimitatore di un istruzione. Al termine di ogni istruzione, quindi, è assolutamente necessario inserire un punto e virgola per far comprendere al compilatore che l'istruzione termina li.

Tuttavia le direttive al precompilatore non necessitano del ; ed infatti #include non termina con un ;

int main() {

Questa istruzione corrisponde alla funzione base che deve essere presente in un qualsiasi programma C/C++. Infatti, eliminandola, il programma non partirà perchè andrà alla ricerca di tale funzione all'inifinito. Non soffermiamoci adesso sul perché non ci sia scritto semplicemente main ma int main (), il discorso è abbastanza lungo e verrà trattato successivamente! All'interno delle parentesi graffe va scritto quello che effettivamente vogliamo la funzione faccia! Questa parte prende il nome di corpo o Body della funzione.

cout << "Hello World!\n";

Questa è l'istruzione che compone il nostro body ed è davvero molto semplice. Si limita a stampare a video una stringa di caratteri. La sintassi completa della funzione stampa a video è cout << ""; e all'interno delle "" potremmo andare a scrivere qualsiasi cosa. Quanto stampato dalla funzione è una stringa, un insieme di caratteri, per dirla banalmente una "frase". In C/C++ le stringhe di caratteri sono racchiuse appunto tra "". \n è un carattere di escape, un semplice comando (vedremo più avanti gli altri) che ci fa andare a capo dopo aver stampato la frase Hello World. Notiamo infine anche qui la presenza del punto e virgola.

return 0;

Per il momento tralasciamo questa istruzione che verrà approfondita accuratamente in un tutorial dedicato ai ritorni delle funzioni e sul passaggio di variabili. Dobbiamo però sapere che è strettamente legata all'aver scritto int prima di main. Capiremo in seguito il perchè.

E' giunta l'ora di mandare il programma in esecuzione!!

Per gli utenti MAC OS X

Dal Menu Build cliccare su Build and Go. Se avrete scritto correttamente il codice nella barra inferiore dell'ambiente di compilazione avrete la scritta: "Debugging of "helloWorld" ended normally.", ma non vedrete nulla. Per visualizzare la vostra scritta, basterà digitare Shift+Mela+R perchè venga visualizzata la console, è li infatti che avremo l'output del nostro piccolo programmino. Ed ecco proprio qui il vostro primo saluto in C++ 🙂

Per gli utenti Windows

Dal Menu Esegui selezionare Compila ed Esegui o premere F9.
Qui non avremo problemi a vedere il risultato che comparirà automaticamente.

Siamo giunti alla fine di questo nostro primo tutorial in C++. Nel prossimo tutorial, in cui affronteremo il concetto di variabile, introdurrò il fondamentale concetto di Tipo su cui si basa tutto il C++. In realtà variabili e tipo sono strettamente collegate ma questa, come si suol dire, è un altra storia!

Share this story:
  • tweet

Tags: ccompilatoridevc++lezioniXcode

Recent Posts

  • Parte il percorso programmatori iOS in Swift su devACADEMY.it

    20 Dicembre 2017 - 0 Comment
  • Android, crittografare dati velocemente con Encryption

    24 Settembre 2018 - 0 Comment
  • Sql2o, accesso immediato ai database tramite Java

    3 Settembre 2018 - 0 Comment
  • Okio, libreria per ottimizzare l’input/output in Java

    27 Agosto 2018 - 0 Comment

Related Posts

  • Con Xcode 6.3 arriva il Crash Log Organizer

    26 Febbraio 2015 - 0 Comment
  • Xcode-project-generator: uno script per creare velocemente progetti Xcode

    21 Ottobre 2014 - 1 Comment
  • Xcode Tips & Tricks: Gestione del filesystem, un progetto più versioni, plugin

    12 Novembre 2013 - 4 Comments

Author Description

6 Responses to “C#002 – Hello World in C++”

  1. 13 Aprile 2010

    iEdo

    L’helloworld funziona ma ci vorrebe una pausa per poter vedere l’helloworld a video perchè quando lo si esegue è cosi istantaneo che non si fa ora a vedere l’output “helloworld”.
    Kmq funzia!.:)

  2. 14 Aprile 2010

    Staff devAPP

    Si vero, se usate Dev-C++ mettete, nella riga prima di “return 0;”, questa istruzione:

    system(“PAUSE”);

  3. 3 Luglio 2010

    syle

    ciao interessantisimi sti’ tutorial.
    pero tutto sommato io ho Dev-C++ è non ho capito cosa devo scrivere alla fine per vedere stampato sul video “hello world”…

    ho scrito: system(PAUSE); e non va …

    scusami ma sono un po’ indietro non ho mai studiato sti’ linguaggi è non ho la minima idea di cosa siano e come funzionano… però in questo sito ho trovato molti punti di riferimento… bravo/i … Complimenti… 😉

  4. 26 Settembre 2010

    paradix86

    Ciao a tutti!
    Complimenti per il tutorial, non è facile fare una guida di questo tipo facile e comprensibile, ma allo stesso tempo esaustiva ma non troppo altrimenti diventa pesante…

    Un consiglio??

    Per far capire meglio la indentatura, le regole del c,
    i simboli e le loro regole quali
    (“”) ; #include ecc,

    non sarebbe male farlo vedere con un esempio banale tiPO:
    assegnare 2 valori A e B,
    …
    int a = 2;
    int b = 3;
    int c = a+b;

    e poi visualizzare con un bel printf

    così da capire la punteggiatura dove va messa ecc….

    Sperando aver fatto cosa utile, saluto!!!

  5. 3 Dicembre 2010

    Alberto


    syle:

    ciao interessantisimi sti’ tutorial.
    pero tutto sommato io ho Dev-C++ è non ho capito cosa devo scrivere alla fine per vedere stampato sul video “hello world”…
    ho scrito: system(PAUSE); e non va …
    scusami ma sono un po’ indietro non ho mai studiato sti’ linguaggi è non ho la minima idea di cosa siano e come funzionano… però in questo sito ho trovato molti punti di riferimento… bravo/i … Complimenti…

    Devi lasciare lo spazio fra system e la parentesi aperta 😀

  6. 15 Marzo 2011

    senzafiltro86


    Alberto:


    syle:

    ciao interessantisimi sti’ tutorial.
    pero tutto sommato io ho Dev-C++ è non ho capito cosa devo scrivere alla fine per vedere stampato sul video “hello world”…
    ho scrito: system(PAUSE); e non va …
    scusami ma sono un po’ indietro non ho mai studiato sti’ linguaggi è non ho la minima idea di cosa siano e come funzionano… però in questo sito ho trovato molti punti di riferimento… bravo/i … Complimenti…

    Devi lasciare lo spazio fra system e la parentesi aperta

    Macché spazio! Gli mancano le “”: system(“PAUSE”);
    Attenzione, magari riscrivi le “” perché con il copia/incolla possono venire diverse

Leave a Reply

Your email address will not be published. Required fields are marked *


*
*

Corso online di programmazione android e java

SEZIONI

  • Android
  • Comunicazioni
  • Contest
  • Corsi ed Eventi
  • Corso completo di C
  • Corso programmazione videogiochi
  • Framework
  • Grafica e Design
  • Guida rapida alla programmazione Cocoa Touch
  • Guide Teoriche
  • Guide varie
  • iPad
  • Le nostre applicazioni
  • Libri e manuali
  • Materiale OpenSource
  • News
  • Pillole di C++
  • Progetti completi
  • Risorse utili
  • Strumenti di Sviluppo
  • Swift
  • Tips & Tricks
  • Tutorial Pratici
  • Video Tutorial
  • Windows Phone

Siti Amici

  • Adrirobot
  • Allmobileworld
  • Apple Notizie
  • Apple Tribù
  • Avvocato360
  • Blog informatico 360°
  • bubi devs
  • fotogriPhone
  • GiovaTech
  • iApp-Mac
  • iOS Developer Program
  • iPodMania
  • MelaRumors
  • Meritocracy
  • SoloTablet
  • TecnoUser
  • Privacy & Cookie Policy
©2009-2018 devAPP - All Rights Reserved | Contattaci
devAPP.it è un progetto di DEVAPP S.R.L. - Web & Mobile Agency di Torino
Str. Volpiano, 54 - 10040 Leini (TO) - C.F. e P.IVA 11263180017 - REA TO1199665 - Cap. Soc. € 10.000,00 i.v.

devACADEMY.it

Vuoi imparare a programmare?

Iscriviti e accedi a TUTTI i corsi con un’unica iscrizione.
Oltre 70 corsi e migliaia di videolezioni online e in italiano a tua disposizione.

ISCRIVITI SUBITO