ELEMENTI DI INFORMATICA. Linguaggio C

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "ELEMENTI DI INFORMATICA. Linguaggio C"

Transcript

1 Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettrica ed Elettronica ELEMENTI DI INFORMATICA A.A. 2015/2016 Ing. Marco Ortu Diee, secondo piano Tel mail: Linguaggio C 1

2 Un linguaggio è caratterizzato da: SINTASSI - insieme di regole formali per la scrittura di programmi, che fissano le modalità per costruire frasi corrette nel linguaggio. SEMANTICA - insieme dei significati da attribuire alle frasi (sintatticamente corrette) costruite nel linguaggio Scrivere un programma sintatticamente corretto non implica che il programma faccia quello per cui è stato scritto. 2

3 Sviluppo di un programma (compilazione) - editing: scrivere il testo e memorizzarlo su supporti di memoria permanenti; - compilazione: traduzione del codice sorgente in codice oggetto; - linking: integrazione dei vari moduli di un programma per creare un'unità eseguibile; - esecuzione: la cpu esegue il programma; 3

4 Compilatore: traduce il programma sorgente in programma oggetto; ANALISI programma sorgente analisi lessicale analisi sintattica TRADUZIONE generazione del codice ottimizzazione del codice Esempi: C, C++, Pascal 4

5 5

6 Sviluppo di un programma (approccio interpretato) - editing: scrivere il testo e memorizzarlo su supporti di memoria permanenti; - interpretazione: ogni istruzione viene convertita in linguaggio macchina e eseguita; ANALISI programma sorgente analisi lessicale analisi sintattica ESECUZIONE ESEMPIO: Basic 6

7 Il primo programma C #include<stdio.h> int main(){ printf( Hello World! ); Return 0; 7

8 Variabili Memoria: insieme di celle. Cella: in genere ha una grandezza di un byte (8 bit) cella indirizzo valore valore variabile Variabile: gruppo di celle consecutive che vengono considerate dal programmatore come un unica cella informativa. Attributi di una variabile: - Indirizzo della prima cella - Valore (contenuto di tutte le celle) 8

9 Variabili (2) Variabili: l indirizzo non cambia; il valore può subire modifiche Programmatore: si riferisce a una variabile mediante un nome (identificatore); Variabile: ha un tipo Tipo di una variabile: insieme di valori (detti elementi o costanti del tipo); 9

10 Dichiarazioni e definizioni Costrutti che introducono nuove entità: dichiarazioni; definizioni. Dichiarazioni: entità a cui il compilatore non associa locazioni di memoria o azioni eseguibile; 10

11 Definizioni: entità a cui il compilatore associa locazioni di memoria o azioni eseguibili; esempio: definizioni di variabili o di costanti Nomenclatura consentita in C: spesso non è semplice né conveniente trattare separatamente dichiarazioni e definizioni; con dichiarazione si può intendere sia una dichiarazione vera e propria, sia una definizione (le dichiarazioni comprendono le definizioni). 11

12 Esempio #include<stdio.h> int main() { int a,b; /*dichiarazione di variabile*/ int c=3; /*dichiarazione e definizione*/ printf( Sono il secondo programma\n ); return(0); 12

13 Costanti Se il valore associato ad un identificativo non è modificabile parliamo di costanti. 13

14 I tipi base Il C supporta due tipologie fondamentali di numeri: numeri interi e i numeri a virgola mobile; I valori di un tipo intero sono numeri interi, mentre i valori dei tipi a virgola mobile possono avere anche una parte frazionaria. 14

15 Tipi interi Tipo Valore minimo Valore massimo short int Unsigned short int int Unsigned int Long int Unsigned long int

16 Tipi interi (2) #include<stdio.h> int main() { int a,b; /*dichiarazione di variabile*/ int c=3; /*definizione e dichiarazione*/ return(0); 16

17 Tipi floating point Tipo Valore minimo Valore massimo float 1,17549 x 10^-38 3,40282 x 1038 double 2,22507 x 10^-308 1,79769 x

18 Tipi floating point (2) #include<stdio.h> int main() { double a,b; a=3.14; float c; c=5.15; return(0); 18

19 Tipi char Il tipo char è il tipo di dato utilizzato per i caratteri. I valori del tipo char possono variare da macchina a macchina poichè esistono diversi tipi di set di caratteri (il più diffuso è quello ASCII: American Standard Code for Information). A una variabile di tipo char può essere assegnato un qualsiasi carattere: char ch; ch='a'; /* a minuscola */ ch='a'; /* A maiuscola */ 19

20 Tipi definiti dall'utente I tipi enumerazione sono: - definiti dal programmatore; - costituiti da insiemi di costanti intere definite dal programmatore, ciascuna individuata da un identificatore e detta enumeratore; - utilizzati per variabili che assumono solo un numero limitato di valori; - utili per rappresentare informazioni non numeriche; 20

21 Tipi definiti dall'utente (2) #include <stdio.h> int main() { enum Giorni{LUN,MAR,MER,GIO,VEN,SAB,DOM; enum Giorni oggi=lun; printf("%d",oggi); //stampa 0 return(0); 21

22 Definizione di tipi L'istruzione introdotta dalla parola-chiave typedef definisce un sinonimo di un tipo esistente. Non crea un nuovo tipo, ma un nuovo identificatore di un tipo (nativo o astratto) precedentemente definito. typedef int interi; interi a; /* equivale a scrivere int a*/ 22

23 Assegnamento (o assegnazione) Si può conferire un valore ad una variabile tramite un assegnamento: int a,b; int c=4; a=c; b=a; const int x=3; 23

24 Left value e Right value Left value: espressione che può apparire sul lato sinistro di un assegnamento; Right value: espressione che può apparire sul lato destro di un espressione; 24

25 Assegnamenti (2) #include<stdio.h> int main{ int a,b,c; a=b=c=1; b=a*b; c=c+1=3; //ATTENZIONE! return(0); 25

26 printf() e specifiche di conversione La funzione printf() viene utilizzata per visualizzare a video il contenuto di una stringa. Stringa di controllo %d, %i Stampa interi %f reale %c carattere %s stringa %o ottale %x, %X esadecimale %u Intero senza segno %e, %E Formato scientifico 26

27 printf() (2) #include<stdio.h> int main(){ int a=3; printf( %d%d,a); //numero di specifiche superiori all'input return(0); 27

28 printf() (2) #include<stdio.h> int main(){ int a=3; printf( %d%d,a); //numero di specifiche superiori all'input return(0); #include<stdio.h> int main(){ int a=3,b=5; printf( %d,a,b); //numero di specifiche inferiori all'input return(0); 28

29 Operatori aritmetici Operatori Binari Additivo Moltiplicativo + somma * moltiplicazione - sottrazione / divisione % resto Operatori Unari + più unario - unario 29

30 Operatori logici e di confronto I tipi aritmetici possono usare gli operatori di confronto: == uguale!= diverso > maggiore >= maggiore o uguale < minore <= minore o uguale 30

31 Operatori logici e di confronto (2)! operatore logico not && operatore logico and operatore logico or Gli operatori logici, quando utilizzati in un'espressione, producono 0 oppure 1 come risultato. 31

32 #include<stdio.h> int main() { int a=2, b=3, c; c=a>2&&b>3; printf( %d,c); //0 c=a>2 b==3; printf( %d,c); //1 return(0); 32

33 #include<stdio.h> int main() { int a=2, b=3, c; c=!(a>2&&b>3); printf( %d,c); //1 c=a>2 b==3; printf( %d,c); //1 return(0); 33

34 Corto circuito #include<stdio.h> int main() { int a=2, b=3, c; c=(a!=0)&&(4/a>1); printf("%d",c); c=(4/a>1) (a!=0); printf("%d",c); return(0); //ATTENZIONE! 34

35 Incremento e decremento #include<stdio.h> int main(){ int a=1, b=2; a+=1; ++b; a++; //a=a+1; //b=b+1; //a=a+1; 35

36 Incremento e decremento (2) #include<stdio.h> int main() { int a=2, c=0; printf("%d\n",c++); //stampa 0 printf("%d\n",c); //stampa 1 printf("%d\n",++a); //stampa 3 printf("%d\n",a); //stampa 3 return(0); 36

37 Incremento e decremento (3) #include<stdio.h> int main() { int a=2, c=2; printf("%d\n",c ); //stampa 2 printf("%d\n",c); //stampa 1 printf("%d\n", a); //stampa 1 printf("%d\n",a); //stampa 1 return(0); 37

38 Conversioni di tipo Conversioni implicite: quando in un'espressione logica o aritmetica gli operandi non sono dello stesso tipo; quando il tipo del lato destro di un'assegnazione non è lo stesso di quello del lato sinistro; 38

39 #include<stdio.h> int main() { char c; short int s; int i; unsigned int u; long int l; unsigned long int ul; float fl; double d; long double ld; l=l+u; /* il valore di u viene Convertito al tipo long int ul=ul+l; /* il valore di l viene convertito al tipo uns. Long int fl=fl+ul; /* il valore di ul viene convertito al tipo float; d=d+fl; /* il valore di fl viene convertito al tipo double; i=i+c; i=i+s; u=u+i; /* il valore di c viene convertito al tipo int /* il valore di s viene convertito al tipo int /* il valore di i viene convertito al tipo unsigned int ld=ld+d; /* il valore di d viene convertito al tipo long double return(0); 39

40 Conversioni di tipo (2) Attenzione: nella conversione da double a int si può avere una perdita di informazione a causa del troncamento della parte decimale. In alcuni casi nella conversione da int a double si può verificare una perdita di precisione per arrotondamento, poichè gli interi sono rappresentati in forma esatta ed i reali sono rappresentati in forma approssimata. 40

41 Cast esplicito Sebbene le conversioni esplicite siano convenienti, a volte si ha bisogno di un maggior grado di controllo sulla conversione di tipo. Un'espressione di cast ha la forma: (nome del tipo) espressione Il nome del tipo specifica il tipo nel quale verrà convertita l'espressione. float f=3.14; int i; i=(int) f; //cast 41

42 Ordine di valutazione delle espressioni 1 Operatore Precedenza Associatività ++a --a a++ a-- + unario - unario 1 sinistra 2 destra * / % 3 sinistra sinistra = *= /= %= += -= 5 destra L associatività stabilisce, a parità di priorità, quale sia l ordine con cui bisogna eseguire i vari operatori. Se l operatore è associativo a sinistra, si scorrerà da sinistra verso destra, mentre se è associativo a destra, si farà l esatto contrario. 42

43 Ordine di valutazione delle espressioni 2 #include<stdio.h> int main(){ int a,b,c,d,e,f; a=b=c=d=e=f=1; a= b+= c++ d + e / f; return(0); 43

44 Ordine di valutazione delle espressioni 2 #include<stdio.h> int main(){ int a,b,c,d,e,f; a=b=c=d=e=f=1; a= b+= c++ d + e / f; return(0); 1 a= b+= (c++) d + e / f; 44

45 Ordine di valutazione delle espressioni 2 #include<stdio.h> int main(){ int a,b,c,d,e,f; a=b=c=d=e=f=1; a= b+= c++ d + e / f; return(0); 1 a= b+= (c++) d + e / f; 2 a= b+= (c++) d + ( e) / f; 45

46 Ordine di valutazione delle espressioni 2 #include<stdio.h> int main(){ int a,b,c,d,e,f; a=b=c=d=e=f=1; a= b+= c++ d + e / f; return(0); 1 a= b+= (c++) d + e / f; 2 a= b+= (c++) d + ( e) / f; 3 a= b+= (c++) d + (( e) / f); 46

47 Ordine di valutazione delle espressioni 2 #include<stdio.h> int main(){ int a,b,c,d,e,f; a=b=c=d=e=f=1; a= b+= c++ d + e / f; return(0); 1 a= b+= (c++) d + e / f; 2 a= b+= (c++) d + ( e) / f; 3 a= b+= (c++) d + (( e) / f); 4 a= b+= (((c++) d) + (( e) / ( f))); 47

48 Ordine di valutazione delle espressioni 2 #include<stdio.h> int main(){ int a,b,c,d,e,f; a=b=c=d=e=f=1; a= b+= c++ d + e / f; return(0); 1 a= b+= (c++) d + e / f; 2 a= b+= (c++) d + ( e) / f; 3 a= b+= (c++) d + (( e) / f); 4 a= b+= (((c++) d) + (( e) / ( f))); 5 (a= (b+= (((c++) d) + (( e) / ( f)))); 48

49 scanf() La funzione scanf() viene utilizzata per leggere dallo standard input secondo un particolare formato. #include<stdio.h> int main(){ int a; printf( Inserisci un valore: \n ); scanf( %d,&a); return(0); 49

50 L'istruzione if if (<COND>){ <IF_BLOCK> else { <ELSE_BLOCK> 50

51 L'istruzione if #include<stdio.h> int main(){ int num1,num2; scanf( %d%d,&num1,&num2); if(num1<num2){ printf( %d,num1); else { printf( %d,num2); 51

52 L'istruzione if (2) #include<stdio.h> int main(){ int num1,num2,max; scanf( %d%d,&num1,&num2); if(num1>num2){ max=num1; else { max=num2; return(0); 52

53 #include<stdio.h> int main(){ int operazione, num1, num2, ris; printf("1: somma, 2: sottrazione, 3: moltiplicazione \n"); scanf("%d",&operazione); if(operazione==1){ printf("inserisci i numeri:\n"); scanf("%d%d",&num1,&num2); ris=num1+num2; printf("il risultato è: %d\n",ris); else if(operazione==2){ printf("inserisci i numeri:\n"); scanf("%d%d",&num1,&num2); ris=num1 num2; printf("il risultato è: %d\n",ris); else if (operazione == 3) { printf("inserisci i numeri:\n"); scanf("%d%d",&num1,&num2); ris=num1*num2; printf("il risultato è: %d\n",ris); else { printf("numero non valido!\n"); 53

54 Espressione condizionale <COND>? <IF_EXPRESSION> : <ELSE_EXPRESSION> #include<stdio.h> int main(){ int a=2, b=3; int max; max=(a>b?a:b); printf( Il massimo è: %d,max); return 0; 54

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

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

Linguaggio C. Tipi predefiniti e operatori. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Linguaggio C. Tipi predefiniti e operatori. Università degli Studi di Brescia. Docente: Massimiliano Giacomin Linguaggio C Tipi predefiniti e operatori Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 RICHIAMI char 8 bit Valori interi

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

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

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

Tipi di dati scalari (casting e puntatori) Alessandra Giordani Lunedì 10 maggio 2010

Tipi di dati scalari (casting e puntatori) Alessandra Giordani Lunedì 10 maggio 2010 Tipi di dati scalari (casting e puntatori) Alessandra Giordani agiordani@disi.unitn.it Lunedì 10 maggio 2010 http://disi.unitn.it/~agiordani/ I tipi di dati scalari I tipi aritmetici, i tipi enumerativi

Dettagli

Laboratorio di Informatica I

Laboratorio di Informatica I Struttura della lezione Lezione : Elementi lessicali del C Vittorio Scarano Corso di Laurea in Informatica Elementi lessicali e token Costanti Identificatori Operatori operatori di incremento/decremento

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

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

#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

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

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

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

Dettagli

Il potere espressivo di un linguaggio è caratterizzato da: PROGRAMMA = DATI + CONTROLLO

Il potere espressivo di un linguaggio è caratterizzato da: PROGRAMMA = DATI + CONTROLLO LINGUAGGI DI PROGRAMMAZIONE Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente) quali istruzioni di

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

LINGUAGGI DI PROGRAMMAZIONE!

LINGUAGGI DI PROGRAMMAZIONE! LINGUAGGI DI PROGRAMMAZIONE! Il potere espressivo di un linguaggio è! caratterizzato da:! quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente)! quali istruzioni

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

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

IL LINGUAGGIO C TIPI DI DATO

IL LINGUAGGIO C TIPI DI DATO IL LINGUAGGIO C Un elaboratore è un manipolatore di simboli (segni) L'architettura fisica di ogni elaboratore è intrinsecamente capace di trattare vari domini di dati, detti tipi primitivi dominio dei

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

Linguaggio C: Espressioni

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

Dettagli

Linguaggio C: Espressioni

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

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

- Dispensa III - PROGRAMMAZIONE C (Parte I)

- Dispensa III - PROGRAMMAZIONE C (Parte I) Elementi di Informatica e Programmazione - Dispensa III - PROGRAMMAZIONE C (Parte I) Alessandro Saetti (email: alessandro.saetti@unibs.it) Università degli Studi di Brescia 1 Linguaggi di Programmazione

Dettagli

Tipi di dato. Il concetto di tipo di dato viene introdotto per raggiungere due obiettivi:

Tipi di dato. Il concetto di tipo di dato viene introdotto per raggiungere due obiettivi: Tipi di dato Il concetto di tipo di dato viene introdotto per raggiungere due obiettivi: esprimere in modo sintetico la loro rappresentazione in memoria, e un insieme di operazioni ammissibili permettere

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

Tipi di dato primitivi

Tipi di dato primitivi Tipi di dato primitivi (oltre int) Tipi di dato primitivi int (già trattati) Valori logici (ricordati) Valori reali Valori carattere Informatica - A.A. 2009/2010 - Tipi di dato 2 1 Valori logici (il caso

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

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

Espressioni ed operatori in C

Espressioni ed operatori in C Espressioni ed operatori in C Espressioni Il C è un linguaggio basato su espressioni Una espressione è una notazione che denota un valore mediante un processo di valutazione Una espressione può essere

Dettagli

Linguaggi di programmazione

Linguaggi di programmazione Linguaggi di programmazione C LINGUAGGI DI PROGRAMMAZIONE Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell

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

Un elaboratore è un manipolatore di simboli (segni) intrinsecamente capace di trattare vari. caratteri char caratteri ASCII unsigned char

Un elaboratore è un manipolatore di simboli (segni) intrinsecamente capace di trattare vari. caratteri char caratteri ASCII unsigned char IL LINGUAGGIO C Un elaboratore è un manipolatore di simboli (segni) L'architettura tt fisica i di ogni elaboratore è intrinsecamente capace di trattare vari domini i di dati, detti tipi i primitivi iti

Dettagli

Char. Unità 2. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi

Char. Unità 2. 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

IL LINGUAGGIO C Un elaboratore è un manipolatore di simboli (segni) L'architettura fisica di ogni elaboratore è intrinsecamente capace

IL LINGUAGGIO C Un elaboratore è un manipolatore di simboli (segni) L'architettura fisica di ogni elaboratore è intrinsecamente capace IL LINGUAGGIO C Un elaboratore è un manipolatore di simboli (segni) L'architettura fisica di ogni elaboratore è intrinsecamente capace di trattare vari domini di dati, detti tipi primitivi dominio dei

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

Espressioni ed operatori in C

Espressioni ed operatori in C Espressioni ed operatori in C Espressioni Il C è un linguaggio basato su espressioni Una espressione è una notazione che denota un valore mediante un processo di valutazione Una espressione può essere

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

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

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

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

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

La sintassi del C APPENDICE H

La sintassi del C APPENDICE H APPENDICE H La sintassi del C Nella notazione della sintassi utilizzata, le categorie sintattiche (non terminali) sono state indicate da uno stile tipografico in corsivo, mentre le parole letterali e i

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

Silvia Rossi. C elementi di un programma. Informatica. Programmazione I. Lezione n.

Silvia Rossi. C elementi di un programma. Informatica. Programmazione I. Lezione n. Silvia Rossi C elementi di un programma Lezione n. 2 Informatica Programmazione I silvia.rossi@unina.it Programma Una sequenza di istruzioni che il calcolatore esegue per produrre i risultati richiesti

Dettagli

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

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

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

Laboratorio di Informatica I

Laboratorio di Informatica I Struttura della lezione Lezione 2: Elementi lessicali, casting e while Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Soluzione agli esercizi

Dettagli

Espressioni in Linguaggio C

Espressioni in Linguaggio C Concetti chiave Espressioni in Linguaggio C Espressioni Conversioni Implicite Operatori aritmetici Operatore di assegnamento Operatori relazionali Operatori logici Gerarchia e associatività degli operatori

Dettagli

Gli Operatori. Università degli Studi di Brescia

Gli Operatori. Università degli Studi di Brescia Linguaggio C Gli Operatori 1 Gli operatori! Costruiscono le espressioni del C! Specificano come devono essere manipolati gli operandi dell espressione! Il C definisce una moltitudine di operatori, quali

Dettagli

Basi della programmazione in Java. Anteprima. Uso delle variabili. Il concetto di variabile Uso delle variabili. Input da tastiera I tipi Esercizi

Basi della programmazione in Java. Anteprima. Uso delle variabili. Il concetto di variabile Uso delle variabili. Input da tastiera I tipi Esercizi Basi della programmazione in Java Nicola Drago nicola.drago@univr.it Dipartimento di Informatica Università di Verona Anteprima Il concetto di variabile Uso delle variabili Dichiarazione Assegnamento Visualizzazione

Dettagli

Laboratorio di informatica Ingegneria meccanica

Laboratorio di informatica Ingegneria meccanica ( 1 ) Rappresentazione di numeri reali Laboratorio di informatica Ingegneria meccanica Lezione 8 26 novembre 2007 Numerazione posizionale: d n d 1 d 0.d -1 d -2 d -m rappresenta d n B n + + d 1 B 1 + d

Dettagli

Cast implicito. Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto. byte short int long float double

Cast implicito. Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto. byte short int long float double Il cast Cast implicito Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto Per esempio: byte short int long float double int x = 10; float f; f = x; Il valore di

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

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

Basi della programmazione in Java

Basi della programmazione in Java Basi della programmazione in Java Nicola Drago drago@sci.univr.it Dipartimento di Informatica Università di Verona Anteprima Il concetto di variabile Uso delle variabili Dichiarazione Assegnamento Visualizzazione

Dettagli

Fondamenti di Informatica L-A. Esercitazione 2

Fondamenti di Informatica L-A. Esercitazione 2 Fondamenti di Informatica L-A Esercitazione 2 Variabili ed Espressioni: Dichiarazione, Coercizione, Overloading, Overflow, Underflow, Divide by Zero e Casting. Input-Output: printf e scanf. Paolo Torroni

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

Espressioni. Espressione = meccanismo fondamentale per esprimere computazioni in un LP importante comprenderne la semantica!

Espressioni. Espressione = meccanismo fondamentale per esprimere computazioni in un LP importante comprenderne la semantica! Espressioni Espressione = meccanismo fondamentale per esprimere computazioni in un LP importante comprenderne la semantica! Valutazione automatica di expr aritmetiche = obiettivo primario dei primi LP

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

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

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso Unità Didattica 2 Linguaggio C Espressioni, Operatori e Strutture linguistiche per il controllo del flusso 1 Espressioni e assegnazioni Le espressioni sono definite dalla grammatica: espressione = variabile

Dettagli

Introduzione alla programmazione in C

Introduzione alla programmazione in C Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale

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

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

Tipi elementari, costanti. Tipi di dati. VALORI: un insieme dei valori del tipo OPERAZIONI: per operare su tali valori. Tipi. intero reale carattere

Tipi elementari, costanti. Tipi di dati. VALORI: un insieme dei valori del tipo OPERAZIONI: per operare su tali valori. Tipi. intero reale carattere Tipi elementari, costanti 1 Tipi di dati VALORI: un insieme dei valori del tipo OPERAZIONI: per operare su tali valori Tipi Semplici intero reale carattere Strutturati 2 1 Tipo intero Gli interi servono

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

Conversioni fra Tipi di Dati. Luca Abeni

Conversioni fra Tipi di Dati. Luca Abeni Conversioni fra Tipi di Dati Luca Abeni Tipi di Dato e Conversioni In C, ogni variabile è caratterizzata da un tipo I valori che la variabile può assumere dipendono dal tipo È possibile mescolare variabili

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

Introduzione alla programmazione in C++

Introduzione alla programmazione in C++ Introduzione alla programmazione in C++ Fondamenti di Informatica Roberto BASILI Marzo, 2007 La Programmazione Programmare significa: Determinare la natura del problema (analisi) Definire una decomposizione

Dettagli

Settimana n.4 Obiettivi Contenuti

Settimana n.4 Obiettivi Contenuti Settimana n.4 Obiettivi Input-output di base Utilizzo del pre-processore Costrutti condizionali semplici Condizioni complesse Costrutti condizionali annidati Contenuti scanf e printf a livello elementare

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 n Controllano il flusso di esecuzione di un programma Istruzioni di selezione: permettono di selezionare

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

Gli Operatori. Linguaggio C. Gli Operatori. Esempi sull uso dell Operatore di Assegnamento. L Operatore di Assegnamento

Gli Operatori. Linguaggio C. Gli Operatori. Esempi sull uso dell Operatore di Assegnamento. L Operatore di Assegnamento Linguaggio C Gli Operatori Gli Operatori Gli operatori sono simboli (sia singoli caratteri che loro combinazioni) specificano come devono essere manipolati gli operandi dell espressione Operatori aritmetici

Dettagli

Linguaggi, Traduttori e le Basi della Programmazione

Linguaggi, Traduttori e le Basi della Programmazione Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2011/2012 docente: Prof. Ing. Michele Salvemini Sommario Il Linguaggio I Linguaggi di Linguaggi

Dettagli

Le parole chiave char, int, float, double, ed enum descrivono i. che modificano i tipi base

Le parole chiave char, int, float, double, ed enum descrivono i. che modificano i tipi base Il linguaggio C I tipi di dati scalari Il casting Le dichiarazioni di tipo I puntatori I tipi di dati scalari 1 2 I tipi di dati scalari 1 Una delle caratteristiche più importanti dei linguaggi di alto

Dettagli

Gocce di Java. Gocce di Java. Tipi di dato primitivi. Pierluigi Crescenzi. Università degli Studi di Firenze

Gocce di Java. Gocce di Java. Tipi di dato primitivi. Pierluigi Crescenzi. Università degli Studi di Firenze Gocce di Java Pierluigi Crescenzi Università degli Studi di Firenze Programmazione Concetti base Dati Variabile Tipo Istruzioni Istruzioni base Strutture di controllo Sotto-programmi Programmazione Concetti

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

Informatica A. Il linguaggio C. A.a. 2006/2007. Allievi Ingegneria Gestionale

Informatica A. Il linguaggio C. A.a. 2006/2007. Allievi Ingegneria Gestionale Informatica A A.a. 2006/2007 Allievi Ingegneria Gestionale Il linguaggio C Tecnologia Software Il SW come Interfaccia Tra Utente e Macchina Fisica Programma dell utente (software applicativo) Gestione

Dettagli

IL LINGUAGGIO JAVA. Input, Tipi Elementari e Istruzione Condizionale. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

IL LINGUAGGIO JAVA. Input, Tipi Elementari e Istruzione Condizionale. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Primo esempio di un programma Java Semplicissimo programma

Dettagli

Il linguaggio C Variabili e tipi di dato primitivi

Il linguaggio C Variabili e tipi di dato primitivi Il linguaggio C Variabili e tipi di dato primitivi main() { /*definizioni variabili: */ char y= a ; /*codice(a)=97*/ int x,x,y; unsigned int Z; float SUM; double r; /* parte istruzioni: */ X=27; Y=4; Z

Dettagli

1 PANORAMICA SUL LINGUAGGIO C

1 PANORAMICA SUL LINGUAGGIO C 1 PANORAMICA SUL LINGUAGGIO C 1.1 Le origini del linguaggio C Il C fu inventato e implementato da Dennis Ritchie negli anni 70 su una macchina che impiegava il sistema operativo Unix. Il C è il risultato

Dettagli

ASTRAZIONE. Sono indipendenti dalla macchina hardware sottostante ASTRAZIONE 1

ASTRAZIONE. Sono indipendenti dalla macchina hardware sottostante ASTRAZIONE 1 ASTRAZIONE Esistono linguaggi a vari livelli di astrazione Linguaggio Macchina: implica la conoscenza dei metodi utilizzati per la rappresentazione delle informazioni Linguaggio Macchina e Assembler: implica

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

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. Excel VBA VBA Visual Basic for Application VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. 2 Prima di iniziare. Che cos è una variabile?

Dettagli

IL PROBLEMA DEL PROGETTO

IL PROBLEMA DEL PROGETTO IL PROBLEMA DEL PROGETTO La descrizione del problema, in genere, non indica direttamente il modo per ottenere il risultato voluto (il procedimento risolutivo) Occorrono metodologie per affrontare il problema

Dettagli