Home
Accesso / Registrazione
 di 

Programmare in C: Che cosa è il C e come si programma in C

Guida C

Guida completa al C, per imparare a programmare di tutto in un linguaggio universale! Il linguaggio di programmazione C è un linguaggio di programmazione molto noto e ampiamente utilizzato per creare programmi per computer.

In tutto il mondo i programmatori adottano il C come linguaggio di programmazione perché consente di ottenere il massimo controllo e la massima efficienza. Questa animazione mostra l'esecuzione di un semplice programma C. Leggendo questo articolo fino alla fine capirete come funziona!

Se siete programmatori, o se siete interessati a diventare programmatori, acquisirete almeno un paio di vantaggi imparando a programmare in C:

    • sarete capaci di leggere e scrivere codice per un ampio numero di piattaforme – praticamente tutto dai microcontrollori ai sistemi scientifici più avanzati può essere scritto in C. Anche molti sistemi operativi moderni sono scritti in C.

    • Passare al linguaggio C++, orientato agli oggetti, diventa più facile. C++ è un'estensione del C, ed è praticamente impossibile imparare il C++ senza imparare prima il C.

    In questo articolo, analizzeremo l'intero linguaggio C per mostrarvi come diventare un programmatore C, proprio partendo dai fondamentali. Sarete incredibilmente sorpresi dalle quantità di cose che potrete create una volta che avrete imparato il linguaggio C.

Il C è un linguaggio di programmazione. Ciò significa che potete usare il C per creare elenchi di istruzioni che il vostro computer dovrà seguire. C è uno delle migliaia di linguaggi di programmazione correntemente usati. Il C ha parecchi hanno di vita alle spalle ed è stato ampiamente adottato in vari settori perché dà ai programmatori il massimo controllo ed efficienza. Il C è un linguaggio facile da imparare. E' appena un po' più “criptico” di altri linguaggi, ma è facile superare rapidamente l'apparente astrusità del linguaggio.

Che cosa è il C?

Il C è un cosiddetto linguaggio compilato. Ciò significa che una volta che viene scritto un programma in C, lo si deve eseguire attraverso un compilatore C per trasformare il programma in un eseguibile che il computer può comprendere e quindi eseguire.

Un programma in C è in una forma human-readable (ossia comprensibile dall'uomo), mentre l'eseguibile generato dal compilatore è machine-readable (comprensibile dal computer). Quindi, scrivere per poi far eseguire un programma in C significa prima di tutto avere a disposizione un compilatore C. Se si usa una macchina UNIX (per esempio, se si scrive uno script CGI in C e se il computer host è un computer UNIX, o se si è uno studente che lavora/studia in un laboratorio dove spesso si trovano macchine UNIX), il compilatore C è disponibile gratuitamente. Il compilatore C si chiama cc o gcc ed è disponibile da linea di comando.

Se siete degli studenti, la vostra scuola probabilmente vi fornirà un compilatore – verificate cosa si usa nella vostra scuola e imparate ad usare quello. Se state lavorando a casa su una macchina Windows, dovrete probabilmente scaricare un compilatore C gratuito oppure acquistare un compilatore commerciale. Un compilatore commerciale ampiamente utilizzato è il compilatore Microsoft Visual C (che compila sia programmi in C che in C++). Sfortunatamente, questo programma costa svariate centinaia di dollari. Se non avete centinaia di dollari da spendere in un compilatore cosiddetto commerciale, allora potete pensare di usare uno dei compilatori disponibili gratuitamente sul Web. Un buon punto da cui partire per cercare un compilatore C gratuito è http://delorie.com/djgpp.

Iniziamo con un programma C estremamente semplice e lo costruiremo passo passo per voi. Supporremo, in questo articolo, che si stia utilizzando una linea di comando UNIX e il gcc come compilatore. Se non avete il gcc, questo articolo vi sarà comunque utile per capire le fondamenta del C, dovrete semplicemente verificare e comprendere come funziona il compilatore che avete voi a disposizione.

Ed ora, partiamo con la nostra lezione di C.

Programmare in C - Il più semplice programma in C

Partiamo con il programma più semplice possibile e usiamolo per capire le basi del C e il processo di compilazione. Digitate il programma seguente in un editor di testo standard (tanto per fare degli esempi, editor di testo come vi oppure emacs su UNIX. Su Windows potete usare Notepad e su Macintosh TeachText).

Poi, salvate il programma in un file che chiamerete samp.c. Se tralascerete l'estensione .c probabilmente riscontrerete degli errori non appena cercherete di compilarlo, pertanto ricordatevi di aggiungere l'estensione .c al nome del file.

Inoltre, assicuratevi che il vostro editor di testo non aggiunga automaticamente alcuni caratteri extra, come ad esempio .txt, al nome del file. Ecco qui il vostro primo programma:

#include <stdio.h>
int main()
{
printf("This is output from my first program!\n");
return 0;
}

Una volta in esecuzione, questo programma indica al computer di stampare la frase “This is output from my first program” che tradotto in italiano significa “Questo è l'output del mio primo programma”. Fatto ciò, il programma termina. Non esiste praticamente nulla più semplice di questo programma.

Posizionamento:

Quando digitate questo programma, fate in modo di posizionare #include in modo che il simbolo # occupi esattamente la colonna 1 (oppure la parte estrema più a sinistra). La spaziatura e l'indentazione possono essere quelle che preferite. Su alcuni sistemi UNIX si può trovare un programma chiamato cb, il C Beautifier (letteralmente “l'abbellitore” per programmi C) che provvede a formattare il codice indentandolo e spaziandolo per una maggiore leggibilità. La spaziatura e l'indentazione del programma di cui sopra è un ottimo esempio da seguire.

Per compilare questo codice, sono necessari i seguenti passi:

• su di un sistema UNIX, digitare gcc samp.c -o samp (se gcc non funziona provare con cc). Questa linea invoca il compilatore gcc, gli chiede di compilare samp.c e gli chiede di posizionare il file eseguibile che crea sotto il nome di samp. Per eseguire il programma, poi, digitare samp (oppure, in alcuni sistemi UNIX digitare ./samp)

• Su di un sistema DOS o Windows usando DJGPP, digitare gcc samp.c -o samp.exe su di un prompt dei comandi. Questa linea invoca il compilatore chiamato gcc, gli chiede di compilare il file samp.c e di renderlo eseguibile sotto il nome samp.exe. Per eseguire il programma digitare samp.

• Se state lavorando con altri compilatori o altri sistemi di sviluppo, leggete e seguite le istruzioni per il compilatore che state usando per compilare ed eseguire il programma correttamente.

Dovreste vedere l'output del programma “This is output from my firt program!” all'esecuzione del programma. Ecco cosa succede quando si compila il programma:

Se commettete errori di battitura nell'editare il programma, può accadere che il compilatore non lo compila o che non riesca ad essere eseguito l'eseguibile. Se il programma non compila o se il compilato non viene eseguito correttamente, rieditatelo e verificate se vi sono stati effettivamente errori in battitura. Correggete l'errore e riprovate.

 

 

Scrivi un commento all'articolo esprimendo la tua opinione sul tema, chiedendo eventuali spiegazioni e/o approfondimenti e contribuendo allo sviluppo dell'argomento proposto. Verranno accettati solo commenti a tema con l'argomento dell'articolo stesso. Commenti NON a tema dovranno essere necessariamente inseriti nel Forum creando un "nuovo argomento di discussione". Per commentare devi accedere al Blog
ritratto di Anonimo

Hai ucciso "Hello World"

"This is output from my first program!" ?!?!?!

e il sacro, classico, fondamentale "Hello World" che fine ha fatto???

ritratto di Emanuele

Basta "Hello World"

Concordo con TecnoMan, hello world, ha rotto le scatole!
Seppur mitico, lo abbiamo usato tutti, insieme alle variabili "pippo" e "pluto" credo possa essere ormai dichiarato miticamente obsoleto Laughing

Se poi vi manca, eccovi una collezione di Hello World

ritratto di xwicxgohan

ciao a tutti! dove posso

ciao a tutti! dove posso trovare la guida completa??? sono alle prime armi e non ci ho capito molto per quanto possa essere semplice!!! non ho capito manco dove inserire quei comandi!!!

ritratto di Anonimo

Guida Completa???

Ma dove sta la guida completa? Mi aspettavo di poter scaricare un piccolo manuale PDF :-)

ritratto di Emanuele

Prima di tutto

Prima di tutto Buongiorno!
Secondo questa è solo la prima parte della guida completa che verrà pubblicata nei prossimi giorni.
Se vuoi il PDF di questa prima parte puoi generarlo da solo, vedi la piccola icona rossa pdf vicino al titolo?

ritratto di Anonimo

Cerca "gapil" e

Cerca "gapil" e scaricatela.
Vedrai che divertimento...

ritratto di Anonimo

Guida "un tanto al

Guida "un tanto al chilo".
Sapete quanti danni fanno queste cose a chi impara veramente un linguaggio in questo modo dozzinale?

ritratto di Emanuele

Caro anonimo (non hai

Caro anonimo (non hai nemmeno un nickname da inserire?) se hai critiche falle pure, spiegaci cosa non va in questa prima parte del corso sulla programmazione c. Altrimenti quello dozzinale rimane solo il tuo commento ;)

Emanuele

ritratto di Anonimo

non mi funziona, tra

non mi funziona, tra l'altro. mi dice: error: #include expects "FILENAME" or

e poi ancora

warning: incompatible implicit declaration of built-in function ‘printf’

ritratto di syntaxerrormmm

Certo...

...perché qualcuno non ha verificato il testo da pubblicare prima di farlo, perché si sarebbe accorto che il content manager si è mangiato il codice credendolo HTML non valido. Certo anche che sono tutti in grado di tenere un blog così, senza verificare le pagine pubblicate...

BTW, correggi con:
#include <stdio.h>

ritratto di Emanuele

Hai ragione, ci è sfuggito!

Hai ragione, ci è sfuggito! I tag < e > sono stati rimossi dall'editor.
Abbiamo inserito quindi correttamente all'inizio del programma
#include <stdio.h>
che poi è la libreria che contiene la funzione
printf()
una delle prime funzioni che si impara quando si inizia con il linguaggio c.

"Certo anche che sono tutti in grado di tenere un blog così, senza verificare le pagine pubblicate..."
Perchè questo atteggiamento? Una svista può capitare ed i commenti servono anche a segnalare quello che agli autori può sfuggire.
Non credo che "tutti" siano in grado di tenere un blog cosi...
Un blog sull'elettronica open source, con articoli molto tecnici ed articoli piu semplici per hobbisti e con un flusso di piu di 50 articoli a settimana!
Se trovi qualcosa del genere in Italia, segnalamelooo

ritratto di syntaxerrormmm

> Un blog sull'elettronica

> Un blog sull'elettronica open source [...] con un flusso di piu di 50 articoli a settimana!

Ecco, il problema è proprio questo.
Se non si verificano correttamente i contenuti, di 50 articoli la settimana corre il rischio che se ne salvano 2/3... e allora tanto vale avere un "flusso" di articoli minore ma sicuramente tutti validati/revisionati. Io personalmente preferisco la qualità sulla quantità.

Mi chiarisco: non vi leggo costantemente e quindi non vi conosco, lungi da me darvi un giudizio guardando un solo articolo. Condividerete con me un po' di perplessità se, in una guida di base per l'apprendimento ad un linguaggio, capita una "svista" di questo genere nel codice esplicativo. E' sicuramente più grave di un errore di ortografia nel testo a corredo.

ritratto di Emanuele

Accettiamo la tua

Accettiamo la tua critica.
Anche se piuttosto che DIMINUIRE i contenuti (e quindi ridurre il numero dei nostri collaboratori) preferiamo AUMENTARE la qualità ed i controlli.
Trattiamo argomenti suddivisi in piu di 30 categorie, con esperti in ogni materia
http://dev.emcelettronica.com/your-electronics-open-source-team
quindi abbiamo le potenzialità per scrivere ogni giorno (bene) in ogni categoria che vedi qui a fianco nella sidebar.
Inoltre il web2.0 è interattivo, quindi i visitatori sono liberi (ed invitati) di segnalarci sviste.

Crediamo nella divulgazione libera delle informazioni e nella condivisione del know-how, quindi il nostro blog non sarà mai a pagamento (a volte troviamo ENORMI sviste in articoli a pagamento passami il piccolo sfogo) e quello che vogliamo è SI aumentare la qualità ma ANCHE coinvolgere i lettori nell'articolo, inserendo dei commenti che possono completare l'articolo stesso, migliorandolo, sia sotto il profilo delle sviste, che quello puramente tecnico.

ritratto di syntaxerrormmm

> Anche se piuttosto che

> Anche se piuttosto che DIMINUIRE i contenuti (e quindi ridurre il numero dei nostri collaboratori) preferiamo AUMENTARE la qualità ed i controlli.

Credo che sia un ottimo proposito, il migliore che poteste darvi. In bocca al lupo :)

ritratto di Emanuele

Crepi! Continua a seguirci,

Crepi!

Continua a seguirci, e magari segnalaci anche cosa vorresti veder pubblicato e quali argomenti ti interesserebbe approfondire, se riusciamo, sicuramente ti accontenteremo!

ritratto di LordGiotto

Cazzo che acidelli che siamo

Cazzo che acidelli che siamo :P Un errore capita a tutti ;)

Comunque tutto il mio sostegno all'autore... Probabilmente queste tue guide non verranno utilizzate come testi di riferimento nei maggiori atenei italiani, ma sicuramente sono un innegabile aiuto per chiunque si avvicini ad un linguaggio e vuole farsi un'idea di quello che lo aspetta, prima di scaricarsi il manuale da 1500 pagine "che non fa danni" :)

Ciao ^_^

ritratto di Emanuele

Un pò "colorito" ma

Un pò "colorito" ma eloquente il tuo commento!
Sono d'accordo, questo corso non è IL corso sul linguaggio c, ma solo una guida iniziale.
Il c è spiegato con parole semplici e per questo mi è piaciuto.
Del resto anche il "Kernighan & Ritchie" è spesso criticato...ooops "Kernighan || Ritchie" :)
Finito questo ne pubblicheremo uno più avanzato, prometto.

ritratto di Anonimo

make e gcc

ragazzi perche con djgpp sia con gcc che con make mi da "comando non trovato" ? la viaribile di ambiente di sistema e settata, altrimenti emacs da errore ...

ritratto di Anonimo

a rigore è int

a rigore è

int main(void)
{
...
}

ritratto di Alessandro..

informazione

a me la shermata dura un millisecondo.... come faccio a aumentare il testo?? grazie mille

ritratto di diegoz

anche a me è successo lo

anche a me è successo lo hai risolto poi? qualcuno risponda!

ritratto di slovati

output di hello world

Il programmino è corretto ("ci mancherebbe!" potrebbe dire qualcuno visto il numero esiguo di istruzioni) ed il motivo per cui l'output non viene visualizzato è dovuto sia all'ambiente di sviluppo che al sistema operativo utilizzati. Questo programmino, infatti, usa la modalità non grafica, cioè è un programma per essere eseguito dalla shell o prompt comandi o, come usano dire gli ambienti di sviluppo "visuali", è in modalità "consolle".
Per visualizzare l'output potete agire nel modo seguente. Compilate il programma e generate l'eseguibile (estensione .exe in Windows). Aprite poi una finestra di prompt dei comandi (o terminale in Linux) e portatevi nel direttorio in cui è presente l'eseguibile. Digitando il nome dello stesso lo manderete in esecuzione e potrete verificare l'output generato nella stessa finestra.
Ai tempi del DOS questi problemi non eistevano (c'è qualcuno che lo rimpiange?).

ritratto di tomeinstein

per far vedere interamente il programma senza che finisca.

anch'io come alcuni ho cominciato da poco ad usare il C.
ma ho trovato un mio sistema (sono sicuro ce ne siano dei piu avanzati) per far vedere tutto il programma prima che finisca. alla fine ho aggiunto uno scanf che aspettasse che io inserisse un qualsiasi carattere o numero cosicche io avessi il modo per leggere tutto il programma eseguito.

ritratto di azalus

Più che chiaro il discorso mi confonde

Allora ,leggendo i commenti non sò se ò'esempio dell' articolo è ben scritto "intendo il codice esempio"
-----------------------------------------------------------------------------------
Inserito da tomeinstein
Per visualizzare l'output potete agire nel modo seguente. Compilate il programma e generate l'eseguibile (estensione .exe in Windows). Aprite poi una finestra di prompt dei comandi (o terminale in Linux) e portatevi nel direttorio in cui è presente l'eseguibile. Digitando il nome dello stesso lo manderete in esecuzione e potrete verificare l'output generato nella stessa finestra.
Ai tempi del DOS questi problemi non eistevano (c'è qualcuno che lo rimpiange?).
-------------------------------------------------------------------------------------
Da azalus
Rimpiangere il DOS o non rimpiangere il DOS?
Questo è il problema ............
Ora dico io ,ma è un problema secondo me restringersi al compilare un programma che funzioni da prompt o terminale ?
NO non lo è affatto se si è degli ignoranti come me in materia di programmazione in C
alle prime armi(o meglio io sono ancora al livello di chiedere da che parte si impugna il fucile).
Questa guida almeno fa bene a chi è come me.
E ti ringrazio tomeinstein per l'esplicazione su come poi aprire il mio eseguibile.

ritratto di MaxCperCiaoeC

Il C

Ciao, sono entrato nel mondo della programmazione da più o meno due anni (prendendo e lasciando lo studio autodidatta)tramite youtube ed E- Book al Python perchè a suo tempo il C davvero mi faceva paura (13 anni). Ma ora con un po' di conoscenza al Python, compilatore, linker ecc.. da ieri il C mi ha davvero affascinato con la sua sintassi complessa e all' apparenza difficile da capire; devo dirlo oramai le cose complesse mi piacciono MA/PERO' non so chi mi può insegnare il C anche tramite Skype , youtube o altro...

Domanda: CHAR VARIBILE; Come diamine si da uno SCANF("percentuale chè?",varibile) CON %c mi estrae solo una lettera di input all'avvio del programma , tra un po' finisco di sbattere la testa sulla scrivania e vado sul WC.

Ecco, ho fatto un programma su C

#include
#include

int main(int argc, char *argv[])
{
//Programma che chiede il nome all'utente e ne restituisce un valore
char nome;

printf("Come ti chiami? \n");
//Purtroppo c'è un errore, non conosco la % per accettare il valore di striga (come diavolo prendere la frase che l'utente ha scritto)
scanf("%s",nome);
printf("Ciao, %s \n",nome);

system("PAUSE");
return 0;
}

ritratto di Giuseppe.Basile

Non é mai troppo tardi..

Ciao a tutti!

Da dilettante alle primissime armi, con l'obiettivo di imparare a "dominare" i PIC, mi approccio a questo ostico mondo della programmazione.....

Vorrei segnalare, a chi si trovasse nelle mie stesse condizioni e volesse mettere in pratica questa prima lezione, un compilatore C/C++ appena scaricato. Si chiama  wxDev-C++, é gratis e mulitilingue (italiano incluso ovviamente...).

Scritto il programma sarà sufficiente salvarlo, selezionare la funzione "compila" dal menù "esegui" della barra degli strumenti ed ecco bello e pronto (nella medesima cartella in cui avete salvato il programma)  l'eseguibile .exe.

Procedo con le lezioni....

 

 

Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Chi è online

Ci sono attualmente 7 utenti e 87 visitatori collegati.

Ultimi Commenti