iscrizioni aperte

Corso Linguaggio C Base/Intermedio

n percorso completo per apprendere e perfezionare l’utilizzo del linguaggio C, sviluppando competenze avanzate nella programmazione e nella gestione di progetti complessi.
RICHIEDI INFORMAZIONI su questo corso

Verrai ricontattato da un nostro consulente

Cosa imparerai

Esplorerai i fondamenti del linguaggio C, acquisendo competenze pratiche nella gestione delle variabili.

Approfondirai concetti avanzati come i puntatori, le strutture dati dinamiche e le tecniche di debugging, sviluppando soluzioni scalabili e robuste per progetti complessi. Imparerai a organizzare e ottimizzare il codice sorgente.

Certificazioni

Oltre al nostro Attestato di partecipazione, scopri tutte le Certificazioni Internazionali che puoi ottenere da noi seguendo questo percorso.
Attestato di Partecipazione
FINALITà FORMATIVA

Il corso è progettato per formare programmatori competenti nel linguaggio C, capaci di gestire progetti di medie dimensioni e risolvere problemi complessi.

Un corso pratico e operativo per apprendere le fondamenta e le funzionalità intermedie del linguaggio C, ideale per lo sviluppo di applicazioni e programmi ad alte prestazioni.

Alla fine del percorso, sarai in grado di scrivere, ottimizzare e mantenere applicazioni professionali in linguaggio C, utilizzando tecniche avanzate per garantire prestazioni elevate e una gestione efficace delle risorse.

Obiettivi del corso

Sbocchi professionali

per te

Cosa è incluso

Certificazione internazionale

Simulazioni esame certificazione

Videocorsi online disponibili per 4 mesi dall'iscrizione

Dispense online

Forum dedicato e diretto con il corpo docente sinervis, disponibile direttamente sulla piattaforma dei videocorsi

Attestato di partecipazione che potrai allegare nelle tue candidature professionali o in Linkeding

Lezioni in streaming registrate (in caso di assenza potrai rivedere la lezione in un secondo momento)

SYLLABUS

Programma Didattico

Modulo 1 - Linguaggio C Base
  • Funzionamento del calcolatore elettronico
  • Dettagli sul sistema centrale e il sistema periferico
  • Processo di eleborazione di un programma
  • Microprocessore e linguaggio macchina
  • Compilatore e linguaggio ad alto livello
  • Punti di forza del C e contesti applicativi
  • Differenze e somiglianze con il C++ e altri linguaggi
  • File eseguibili e file sorgenti
  • Sorgente principale e librerie esterne
  • Processo di compilazione di un sorgente
  • Il Preprocessore e il Linker
  • Scegliere e configurare l’ambiente di lavoro (IDE)
  • Strutturare un programma base
  • Compilazione ed esecuzione attraverso IDE
  • Strumenti di testing e debugging
  • Parole chiave, istruzioni e commenti
  • Direttive di inclusione
  • Flusso di esecuzione di un programma
  • Concetto di blocco di istruzioni
  • Entry point e il blocco main
  • Variabili e operatori
  • Funzioni, parametri e valori di ritorno
  • Input e output elementare
  • Tipi nativi e operatori supportati
  • Specificatori e qualificatori di tipo
  • Dichiarazione e inizializzazione di una variabile
  • Regole per la scelta degli identificatori
  • Dimensione di una variabile e funzione sizeof
  • Identificare i limiti con la libreria limits
  • Variabili costanti e macro
  • Ambito di visibilita’
  • Variabili globali e variabili locali
  • Operatore di assegnazione
  • Operatori aritmetici e espressioni combinate
  • Ordine di valutazione degli operatori
  • Conversioni implicite ed esplicite
  • Operatori di dichiarazione
  • La libreria stdout
  • Funzioni elementari: getc, putc, gets, puts, ecc…
  • Funzioni avanzate: printf e scanf
  • Interpretazione della stringa di controllo
  • Sequenze di escape
  • Specificatori di formato
  • Intervenire sull’ampiezza di campo e la precisione
  • Intervenire sull’allineamento
  • Utilizzo avanzato della funzione printf
  • Acquisire una variabile per riferimento
  • Intervenire sul numero di caratteri letti e il peso massimo
  • Intervenire sui caratteri di delimitazione
  • Utilizzo avanzato della funzione scanf
  • Alterare il flusso di esecuzione del programma
  • Variabili Booleale e operatori logici
  • Operatori relazionali ed espressioni condizionali
  • Blocchi condizionali e costrutti fondamentali
  • Costrutto di selezione tramite If-Else
  • Costrutto di selezione tramite Switch-Case
  • Costrutto di iterazione tramite While e Do-While
  • Costrutto di iterazione tramite For
  • Istruzioni per il controllo dell’iterazione
  • Labels e istruzioni di salto incondizionale
  • Aggregazione di variabili
  • Proprieta’ fondamentali degli array
  • Concetto di indice e accesso casuale
  • Dichiarazione e inizializzazione di un array
  • L’operatore di accesso
  • Operazioni di assegnazione tra array
  • Operazioni di iterazione su array
  • Array multidimensionali
  • Operazioni di iterazione annidata
  • La libreria string
  • Stringhe come array di caratteri
  • Carattere di terminazione
  • Dichiarazione e inizializzazione di stringhe
  • Funzioni per l’assegnazione
  • Funzioni di confronto
  • Funzioni di manipolazione e accesso
  • Funzioni per il riconoscimento di caratteri
  • Tabella ascii e manipolazione aritmetica
  • Stampa su stringhe con sprintf
  • Lettura da stringa con sscanf
  • Ambito di visibilita e flusso di esecuzione di una funzione
  • Passaggio per valore e per riferimento
  • Memoizzazione
  • Concetto di stack e funzioni annidate
  • Prototipo e definizione di una funzione
  • Specificare il valore di ritorno
  • Procedure con valore di ritorno void
  • Specificare gli argomenti
  • Ritornare il controllo con la funzione return
  • Organizzazione del codice sorgente attraverso funzioni
  • Organizzazione delle funzioni attraverso file di inclusione
Modulo 2 - Linguaggio C Intermedio
  • La liberia Math
  • Utilizzo di approssimazioni e troncamenti
  • Radice quadrata ed elevamento a potenza
  • Funzioni esponenziali e logaritmiche
  • Funzioni trigonometriche
  • Problemi tipici risolvibili con funzioni matematiche
  • La libreria Time
  • Diversi formati per la gestione del tempo
  • Rappresentare e manipolare i riferimenti temporale
  • Ricavare l’orologio di sistema e il fuso orario
  • Implementare funzionalita’ di cronometro
  • Ritardare l’esecuzione delle istruzioni
  • Manipolazione delle variabili a livello binario
  • Operatori di AND, OR inclusivo e OR esclusivo
  • Operatori di scorrimento
  • Operatore di inversione
  • Contesti tipici in cui la manipolazione binaria risulta vantaggiosa
  • Concetto di bitmap
  • Manipolazione delle bitmaps attraverso bitmasks
  • Gestione delle variabili di stato attraverso bitmaps
  • La libreria stdarg
  • Funzioni a parametri variabili
  • Utilizzo dei parametri argc e argv della funzione main
  • Ricorsivita’ delle funzioni
  • Stesura di un algoritmo ricorsivo e buone norme
  • Trasformare un algoritmo iterativo in ricorsivo
  • Utilizzo delle ricorsioni di coda
  • Concetto di funzione pura e programmazione funzionale
  • Allocazione delle variabili in memoria
  • Concetto di l-valutee r-value
  • Operatore di indirizzo
  • Dichiarazione e inizializzazione di un puntatore
  • Operatore di deferenziazione
  • Puntatori e memoria dinamica (heap)
  • Funzioni per l’allocazione dinamica della memoria
  • Gestire un array come un puntatore
  • Aritmetica dei puntatori
  • Puntatori costanti e puntatori a costante
  • Puntatori a funzione
  • Puntatori doppi
  • Array di puntatori
  • Puntatori come argomenti e valore di ritorno
  • Errori di run-time tipici dei puntatori
  • Definire un identificatore di tipo con typedef
  • Aggregare le variabili attraverso una struttura
  • Definizione di una struttura
  • Dichiarazione e inizializzazione di strutture
  • Operatore di accesso per strutture statiche
  • Puntatori a struttura e allocazione dinamica
  • Operatore di accesso per strutture dinamichet
  • Array di strutture
  • Strutture come argomenti e valori di ritorno
  • Strutture di tipo bitfield
  • Strutture di tipo union
  • Strutture di tipo enum
  • Algoritmi di ricerca e ordinamento di array
  • Dichiarazione di array dinamici
  • Proprieta’ e limiti degli array dinamici
  • Liste monodirezionali e bidirezionali
  • Definizione e dichiarazione di una lista
  • Algoritmi per l’accesso e la manipolazione delle liste
  • Implementare funzionalita’ di stack o coda
  • Strutture ad albero
  • Definizione e dichiarazione di un albero
  • Algoritmi ricorsivi per l’accesso e la manipolazione degli alberi
  • Implementare mappe ad accesso casuale
  • Implementare insiemi ordinati e disordinati
  • Strutture a grafo
  • Definzione e dichiarazione di un grafo
  • Algoritmi di base per lavorare con i grafi
  • Concetto di flusso di Input e di Output
  • Flussi e libreria stdio
  • Flussi standard: stdin, stdout e stderr
  • Funzioni per leggere e scrivere sui flussi
  • Concetto di bufferizzazione e manipolazione dei buffer
  • Flussi di tipo FILE
  • Dichiarazione di un puntatore di tipo FILE
  • File binari e file di caratteri
  • Modalita’ di apertura e chiusura di un file
  • Carattere di terminazione di file
  • Funzioni per leggere e scrivere da file binari e di caratteri
  • Funzioni di posizionamento
  • Tecniche di alterazione
  • Rimozione e rinomina
  • Gestione dei file temporanei
  • Utilizzo dei file per l’interazione con i dispositivi
  • Utilita’ e tecniche di debugging
  • Scelta dello strumento di debugging
  • Compilare un sorgente con i simboli di debugging
  • Interruzione di un programma attraverso breakpoint
  • Interruzioni condizionate
  • Esecuzione a passi
  • Esaminare il contenuto delle variabili attraverso watchpoint
  • Esaminare lo spazio occupato e i tempi di esecuzione
  • Risolvere problematiche comuni: errori di segmentazione, cicli infiniti, ecc..
  • Gestione dei progetti di medie dimensioni
  • Organizzazione delle cartelle del progetto
  • Suddividere le funzionalita’ in librerie
  • File di intestazione e file oggetto
  • Concetto di translation unit e visibilita’ degli identificatori
  • Meccanismi di inclusione indipendente
  • Direttive di inclusione condizionale
  • Minimalizzazione della funzione main
  • Creazione di librerie statiche e librerie dinamiche
MODULO: HTML5, CSS3, BOOTSTRAP 28H
  • Sintassi dell’HTML e principali elementi di markup (tag)
FAQ

Domande e Risposte

Facciamo sia corsi in streaming sia corsi in Aula presso il nostro polo didattico principale a Milano o presso la sede aziendale, ovunque  si trovi, in tutta Italia. Per la gran parte dei corsi è comunque preferibile l’erogazione in streaming, sia per questioni legate a comodità “logistiche” sia perché con lo streaming, oltre a seguire benissimo ogni tipo di corso, esiste la possibilità di registrare ogni singola lezione per un utilizzo futuro.

SinerVis non solo rilascia un attestato di frequenza per ogni corso, ma è ente accreditato presso tutti i più grandi provider di certificazione. Quasi per ogni percorso è quindi disponibile una o più certificazioni internazionali rilasciate direttamente da SinerVis Academy

Se hai acquistato un esame di certificazione internazionale in SinerVis, hai a disposizione 1 anno dall’acquisto per sostenere l’esame.

Per i corsisti privati e i liberi professionisti abbiamo a disposizione tutte le modalità di pagamento (Assegno, bonifico, Finanziamento a tasso Zero…). Per le aziende le modalità vengono concordate di volta in volta e variano a seconda del piano formativo.

Offriamo un catalogo di oltre 100 diversi percorsi legati al mondo IT, che coprono tutte le più importanti aree dell’informatica: dallo sviluppo alla sistemistica, dalla Cyber Security all’AI.

Assolutamente sì. Sempre. Siamo abituati ad adattare il contenuto, oltre che gli esercizi proposti durante i percorsi, in base al livello di conoscenza dei vostri dipendenti, agli obiettivi aziendali e ai settori di applicazione specifici.

La durata dipende dal tipo di corso e dal livello di approfondimento richiesto. In generale, i corsi variano da un minimo di 16 ore fino ad academy annuali che possono arrivare anche a 900 ore, distribuite su calendari completamente liberi.

Ci distinguiamo per la nostra flessibilità, l’esperienza pluriennale nel settore e l’approccio pratico. Abbiamo inoltre uno dei più vasti e controllati team di docenti presenti in Italia, con oltre 600 professionisti accreditati e certificati su tutti i più importanti temi del mondo IT.

Forniamo formazione personalizzata da ogni punto di vista, fornendo l’esperienza necessaria a formare sia singole classi su tematiche specifiche e con pochissimi partecipanti, sia grandi platee con un numero adeguato di partecipanti per ogni sessione.

Sinervis Consulting mette a disposizione, gratuitamente, una piattaforma di smistamento classi brandizzata con logo del cliente sulla maggior parte dei temi formativi presenti sul mercato. Abbiamo nel tempo utilizzato questo strumento con decine di migliaia di partecipanti, aiutando i nostri clienti nel difficile compito di progettazione delle aule suddivise per livelli omogenee.

Le quotazioni dei percorsi variano tantissimo in base al tipo di corso, la lunghezza, il livello e, nel caso delle aziende, il numero di partecipanti e il numero di sessioni. Per avere una offerta precisa è sufficiente fare una richiesta di informazioni o chiamare il nostro numero verde: 800.44.77.17.

Richiedi informazioni

Compila il modulo di richiesta informazioni e verrai ricontattato da un
nostro consulente. Saremo felici di rispondere a tutte le tue domande.

Scarica Corso

Compila i campi sottostanti e riceverai una mail con il programma in allegato