Esercizi linguaggio C, lezione 1

Esercizi linguaggio C, lezione 1

Esercizi linguaggio C, perché scegliere questo linguaggio ?

linguaggio c
Linguaggio di programmazione C
Questa è una guida alla programmazione in C che si svilupperà in più lezioni. Grazie a queste lezioni puoi programmare in c partendo da zero. Troverai esercizi svolti in questo linguaggio. Se frequenti la facoltà d’informatica sono previsti testi di esercizi in linguaggio C da utilizzare come preparazione all’esame di Fondamenti di Informatica. Questo corso totalmente gratis è migliore delle dispense. Ci sono video tutorial ed approfondimenti. Inoltre, puoi lasciare le tue domande nella sezione commenti in fondo alla pagina. Il linguaggio C è stato sviluppato nel 1972 da Dennis Ritchie presso i laboratori della Bell Telephone. Questo linguaggio fu progettato per consentire lo sviluppo del sistema operativo UNIX, un sistema ancora attivo in molti computer.Una curiosità il nome C è derivato da un precedente linguaggio, chiamato appunto B. Il linguaggio fu realizzato da Ken Thompson sempre per la Bell Telehpone. E’ facile intuire perché si chiamava linguaggio B; b era la prima lettera della Bell.Questa linguaggio è stato pensato per essere il più pratico possibile. Fin dalle prime sperimentazioni questo linguaggio dimostrava di essere potente e flessibile. Questo ebbe una diffusione rapida anche esternamente ai laboratori della Bell Telephone. Molti programmatori iniziarono ad usarlo per i loro progetti.

[CONTACT_FORM_TO_EMAIL id=”8″]La diffusione di questo linguaggio di programmazione portò anche una conseguenza negativa. Prima di andare avanti diamo la sua definizione per comprendere meglio il ruolo che il linguaggio ha in uno processo di programmazione applicata.

Il linguaggio di programmazione è un linguaggio formale costituito da una sintassi ben definita. E’ usato per scrivere dei programmi che implementano degli algoritmi.

Molte aziende iniziarono ad usare delle versioni proprietarie di questo linguaggio e si svilupparono sottili differenze di implementazione che ancora oggi causano problemi ai programmatori.Per arginare questo problema l’istituto statunitense degli standard ANSI (American National Standard Institute) mise in piedi, nel 1983, un comitato per definire in maniera univoca uno standard da seguire che da quel momento è stato chiamato ANSI C.

Se sei interessato a studiare linguaggio di programmazione Java per lo sviluppo delle tue applicazioni web, studiare il C ti aiuterà a comprendere meglio il linguaggio orientato ad oggetti Java. In questo video tutorial sono spiegate le parti fondamentali del linguaggio che ti consiglio di vedere prima di proseguire la lettura dell’articolo. Questo articolo è una guida alla programmazione in C che spiega le componenti fondamentali di questo tipo di programmazione. Con che linguaggio iniziare a programmare ? Il C è il primo linguaggio da prendere in considerazione. Di fatto, programmare in C permette di costruire il primo pilastro per diventare un programmatore esperto in altri linguaggi. Le strutture di questo linguaggio sono fondamentali per comprendere come imparare a programmare in altri linguaggi di orientati agli oggetti, come il linguaggio C++ e il Java, per esempio.

Nell’articolo troverai alcuni i comandi Linux da terminale che si usano nella distribuzione Debian, Ubuntu e loro derivate. Nelle distribuzioni Linux il terminale ha una funzione molto importante. Con il terminale si può:

  • Aggiornare la distribuzione Linux
  • Verificare che tutti i driver sono installati
  • Eseguire l’avanzamento della distribuzione alla successiva
  • Controllare il corretto funzionamento del motore grafico Xorg

e molto altro. Ma stai tranquillo che si può anche programmare in C su Windows.

Attualmente la maggior parte dei compilatori C moderni si uniforma a questo linguaggio, tranne poche eccezioni.Attualmente ci sono molti tipi di linguaggi di programmazione che possono essere scelti per implementare i nostri progetti, per esempio, oltre a questo linguaggio, abbiamo anche il Perl, il BASIC o Java. Sono tutti linguaggi di programmazione utili alla maggior parte dei problemi che possono essere risolti in via automatica, cioè utilizzando algoritmi. Ma ci sono molte motivazioni per cui molti programmatori professionisti ritengono che questo linguaggio si il migliore per questi motivi:

  • il linguaggio è potente e flessibile. Le potenzialità di questo linguaggio sono limitate solamente dall’immaginazione del programmatore. Questo linguaggio non pone nessuna barriera alla creazione di nuovi costrutti. Vediamo più da vicino a cosa serve il linguaggio C. Il C è usato per diversi tipi di progetto, come per esempio l’implementazione di sistemi operativi, elaboratori di testo, programmi di grafica, fogli elettronici e compilatori per altri linguaggi di programmazione.
  • Il C ha una popolarità molto ampia nell’ambiente della programmazione professionale. Infatti, è possibile trovare molti tipi di compilatori e di strumenti per lo sviluppo ed il debug dei programmi.
  • Il C è portabile. E’ una caratteristica molto importante di questo linguaggio perché un programma scritto con questo linguaggio, progettato in maniera specifica per una piattaforma hardware può essere compilato ed eseguito anche su piattaforme diverse con modifiche minime. Per di più, un programma scritto per il sistema operativo Windows può essere eseguito in un macchina con sistema operativo Linux, con nessuna modifica o modifiche minime. La portabilità è stata ulteriormente migliorata grazie anche al rilascio dello standard ANSI. L’ANSI ha determinato in maniera univoca un insieme di parametri a cui tutti i compilatori C devono conformarsi.
  • Il C ha poche istruzioni chiamate parole chiave. . Tutte le funzionalità del linguaggio si fondano sull’uso delle parole chiave. Si potrebbe pensare che un linguaggio fornito da molte istruzioni sia più potente di un altro linguaggio che ne possegga molte di meno. Ma questo non è vero. Più si avrà confidenza con il C è più si diventa consapevoli che come può essere usato per ogni tipo di problema.
  • Il C è modulare. Il codice di ogni programma può (e dovrebbe essere) scritto per procedure. Queste procedure sono chiamate tecnicamente funzioni. Le funzioni possono essere eseguite anche all’interno di altri programmi. Infatti, è possibile progettare delle funzioni che svolgono un determinato compito ed usare quel blocco di codice in altri programmi che necessitano di risolvere lo stesso compito. Di fatto, passando dei blocchi di informazione (detti parametri) alle funzioni è possibile sviluppare codice riutilizzabile.

Da questo elenco di motivazioni si comprende bene come il linguaggio C sia la scelta migliore per apprendere un nuovo linguaggio. Ma c’è anche un altro motivo perché conviene studiare questo linguaggio. Molti linguaggi come per esempio il C++ rappresentano un estensione del C. Alcuni si potrebbero chiedere perché studiare il C quando si può passare direttamente al C++ ?Certo è possibile passare direttamente dal C al C++. E’ bene ricordare che il C++ essendo un estensione del C contiene tutte le istruzioni del C e presenta altre istruzioni usate per la programmazione ad oggetti. Tutti coloro che hanno intenzione di apprendere il C++ utilizzeranno tutti i costrutti presenti nel C.Studiare questo linguaggio significa apprendere uno dei linguaggi di programmazione più usati e potenti. E’ un linguaggio propedeutico alla programmazione orientata agli oggetti. Un altro linguaggio di programmazione che come il C++ si basa sul C è il linguaggio Java anch’esso sviluppato per la programmazione a oggetti molto importante. Il Java è utilizzato molto nelle applicazioni che girano sui dispositivi mobili come Iphone, Smartphone e Tablet.Scegliere di studiare il C vi consente di creare delle buone fondamenta per la vostra carriera di programmatore professionista vi permette di approfondire altri linguaggi di programmazione mentre li state studiando. Prima di andare avanti nella lezione ti offro una lista di manuali che puoi usare:

Un linguaggio adatto per i microcontrollori

Il C è un linguaggio che nel tempo si è evoluto ed ha dimostrato di essere efficace anche per sviluppare sistemi embedded. Di fatto, il C è un linguaggio ad alto livello e risulta meno astratto del linguaggio macchina.Cosa è un sistema embeded ?

In elettronica ed informatica con il termine sistema embedded (sistema integrato) si identificano tutto i sistemi elettronici di elaborazione digitale a microprocessore. Questi dispositivi sono progettati per un determinato scopo e non possono essere programmati dall’utente per altri scopi.

Molti sviluppatori stanno abbandonando il linguaggio assembly per il linguaggio C per lo sviluppo dei microcontrollori. Decidere di usare il linguaggio C per applicazioni che si basano su piattaforme di computing embedded è una scelta che può avere tragiche conseguenze. I sistemi embedded sono nella maggioranza dei casi fondati su dispositivi programmabili come i microcontollori, i digital signal processor, i processori grafici ed altro. Alcuni anni fa, la programmazione migliore per questi dispositivi era di usare il linguaggio assembly. Di fatto, il linguaggio assembly era il solo ad avere una forte relazione tra istruzioni simboliche ed istruzioni macchina. Infatti, il linguaggio assembly permette di sviluppare un codice minimo. Sia in fatto di occupazione di memoria e in fatto del tempo in esecuzione. Un codice minimo e un tempo di esecuzione in memoria minimo sono requisiti tecnici che ogni sviluppatore di microcontrollori embedded deve rispettare. Di fatto, lo sviluppatore è spesso obbligato a sviluppare una parte importante dell’applicazione in linguaggio assembler. Di solito, questo accade nello sviluppo di componenti critiche come:

  • Driver delle periferiche
  • Funzioni che comandano l’hardware di sistema
  • Procedura di gestione delle interruzioni

Ti faccio un esempio pratico. Il microcontrollore Rabbit usa per la usa programmazione il linguaggio Dev C che si avvicina molto al C. Ancora una volta ti ho dimostrato quanto importante sia conoscere questo linguaggio.

Esercizi linguaggio C, come prepararsi alla programmazione

Lo scopo della programmazione è di risolvere un determinato problema. Quando si tenta di risolvere un problema è necessario seguire un metodo detto ciclo di sviluppo di un programma:

  1. Il primo passo da fare è conoscere il problema sotto ogni aspetto
  2. individuare una strategia che risolve il problema
  3. individuato la strategia metterla in pratica
  4. verificare se i risultati ottenuti risolvono il problema.

Quello che hai appena letto è un algoritmo. Il passo numero 1 è il più semplice. Abbiamo un problema e cerchiamo la soluzione. Facciamo un esempio per capire meglio. Sei un commercialista ed hai bisogno di uno strumento che ti aiuti nella contabilità. Che cosa può essere questo strumento ?Forse hai già capito. Un foglio di calcolo come Excel per esempio.Il passo numero 2 consiste nella strategia da adottare per scrivere il programma. Prima di scrivere un programma rispondi a queste domande:È necessario un programma per risolvere il problema ?Quali informazioni si devono considerare ?Quali formule si devono usare ?Nel presente passaggio si individuano le informazioni necessarie e come usarle per giungere alla soluzione del problema.Facciamo un esempio pratico. Si deve scrivere un programma che calcola l’area del cerchio. Il primo passo da fare è individuare l’obbiettivo, in questo caso, l’area del cerchio.Il secondo passaggio è individuare gli elementi indispensabili per calcolare tale area. Sulla base dei precedenti ragionamenti si può applicare la formula per il calcolo dell’area A=πr^2 per dare risoluzione al problema. Adesso si può scrivere il programma

Il ciclo di sviluppo di un programma in C

Il ciclo di sviluppo di un programma è composto da diverse parti:

  1. Si usa un editor di testo per creare un file su disco che contiene il codice sorgente
  2. si compila il codice sorgente per creare un codice oggetto
  3. si usa un programma detto linker per creare un file eseguibile a partire dal file oggetto
  4. Far funzionare il programma e verificare il suo funzionamento.

Come creare il codice sorgente per il linguaggio C

Il codice sorgente è una ,serie di istruzioni o comandi usati per istruire il computer in modo che esegua un determinato compito. Il primo passaggio del ciclo di sviluppo è composto nello scrivere del codice sorgente usando un editor di testo. In ambiente Windows puoi usare Blocco note o Note Pad. In ambente Linux ti consiglio di usare Gedit. E’ possibile usare Gedit in ambiente Windows.Adesso ti propongo un istruzione del C:printf(“Ciao Mamma”);Questa istruzione chiede al computer di stampare una stringa di testo, in questo caso Ciao Mamma. Il comando che permette di fare questo è la funzione di libreria printf().Ricordati che ogni istruzione C alla fine si chiude con il punto e virgola. Questo non accade nelle istruzioni condizionali come if, for, while e do while. Ma vedremo meglio tutto ciò nel proseguo di articoli successivi.

Come usare un editor di testo per scrivere i programmi in liguaggio C

I programmi che ho consigliato in precedenza sono solo dei gli editor di testo. Ma spesso gli editor di testo sono integrati nel compilatore C. Ti consiglio di leggere il manuale del compilatore da te scelto per verificare che ha incluso un editor di testo. Adesso ti dico come scaricare il linguaggio C tramite i pacchetti che trovi online:

    • bcc32: compilatore della Borland gratuito a usare da terminale
    • lcc-win: compilatore gratuito con ambiente integrato

    Se ti trovi all’inizio ti consiglio un software disponibile sia per Linux che per Windows. Si chiama Code blocks. Ricorda che quando andrai a salvare il tuo programma C dovrai dargli un nome ed un estensione. Per i programmi C l’estensione è .c. Mentre per i programmi in C++ l’estensione è .ccp. Quando si salva il file sorgente è bene dargli un nome che descriva la funzione del programma. Code Blocks presenta una buona interfaccia grafica per scrivere programmi in C e non solo. Ma in questo momento ci interessa solo la programmazione in C. Per installare il programma dovete recarvi all’home page del software Code Bloks Cliccare su downlods e poi su donwload binary release. Nella pagine successiva trovate il pacchetto software per diversi sistemi operativi Windows, le distribuzioni Linux e MacOsxSe il tuo sistema operativo è Windows devi cliccare su codeblocks-16.01.mingw-setup.exe. Se ti trovi in Debian oppure in una sua derivata come Ubuntu, Linux Mint, Backtrack è sufficiente andare sul software center e digitare su cerca CodeBlocks. Se usi il terminale puoi usare questo comando sudo apt-get install codeblocks per Ubuntu e derivate. Attenzione, prima di scarica il pacchetto software controlla se la tua distribuzione Linux è a 32 bit o 64 bit.Come si può fare a scoprirlo ?Apri il terminale e digita uno di questi due comandi:

    • uname –r
    • uname –m

    Entrambi dicono che tipo di sistema hai ma il primo comando oltre a dire che sistema hai dice anche il tipo di kernel della tua distribuzione Linux.

    linguaggio c
    Il comando riporta sul terminale la versione del Kernel Linux in uso, in questo caso, la 3.16.0-4.amd64. La dicitura amd64 rappresenta un sistema operativo a 64 bit.
    linguaggio c
    Il comando riporta sul terminale solo la versione del Kernel, in questo caso X86_64.

    La versione a 32 bit è rappresentata dalla dicitura X86.

    Per installare il programma con Debian, Ubuntu, e derivate puoi usare il software center oppure usando il terminale. Da terminale digita su e la password di root. Entrati nella root digitate apt-get install codeblocks ed inizierà l’installazione per Debian. Per Ubuntu e derivate usate questo comando: sudo apt-get install codeblocks

    Se ti trovi in una distribuzione Linux puoi usare il compilatore gcc, che di solito è già installato nella distribuzione. Se non fosse installato in Debian, Ubuntu e derivate lo potete installare dal software center o da terminale. Per installarlo da terminale digitate sudo apt-get install gcc. Il comando per verificare la compilazione e creare l’eseguibile è gcc –o nome-eseguibile nome-sorgente.c. Se il compilatore gcc non trova errori crea l’eseguibile. Per far partire il programma da terminale digita ./nome-sorgente e digita Invio. Controlla che il programma funzioni correttamente. Se cosi non fosse è necessario tornare la punto 2.

    Come compilare il codice sorgente

    Il computer non è capace di capire quello che il programmatore ha scritto nel codice sorgente. Ma necessita di un ulteriore passaggio. Il computer ha bisogno di istruzioni binarie o digitali scritte in linguaggio macchina o linguaggio assembly. Infatti, prima che un programma possa girare su un computer deve essere tradotto dal formato sorgente al linguaggio assembly. Questo procedimento, che è il secondo passaggio del ciclo di sviluppo di un programma, è effettuato dal un programma detto compilatore che svolge il procedimento di compilazione di un programma in C.

    Creazione del file eseguibile attraverso il linking per i linguaggio C

    Prima di far girare un programma in linguaggio C è fondamentale un ultimo passaggio. Il linguaggio possiede varie librerie che contengono il codice oggetto di tutte le funzioni del linguaggio. Questo codice oggetto è già precompilato. Di fatto, rappresentano le funzioni predefinite di questo linguaggio. Le funzioni predefinite C hanno un codice già pronto da passare direttamente al compilatore per creare il codice eseguibile. Queste funzioni svolgono molte funzioni, fra cui per esempio la stampa di caratteri a video come printf(). Oppure l’inserimenti di caratteri grazie all’uso della funzione scanf(). Le funzioni di libreria che ho sopra descritto le incontrerete in ogni programma perché saranno indispensabili. Il file oggetto creato a partire dal codice sorgente sarà combinato con le funzioni di libreria del C. In questo modo è possibili generare un programma eseguibile. Questo procedimento è chiamato linking. Il procedimento di linker è condotto a termine da un programma che si chiama linker.

    Completamento del ciclo di sviluppo del linguaggio C

    Terminata la compilazione e linkato il software si esegue digitando il nome nel prompt di sistema. Se dal suo funzionamento si ottengono dei risultati diversi da quelli voluti è necessario tornare al primo passaggio. Si deve fare un processo di debugging e correggere il codice sorgente.Quando si esegue una modifica al codice sorgente si deve rieseguire la compilazione e linkare nuovamente per generare la nuova versione. Si ripete questo passaggio fino a quando il programma non risponde alle specifiche richieste.Ho parlato del processo di compilazione e linking come se fossero due processi separati. Di fatto, la maggior parte dei compilatori esegue questi due processi in un solo procedimento. Ma si deve fare un distinzione. Il processo di compilazione e di linking sono due procedimenti distinti.

    Esercizi linguaggio C, un programma d’esempio

    Analizziamo la struttura di un programma per capire come si scrive in linguaggio C. Una curiosità, il primo programma che è stato scritto in C si chiamava Hello World. Passiamo al programma d’esempio.

    programma c

    • Nella riga 2 si trova un commento. I commenti non vengono presi in considerazione durante la compilazione. Servono per indicare il nome e cosa fa il programma. Sono molto utili nella stesura di grandi programmi scritti in modo modulare.
    • Nella riga 4 si trova la direttiva d’inclusione. Essa rappresenta i file d’inclusione di un libreria. In questo caso è presa in esame la libreria standard input ed ouput. Si trovano funzioni come printf() e puts() per la stampa di caratteri e stringhe e scanf() per l’immissione di dati e numeri.
    • Nella riga 6 si trova main(). E’ una funziona propria del C. Deve essere presente in ogni programma. Se non è presente il compilatore genera un errore.
    • Dalla riga 7 alla 12 si trova un blocco istruzioni: le parentesi graffe rappresentano un blocco istruzioni. Nel blocco istruzioni si inseriscono le istruzioni in C.
    • Nella riga 8 c’è un istruzione che stampa su video la stringa letterale “Ciao a tutti”. Inoltre, si trova anche la funzione di escape \n. Questa funzione di scape ordina al computer di andare a capo dopo aver scritto la stringa letterale.
    • Nella riga 10 è presente un istruzione che restituisce un valore al programma chiamante. In questo caso, è restituito come valore lo zero. Significa che il programma è stato eseguito senza errori.
    • Sempre nella riga 10 si trova il punto è virgola. Il punto e virgola deve essere sempre presente in un programma in linguaggio C, tranne che nei costrutti condizionali come if, for, while e do while.

    Se sei interessato allo studio di questo linguaggio continua a seguirmi. Se hai degli argomenti che vuoi approfondire su questo linguaggio di programmazione lascia un messaggio nei commenti.

    Fonti

    • Programmare in C – Guida completa C – Peter Aitken e Bradley L. Jones edito da Apogeo
    • Linguaggio C – Bellini e Guidi edito da Mc Graw Hill
    photo of andrea barbieri

    BTF Traduzioni SEO Sviluppo Web

    Piazza Giuseppe Mazzini, 46

    Poggibonsi, Siena, 53036 Italia

    +393296664935
    traduzione, traduttore, programmatore, blogger, realizzazione siti web, Web Marketing, lezioni private di lingua,

    Esercizi linguaggio C, lezione 1 linguaggio c" Linguaggio C

    Rated 5/5 based on 650 customer reviews

    Descrizione del prodotto: Il linguaggio C è potente e flessibile. Le potenzialità di questo linguaggio sono limitate solamente dall’immaginazione del programmatore. Questo linguaggio non pone nessuna barriera alla creazione di nuovi costrutti. Il C è usato per diversi tipi di progetto, come per esempio l’implementazione di sistemi operativi, elaboratori di testo, programmi di grafica, fogli elettronici e compilatori per altri linguaggi di programmazione. Recensione dei clienti:

    Esercizi linguaggio C, lezione 1 – di ,June 12, 2017

    5/ 5stars

    About btftraduzioniseoweb

    Ciao mi chiamo Andrea Barbieri e sono il titolare dello studio BTF. Programmatore da sempre traduttore da una vita. Lo studio si occupa di progettazione e realizzazione siti internet. Inoltre, offriamo un servizio di traduzioni professionali e localizzazione di siti web in Inglese, Francese, Tedesco, Spagnolo ed Italiano. All'interno del blog sono pubblicati periodicamente tutorial di Web Marketing, SEO, linguaggi di programmazione e molto altro.