Primi passi Output formattato Le quattro operazioni Tipi, variabili, espressioni. Programmazione 1. Lezione 2. Vincenzo Marra.

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Primi passi Output formattato Le quattro operazioni Tipi, variabili, espressioni. Programmazione 1. Lezione 2. Vincenzo Marra."

Transcript

1 Programmazione 1 Lezione 2 Vincenzo Marra vincenzo.marra@unimi.it Dipartimento di Matematica Federigo Enriques Università degli Studi di Milano 11 marzo 2014

2 Struttura del sorgente Un programma in C è costituito da uno o più file sorgente che contengono il testo del programma, detto codice sorgente, o codice, o sorgente. I file sorgente hanno un nome della forma nomedelfile.c L estensione.c indica che si tratta, appunto, di un file contenente codice sorgente scritto nel linguaggio C. Per adesso assumeremo che l intero programma sia contenuto in un unico file sorgente.

3 Struttura del sorgente Concettualmente, un programma in C è fatto da funzioni e variabili. Le prime codificano gli algoritmi, le seconde i dati elaborati dagli algoritmi. Un file sorgente è costituito dagli elementi sintattici seguenti.

4 Struttura del sorgente Concettualmente, un programma in C è fatto da funzioni e variabili. Le prime codificano gli algoritmi, le seconde i dati elaborati dagli algoritmi. Un file sorgente è costituito dagli elementi sintattici seguenti. Direttive per il preprocessore. Ne parleremo più avanti.

5 Struttura del sorgente Concettualmente, un programma in C è fatto da funzioni e variabili. Le prime codificano gli algoritmi, le seconde i dati elaborati dagli algoritmi. Un file sorgente è costituito dagli elementi sintattici seguenti. Direttive per il preprocessore. Ne parleremo più avanti. Funzioni. Unità di codice che svolgono uno specifico compito.

6 Struttura del sorgente Concettualmente, un programma in C è fatto da funzioni e variabili. Le prime codificano gli algoritmi, le seconde i dati elaborati dagli algoritmi. Un file sorgente è costituito dagli elementi sintattici seguenti. Direttive per il preprocessore. Ne parleremo più avanti. Funzioni. Unità di codice che svolgono uno specifico compito. Variabili. Contengono i dati da elaborare.

7 Struttura del sorgente Concettualmente, un programma in C è fatto da funzioni e variabili. Le prime codificano gli algoritmi, le seconde i dati elaborati dagli algoritmi. Un file sorgente è costituito dagli elementi sintattici seguenti. Direttive per il preprocessore. Ne parleremo più avanti. Funzioni. Unità di codice che svolgono uno specifico compito. Variabili. Contengono i dati da elaborare. Istruzioni. (All interno delle funzioni.) Specificano come elaborare i dati.

8 Struttura del sorgente Concettualmente, un programma in C è fatto da funzioni e variabili. Le prime codificano gli algoritmi, le seconde i dati elaborati dagli algoritmi. Un file sorgente è costituito dagli elementi sintattici seguenti. Direttive per il preprocessore. Ne parleremo più avanti. Funzioni. Unità di codice che svolgono uno specifico compito. Variabili. Contengono i dati da elaborare. Istruzioni. (All interno delle funzioni.) Specificano come elaborare i dati. Commenti. Sono righe di codice ignorate dal compilatore, che servono a rendere il codice leggibile ad un umano.

9 Il primo programma in C I programmi implementano delle specifiche. Il primo programma in C che scriveremo ha la specifica seguente. Specifica: CiaoMondo Input: Nulla. Output: La stringa Ciao Mondo. Descrizione: Scrivere un programma in C che produca in uscita ossia, visualizzi sullo schermo del computer la stringa di caratteri Ciao Mondo. seguita da un a capo (\n), e quindi termini. Scriveremo il codice all interno dell unico file sorgente CiaoMondo.c.

10 Il primo programma in C CiaoMondo.c 1 /* Il mio primo programma in C */ 2 3 #include <stdio.h> 4 5 int main(void) 6 { 7 printf("ciao mondo.\n"); 8 return 0; 9 }

11 Il primo programma in C CiaoMondo.c 1 /* Il mio primo programma in C */ 2 3 #include <stdio.h> 4 5 int main(void) 6 { 7 printf("ciao mondo.\n"); 8 return 0; 9 } 1 /* Il mio primo programma in C */ Questo è un commento; tutto ciò che compare fra /* e */ è ignorato dal compilatore.

12 Il primo programma in C CiaoMondo.c 1 /* Il mio primo programma in C */ 2 3 #include <stdio.h> 4 5 int main(void) 6 { 7 printf("ciao mondo.\n"); 8 return 0; 9 } 1 // Un commento su riga singola I commenti su una sola riga si possono anche scrivere in questo modo.

13 Il primo programma in C CiaoMondo.c 1 /* Il mio primo programma in C */ 2 3 #include <stdio.h> 4 5 int main(void) 6 { 7 printf("ciao mondo.\n"); 8 return 0; 9 } 3 #include <stdio.h> Questa riga include nel codice sorgente informazioni sulla libreria standard.

14 Il primo programma in C CiaoMondo.c 1 /* Il mio primo programma in C */ 2 3 #include <stdio.h> 4 5 int main(void) 6 { 7 printf("ciao mondo.\n"); 8 return 0; 9 } 5 int main(void) Questa riga definisce la funzione main, da cui, per convenzione, comincia l esecuzione del programma. Essa non riceve alcun argomento dal chiamante (void) e restituisce un intero (int).

15 Il primo programma in C CiaoMondo.c 1 /* Il mio primo programma in C */ 2 3 #include <stdio.h> 4 5 int main(void) 6 { 7 printf("ciao mondo.\n"); 8 return 0; 9 } 5 int main(void) Il corpo della funzione main, che ne costituisce la implementazione, è racchiuso fra le parentesi graffe { e }.

16 Il primo programma in C CiaoMondo.c 1 /* Il mio primo programma in C */ 2 3 #include <stdio.h> 4 5 int main(void) 6 { 7 printf("ciao mondo.\n"); 8 return 0; 9 } 7 printf("ciao mondo.\n"); Questa riga visualizza sullo schermo la frase (o la stringa di caratteri ) Ciao mondo e va a capo (\n).

17 Il primo programma in C CiaoMondo.c 1 /* Il mio primo programma in C */ 2 3 #include <stdio.h> 4 5 int main(void) 6 { 7 printf("ciao mondo.\n"); 8 return 0; 9 } 7 printf("ciao mondo.\n"); La funzione main chiama la funzione printf della libreria standard per visualizzare la stringa di caratteri.

18 Il primo programma in C CiaoMondo.c 1 /* Il mio primo programma in C */ 2 3 #include <stdio.h> 4 5 int main(void) 6 { 7 printf("ciao mondo.\n"); 8 return 0; 9 } 7 printf("ciao mondo.\n"); Si noti che l invocazione di printf è terminata da un punto e virgola (;).

19 Il primo programma in C CiaoMondo.c 1 /* Il mio primo programma in C */ 2 3 #include <stdio.h> 4 5 int main(void) 6 { 7 printf("ciao mondo.\n"); 8 return 0; 9 } 8 return 0; Restituisce il valore 0; indica al chiamante che l esecuzione è terminata correttamente. Anche qui ; indica la terminazione dell istruzione.

20 Il primo programma in C Per compilare il programma, si invoca dal terminale il compilatore C che è gcc nell implementazione gnu/linux seguito dal nome del file sorgente: gcc CiaoMondo.c (Occorre premere invio per eseguire il comando dal terminale. Si assume qui che il file CiaoMondo.c si trovi nella directory corrente.)

21 Il primo programma in C Per compilare il programma, si invoca dal terminale il compilatore C che è gcc nell implementazione gnu/linux seguito dal nome del file sorgente: gcc CiaoMondo.c (Occorre premere invio per eseguire il comando dal terminale. Si assume qui che il file CiaoMondo.c si trovi nella directory corrente.) La compilazione, se termina senza errori, non visualizza alcun messaggio. Produce però nella directory corrente il file eseguibile o codice eseguibile, o semplicemente l eseguibile: a.out Per lanciare il programma, si usa./a.out.

22 Il primo programma in C Se si preferisce dare un nome diverso al file eseguibile, lo si può fare così: gcc -o CiaoMondo CiaoMondo.c

23 Il primo programma in C Se si preferisce dare un nome diverso al file eseguibile, lo si può fare così: gcc -o CiaoMondo CiaoMondo.c In questo caso la compilazione produce nella directory corrente il file oggetto: CiaoMondo

24 Il primo programma in C Se si preferisce dare un nome diverso al file eseguibile, lo si può fare così: gcc -o CiaoMondo CiaoMondo.c In questo caso la compilazione produce nella directory corrente il file oggetto: CiaoMondo Attenzione. Nell invocazione precedente, il compilatore sovrascriverà senza ulteriore preavviso l eventuale file CiaoMondo già presente nella directory corrente, sostituendolo col codice eseguibile prodotto dalla compilazione.

25 Il primo programma in C (Esemplificazione al calcolatore del ciclo editing-compilazione-esecuzione.)

26 La funzione printf della libreria standard La funzione printf serve a stampare stringhe di caratteri sul terminale. Permette quindi di produrre dati in uscita, o output.

27 La funzione printf della libreria standard La funzione printf serve a stampare stringhe di caratteri sul terminale. Permette quindi di produrre dati in uscita, o output. Essa è definita nel file di intestazione (in inglese header, da cui il suffisso.h) denominato stdio.h, per standard input and output.

28 La funzione printf della libreria standard La funzione printf serve a stampare stringhe di caratteri sul terminale. Permette quindi di produrre dati in uscita, o output. Essa è definita nel file di intestazione (in inglese header, da cui il suffisso.h) denominato stdio.h, per standard input and output. Per usarla occorre quindi includere il file di intestazione nel programma, con la direttiva per il preprocessore #include <nomefile>

29 La funzione printf della libreria standard La funzione printf serve a stampare stringhe di caratteri sul terminale. Permette quindi di produrre dati in uscita, o output. Essa è definita nel file di intestazione (in inglese header, da cui il suffisso.h) denominato stdio.h, per standard input and output. Per usarla occorre quindi includere il file di intestazione nel programma, con la direttiva per il preprocessore #include <nomefile> Più in generale, le righe del sorgente che cominciano col simbolo # denotano direttive per il preprocessore; ne parleremo in dettaglio più avanti nel corso.

30 La funzione printf può avere come argomento una costante di tipo stringa, racchiusa fra doppi apici: ad esempio, printf("pippo") scriverà pippo sul terminale.

31 La funzione printf può avere come argomento una costante di tipo stringa, racchiusa fra doppi apici: ad esempio, printf("pippo") scriverà pippo sul terminale. All interno della stringa argomento si possono inserire dei caratteri di controllo che regolano la formattazione dei dati. Tali caratteri di controllo sono noti come sequenze di escape (in inglese, escape sequences, letteralmente sequenze di fuga ).

32 La funzione printf può avere come argomento una costante di tipo stringa, racchiusa fra doppi apici: ad esempio, printf("pippo") scriverà pippo sul terminale. All interno della stringa argomento si possono inserire dei caratteri di controllo che regolano la formattazione dei dati. Tali caratteri di controllo sono noti come sequenze di escape (in inglese, escape sequences, letteralmente sequenze di fuga ). Un esempio che abbiamo già visto è la sequenza di escape \n (per new line, ossia nuova riga ), che indica un ritorno a capo.

33 La funzione printf può avere come argomento una costante di tipo stringa, racchiusa fra doppi apici: ad esempio, printf("pippo") scriverà pippo sul terminale. All interno della stringa argomento si possono inserire dei caratteri di controllo che regolano la formattazione dei dati. Tali caratteri di controllo sono noti come sequenze di escape (in inglese, escape sequences, letteralmente sequenze di fuga ). Un esempio che abbiamo già visto è la sequenza di escape \n (per new line, ossia nuova riga ), che indica un ritorno a capo. Così, printf("pippo\n") scriverà pippo sul terminale, seguito da un a capo.

34 Altre utili sequenze di escape:

35 La funzione printf può avere anche altri argomenti, e impareremo a usarla in modo completo solo col tempo. Per esempio, la riga printf("pippo ha %d anni", 12) scriverà pippo ha 12 anni.

36 La funzione printf può avere anche altri argomenti, e impareremo a usarla in modo completo solo col tempo. Per esempio, la riga printf("pippo ha %d anni", 12) scriverà pippo ha 12 anni. Questo modo di usare printf è essenziale in congiunzione con le variabili, di cui parleremo diffusamente la prossima volta. Ma vedremo già alla fine di questa lezione qualche esempio in cui la forma sintattica qui sopra è utile.

37 Più Piu.c 1 /* Sommare due numeri interi */ 2 3 #include <stdio.h> 4 5 int main(void) 6 { 7 printf("so fare le somme: %d+%d=%d\n",17,25,17+25); 8 9 return 0; 10 }

38 Meno Meno.c 1 /* Sottrare un intero da un altro */ 2 3 #include <stdio.h> 4 5 int main(void) 6 { 7 printf("so fare le sottrazioni: %d-%d=%d\n",17,25,17-25); 8 9 return 0; 10 }

39 Opposto Opp.c 1 /* Calcolare l opposto di un intero */ 2 3 #include <stdio.h> 4 5 int main(void) 6 { 7 printf("so calcolare gli opposti: -(%d) = %d\n",17,-(17)); 8 9 return 0; 10 }

40 Per 1 /* Moltiplicare due interi */ 2 3 #include <stdio.h> 4 5 int main(void) 6 { Per.c 7 printf("so fare le moltiplicazioni: %dx%d=%d\n",17,25,17*25); 8 9 return 0; 10 }

41 Dati interi a Z e b Z \ {0}, non si può sempre eseguire la divisione esatta di a per b, a meno che b, appunto, non divida a.

42 Dati interi a Z e b Z \ {0}, non si può sempre eseguire la divisione esatta di a per b, a meno che b, appunto, non divida a. Possiamo però sempre definire la divisione intera: dove trunc 0 razionale a b a b : Z Z \ {0} Z ( ) a (a, b) trunc 0 b, denota il troncamento verso lo zero del numero Q, ossia: trunc 0 a b := { a b a b se a b 0 se a b < 0.

43 Dati interi a Z e b Z \ {0}, non si può sempre eseguire la divisione esatta di a per b, a meno che b, appunto, non divida a. Possiamo però sempre definire la divisione intera: dove trunc 0 razionale a b a b : Z Z \ {0} Z ( ) a (a, b) trunc 0 b, denota il troncamento verso lo zero del numero Q, ossia: trunc 0 a b := { a b a b se a b 0 se a b < 0. Attenzione. Questa convenzione sul valore del quoziente è valida a partire solo dallo standard C99. Gli standard precedenti lasciavano maggiore libertà all implementazione del compilatore.

44 Diviso Div.c 1 /* Dividere un intero per un altro */ 2 3 #include <stdio.h> 4 5 int main(void) 6 { 7 printf("so fare le divisioni intere: %d : %d = %d\n",17,25,17/25); 8 printf("so fare le divisioni intere: %d : %d = %d\n",25,17,25/17); 9 printf("so fare le divisioni intere: %d : %d = %d\n",-25,17,(-25)/17); 10 printf("so fare le divisioni intere: %d : %d = %d\n",25,-17,25/(-17)); 11 printf("so fare le divisioni intere: %d : %d = %d\n",-25,-17,(-25)/(-17)); return 0; 14 }

45 Diviso per Zero? DivZero.c 1 /* Dividere un intero per zero? */ 2 3 #include <stdio.h> 4 5 int main(void) 6 { 7 printf("non so fare le divisioni per zero: %d : %d = %d\n",17,0,17/0); 8 9 return 0; 10 }

46 Diviso tabulato DivForm.c 1 /* Dividere un intero per un altro */ 2 3 #include <stdio.h> 4 5 int main(void) 6 { 7 printf("so fare le divisioni intere:\t%d\t:\t%d\t=\t%d\n",17,25,17/25); 8 printf("so fare le divisioni intere:\t%d\t:\t%d\t=\t%d\n",25,17,25/17); 9 printf("so fare le divisioni intere:\t%d\t:\t%d\t=\t%d\n",-25,17,(-25)/17); 10 printf("so fare le divisioni intere:\t%d\t:\t%d\t=\t%d\n",25,-17,25/(-17)); 11 printf("so fare le divisioni intere:\t%d\t:\t%d\t=\t%d\n",-25,-17,(-25)/(-17)); return 0; 14 }

47 Le variabili Le variabili sono il principale costrutto linguistico col quale si fa riferimento ai dati elaborati dal programma.

48 Le variabili Le variabili sono il principale costrutto linguistico col quale si fa riferimento ai dati elaborati dal programma. Il nome variabile deriva dal fatto che il valore assunto da una variabile può cambiare durante l esecuzione del programma: non arbitrariamente, però, ma solo all interno di un insieme determinato dal tipo della variabile.

49 Le variabili Le variabili sono il principale costrutto linguistico col quale si fa riferimento ai dati elaborati dal programma. Il nome variabile deriva dal fatto che il valore assunto da una variabile può cambiare durante l esecuzione del programma: non arbitrariamente, però, ma solo all interno di un insieme determinato dal tipo della variabile. Infatti, in C le variabili hanno un tipo che determina (1) i possibili valori che la variabile può assumere, e (2) la quantità di memoria necessaria a memorizzare un valore di quel tipo. Ad esempio, se una variabile è di tipo intero, essa non potrà assumere il valore 3 2.

50 Le variabili Le variabili sono il principale costrutto linguistico col quale si fa riferimento ai dati elaborati dal programma. Il nome variabile deriva dal fatto che il valore assunto da una variabile può cambiare durante l esecuzione del programma: non arbitrariamente, però, ma solo all interno di un insieme determinato dal tipo della variabile. Infatti, in C le variabili hanno un tipo che determina (1) i possibili valori che la variabile può assumere, e (2) la quantità di memoria necessaria a memorizzare un valore di quel tipo. Ad esempio, se una variabile è di tipo intero, essa non potrà assumere il valore 3 2. Il linguaggio C mette a disposizione un piccolo insieme di tipi predefiniti, spesso detti tipi primitivi.

51 Le variabili Le variabili sono il principale costrutto linguistico col quale si fa riferimento ai dati elaborati dal programma. Il nome variabile deriva dal fatto che il valore assunto da una variabile può cambiare durante l esecuzione del programma: non arbitrariamente, però, ma solo all interno di un insieme determinato dal tipo della variabile. Infatti, in C le variabili hanno un tipo che determina (1) i possibili valori che la variabile può assumere, e (2) la quantità di memoria necessaria a memorizzare un valore di quel tipo. Ad esempio, se una variabile è di tipo intero, essa non potrà assumere il valore 3 2. Il linguaggio C mette a disposizione un piccolo insieme di tipi predefiniti, spesso detti tipi primitivi. È possibile per il programmatore definire dei nuovi tipi (non primitivi), ma di questo ci occuperemo più avanti.

52 I 4 tipi fondamentali Parola chiave Nome Descrizione Dim. minima Range minimo char Carattere Codici ascii 8 bit [ 127, 127] int Intero Intero 16 bit [ 32767, ] float Reale Precisione singola 32 bit [ 10 37, ] double Reale Precisione doppia 32 bit [ 10 37, ]

53 I 4 tipi fondamentali Parola chiave Nome Descrizione Dim. minima Range minimo char Carattere Codici ascii 8 bit [ 127, 127] int Intero Intero 16 bit [ 32767, ] float Reale Precisione singola 32 bit [ 10 37, ] double Reale Precisione doppia 32 bit [ 10 37, ] I tipi char e int sono detti tipi integrali: i loro valori sono interi. In effetti, char è semplicemente un sottotipo, nel senso ovvio, di int. La differenza, oltre al range diverso, sta solo nel modo un cui i valori char sono da noi interpretati, come vedremo fra poco: ma dal punto di vista del compilatore si tratta pur sempre di interi. Vedremo, per esempio, che in C si possono sommare due caratteri.

54 I 4 tipi fondamentali Parola chiave Nome Descrizione Dim. minima Range minimo char Carattere Codici ascii 8 bit [ 127, 127] int Intero Intero 16 bit [ 32767, ] float Reale Precisione singola 32 bit [ 10 37, ] double Reale Precisione doppia 32 bit [ 10 37, ] I tipi char e int sono detti tipi integrali: i loro valori sono interi. In effetti, char è semplicemente un sottotipo, nel senso ovvio, di int. La differenza, oltre al range diverso, sta solo nel modo un cui i valori char sono da noi interpretati, come vedremo fra poco: ma dal punto di vista del compilatore si tratta pur sempre di interi. Vedremo, per esempio, che in C si possono sommare due caratteri. I tipi float e double sono detti tipi reali. La loro dimensione minima non è in realtà specificata dallo standard, perché essa dipende dal tipo di codifica in virgola mobile usata.

55 Virgola mobile (standard IEEE 754, binary32 )

56 Virgola mobile (standard IEEE 754, binary32 ) Sign bit. Bit di segno.

57 Virgola mobile (standard IEEE 754, binary32 ) Sign bit. Bit di segno. Fraction or Significand or Mantissa. In italiano di solito Mantissa.

58 Virgola mobile (standard IEEE 754, binary32 ) Sign bit. Bit di segno. Fraction or Significand or Mantissa. In italiano di solito Mantissa. Exponent. Esponente. (La base della rappresentazione è 2.)

59 Virgola mobile (standard IEEE 754, binary32 ) Sign bit. Bit di segno. Fraction or Significand or Mantissa. In italiano di solito Mantissa. Exponent. Esponente. (La base della rappresentazione è 2.) Scrivendo b i per il valore dell i-esimo bit, ed e per il valore dell esponente, si ha che il valore rappresentato è: ( ) 23 ( 1) b b 23 i 2 i 2 e 127 i=1

60 Costanti intere e in virgola mobile Le costanti intere si scrivono nel sorgente nel modo ovvio: 123, -123, 0, ecc.

61 Costanti intere e in virgola mobile Le costanti intere si scrivono nel sorgente nel modo ovvio: 123, -123, 0, ecc. Le costanti reali a precisione singola o doppia (float o double) si scrivono con il separatore decimale punto (=la virgola dei Paesi latini): 0.123, , , 0.0, ecc.

62 Costanti intere e in virgola mobile Le costanti intere si scrivono nel sorgente nel modo ovvio: 123, -123, 0, ecc. Le costanti reali a precisione singola o doppia (float o double) si scrivono con il separatore decimale punto (=la virgola dei Paesi latini): 0.123, , , 0.0, ecc. Se una costante reale sia float o double è implicitamente determinato dalla sua dimensione.

63 Costanti intere e in virgola mobile Le costanti intere si scrivono nel sorgente nel modo ovvio: 123, -123, 0, ecc. Le costanti reali a precisione singola o doppia (float o double) si scrivono con il separatore decimale punto (=la virgola dei Paesi latini): 0.123, , , 0.0, ecc. Se una costante reale sia float o double è implicitamente determinato dalla sua dimensione. Si può anche usare la notazione esponenziale: 2.4E13 = E-13 = (Al posto di E si può anche scrivere e).

64 Costanti carattere: Il codice ascii I caratteri che si digitano tramite terminale hanno una rappresentazione numerica interna al calcolatore. Una delle codifiche storiche, risalente al 1963, è nota come codice ascii, acronimo di American Standard Code for Information Interchange.

65 Costanti carattere: Il codice ascii I caratteri che si digitano tramite terminale hanno una rappresentazione numerica interna al calcolatore. Una delle codifiche storiche, risalente al 1963, è nota come codice ascii, acronimo di American Standard Code for Information Interchange. Sebbene oggi sia comune l uso di codifiche più estese, come lo standard Unicode, il codice ascii è compatibile con i nuovi standard.

66 Costanti carattere: Il codice ascii I caratteri che si digitano tramite terminale hanno una rappresentazione numerica interna al calcolatore. Una delle codifiche storiche, risalente al 1963, è nota come codice ascii, acronimo di American Standard Code for Information Interchange. Sebbene oggi sia comune l uso di codifiche più estese, come lo standard Unicode, il codice ascii è compatibile con i nuovi standard. In un sorgente C, un carattere racchiuso fra apici singoli denota il corrispondente codice ascii.

67 Costanti carattere: Il codice ascii I caratteri che si digitano tramite terminale hanno una rappresentazione numerica interna al calcolatore. Una delle codifiche storiche, risalente al 1963, è nota come codice ascii, acronimo di American Standard Code for Information Interchange. Sebbene oggi sia comune l uso di codifiche più estese, come lo standard Unicode, il codice ascii è compatibile con i nuovi standard. In un sorgente C, un carattere racchiuso fra apici singoli denota il corrispondente codice ascii. Per esempio, 'A' è un modo esotico per scrivere 65.

68 Costanti carattere: Il codice ascii I caratteri che si digitano tramite terminale hanno una rappresentazione numerica interna al calcolatore. Una delle codifiche storiche, risalente al 1963, è nota come codice ascii, acronimo di American Standard Code for Information Interchange. Sebbene oggi sia comune l uso di codifiche più estese, come lo standard Unicode, il codice ascii è compatibile con i nuovi standard. In un sorgente C, un carattere racchiuso fra apici singoli denota il corrispondente codice ascii. Per esempio, 'A' è un modo esotico per scrivere 65. Ci si riferisce a 'c', dove c è un carattere, come a una costante (di tipo) carattere.

69

70 Un esempio: ascii e operazioni sui caratteri ascii.c 1 /* Visualizzazione di codici ascii, e somma di caratteri */ 2 3 #include <stdio.h> 4 5 int main(void) 6 { 7 printf("il codice ASCII di %c e %d.\n", A, A ); printf("la somma di %c e %c e %c.\n", A,!, A +! ); 11 return 0; 12 }

71 Primi passi Output formattato Le quattro operazioni Tipi, variabili, espressioni

Primi passi Output formattato Le quattro operazioni. Programmazione 1. Lezione 2 Parte 2. Vincenzo Marra.

Primi passi Output formattato Le quattro operazioni. Programmazione 1. Lezione 2 Parte 2. Vincenzo Marra. Programmazione 1 Lezione 2 Parte 2 Vincenzo Marra vincenzo.marra@unimi.it Dipartimento di Matematica Federigo Enriques Università degli Studi di Milano 12 marzo 2014 Struttura del sorgente Un programma

Dettagli

Output formattato Le quattro operazioni Tipi, costanti, variabili Over & Under Libreria Prog. Programmazione 1. Lezione 2

Output formattato Le quattro operazioni Tipi, costanti, variabili Over & Under Libreria Prog. Programmazione 1. Lezione 2 Programmazione 1 Lezione 2 Vincenzo Marra vincenzo.marra@unimi.it Dipartimento di Matematica Federigo Enriques Università degli Studi di Milano 8 marzo 2017 La funzione printf della libreria standard La

Dettagli

Il sistema C è formato dal linguaggio C, dal preprocessore, dal compilatore, dalle librerie e da altri strumenti di supporto.

Il sistema C è formato dal linguaggio C, dal preprocessore, dal compilatore, dalle librerie e da altri strumenti di supporto. Sistema C e organizzazione del codice Il sistema C è formato dal linguaggio C, dal preprocessore, dal compilatore, dalle librerie e da altri strumenti di supporto. Un programma C è costituito da un insieme

Dettagli

LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO III.2018, PARTE 2.

LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO III.2018, PARTE 2. LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2017 2018 7.III.2018, PARTE 2 VINCENZO MARRA Indice Parte 1. Esperimenti con l output formattato di printf

Dettagli

C: primi elementi. Lezione 4

C: primi elementi. Lezione 4 C: primi elementi Lezione 4 Evoluzione del BCPL (1967) e B (1970), entrambi typeless Sviluppato da Dennis Ritchie nel 1972 ed implementato per il PDP-11 Usato per lo sviluppo del sistema operativo UNIX

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

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

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

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

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

Burocrazia: Primi passi con il linguaggio C. Diversi tipi di linguaggio. Un solo linguaggio

Burocrazia: Primi passi con il linguaggio C. Diversi tipi di linguaggio. Un solo linguaggio Burocrazia: Università degli Studi di Ferrara Laurea triennale in Matematica Corso di Programmazione Primi passi con il linguaggio C Filippo Mantovani 1 Ottobre 009 Per ora nessun cambio di orario e/o

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

L AMBIENTE CODE BLOCKS E L IO

L AMBIENTE CODE BLOCKS E L IO L AMBIENTE CODE BLOCKS E L IO Il primo programma #include main() { printf("ciao Mondo!"); } Il file deve essere salvato con estensione.c Il primo programma in C++ #include using

Dettagli

Primi passi col linguaggio C

Primi passi col linguaggio C Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta

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 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

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 4 24/10/2013

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

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

Unità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma.

Unità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma. Unità Didattica 1 Linguaggio C Fondamenti. Struttura di un programma. 1 La storia del Linguaggio C UNIX (1969) - DEC PDP-7 Assembly Language BCPL - un OS facilmente accessibile che fornisce potenti strumenti

Dettagli

Introduzione al C. Informatica Generale - Introduzione al C Versione 1.0, aa p.1/17

Introduzione al C. Informatica Generale - Introduzione al C Versione 1.0, aa p.1/17 Introduzione al C Informatica Generale - Introduzione al C Versione 1.0, aa 2005-2006 p.1/17 Linguaggi di programmazione Sono linguaggi che permettono la codifica di algoritmi in modo da renderli eseguibili,

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

#include <stdio.h> main() { - 1 -

#include <stdio.h> main() { - 1 - Un primo esempio di programma Ogni programma C deve contenere una funzione speciale chiamata main che indica il punto in cui inizia l esecuzione del programma. La funzione main è unica all interno di ogni

Dettagli

Introduzione a. Funzioni di Ingresso e Uscita. Compilazione

Introduzione a. Funzioni di Ingresso e Uscita. Compilazione Introduzione a Funzioni di Ingresso e Uscita Compilazione 2 Come si termina...... un programma in esecuzione (processo)? Ctrl + C In UNIX ci si basa sul concetto di terminale Anche da GUI, quello che si

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

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

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

Università degli Studi di Ferrara

Università degli Studi di Ferrara Università degli Studi di Ferrara Corso di Laurea in Matematica - A.A. 2017-2018 Programmazione Lezione 4 il Linguaggio C Docente: Michele Ferrari - michele.ferrari@unife.it Nelle lezioni precedenti Problemi

Dettagli

Linguaggio C. Appunti per il corso di Laboratorio di Algoritmi e Strutture Dati. Stefano Aguzzoli

Linguaggio C. Appunti per il corso di Laboratorio di Algoritmi e Strutture Dati. Stefano Aguzzoli Linguaggio C Appunti per il corso di Laboratorio di Algoritmi e Strutture Dati Stefano Aguzzoli Alcune note introduttive Orario lezioni: Lunedì: 11:40 13:10, Giovedì: 10:40-11:25 sempre in Aula V3, Via

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

Il linguaggio C - Introduzione

Il linguaggio C - Introduzione Il linguaggio C - Introduzione Il C è un linguaggio imperativo legato a Unix, adatto all implementazione di compilatori e sistemi operativi. È stato progettato da D. Ritchie per il PDP-11 (all inizio degli

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

Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi

Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi Obiettivi Unità F1 Primi programmi Conoscere il significato di dichiarazione e definizione di variabili Conoscere i tipi di dato numerici Essere in grado di realizzare semplici algoritmi in pseudolinguaggio

Dettagli

Linguaggio di Riferimento: C

Linguaggio di Riferimento: C Programmazione procedurale Linguaggio di Riferimento: C 1 Linguaggio macchina Il linguaggio macchina costituisce la forma espressiva atta a descrivere programmi e ad essere direttamente interpretata dall

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

Fondamenti di Informatica. Ingegneria elettronica

Fondamenti di Informatica. Ingegneria elettronica Fondamenti di Informatica Ingegneria elettronica Prima esercitazione Cecilia Catalano Sistema Operativo Il S.O. è costituito da un insieme di programmi che permettono di utilizzare e gestire tutte le risorse

Dettagli

Codifica dell informazione

Codifica dell informazione Codifica dell informazione Informatica B Come memorizzo l informazione nel calcolatore? 1 bit di informazione 1 bit di informazione La memoria del calcolatore L informazione nel calcolatore q Il calcolatore

Dettagli

Linguaggio C: Variabili e assegnamento e semplici comandi di I/O

Linguaggio C: Variabili e assegnamento e semplici comandi di I/O Linguaggio C: Variabili e assegnamento e semplici comandi di I/O Università degli Studi di Brescia Prof. Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Un programma

Dettagli

Informatica. Stefano Lodi. 16 novembre in linguaggio C

Informatica. Stefano Lodi. 16 novembre in linguaggio C Informatica in linguaggio C Stefano Lodi 16 novembre 2005 0-0 Algoritmi, linguaggi, programmi, processi trasformazione di un insieme di dati iniziali in un insieme di risultati finali mediante istruzioni

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

Introduzione al linguaggio C

Introduzione al linguaggio C Introduzione al linguaggio C Abbiamo già visto come un programma non sia altro che un algoritmo codificato in un linguaggio di programmazione. Problema: quale linguaggio scegliere per la codifica di un

Dettagli

La programmazione in linguaggio C

La programmazione in linguaggio C FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine La programmazione in linguaggio C 2001 Pier Luca Montessoro - Davide Pierattoni

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

Prof. Pagani Corrado INTRODUZIONE AL LINGUAGGIO C

Prof. Pagani Corrado INTRODUZIONE AL LINGUAGGIO C Prof. Pagani Corrado INTRODUZIONE AL LINGUAGGIO C IL LINGUAGGIO C Nel 1972 Dennis Ritchie nei Bell Laboratories progettò il linguaggio C Il linguaggio possiede tutti i costrutti di controllo dei linguaggi

Dettagli

Elementi di informatica. Programmare in C

Elementi di informatica. Programmare in C Elementi di informatica Programmare in C 1 Programmare in C 2 Calcolare l area di un rettangolo /* Calcolo area rettangolo */ #include main() { int base; int altezza; int area; Conosciamo base

Dettagli

Elementi di informatica

Elementi di informatica Elementi di informatica Programmare in C 1 Calcolare l area di un rettangolo /* Calcolo area rettangolo */ int base; int altezza; int area; Conosciamo base = 3; altezza = 7; area = base*altezza; printf("%d",

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

Funzioni. Unità 1. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

Funzioni. Unità 1. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm

Dettagli

Il primo programma C. Un programma utile. Compilazione & linking con il compilatore GNU. Introduzione alla programmazione in linguaggio C

Il primo programma C. Un programma utile. Compilazione & linking con il compilatore GNU. Introduzione alla programmazione in linguaggio C Introduzione alla programmazione in linguaggio C Il primo programma C /* Hello world: il mio primo programma C */ Commento su più righe; il compilatore ignorerà tutto quanto compreso fra /* e */. Il primo

Dettagli

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Struttura di un programma Java

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Struttura di un programma Java Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA 1 Struttura di un programma Java Un programma Java consiste in un insieme di definizioni di classi. In genere

Dettagli

IL PRIMO PROGRAMMA IN C

IL PRIMO PROGRAMMA IN C IL PRIMO PROGRAMMA IN C LO SCOPO Si vuole scrivere un programma in linguaggio C che chieda all utente di introdurre da tastiera due numeri interi e visualizzi il valore della loro somma sul video SOLUZIONE

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

Corso di Informatica

Corso di Informatica Corso di Informatica CdL in Matematica e CdL in Matematica per le Applicazioni Prof. G. Nicosia Dipartimento di Matematica e Informatica Facoltà di Scienze MM.FF.NN. Università degli Studi di Catania A.

Dettagli

La programmazione nel linguaggio C

La programmazione nel linguaggio C 3 La programmazione nel linguaggio C 3.0 La programmazione nel linguaggio C c Diego Calvanese Fondamenti di Informatica Corso di Laurea in Ingegneria Elettronica A.A. 2001/2002 3.0 0 Introduzione ai programmi

Dettagli

Introduzione al linguaggio C. Emilio Di Giacomo

Introduzione al linguaggio C. Emilio Di Giacomo Introduzione al linguaggio C Emilio Di Giacomo Programmi in C In questa lezione vedremo come scrivere programmi in C i programmi che vedremo saranno molto semplici ci permetteranno comunque di illustrare

Dettagli

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter Informatica B a.a 2005/06 (Meccanici 4 squadra) Scaglione: da PO a ZZZZ PhD. Ing. Michele Folgheraiter Funzionamento macchina di von Neumann clock Memoria Centrale: Tutta l informazione prima di essere

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

Alcune regole di base per scrivere un programma in linguaggio C

Alcune regole di base per scrivere un programma in linguaggio C Alcune regole di base per scrivere un programma in linguaggio C Un programma il linguaggio C (listato) viene scritto in formato testo ed archiviato in un file: *.cpp Per scrivere un listato C si utilizza

Dettagli

Programmazione in ANSI C. Standard del Con successive aggiunte

Programmazione in ANSI C. Standard del Con successive aggiunte 1 Programmazione in ANSI C Standard del 1989 Con successive aggiunte Le fasi della programmazione Ad un primo livello di astrazione l'attività della programmazione puo essere suddivisa in quattro (macro)

Dettagli

LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO III Indice

LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO III Indice LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2018 2019 20.III.2019 VINCENZO MARRA Indice Parte 1. L algoritmo euclideo 3 Esercizio 1 3 L algoritmo euclideo

Dettagli

Nuovi tipi di dato e. Alessandra Giordani Lunedì 26 marzo

Nuovi tipi di dato e. Alessandra Giordani Lunedì 26 marzo Nuovi tipi di dato e costrutto condizionale Alessandra Giordani agiordani@disi.unitn.it Lunedì 26 marzo 2012 http://disi.unitn.it/~agiordani/ Tipi di dato fondamentali int e il tipo di dato che consente

Dettagli

L AMBIENTE CODE BLOCKS E L IO

L AMBIENTE CODE BLOCKS E L IO L AMBIENTE CODE BLOCKS E L IO Il primo programma in C++ #include using namespace std; main() { cout

Dettagli

Programmazione in ANSI C. Standard del Con successive aggiunte

Programmazione in ANSI C. Standard del Con successive aggiunte Programmazione in ANSI C Standard del 1989... Con successive aggiunte 1 Le fasi della programmazione Ad un primo livello di astrazione l'attività della programmazione puo essere suddivisa in quattro (macro)

Dettagli

Lo scopo. Il primo esperimento. Soluzione informale. Le variabili

Lo scopo. Il primo esperimento. Soluzione informale. Le variabili Lo scopo 2 Il primo esperimento Si vuole scrivere un programma in linguaggio C che chieda all utente di introdurre da tastiera due numeri interi e visualizzi il valore della loro somma sul video Ver. 2.4

Dettagli

Introduzione al linguaggio C

Introduzione al linguaggio C Introduzione al linguaggio C Abbiamo già visto come un programma non sia altro che un algoritmo codificato in un linguaggio di programmazione. Problema: quale linguaggio scegliere per la codifica di un

Dettagli

La Programmazione. Cos è la programmazione? Concetti preliminari

La Programmazione. Cos è la programmazione? Concetti preliminari La Programmazione Cos è la programmazione? Concetti preliminari 1 Sommario La programmazione, questa sconosciuta Programmiamo Macchine Astratte Linguaggi di basso e alto livello e loro implementazione

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

Caratteri e stringhe

Caratteri e stringhe Caratteri e stringhe Caratteri Dato che un computer può memorizzare esclusivamente sequenze di bit, per memorizzare un carattere (e quindi testi) è necessario stabilire una convenzione che associa a un

Dettagli

Programmazione in C. La struttura del programma Variabili, espressioni, operazioni

Programmazione in C. La struttura del programma Variabili, espressioni, operazioni Programmazione in C La struttura del programma Variabili, espressioni, operazioni Struttura del programma // Area quadrato circoscritto // circonferenza /* Author: Lorenzo Course: info */ #include

Dettagli

Esercizi Programmazione I

Esercizi Programmazione I Esercizi Programmazione I 0 Ottobre 016 Esercizio 1 Funzione valore assoluto Il file.c di questo esercizio deve contenere nell ordine, il prototipo (dichiarazione) di una una funzione abs, che prende in

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

Lezione 19: Il preprocessore

Lezione 19: Il preprocessore Lezione 19: Il preprocessore Vittorio Scarano Corso di Laurea in Informatica Università di Salerno Struttura della lezione Il debugger gdb Il preprocessore direttive #include e #define macro con parametri

Dettagli

Esempio. Le istruzioni corrispondono a quelle di sopra, ma sono scritte in modo simbolico. E indipendente dalla machina

Esempio. Le istruzioni corrispondono a quelle di sopra, ma sono scritte in modo simbolico. E indipendente dalla machina Il compilatore C Astrazione Linguaggio macchina implica la conoscenza dei metodi usati per la rappresentazione dell informazioni nella CPU Linguaggio Assembly è il linguaggio delle istruzioni che possono

Dettagli

Introduzione alla programmazione A. Ferrari

Introduzione alla programmazione A. Ferrari Introduzione alla programmazione A. Ferrari Il linguaggio C Nel 1972 Dennis Ritchie nei Bell Laboratories progettò il linguaggio C Il linguaggio possiede tutti i costrutti di controllo dei linguaggi ad

Dettagli

Lezione V Fondamenti di Ingresso/Uscita

Lezione V Fondamenti di Ingresso/Uscita Programmazione e Laboratorio di Programmazione Lezione V Fondamenti di Ingresso/Uscita Programmazione e Laboratorio di Programmazione: Fondamenti di Ingresso/Uscita 1 Flussi standard di I/O Standard streams:

Dettagli

LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO III Indice

LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO III Indice LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2014 2015 18.III.2015 VINCENZO MARRA Indice Parte 1. L algoritmo euclideo 3 Esercizio 1 3 L algoritmo euclideo

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

Corso di Informatica

Corso di Informatica Corso di Informatica CdL in Matematica e CdL in Matematica per le Applicazioni Prof. G. Nicosia Dipartimento di Matematica e Informatica Facoltà di Scienze MM.FF.NN. Università degli Studi di Catania A.

Dettagli

Lezione 10. L arte della programmazione

Lezione 10. L arte della programmazione Lezione 10 Linguaggi di programmazione: il C Le variabili e le costanti L assegnazione Gli operatori La documentazione L input/output L arte della programmazione La soluzione di un problema tramite un

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

INPUT E OUTPUT DI VALORI NUMERICI

INPUT E OUTPUT DI VALORI NUMERICI INPUT E OUTPUT DI VALORI NUMERICI FUNZIONI DI I/O PER NUMERI Per utilizzare le funzioni di Input/Output bisogna includere il file di intestazione (header file) denominato contiene la

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 5 Rappresentazione delle informazioni

Appunti del corso di Informatica 1 (IN110 Fondamenti) 5 Rappresentazione delle informazioni Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 5 Rappresentazione delle informazioni Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Le funzioni, e le istruzioni di input/output

Le funzioni, e le istruzioni di input/output Linguaggio C Le funzioni, e le istruzioni di input/output 1 Funzioni! Sono sottoprogrammi per svolgere un particolare compito! Sequenze di istruzioni (raggruppate tramite le parentesi graffe) alle quali

Dettagli

Titolo presentazione

Titolo presentazione Titolo presentazione Programmazione C: Esercizi su stringhe, funzionisottotitolo di libreria e matrici Milano, XX mese 20XX Informatica ed Elementi di Informatica Medica Agenda Argomenti e valore di ritorno

Dettagli

Linguaggio C Struttura dei programmi

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

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

C O P Y R I G H T ( C ) W W W. F O N D A M E N T I. I N F O

C O P Y R I G H T ( C ) W W W. F O N D A M E N T I. I N F O Il linguaggio C C O P Y R I G H T ( C ) 2 0 0 8 W W W. F O N D A M E N T I. I N F O P E R M I S S I O N I S G R A N T E D T O C O P Y, D I S T R I B U T E A N D / O R M O D I F Y T H I S D O C U M E N

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

Strumenti per la programmazione. Strumenti per la programmazione. Strumenti per la programmazione. Strumenti per la programmazione

Strumenti per la programmazione. Strumenti per la programmazione. Strumenti per la programmazione. Strumenti per la programmazione FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine La zione in linguaggio C 2001 Pier Luca Montessoro - Davide Pierattoni

Dettagli

Elementi di Base. Introduzione a Python.

Elementi di Base. Introduzione a Python. Elementi di Base Introduzione a Python http://www.dia.uniroma3.it/~roselli/ roselli@dia.uniroma3.it Credits Materiale a cura del Prof. Franco Milicchio Panoramica Elementi di base della sintassi (struttura,

Dettagli

Introduzione al C. Lezione 1 Elementi. Rossano Venturini. Pagina web del corso

Introduzione al C. Lezione 1 Elementi. Rossano Venturini. Pagina web del corso Introduzione al C Lezione 1 Elementi Rossano Venturini rossano@di.unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Lezioni di ripasso C Mercoledì 19 Giovedì

Dettagli

I puntatori Referencing e Dereferencing Tipi e Dichiarazioni Assegnazioni. Programmazione 1. Lezione 11. Vincenzo Marra.

I puntatori Referencing e Dereferencing Tipi e Dichiarazioni Assegnazioni. Programmazione 1. Lezione 11. Vincenzo Marra. Programmazione 1 Lezione 11 Vincenzo Marra vincenzo.marra@unimi.it Dipartimento di Matematica Federigo Enriques Università degli Studi di Milano 21 maggio 2014 I puntatori: Introduzione I puntatori nel

Dettagli

Struttura logica del computer (semplificata)

Struttura logica del computer (semplificata) Struttura logica del computer (semplificata) INPUT (TASTIERA) SISTEMA OPERATIVO R OUTPUT (MONITOR) A ISTRUZIONI PROGRAMMA M ZONA DATI (variabili e costanti) 21 13 45 A B C ALU UC Unità aritmetico-logica

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

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

Funzioni. Unità 1. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi

Funzioni. Unità 1. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi Corso di Ingegneria Clinica BCLR Domenico Daniele Bloisi Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio Ruberti Via Ariosto

Dettagli