Fondamenti di Linguaggio C

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Fondamenti di Linguaggio C"

Transcript

1 Corso di Informatica Grafica Fondamenti di Linguaggio C Linguaggio C: Identificatori, dichiarazione e definizione Variabili - Tipi di dato fondamentali Costanti - Strutture di controllo - Input/output elementare Prof. M. Roveri

2 1. Identificatori, definizione e dichiarazioni 1.1 Identificatori Gli identificatori assegnano i nomi alle entita' (variabili e funzioni). All'interno di un programma un'entita' deve avere un identificatore univoco. Regole e caratteristiche degli identificatori: case sensitive: distinzione maiuscolo/minuscolo; lunghezza massima: dipendente dall implementazione del compilatore e del sistema operativo. Lo standard garantisce 31 caratteri significativi per i nomi delle entita' interne e 6 caratteri per i nomi delle entita' esterne; sintassi: deve iniziare o con una lettera o con l'underscore ('_') e puo' proseguire con lettere, underscore o cifre. Non puo' essere una parola chiave del C. 1.2 Definizione e dichiarazione Le proprietà di una entità (variabile o funzione) vengono descritte durante la sua definizione o dichiarazione. Con la dichiarazione, l'entità viene associata all'identificatore (nome della variabile o della funzione) e ne viene dichiarata la tipologia, ma non viene né riservata la memoria per le variabili, né specificato il codice per le funzioni. Con la definizione, oltre ad associare l'identificatore alla entità e definirne la tipologia (es: variabile di tipo float), viene riservata memoria per le variabili, o specificato il codice per le funzioni. 2. Variabili Una variabile può essere descritta come un contenitore, il cui contenuto è sempre a disposizione e rappresenta il valore della variabile stessa. Ad ogni variabile e' associato: un nome (identificatore); un tipo (insieme dei valori che puo' assumere); un'area di memoria (per contenere il valore assunto); un indirizzo (riferimento all'area di memoria); un valore (in istanti diversi la variabile può assumere valori differenti, purché coerenti con il tipo). Si definisce una variabile con la sintassi: tipo identificatore1 [= inizializzazione1 ] [, identificatore2 [= inizializzazione2 ]]... ;

3 Il C é un linguaggio: tipato, poiché le variabili sono dotate di tipo. non strettamente tipato, poiché i controlli sui tipi non sono stretti a differenza, per esempio, di quanto avviene nel Pascal (linguaggio strettamente tipato). 3. Tipi di dato fondamentali Per tipo di dato si intende un insieme di valori e un insieme di operazioni che possono essere applicati. Ad esempio i numeri interi e le usuali operazioni aritmetiche come somma, sottrazione, ecc. Ogni tipo di dato ha una propria rappresentazione in memoria (codifica binaria) che utilizza un certo numero di celle di memoria. Tuttavia l uso nei programmi dei tipi di dato consente di trattare le informazioni in maniera astratta, cioè prescindendo dalla loro rappresentazione nella macchina. In altre parole, se si sommano due interi non vi è necessità di preoccuparsi di come devono essere sommati i bit che corrispondono ai due addendi in memoria, ma si indica solo un segno di somma nell istruzione in C (ad esempio: c=a+b;). L uso di variabili con tipo ha importanti conseguenze: per ogni variabile è possibile determinare a priori l insieme dei valori ammissibili e l insieme delle operazioni applicabili; per ogni variabile è possibile determinare a priori la quantità di memoria necessaria; è possibile rilevare a priori (a tempo di compilazione) errori nell uso delle variabili all interno di operazioni non lecite per il tipo corrispondente. I tipi di dato si dividono in: tipi semplici; tipi strutturati. I tipi semplici consentono di rappresentare informazioni composte da un valore come ad esempio una temperatura, una velocità, ecc. I tipi strutturati consentono di rappresentare informazioni costituite dall aggregazione di varie componenti come ad esempio una data, una matrice, una cartella clinica, ecc. Un valore di un tipo semplice è logicamente indivisibile, mentre un valore di un tipo strutturato può essere scomposto nei valori delle sue componenti. Ad esempio: un valore di tipo data è costituito da tre valori (semplici). 3.1 Tipi di dato predefiniti Il C mette a disposizione un insieme di tipi predefiniti (tipi built-in) e dei meccanismi per definire nuovi tipi (tipi userdefined). I tipi semplici che il C mette a disposizione sono: interi; reali; caratteri Rappresentazione numerica I tipi di dato predefiniti del C, adatti a rappresentare numeri, si differenziano tra tipi per numeri interi oppure con virgola e per il numero di bit che sono utilizzati nella loro rappresentazione nell elaboratore. INTERI CON SEGNO (INT) In C esistono 3 tipi di interi con segno:

4 short (dichiarabile nei seguenti modi short int, signed short, signed short int); int (dichiarabile nei seguenti modi signed int, signed); long (dichiarabile nei seguenti modi long int, signed long, signed long int). Il loro intervallo di definizione va da -2 n-1 a +2 n-1-1, dove n dipende dal compilatore e rappresenta il numero di bit impiegati per la loro rappresentazione. Analizzando la loro occupazione in memoria (direttamente legata al numero di bit con il quale il dato è memorizzato e quindi all intervallo di rappresentazione), valgono le seguenti relazioni: sizeof(short) <= sizeof(int) <= sizeof(long); sizeof(short) >= 2 (ovvero, almeno 16 bit); sizeof(long) >= 4 (ovvero, almeno 32 bit). L operatore sizeof() in C ritorna il numero di byte occupati da una variabile o da un tipo di dato che gli viene passato come operando. I valori limite sono contenuti nel file limits.h, che definisce le costanti: SHRT_MIN, SHRT_MAX, INT_MIN, INT_MAX, LONG_MIN, LONG_MAX Queste costanti possono ad esempio servire in un programma per controllare se il dato immesso da un utente cade nell intervallo di rappresentazione. Se non lo fosse, possiamo segnalarlo all utente al posto che far continuare l esecuzione e generare quindi un probabile errore di overflow/underflow. Se si vuole dichiarare una costante, si scriveranno i numeri interi semplicemente in decimale, ad esempio 0, 10, -10,... Gli operatori utilizzabili sono: +, -, *, /, %, ==,!=, <, >, <=, >= Per quanto riguarda le funzioni di ingresso/uscita si usano le funzioni printf e scanf, con i seguenti indicatori di formato (dove d indica decimale ): %hd per short %d per int %ld per long (con l minuscola) Ad esempio per stampare un intero che era stato definito come short si può scrivere: printf( %hd", contatore); INTERI SENZA SEGNO (unsigned) In C esistono 3 tipi di interi senza segno: unsigned short (oppure: unsigned short int); unsigned int; unsigned long (dichiarabile nei seguenti modi long int, unsigned long, unsigned long int). Il loro intervallo di definizione va da 0 a +2 n -1, dove n dipende dal compilatore e rappresenta il numero di bit impiegati per la loro rappresentazione. Le costanti definite che indicano gli intervalli di rappresentazione sono contenuti nel file limits.h e sono: USHRT_MAX, UINT_MAX, ULONG_MAX (si noti che il minimo `e sempre 0). Se si vuole dichiarare una costante si scriverà: decimale: come per interi con segno; esadecimale: 0xA, 0x2F4B,... Ingresso/uscita: tramite printf e scanf, con i seguenti specificatori di formato: %u per numeri in decimale; %o per numeri in ottale; %x per numeri in esadecimale con cifre 0,..., 9, a,..., f; %X per numeri in esadecimale con cifre 0,..., 9, A,..., F. Per interi short si antepone h e per interi long si antepone l (minuscola).

5 TIPI REALI o FLOATING POIN (float) In C i tipi reali vengono rappresentati mediante virgola e ne esistono 3 tipi: float (dimensione in memoria 4 byte); double (dimensione in memoria 8 byte); long double (dimensione in memoria 12 byte). In particolare questa notazione si chiama in virgola mobile. Le grandezze e gli intervalli di questi tipi di dato sono scritte nel file float.h di libreria e dipendono dal compilatore. Comunque valgono le seguenti relazioni: sizeof(float) = sizeof(double) = sizeof(long double) Se si vuole dichiarare una costante si scriveranno gli interi semplicemente in decimale USANDO SEMPRE IL PUNTO oppure usando la notazione scientifica. Esempio: double x, y, z, w; x = ; y = ; y =.0034; z = 34.5e+20; z = 34.5E+20; w = 5.3e-12; Per quanto riguarda l output di variabili float mediante printf: se si usa %f si stampa il numero in virgola fissa; se si usa %8.3f si stampano 8 cifre complessive, di cui 3 cifre decimali; se si usa %e si stampa in forma esponenziale. Esempio: float x = ; printf(" %f %8.3f %-8.3f \n", x, x, x); Si ottiene in output: Esempio: double x = ; printf(" %e %10.3e %-10.3e \n", x, x, x); Si ottiene in output: e e e+02 Si può stampare anche in forma ottimizzata usanto %g (oppure %G) che sceglie la forma più compatta fra la notazione esponenziale (%e) e quella di %f. Per quanto riguarda l input con scanf nel caso dei float si può usare indifferentemente %f o %e Rappresentazione dei caratteri I caratteri alfanumerici del codice ASCII (American Standard Code For Information Interchange) compongono praticamente tutti i nostri file di testo e moltissimi altri file. Questi caratteri vengono rappresentati in C mediante la dichiarazione di variabili di tipo char. Un codice associa ad ogni carattere un intero. Ad esempio il codice ASCII associa al carattere # il numero decimale 35 e alle lettere 0 9 della nostra tastiera i numeri decimali dal 48 al 57. Ad esempio, alle lettere a z della nostra tastiera sono stati associati i numeri decimali dal 97 al 122. È importante ricordare che i caratteri in C possono essere usati come interi, se si ricorda la corrispondenza fra il carattere ed il suo valore nel codice. In C esistono 3 tipi di caratteri: char; signed char (rappresentato in complemento a 2); unsigned char. I tipi signed ed unsigned char sono esattamente rappresentati come interi. Attenzione, il tipo char dipende invece dal compilatore e può essere stato definito come signed oppure unsigned.

6 Tipicamente vale sizeof(char) = sizeof(int) ove sizeof(char) vale 8 bit. Tutti gli operatori definiti su int (+, -, *, /, %, ==,!=, <, >, <=, >=) valgono sui caratteri. Attenzione: questo è interessante poiché permette di ordinare i caratteri. Se ad esempio x= a e y= b allora la proposizione (y>x) è vera. Questo è possibile perché il C vede il contenuto di x come 97 (ovvero a nel codice ASCII) ed il contenuto di y come 98! Ad esempio se una variabile carattere x rispetta la seguente proposizione ((x>96)and(x<123)) allora è un carattere minuscolo. Le operazioni di input e output dei caratteri si realizzano sempre con scanf e printf usando nella stringa di controllo %c. Ecco un esempio nel quale si immagina di inserire due interi (35 e 97) e li si visualizzano con la printf sia come interi (%d) sia come caratteri (%c). int i, j; printf("immetti due interi ---> \n"); scanf("%d%d", &i, &j); printf("%d %d\n", i, j); printf("%c %c\n", i, j); In output alle due printf si otterrebbe: # 0 4. Costanti Riepiloghiamo quanto visto precedentemente sulle costanti. Costanti intere: decimali: la prima cifra deve essere significativa. Es.: 23 ottali: 0oooo Prefisso 0 (zero). o= cifra ottale ([0..7]). Es.: 034 esadecimali: 0xhhhh Prefisso 0x o 0X. h= cifra esadecimale ([0..9,a..f,A..F]). Es.: 0x12A suffisso: U o u: indica interi di tipo unsigned. (Es.: 50000U, 0xf000U) L o l: indica interi di tipo long. (Es.: 34L, L) UL o ul: indica interi di tipo unsigned long. (Es.: 34UL) Costanti reali: per default sono di tipo double (Es.: 3.14, 314e-2). il suffisso F o f indica numeri reali di tipo float (Es.: 3.14F). L o l indica numeri reali di tipo long double (Es.: 3.14L). Costanti carattere: Le costanti carattere sono indicate fra apici. Ad esempio: a, F. Vi sono alcune costanti carattere speciali (utilizzabili soprattutto nelle printf): '\a' segnale di alert <BELL> (beep) '\b' spazio indietro <BS> (backspace) '\f' salto pagina <FF> (form feed) '\n' a capo <LF> new line (line feed) '\r' ritorno a inizio riga <CR> (carriage return) '\t' tabulazione orizzontale <TAB> '\v' tabulazione verticale <VT> (vertical tab) '\?'? (punto interrogativo) '\\' \ (back slash) '\'' ' (apice singolo)

7 '\"' " (apice doppio) '\0' <NUL> (carattere NULL) 5. Strutture di controllo Le istruzioni di controllo del flusso specificano l ordine secondo il quale i calcoli devono essere effettuati. 5.1 Espressioni come istruzioni La maggior parte delle istruzioni sono istruzioni-espressione, sono cioe' delle espressioni seguite dal ; (punto e virgola). La sintassi è la seguente: espressione; N.B.1: L'espressione e' opzionale. N.B.2: Il ; (punto e virgola) e' il terminatore di istruzione. Il valore dell'espressione viene trascurato, mentre di fondamentale importanza sono gli effetti collaterali che modificano i valori delle variabili o aree di memoria. Gli effetti collaterali sono valutati completamente prima che venga eseguita la successiva istruzione. Esempio: ; Questo è il caso dell'istruzione nulla ed il suo impiego e' tipico laddove la sintassi richieda una istruzione, ma il programma non debba eseguire alcuna azione. 5.2 Blocchi In C i blocchi sono realizzati mediante l'uso delle parentesi graffe dentro le quali vi è una sequenza di istruzioni. E' possibile dichiarare delle variabili locali all'interno di un blocco di istruzioni C. I blocchi possono essere innestati uno dentro l altro a piacere: le dichiarazioni delle variabili locali seguono immediatamente la parentesi sinistra e precedono la parte eseguibile del blocco. dichiarazioni istruzioni L'impiego dei blocchi è finalizzato alla: scrittura di un insieme di istruzioni (nei casi in cui la sintassi permetta l'inserimento di solamente una istruzione); definizione del corpo di una funzione. Esempio 1: int a, b;... int temp; /* parte dichiarativa del blocco */ temp = a; a = b; b = temp; /* Attenzione: da qui in poi la variabile temp cessa di esistere */ Esempio 2: /* blocco vuoto */ Valgono le usuali regole di visibilità: le variabili locali sono visibili dal punto della loro dichiarazione fino alla fine del blocco cui appartengono; inoltre, le variabili locali nascondono (rendendo non accessibili) le variabili omonime globali, cioè dichiarate in blocchi più esterni

8 5.3 Istruzioni di selezione Il C mette a disposizione due istruzioni di selezione: il costrutto IF il costrutto SWITCH Costrutto IF E composto da una espressione e uno/due/tre/enne blocchi di codice (chiamati i "rami" dell'if). Le due forme tipiche in cui si può presentare la sintassi relativa al costrutto IF sono le seguenti: 1 caso: if (espressione) istruzione_1 2 caso: if (espressione) istruzione_1 istruzione_2 istruzione_1 viene eseguita se espressione, una volta valutata assieme a tutti i suoi effetti collaterali, torna un valore vero (cioè non zero); altrimenti se espressione torna un valore falso (cioe' uguale a zero) viene eseguita istruzione_2, se esistente. Nel caso di IF innestate, la parte viene abbinata sempre all'ultima if posta nello stesso blocco della, ma non gia' abbinata ad una precedente. Per migliorare la leggibilita' e' consigliata una buona e coerente indentazione del programma, tale che rispecchi la struttura del codice. Per evitare possibili ambiguita' nelle IF innestate, e' possibile l'utilizzo di blocchi per racchiudere i costrutti piu' interni. Esempio 1: if (a > b) m = 0; m = 5; Esempio 2: if (a > b) if (c > d) n = 0; m = 5; /* a > b e c <= d */ Esempio 3: if (a > b) if (c > d) n = 0; m = 5; /* a <= b */ Esempio 4 (con N istruzioni): if (expr1) istr1

9 istr5 if (expr2) istr2 if (expr3) istr3 if (expr4) istr Costrutto SWITCH Il costrutto SWITCH è solitamente impiegato quando si devono controllare molti casi. In questo modo il codice risulta essere più ordinato. Il costrutto è composto da etichette (CASE) e da un caso generale (DEFAULT). Le etichette del case devono essere delle costanti. La forma tipica della sintassi relativa al costrutto SWITCH è la seguente: switch (espressione) case espr_costante_1: [istruzioni]... case espr_costante_2: [istruzioni]... default: [istruzioni]... N.B. L etichetta default e le istruzioni ad essa relativa, sono opzionali, così pure è opzionale la lista di istruzioni che seguono ogni etichetta (label) del case. L'espressione viene valutata assieme ai suoi effetti collaterali ed il valore ritornato da essa, che deve essere di tipo intero (char, int, long) viene confrontato con le espressioni costanti associate alle case. In caso di corrispondenza il controllo viene passato alle istruzioni ad essa associate, e continua fino al termine dell'istruzione SWITCH (quindi fino al raggiungimento della parentesi di chiusura dell'istruzione). Se il valore dell'espressione non corrisponde a nessuna delle espressioni costanti, allora il controllo viene trasferito alla prima istruzione associata alla label default, e prosegue fino al raggiungimento del termine dell'istruzione SWITCH. Se nemmeno la label default è specificata, la SWITCH termina immediatamente. E' permesso l'innestamento dei costrutti SWITCH. Tra gli statement che compongono il corpo dello SWITCH e' permesso l'utilizzo dell'istruzione di salto BREAK. Quando tale istruzione viene incontrata, essa causa il termine dell'esecuzione dell'istruzione SWITCH ed il controllo passa all'istruzione successiva. Esempio: // conteggio dei tipi di caratteri char c; int n_cifre, n_separatori, n_altri;... c =...; // sia c il carattere da esaminare switch (c) case '0': n_cifre = n_cifre + 1;

10 ... break; case '1': n_cifre = n_cifre + 1; break;... case '9': n_cifre = n_cifre + 1; break; case ' ': n_separatori = n_separatori + 1; break; case '\n': n_separatori = n_separatori + 1; break; case '\t': n_separatori = n_separatori + 1; break; default: n_altri = n_altri + 1; 5.4 Istruzioni di Iterazione Il C mette a disposizione tre istruzioni di iterazione: il costrutto WHILE il costrutto DO-WHILE il costrutto FOR Costrutto WHILE E il costrutto più generale, da cui si possono ottenere tutti gli altri costrutti per l iterazione. La sua struttura è la seguente: while (espressione) istruzione oppure: while (espressione) istruzione1 istruzione2... istruzionen L'espressione viene valutata e, se ha valore diverso da 0 (vero), viene eseguita l'istruzione successiva (che può anche essere un intero blocco di istruzioni, opportunamente delimitato dalle parentesi graffe). Una volta che quest'ultima è terminata, l'espressione viene valutata nuovamente e, se è nuovamente vera, si ripete l'istruzione. Ciò si replica fino a quando l'espressione ha valore 0 (falso), e in questo caso il controllo si trasferisce all'istruzione successiva, al while. Un ciclo while può essere eseguito zero o più volte, poiché l'espressione potrebbe essere falsa già la prima volta. Si tratta di un ciclo a condizione iniziale: prima di eseguire il ciclo si valuta la condizione.

11 Il problema principale delle strutture iterative è che possono entrare in ciclo infinito. Questo accade se per un errore di programmazione o per qualche condizione esterna alla espressione del while rimane sempre vera. All'interno del blocco di istruzioni puo' comparire l'istruzione BREAK che, se eseguita, provoca il termine del WHILE nonché l'istruzione CONTINUE che, una volta invocata, forza l inizio dell iterazione successiva del ciclo, provoca cioè l esecuzione immediata della parte di controllo del ciclo. In caso di cicli innestati, entrambe le istruzioni BREAK e CONTINUE non hanno influenza sui cicli piu' esterni. Esempio: vengono sommati i numeri interi che l utente immette da tastiera fino a quando non viene immesso uno zero. #include <stdio.h> int main() int i, somma; somma = 0; i = 1; // valore iniziale (serve solo per entrare nel while) while (i!= 0) scanf ("%d", &i); somma = somma + i; printf("la somma e' %d", somma); Costrutto DO-WHILE Il costrutto DO-WHILE presenta la seguente sintassi: do istruzione while (espressione); Per ogni ciclo viene eseguita l istruzione, poi viene valutata l'espressione. Se risulta vera (diversa da zero) il ciclo viene riavviato, altrimenti l'istruzione DO-WHILE ha termine. L istruzione viene eseguita almeno una volta: infatti il costrutto do-while è un ciclo a condizione finale: prima di valutare la condizione si esegue il ciclo. Quindi il corpo del ciclo viene eseguito sempre almeno una volta Al posto dell istruzione può esserci un blocco. All interno di un blocco di istruzioni può comparire l'istruzione BREAK che, se eseguita, provoca il termine del DO-WHILE nonche' l'istruzione CONTINUE che, una volta invocata, forza l inizio dell iterazione successiva del ciclo, provoca cioè l esecuzione immediata della parte di controllo del ciclo. In caso di cicli innestati, entrambe le istruzioni BREAK e CONTINUE non hanno influenza sui cicli piu' esterni Costrutto FOR Il costrutto FOR è equivalente al costrutto WHILE, ma l uso è consigliato solo nel caso in cui il numero di iterazioni SIA NOTO A PRIORI. Per esempio, se si deve scandire una struttura dati che ha sempre N elementi, allora si userà un ciclo FOR. Nel caso in cui si debba continuare a chiedere all utente di digitare un numero finché non viene immesso un numero pari a zero, allora si userà un costrutto WHILE in quanto il numero di iterazioni non è noto a priori. Il costrutto FOR è composto nel seguente modo: for ( expr1 ; expr2 ; expr3 ) istruzione Se si vuole iterare un blocco di codice, il costrutto FOR è composto nel seguente modo: for ( expr1 ; expr2 ; expr3 ) istruzione1 istruzione2...

12 istruzionen in cui: expr1 è l espressione iniziale, expr2 è l espressione booleana (del ciclo), expr3 è l espressione incremento. L'espressione iniziale permette di inizializzare le variabili di ciclo e viene eseguita una volta sola, prima di qualsiasi altra operazione. Esempio: contatore = 0. Successivamente ad essa, viene valutata l'espressione del ciclo e, se questa ha valore diverso da 0, viene eseguita l'istruzione che costituisce il corpo del ciclo (o il blocco di istruzioni fra parentesi graffe). Esempio: contatore < 9. Al termine dell'esecuzione del corpo del ciclo, viene valutata l'espressione-incremento, di solito per poter aggiornare i valori delle variabili di ciclo. Esempio: contatore = contatore + 1. Quindi, si valuta nuovamente l'espressione del ciclo e cosi via. Il ciclo si ripete finché non si valuta come falsa l'espressione del ciclo (valore 0). All interno di un blocco di istruzioni può comparire l'istruzione BREAK che, se eseguita, provoca il termine del FOR nonche' l'istruzione CONTINUE che, una volta invocata, forza l inizio dell iterazione successiva del ciclo dopo avere valutato espr3. In caso di cicli innestati, entrambe le istruzioni BREAK e CONTINUE non hanno influenza sui cicli piu' esterni 6. ISTRUZIONI DI INPUT/OUTPUT 6.1 Output: printf Obiettivo: dichiarare una variabile i intera, assegnarvi un valore e stamparla a video. Un semplice programma che esegue queste azioni è il seguente: #include <stdio.h> int main() int i; i = 3; printf("%d", i); Nella parte dichiarativa si dichiara la variabile i come variabile intera (int). Nella prima riga della parte esecutiva si assegna il valore 3 alla variabile i. La terza riga del main chiama la funzione printf che permette di stampare la variabile i passata (alla destra della virgola) a terminale. Alla sinistra della virgola è presente una stringa chiamata stringa di controllo. Essa ha il compito di definire in che modo il contenuto della variabile i debba essere stampato. Ad esempio %d significa che i verrà stampata come un intero: a monitor comparirà il numero 3. Come già visto, se si scrive: printf("hello WORLD"); compare a monitor: Hello WORLD Se invce si scrive: printf("il valore contenuto e : %d", i) compare a monitor: Il valore contenuto e : 3 Questo accade poiché la funzione printf stampa la stringa di controllo e sostituisce alle parti della stringa che iniziano con % (in questo caso %d) i valori delle variabili passati alla destra della virgola (il valore di i).

13 6.2 Input: scanf Obiettivo: dichiarare una variabile i intera, leggere un valore dalla tastiera e copiarlo in una variabile. Un semplice programma che esegue queste azioni è il seguente: #include <stdio.h> int main() int i; printf("immetti un numero intero :"); scanf("%d", &i); printf("il valore memorizzato e %d", i); /* lo stampiamo per controllo */ Nella parte dichiarativa si dichiara la variabile i come intera (int). Nella prima riga della parte esecutiva si stampa un messaggio per l utente affinché capisca che gli stiamo chiedendo di battere un numero intero sulla tastiera. L immissione si conclude automaticamente con la pressione del tasto enter (invio). La terza riga del main chiama la funzione scanf che permette di copiare il numero letto da tastiera nella variabile i. Alla sinistra della virgola è scritto come deve essere letto il dato immesso dalla tastiera. In questo caso l indicazione %d indica che deve essere letto come un numero intero. Questa considerazione non è banale. Infatti se l utente digitasse 1024 sulla tastiera seguito dalla pressione dell enter, il sistema potrebbe interpretare questo dato sia come il numero intero 1024 ma anche come la stringa composta dai caratteri 1, 0, 2 e 4. Indicando %d, si toglie ogni possibilità sull interpretazione di come il dato debba essere letto ossia come un numero intero. Alla destra della virgola è presente l indirizzo dove il valore letto deve essere memorizzato (&i significa all indirizzo di i ). Attenzione, non è corretto scrivere scanf("%d", i); senza &. L ultima riga del main stampa il valore immesso. In questo modo è possibile effettuare una verifica secondo le modalità già descritte a proposito della funzione printf.

Assegnamento. Ricordiamo che l esecuzione di x = exp corrisponde a: Esempio: somma = 5; a = 2; somma = somma + a; somma 5 = 7 a 2 2

Assegnamento. Ricordiamo che l esecuzione di x = exp corrisponde a: Esempio: somma = 5; a = 2; somma = somma + a; somma 5 = 7 a 2 2 Assegnamento Assegnamento Ricordiamo che l esecuzione di x = exp corrisponde a: 1. valutare il valore dell espressione exp a destra di = (usando i valori correnti delle variabili); 2. assegnare poi tale

Dettagli

Lezione 5 e 6. Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza. Valentina Ciriani ( ) Laboratorio di programmazione

Lezione 5 e 6. Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza. Valentina Ciriani ( ) Laboratorio di programmazione Lezione 5 e 6 - Concetto di blocco - Controllo del flusso di un programma - Costrutti per la scelta if e switch - Costrutti while e for - Operatori in C Fabio Scotti (2004-2009) Laboratorio di programmazione

Dettagli

Università degli Studi di Milano

Università degli Studi di Milano Università degli Studi di Milano Corso di Laurea in Sicurezza dei Sistemi e delle Reti Informatiche Lezione 5 Controllo del flusso del programma FABIO SCOTTI Indice 1. CONCETTO DI BLOCCO IN C...3 2. DUE

Dettagli

Tipi di dato semplici

Tipi di dato semplici Tipi di dato semplici Abbiamo visto nei primi esempi che il C tratta vari tipi di dato = le dichiarazioni associano variabili e costanti al corrispondente tipo Per tipo di dato si intende un insieme di

Dettagli

Precisazione sui tipi in ANSi C

Precisazione sui tipi in ANSi C Precisazione sui tipi in ANSi C Tipi primitivi del C Un tipo è costituito da un insieme di valori ed un insieme di operazioni su questi valori. Classificazione dei tipi primitivi del C scalari aritmetici:

Dettagli

Università degli Studi di Milano

Università degli Studi di Milano Università degli Studi di Milano Corso di Laurea in Sicurezza dei Sistemi e delle Reti Informatiche Lezione 3 Input/Output elementare. Operatori, espressioni e istruzioni FABIO SCOTTI Laboratorio di programmazione

Dettagli

Lezione 7 e 8. - Tipi di dato built-in - Rappresentazione numerica - Rappresentazione dei caratteri - Vettori e matrici - Stringhe

Lezione 7 e 8. - Tipi di dato built-in - Rappresentazione numerica - Rappresentazione dei caratteri - Vettori e matrici - Stringhe Lezione 7 e 8 - Tipi di dato built-in - Rappresentazione numerica - Rappresentazione dei caratteri - Vettori e matrici - Stringhe Fabio Scotti (2004-2009) Laboratorio di programmazione per la sicurezza

Dettagli

Introduzione alle operazioni di I/O con formato e tipi primitivi

Introduzione alle operazioni di I/O con formato e tipi primitivi Introduzione alle operazioni di I/O con formato e tipi primitivi Un programma C legge normalmente i dati su cui operare dallo standard input (stdin) e comunica con l esterno scrivendo dati sullo standard

Dettagli

I/O da tastiera + Alessandra Giordani Lunedì 2 maggio

I/O da tastiera + Alessandra Giordani Lunedì 2 maggio I/O da tastiera + costrutti while e if Alessandra Giordani agiordani@disi.unitn.it Lunedì 2 maggio 2011 http://disi.unitn.it/~agiordani/ Ripasso funzione printf() Usata per stampare il contenuto di una

Dettagli

Linguaggio C - sezione dichiarativa: costanti e variabili

Linguaggio C - sezione dichiarativa: costanti e variabili Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - sezione dichiarativa: costanti e variabili La presente

Dettagli

Tipi di dato, Alessandra Giordani Lunedì 7 maggio 2011

Tipi di dato, Alessandra Giordani Lunedì 7 maggio 2011 Tipi di dato, memoria e conversioni Alessandra Giordani agiordani@disi.unitn.it Lunedì 7 maggio 2011 http://disi.unitn.it/~agiordani/ Il linguaggio C è esplicitamente tipato: occorre esplicitamente associare

Dettagli

Struttura dei programmi C

Struttura dei programmi C Programmi C Struttura dei Programmi C Dichiarazione delle variabili Operazioni di Ingresso/Uscita Fondamenti di Informatica 1 Struttura dei programmi C Un programma C deve contenere, nell'ordine: una parte

Dettagli

Dati due punti sul piano calcolare la loro distanza

Dati due punti sul piano calcolare la loro distanza Introduzione al C Primo esempio in C Dati due punti sul piano calcolare la loro distanza Soluzione: la distanza fra due punti si calcola secondo il teorema di Pitagora, con la formula: y Distanza = (lato12

Dettagli

Introduzione al linguaggio C

Introduzione al linguaggio C Linguaggio C Introduzione al linguaggio C Sistemi di sviluppo integrati Noti anche come IDE: Integrated Development Environment Un pacchetto software che permette di scrivere, preprocessare, compilare,

Dettagli

Istruzioni di Controllo

Istruzioni di Controllo Istruzioni di Controllo Programmazione strutturata Ricordiamo i concetti chiave: concatenazione o composizione BLOCCO istruzione condizionale SELEZIONE ramifica il flusso di controllo in base al valore

Dettagli

Struttura dei programmi e Variabili

Struttura dei programmi e Variabili Linguaggio C Struttura dei programmi e Variabili 1 La struttura generale dei programmi! Struttura del programma: Direttive Funzioni Dichiarazioni Istruzioni Di assegnamento direttive Di ingresso e uscita

Dettagli

Linguaggio C. Tipi predefiniti. Università degli Studi di Brescia. Prof. Massimiliano Giacomin. Prof. M. Giacomin

Linguaggio C. Tipi predefiniti. Università degli Studi di Brescia. Prof. Massimiliano Giacomin. Prof. M. Giacomin Linguaggio C Tipi predefiniti Università degli Studi di Brescia Prof. Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Il concetto di tipo (reprise) Nome che indica

Dettagli

Introduzione alla programmazione. Alice Pavarani

Introduzione alla programmazione. Alice Pavarani Introduzione alla programmazione Alice Pavarani Il linguaggio C Creato da Dennis Ritchie nel 1972 presso i Bell Laboratories Linguaggio di programmazione procedurale, strutturato Linguaggio ad alto livello

Dettagli

Corso Programmazione

Corso Programmazione Corso Programmazione 2009-2010 (docente) E-mail: aiolli@math.unipd.it Web: www.math.unipd.it/~aiolli Dipartimento di Matematica Pura ed Applicata Torre Archimede, Via Trieste 63 PARTE 3 2 Variabili Le

Dettagli

Tipi di dato semplici

Tipi di dato semplici Tipi di dato semplici Perché dichiarare una variabile? 2 Una variabile rappresenta uno spazio di memoria centrale Prima dell esecuzione del programma deve essere chiaro quanto spazio serve al programma

Dettagli

Variabili e input/ Alessandra Giordani Lunedì 18 marzo

Variabili e input/ Alessandra Giordani Lunedì 18 marzo Variabili e input/ output da tastiera Alessandra Giordani agiordani@disi.unitn.it Lunedì 18 marzo 2013 http://disi.unitn.it/~agiordani/ Es. compilazione helloworld.c 2 Variabili e valori Una variabile

Dettagli

Rappresentazione di interi

Rappresentazione di interi Rappresentazione dei numeri Rappresentazione di interi Supponiamo 2 byte (16 bit) 2 16 = 65536 [-32767, 32768] con m bit 2 m -1 numeri Se prendiamo come segno il primo bit abbiamo ad esempio (01111111)

Dettagli

Tipi e Valori. Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna

Tipi e Valori. Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna Tipi e Valori Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Tipi e Valori 2 / 26 Ringraziamenti prof. Mirko Viroli, Università

Dettagli

Tipi di dato. Le variabili in C. Problema: dato in input un carattere, se esso è una lettera minuscola, trasformarla in maiuscola.

Tipi di dato. Le variabili in C. Problema: dato in input un carattere, se esso è una lettera minuscola, trasformarla in maiuscola. Tipi di dato Le variabili in C KP Cap.3 pp.95-129 Cap.5 pp.190-193 DD Cap. 9 pp.352-355 Abbiamo già parlato delle variabili, ed abbiamo fin ora usato il tipo int, ma abbiamo molte altre possibiltà I tipi

Dettagli

Laboratorio di Informatica Ingegneria Clinica Lezione 9/11/2011. Prof. Raffaele Nicolussi

Laboratorio di Informatica Ingegneria Clinica Lezione 9/11/2011. Prof. Raffaele Nicolussi Laboratorio di Informatica Ingegneria Clinica Lezione 9/11/2011 Prof. Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via del Policlinico, 147-00161 Roma Università degli Studi La Sapienza Fondamenti di

Dettagli

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I Lezione 4 Elementi lessicali e espressioni logiche Matricole 2-3 Elementi lessicali il linguaggio C ha un suo vocabolario di base i cui elementi sono detti token esistono 6 tipi di token: parole chiave

Dettagli

1

1 Manuali di C Linguaggio C B. W. Kernigan, D. M. Ritchie Jackson La guida completa al C H. Schildt McGraw-Hill Fondamenti di Informatica 1 Linguaggio C Creato nei primi anni 70 per sviluppare il S.O. Unix

Dettagli

Tipi di dato semplici

Tipi di dato semplici Tipi di dato semplici Informatica B Tipi di dati q In C esistono diversi tipi di dato built-in, tra cui int: numeri interi float: numeri con virgola (singola precisione) double : numeri con virgola (doppia

Dettagli

Cominciamo ad analizzare la rappresentazione delle informazioni... di Cassino. C. De Stefano Corso di Fondamenti di Informatica Università degli Studi

Cominciamo ad analizzare la rappresentazione delle informazioni... di Cassino. C. De Stefano Corso di Fondamenti di Informatica Università degli Studi Un linguaggio ad alto livello deve offrire degli strumenti per: rappresentare le informazioni di interesse dell algoritmo definire le istruzioni che costituiscono l algoritmo Cominciamo ad analizzare la

Dettagli

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 5 31/10/2013

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 5 31/10/2013 Laboratorio di Programmazione 1 1 Docente: dr. Damiano Macedonio Lezione 5 31/10/2013 Original work Copyright Sara Migliorini, University of Verona Modifications Copyright Damiano Macedonio, University

Dettagli

Università degli Studi di Milano

Università degli Studi di Milano Università degli Studi di Milano Corso di Laurea in Sicurezza dei Sistemi e delle Reti Informatiche Lezione 7 Tipi di dato built-in FABIO SCOTTI Laboratorio di programmazione per la sicurezza Indice 1.

Dettagli

Qualsiasi programma in C++ segue lo schema:

Qualsiasi programma in C++ segue lo schema: Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni

Dettagli

Identificatori. Fondamenti di Informatica e laboratorio Intro C

Identificatori. Fondamenti di Informatica e laboratorio Intro C Identificatori Sequenza (di lunghezza maggiore o uguale a 1) di lettere e cifre che inizia obbligatoriamente con una lettera. E' ammesso anche l'utilizzo dell'undescore _ Maiuscole e minuscole sono diverse

Dettagli

Laboratorio di Programmazione

Laboratorio di Programmazione Laboratorio di Programmazione (Laurea triennale in matematica) Lezione 3 Analisi dettagliata di un programma /* commento */ Possono estendersi su più linee apparire in qualsiasi parte del programma. Alternativamente

Dettagli

Laboratorio di informatica Ingegneria meccanica

Laboratorio di informatica Ingegneria meccanica Interi in complemento a 2 () Laboratorio di informatica Ingegneria meccanica Lezione 5 29 ottobre 2007 Con N bit sono rappresentabili tutti gli interi nell'intervallo [-2^(N-), 2^(N-)-] Esempio: 6 bit,

Dettagli

Tipi e Valori. Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna

Tipi e Valori. Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna Tipi e Valori Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Linguaggio C - Tipi e Valori 2 Ringraziamenti prof. Mirko Viroli,

Dettagli

Introduzione al linguaggio C Primi programmi

Introduzione al linguaggio C Primi programmi Introduzione al linguaggio C Primi programmi Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica

Dettagli

I Fondamenti del Linguaggio

I Fondamenti del Linguaggio Linguaggio C I Fondamenti del Linguaggio Linguaggio di Programmazione Linguaggio formale per la descrizione di programmi per calcolatori Sintassi vicina al linguaggio umano Se non ci fossero, bisognerebbe

Dettagli

del Linguaggio C Istruzioni di iterazione

del Linguaggio C Istruzioni di iterazione Istruzioni i Iterative ti del Linguaggio C Istruzioni di iterazione Le istruzioni di iterazione forniscono strutture di controllo che esprimono la necessità di ripetere una certa istruzione durante il

Dettagli

Le variabili nel linguaggio C

Le variabili nel linguaggio C Linguaggio C Le variabili nel linguaggio C Per iniziare Stampa le parole Hello world printf( Salve gente...\n"); 1 2 Elementi di Base Le Variabili Elementi di base che caratterizzano i programmi scritti

Dettagli

Laboratorio di informatica Ingegneria meccanica

Laboratorio di informatica Ingegneria meccanica Rappresentazione ed interpretazione Laboratorio di informatica Ingegneria meccanica Insieme dei valori da rappresentare interpretazione rappresentazione Insieme delle sequenze di K bit Lezione 2 8 ottobre

Dettagli

Laboratorio di Informatica I

Laboratorio di Informatica I Struttura della lezione Lezione 5: Tipi di dati ed idiomi del C Vittorio Scarano Corso di Laurea in Informatica : soluzioni agli esercizi Tipi di dato Idiomi per la programmazione Priorità ed associatività

Dettagli

Primi esempi di programmi. Il tipo int Le variabili Altri tipi interi Operatori di assegnazione

Primi esempi di programmi. Il tipo int Le variabili Altri tipi interi Operatori di assegnazione Primi esempi di programmi Il tipo int Le variabili Altri tipi interi Operatori di assegnazione Il tipo int Un int permette di trattare numeri interi 4 byte (32 bit) con la tecnica del complemento a 2 (ma

Dettagli

Corso di Fondamenti di Informatica Il sistema dei tipi in C++

Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Anno Accademico Francesco Tortorella Struttura di un programma C++ // Programma semplice in C++ #include int main() { cout

Dettagli

Introduzione alla programmazione in linguaggio C

Introduzione alla programmazione in linguaggio C Introduzione alla programmazione in linguaggio C Il primo programma in C commento Header della libreria Funzione principale Ogni istruzione in C va terminata con un ; Corso di Informatica AA. 2007-2008

Dettagli

Istruzioni. Una istruzione semplice è qualsiasi espressione seguita da un punto e virgola. Esempio x = 0; y = 1;/* due istruzioni */

Istruzioni. Una istruzione semplice è qualsiasi espressione seguita da un punto e virgola. Esempio x = 0; y = 1;/* due istruzioni */ Istruzioni Le istruzioni esprimono azioni che, una volta eseguite, comportano una modifica permanente dello stato interno del programma o del mondo circostante Le strutture di controllo permettono di aggregare

Dettagli

Tipi di dati fondamentali. Tipi di dati fondamentali. Utilità dei tipi di dati nelle dichiarazioni. Il tipo di dati char. Codice ASCII.

Tipi di dati fondamentali. Tipi di dati fondamentali. Utilità dei tipi di dati nelle dichiarazioni. Il tipo di dati char. Codice ASCII. Tipi di dati fondamentali Tipi di dati fondamentali Linguaggi di Programmazione I Ferdinando Cicalese caratteri: char signed char unsigned char interi short int long interi unsigned short unsigned unsigned

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica Laboratorio di Informatica Ingegneria Meccanica Lezione 3, 8 ottobre 2007 versione 9 ottobre 2007 Renato Menicocci Interi in complemento a 2 (I) Con N bit

Dettagli

Dichiarazioni e tipi predefiniti nel linguaggio C

Dichiarazioni e tipi predefiniti nel linguaggio C Politecnico di Milano Dichiarazioni e tipi predefiniti nel linguaggio C Variabili, costanti, tipi semplici, conversioni di tipo. Premessa Programmi provati sul compilatore Borland C++ 1.0 Altri compilatori:

Dettagli

Ingresso ed Uscita in C. Informatica 1 / 15

Ingresso ed Uscita in C. Informatica 1 / 15 Ingresso ed Uscita in C Informatica 1 / 15 Input e Output in C Linguaggio C: progettato per essere semplice e con poche istruzioni Non esistono istruzioni di ingresso / uscita (I/O)!!! Ingresso ed uscita

Dettagli

Linguaggio C: introduzione

Linguaggio C: introduzione Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: introduzione La presente dispensa e da utilizzarsi

Dettagli

Elementi di Informatica A. A. 2016/2017

Elementi di Informatica A. A. 2016/2017 Elementi di Informatica A. A. 2016/2017 Ing. Nicola Amatucci Università degli studi di Napoli Federico II Scuola Politecnica e Delle Scienze di Base nicola.amatucci@unina.it Programmazione C++ Parte 1

Dettagli

Tipo carattere. Campo di variabilità. Intervallo finito. Tipo. Dimensione (byte) char

Tipo carattere. Campo di variabilità. Intervallo finito. Tipo. Dimensione (byte) char Tipo carattere Finora abbiamo lavorato con valori numerici. I numeri costituiscono molta parte del lavoro dei computer, ma non tutta. I computer sono macchine per il trattamento dell informazione e l informazione

Dettagli

Programmazione C Massimo Callisto De Donato

Programmazione C Massimo Callisto De Donato Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE

Dettagli

#include <stdio.h> /* l esecuzione comincia dalla funzione main */ int main()

#include <stdio.h> /* l esecuzione comincia dalla funzione main */ int main() Primi passi Il mio primo programma #include /* l esecuzione comincia dalla funzione main */ int main() { printf( Hello World!\n" ); return 0; /* il programma termina con successo */ } /* fine

Dettagli

Laboratorio di Informatica I

Laboratorio di Informatica I Struttura della lezione Lezione 3: Istruzioni ed operatori booleani. Vittorio Scarano Corso di Laurea in Informatica Università di Salerno Soluzioni agli esercizi Istruzioni (statement) semplici e di controllo

Dettagli

Lezione 6 Introduzione al C++ Mauro Piccolo

Lezione 6 Introduzione al C++ Mauro Piccolo Lezione 6 Introduzione al C++ Mauro Piccolo piccolo@di.unito.it Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,

Dettagli

Lezione 5: Introduzione alla programmazione in C

Lezione 5: Introduzione alla programmazione in C Lezione 5: Introduzione alla programmazione in C Laboratorio di Elementi di Architettura e Sistemi Operativi 4 Aprile 2012 Introduzione al C C vs. Java Java: linguaggio ad oggetti C: linguaggio procedurale

Dettagli

Fondamenti di C++ Input/Output di base

Fondamenti di C++ Input/Output di base Università della Calabria Corso di Laurea in Ingegneria Elettronica Programmazione Orientata agli Oggetti A.A. 2006/2007 Fondamenti di C++ Paolo Trunfio * * DEIS, Università della Calabria http://si.deis.unical.it/~trunfio

Dettagli

Linguaggio C Strutture di controllo

Linguaggio C Strutture di controllo FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C Strutture di controllo 2001 Pier Luca Montessoro - Davide

Dettagli

$QDOLVLGHOSURJUDPPDTXDGUDWR

$QDOLVLGHOSURJUDPPDTXDGUDWR $QDOLVLGHOSURJUDPPDTXDGUDWR /* */ calcolare l area del quadrato #include main(){ int lato, area; printf("lato "); scanf("%d", &lato); if(lato < 0) printf("errore nei dati \n"); else { area =

Dettagli

Il corpo di tutte le funzioni deve essere contenuto tra parentesi graffe

Il corpo di tutte le funzioni deve essere contenuto tra parentesi graffe Primi passi Il mio primo programma #include /* l esecuzione comincia dalla funzione main */ int main() { printf( Hello World!\n" ); return 0; /* il programma termina con successo */ } /* fine

Dettagli

Lezione 1. Ing. Colazzo Sebastiano

Lezione 1. Ing. Colazzo Sebastiano Lezione 1 Ing. Colazzo Sebastiano Linguaggi macchina: lingua naturale di un particolare computer, esso consiste di sequenze di numeri (1 o 0) e dipende dalla macchina 0000111101 1111110001 0011001111 Linguaggi

Dettagli

Primi programmi in C

Primi programmi in C Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica In breve Uso del compilatore gcc Struttura di un programma

Dettagli

Programmare in C. Maurizio Palesi Salvatore Serrano. Valori. Operazioni. Un insieme di valori del tipo. Per operare su tali valori Tipi

Programmare in C. Maurizio Palesi Salvatore Serrano. Valori. Operazioni. Un insieme di valori del tipo. Per operare su tali valori Tipi MASTER Information Technology Excellence Road (I.T.E.R.) Programmare in C Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Tipi di Dati Valori Un insieme

Dettagli

Struttura di un programma C++

Struttura di un programma C++ Struttura di un programma C++ // Programma semplice in C++ #include using namespace std; int main() { cout

Dettagli

Prof. Pagani Corrado LINGUAGGIO C: SELEZIONE E CICLI

Prof. Pagani Corrado LINGUAGGIO C: SELEZIONE E CICLI Prof. Pagani Corrado LINGUAGGIO C: SELEZIONE E CICLI IF Ogni linguaggio di programmazione presenta almeno una struttura di controllo decisionale. La sintassi del linguaggio C è la seguente. if ()

Dettagli

Input/Output di numeri

Input/Output di numeri Input/Output di numeri I/O di numeri Per utilizzare le funzioni di I/O occorre include il file di intestazione (o file header) stdio.h utilizzando all inizio del sorgente la direttiva #include

Dettagli

Espressione di chiamata di funzione

Espressione di chiamata di funzione Avvertenza Quanto segue NON è un libro, ma è una copia dei lucidi usati a lezione che NON sostituisce i libri di testo adottati e consigliati per l insegnamento di Informatica Generale. Questa copia è

Dettagli

Strutture di Controllo Iterative: Istruzione FOR

Strutture di Controllo Iterative: Istruzione FOR Linguaggio C Strutture di Controllo Iterative: Istruzione FOR 1 Istruzioni iterative! Anche dette cicli! Prevedono l esecuzione ripetitiva di altre istruzioni (corpo del ciclo)! Ad ogni iterazione del

Dettagli

Ingresso ed Uscita in C. Luca Abeni

Ingresso ed Uscita in C. Luca Abeni Ingresso ed Uscita in C Luca Abeni Input e Output in C Linguaggio C: progettato per essere semplice e con poche istruzioni Non esistono neanche istruzioni di ingresso / uscita (I/O)!!! Ingresso ed uscita

Dettagli

Corso sul linguaggio C

Corso sul linguaggio C Corso sul linguaggio C Modulo 1 1.1 Istruzioni semplici 1 Prerequisiti Saper progettare algoritmi Saper descrivere algoritmi (NLS, ddf) Conoscere il concetto di espressione 2 1 Introduzione In questa lezione

Dettagli

LEZIONE 1 LE BASI DEL LINGUAGGIO C

LEZIONE 1 LE BASI DEL LINGUAGGIO C LEZIONE 1 LE BASI DEL LINGUAGGIO C Simone Marchesini Roberto Pagliarini Dipartimento di Informatica Università di Verona COS È? Il C è un linguaggio di programmazione che permette di salvare i valori in

Dettagli

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Dipartimento di Elettronica, Informazione e Bioingegneria Informatica B Sezione D Franchi Alessio Mauro,

Dettagli

Algoritmi e basi del C

Algoritmi e basi del C Algoritmi e basi del C Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 24 Agosto 2015 Benvenuti nel fantastico mondo del C 2 Il primo programma: ciao mondo 3 Ciao Mondo: stdio.h Come

Dettagli

I CARATTERI E LE STRINGHE

I CARATTERI E LE STRINGHE I CARATTERI E LE STRINGHE IL CODICE ASCII Per memorizzare i simboli grafici corrispondenti ai caratteri bisogna associare un numero intero a ciascuno di essi Il codice ASCII / æski/ (American Standard

Dettagli

Il linguaggio C. Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1

Il linguaggio C. Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1 Il linguaggio C I linguaggi di programmazione ad alto livello sono linguaggi formali ( sintassi e semantica formalmente definite) però sono compatti e comprensibili. Le tipologie di linguaggi sono: procedurali

Dettagli

Istruzioni di Controllo in C. Emilio Di Giacomo

Istruzioni di Controllo in C. Emilio Di Giacomo Istruzioni di Controllo in C Emilio Di Giacomo Limite delle istruzioni viste L insieme delle istruzioni che abbiamo visto fino ad ora consiste per lo più di: dichiarazioni e assegnazioni di variabili espressioni

Dettagli

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Fondamenti di Informatica Laurea in Ingegneria ivile e Ingegneria per l ambiente e il territorio Linguaggio : Le basi Stefano

Dettagli

Quesiti ed esercizi tipo compito relativi alla prima parte del corso

Quesiti ed esercizi tipo compito relativi alla prima parte del corso Lezione 6 Quesiti ed esercizi tipo compito relativi alla prima parte del corso Architettura del calcolatore L architettura di Von-Neumann RAM CPU Memoria secondaria Dispositivi input/output Tavole di verita

Dettagli

Istruzioni. Istruzioni semplici Istruzioni di controllo. Fondamenti di Informatica e laboratorio Istruzioni e Controllo del flusso

Istruzioni. Istruzioni semplici Istruzioni di controllo. Fondamenti di Informatica e laboratorio Istruzioni e Controllo del flusso Istruzioni Istruzioni Le istruzioni esprimono azioni che, una volta eseguite, comportano una modifica permanente dello stato interno del programma o del mondo circostante Le strutture di controllo permettono

Dettagli

L assegnamento. Andrea Marin. a.a. 2011/2012. Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time

L assegnamento. Andrea Marin. a.a. 2011/2012. Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Abbiamo visto È conveniente definire una macchina astratta C Lo stato della macchina ci

Dettagli

Iterazione A. Ferrari

Iterazione A. Ferrari Iterazione A. Ferrari Iterazioni (cicli) L iterazione è una struttura che consente di ripetere più volte l esecuzione di un insieme di istruzioni. Due tipi di iterazione: iterazioni enumerative: consentono

Dettagli

Strutture di Controllo Condizionali e Operatori Logici e Relazionali

Strutture di Controllo Condizionali e Operatori Logici e Relazionali Linguaggio C Strutture di Controllo Condizionali e Operatori Logici e Relazionali 1 Strutture di Controllo! Controllano il flusso di esecuzione di un programma Istruzioni di selezione: permettono di selezionare

Dettagli

Variabili e tipi di. Alessandra Giordani Lunedì 11 aprile

Variabili e tipi di. Alessandra Giordani Lunedì 11 aprile Variabili e tipi di dato in C Alessandra Giordani agiordani@disi.unitn.it Lunedì 11 aprile 2011 http://disi.unitn.it/~agiordani/ Stringhe Un altro tipo di insieme che vorremmo poter rappresentare è quello

Dettagli

Linguaggio C Informatica Grafica

Linguaggio C Informatica Grafica Linguaggio C Informatica Grafica Corsi di Informatica Grafica Prof. Manuel Roveri Dipartimento di Elettronica e Informazione roveri@elet.polimi.it Linguaggio C Breve storia Struttura di un programma Variabili

Dettagli

Il Linguaggio C. Caratteristiche. Caratteristiche. Esempio di programma in C. Tipi di dato primitivi in C. Dati

Il Linguaggio C. Caratteristiche. Caratteristiche. Esempio di programma in C. Tipi di dato primitivi in C. Dati Caratteristiche Il Linguaggio C Linguaggio sequenziale (lineare), imperativo, strutturato a blocchi usabile anche come linguaggio di sistema software di base sistemi operativi compilatori... FI - Algoritmi

Dettagli

Informatica 2 modulo C Massimo Callisto De Donato

Informatica 2 modulo C Massimo Callisto De Donato Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Informatica 2 modulo C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE

Dettagli

Sintassi: Per la dichiarazione di variabili dei tipi fondamentali:

Sintassi: Per la dichiarazione di variabili dei tipi fondamentali: Sintassi: Per la dichiarazione di variabili dei tipi fondamentali: declaration ::= type declarator list ; declarator list ::= declarator {, declarator} opt declarator ::= identif ier identif ier = initializer

Dettagli

Costanti e Variabili

Costanti e Variabili Parte 3 Costanti e Variabili Identificatori Un identificatore è un nome che viene associato a diverse entità (costanti, tipi, variabili, funzioni, ecc.) e serve ad identificare la particolare entità Gli

Dettagli

Algoritmi e basi del C Struttura di un programma

Algoritmi e basi del C Struttura di un programma Algoritmi e basi del C Struttura di un programma Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 11 Marzo 2014 Informazione: dato + significato Che giorno è oggi? 14 Marzo o anche

Dettagli

Linguaggio C. strutture di controllo: strutture iterative. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Linguaggio C. strutture di controllo: strutture iterative. Università degli Studi di Brescia. Docente: Massimiliano Giacomin Linguaggio C strutture di controllo: strutture iterative Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Strutture iterative

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione 1 C-Introduzione.tex: Versione 1.0, aa 2005-2006 Linguaggi di programmazione (1) Sono linguaggi che permettono la codifica di algoritmi in modo da renderli eseguibili, direttamente

Dettagli

Primo programma in C

Primo programma in C Primo programma in C Struttura minima di un file C Applicazioni C in modo console Struttura del programma Commenti Direttive #include Definizione di variabili Corpo del main 2 Struttura minima di un file

Dettagli

Il linguaggio C. Notate che...

Il linguaggio C. Notate che... Il linguaggio C Notate che... 1 Il C è un linguaggio a blocchi int main (void) { blocco } 2 Il C è un linguaggio a blocchi (2) Non è possibile mischiare dichiarazioni e comandi! int main (void) { } Dichiarazione

Dettagli

Variabili, tipi primitivi e construtti condizionali

Variabili, tipi primitivi e construtti condizionali , tipi primitivi e construtti condizionali Fondamenti di Programmazione e Laboratorio A.A. 2018/2019 Dichiarazioni di variabili La sintassi da utilizzare per dichiarare una variabile la seguente: tipo

Dettagli