




































































Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Dispensa appunti su linguaggio C di programmazione elementi di informatica
Tipologia: Appunti
1 / 76
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!





































































Una caratteristica fondamentale del C-Language è la sua portabilità, ossia la possibilità di adattare il software scritto per un certo tipo di computer a un tipo differente. Il C è un linguaggio strutturato. I linguaggi moderni tendono ad essere strutturati per renderne più semplice la scrittura e manutenzione. Il mattone con cui si costruiscono i programmi in C è la funzione. Tramite le funzioni è possibile scomporre il programma in blocchi più piccoli, ottenendo dei programmi modulari. L’uso di sottoprogrammi consente di scrivere il codice del sottoprogramma stesso in modo che gli eventi che occorrono al loro interno non provochino alcun effetto collaterale su altre parti del programma. Una volta creata e testata una funzione, la si potrà utilizzare in contesti differenti da quello in cui è stata creata con la certezza che fornendole i dati necessari effettuerà il suo compito senza effetti indesiderati sul resto del programma. La creazione di funzioni e quindi di moduli è fondamentale nella realizzazione di programmi di grandi dimensioni con magari un numero elevato di programmatori. Cosa serve per programmare in C?
Tipo: char Più raramente vengono impiegati per la rappresentazione di piccoli interi con o senza segno Il tipo char per default è equivalente a “signed char”. In molti compilatori esiste un'opzione per mezzo della quale si può cambiare il default a “unsigned char”. In ogni caso il tipo può essere specificato come: [ signed | unsigned ] char Solamente con char, il tipo risulta essere con o senza segno compatibilmente con l'opzione specificata durante la compilazione. Nel caso che il tipo venga specificato come signed char o unsigned char, questo prevale sul default assunto durante la compilazione. Normalmente i valori ammessi sono: -128..0..127 per signed char e 0..255 per unsigned char Occupano generalmente 2 o 4 byte a secondo dell'implementazione del compilatore e dell'architettura del sistema (16 o 32 bit). Rappresentazione tipica per numeri interi con o senza segno Si possono impiegare i termini “short” o “long” per forzare l'intero alla minima o massima dimensione ammessa. Possono essere utilizzate le parole chiave “signed” e “unsigned” per specificare se il tipo sia dotato o no di segno. Per default i numeri interi sono con segno. Sintassi ammessa: [ signed | unsigned ] int [ signed | unsigned ] short [ int ] [ signed | unsigned ] long [ int ] In ogni caso il compilatore deve garantire la relazione: sizeof(short) <= sizeof(int) <= sizeof(long) Operazioni built-in per dati di tipo int = Assegnamento di un valore int a una variabile int
Operazioni built-in per dati di tipo int == Relazione di uguaglianza != Relazione di diversità < Relazione “minore di”
Relazione “maggiore di” <= Relazione “minore o uguale a” = Relazione “maggiore o uguale a” Tipo: float e double Generalmente, i float occupano 4 byte di memoria, mentre i double ne occupano 8. Il loro impiego è per la rappresentazione di numeri reali in singola precisione (float) o in doppia precisione (double). Molti compilatori supportano anche il tipo long double per la rappresentazione di un numero reale in quadrupla precisione. Due diverse rappresentazioni:
int main() { ... }: la funzione principale di ogni programma C. L'esecuzione inizia sempre da qui. printf("Hello, World!\n"); : istruzione che stampa il testo tra virgolette. \n rappresenta un'interruzione di riga. return 0; : indica che il programma è terminato correttamente. Restituisce zero al sistema operativo. Struttura del Programma Sorgente C Un programma sorgente C è formato da uno o più blocchi chiamati funzioni. La definizione di una funzione rappresenta la specificazione delle operazioni che dovranno essere svolte all'atto della esecuzione. Un Programma C deve contenere nell’ordine:
L'intestazione definisce le regole di interfaccia. Il corpo specifica le operazioni da eseguire ed è formata da un insieme di istruzioni delimitato utilizzando le parentesi graffe { corpo } Da notare la parentesi graffa aperta "{" per l'inizio del corpo della funzione e la parentesi graffa chiusa "}" per la fine del corpo della funzione Dichiarazione delle variabili Lo scopo della dichiarazione di variabili è di conoscere le variabili utilizzate nella parte esecutiva e di attribuire a ciascuna di esse un tipo di dato. Per tipo di dato si intende un insieme di valori e un insieme di operazioni che ad esse possono essere applicate. La dichiarazione delle variabili ha la seguente forma: specificatore_tipo elenco_identificatori_variabili;
La libreria descritta dall’header file <stdio.h> è predefinita Linkate al programma durante la compilazione Il contenuto della libreria viene copiato dentro l’eseguibile finale.
Input / Output Per rendere disponibili queste funzioni di input e di output, occorre inserire nelle dichiarazioni globali del programma, la direttiva di precompilazione: #include <stdio.h
printf è il nome di una funzione il cui codice è già scritto ed inserito nella standard C library "stdio.h". Questa libreria viene inclusa durante la fase di compilazione del programma attraverso la direttiva del preprocessore #include <stdio.h> La libreria standard <stdio.h> è necessaria alla gestione dei flussi di:
Commenti I commenti sono utilizzati per fornire al programmatore descrizioni informali del programma
typedef enum {Giovanni, Claudia, Carla, Simone, Serafino} persone; typedef enum {gen, feb, mar, apr, mag, giu, lug, ago, set, ott, nov, dic} mese; stdio.h (libreria standard di I/O) La libreria standard #include <stdio.h> consente di effettuare operazioni di lettura/scrittura su dispositivi logici e fisici, come files, linee seriali, e periferiche in genere. Le periferiche su cui è possibile effettuare I/O sono dipendenti dal sistema operativo in uso. La funzione scanf è uno strumento fondamentale nel linguaggio C. scanf è una funzione di input che consente di acquisire una sequenza di caratteri (lettere o cifre) dalla tastiera I dati vengono memorizzati in variabili specifiche. Questo permette un'interazione dinamica con l'utente. Dichiarazione: include la libreria stdio.h per utilizzare scanf Struttura: scanf("formato", &variabile); Operatore &: fornisce l'indirizzo di memoria della variabile Scanf: questa funzione legge dallo Standard input stdin e mette l'input negli indirizzi delle variabili specificate nella lista di argomenti. La funzione scanf richiede di specificare l'indirizzo di ogni variabile, oppure un puntatore ad essa. int iyz; scanf("%d", &iyz); E' anche possibile associare solamente il nome di un array o di una stringa a scanf, poiché questo corrisponde all'indirizzo di partenza dell'array/stringa: char string[80]; scanf("%s", string);
La funzione scanf leggerà i caratteri fino a che non incontra uno spazio, un newline o un indicatore di fine file. Quindi non si può usare scanf per leggere una stringa contenente spazi. non deve contenere messaggi! scanf("inserire un int: %d", &x) Inserire spazi o altri caratteri nella stringa di formato di scanf() è possibile, ma ha il significato di richiedere che tali caratteri siano obbligatoriamente presenti in input: se mancano allora scanf() dà errore. Questa caratteristica può essere sfruttata per leggere dati formattati in modo particolare, come ad esempio una data (gg/mm/aa) scanf("%d/%d/%d", &gg, &mm, &aa); In tal modo, scanf() filtra automaticamente i dati, eliminando le barre e “catturando” gli interi che interessano. #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int i; int n = 0; for(i=0; i<10; i++) { scanf ("%d",&n); if(n == 0) break; printf ("%d\n", n+n); } system ("PAUSE"); return 0; } La funzione printf in C L'output è essenziale per visualizzare i risultati. La funzione printf, serve per visualizzare sullo standard output una stringa costruita in base ad un formato specificato. La funzione printf rappresenta lo strumento principale per mostrare informazioni all'utente.