Appunti di LINGUAGGIO C

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Appunti di LINGUAGGIO C"

Transcript

1 Appunti di LINGUAGGIO C

2 TIPI DI DATI E DIMENSIONI char 1 byte int 16 o 32 bit float floating-point in singola precisione double floating-point in doppia precisione short int intero corto long int intero lungo signed char (int) intero con segno (ad es. da 128 a +127) unsigned char (int) intero senza segno (ad es. da 0 a 255) long double COSTANTI Dichiarazione #define costante 123 Costanti carattere Es. x (e comunque vale il valore ASCII del carattere x) Costanti intere Es Costanti intere lunghe Es L Costanti prive di segno Es. 1234U Costanti prive di segno Es UL Costanti floating-point Es F Costanti floating-point Es L (Long double) Valori delle costanti Costante in ottale Es. 0 prefisso: 037 = 31 in ottale Costante in esadecimale Es. 0x (o 0X) prefisso: 0x1f = 31 in esadecimale Le costanti ottali ed esadecimali possono essere seguite da L per long e da U per unsigned. Inoltre riferendoci al codice ASCII è possibile ad es. indicare il campanello (ASCII = 7) con '\007' (ottale) o '\x7' (esadecimale). Sequenze di Escape \a allarme (campanello) \b backspace \f salto pagina \n new line \r ritorno carrello \t tab orizzontale \v tab verticale \\ backslash \? punto interrogativo \' apice singolo \" doppi apici \ooo numero ottale \xhh numero esadecimale Stringhe costanti "Ciao" Le stringhe terminano tutte con \0 (carattere nullo); quindi la lunghezza effettiva di una stringa è data dal numero dei caratteri che la compongono + uno.

3 Costanti enumerative Es. enum boolean NO, YES}; Il primo valore indicato ha valore 0, il secondo 1 ecc. Es. enum escape BELL = '\a', BACKSPACE = '\b',, RETURN = '\r'}; enum mesi GEN = 1, FEB, MAR, APR,, DIC}; DICHIARAZIONI Le variabili possono essere inizializzate anche in fase di dichiarazione. Es. int i = 0; Con const si indica che il valore della variabile non verrà mai alterato. Es. Const char msg[ ]="warning"; OPERATORI ARITMETICI + addizione - sottrazione * moltiplicazione / divisione % modulo (non applicabile ai float e ai double) Es. x & y dà il resto di x/y. OPERATORI RELAZIONALI E LOGICI > maggiore >= maggiore o uguale < minore <= minore o uguale == uguale!= diverso && and or! not (Es. if (!valid) ovvero if (valid == 0) o if (not(valid))). Gli operatori relazionali hanno precedenza inferiore rispetto a quelli aritmetici. La precedenza di && è superiore a quella di. Es. i < lim-1 = i < (lim-1) CONVERSIONE DI TIPI Cast Con (type) expr si converte expr nel tipo type. Es. int x (float) x Ora x è di tipo float

4 INCREMENTO E DECREMENTO x++ vale x prima dell incremento; se inserita in un confronto vale x per il confronto e poi incrementa x. ++x vale x dopo l incremento. x-- --x vale x prima del decremento. vale x dopo il decremento. OPERATORI SUI BIT & And bit a bit Or bit a bit ^ Or esclusivo ~ Complemento a 1 (nega bit a bit) Es. n unsigned int n = 0x0F m unsigned int m = 0xF0 n & m (0x00) n m (0xFF) ~n (0xF0) x>>n x<<n Shift a destra di n posizioni dei bit di x Shift a sinistra di n posizioni dei bit di x Es. x (0x0F) x>> (0x03) x<< (0x3C) x>> (0x00) x<< (0xF0) OPERAZIONI IN FORMA CONCISA x op=expr x+=y => x=x+y Lo stesso vale per : +, -, *, /, %, <<, >>, &, ^, ESPRESSIONI CONDIZIONALI e1? e2 : e3 Se e1 è vero rilascia il valore di e2 altrimenti quello di e3. Es. z = (a>b)? a : b Ovvero if a>b z=a else z=b

5 ISTRUZIONI DI CONTROLLO if (expr) istruzione1; else istruzione2; Se expr è vera ( 0) esegue istruzione1 altrimenti istruzione2 else è opzionale Un blocco va racchiuso fra parentesi graffe dopo le istruzioni ci va ; se istruzione1 e istruzione2 non sono singole istruzioni ma blocchi allora si racchiudono tra parentesi graffe SWITCH switch(n) case 1: istruzione o blocco istruzioni terminanti con break; case 2: istruzione o blocco istruzioni terminanti con break; case 100: istruzione o blocco istruzioni terminanti con break; default: istruzione o blocco di istruzioni da eseguire in alternativa } SALTI GOTO goto label; trasferisce l esecuzione all etichetta label, dove l etichetta è un identificatore seguito da :

6 CICLI WHILE while (expr) istruzione; Se le istruzioni sono più di una si usano le parentesi graffe Si rimane nel ciclo finché l espressione è vera FOR for (expr1; expr2; expr3) istruzione; Se le istruzioni sono più di una si usano le parentesi graffe expr1 è in genere un assegnazione expr2 è in genere un test (test di terminazione) expr3 è in genere un assegnazione (incremento o decremento) Es. for (i=1; i<=n; i++) equivale a for i=1 to n do (con incremento di i interno al for) DO WHILE do blocco istruzioni; } while (expr); Si esce quando expr è falsa E come il while e non come il repeat-until BREAK e CONTINUE BREAK passa il controllo fuori dal ciclo che la racchiude immediatamente alla prima istruzione dopo tale ciclo CONTINUE ricomincia dall inizio del ciclo ignorando le istruzioni che vengono dopo

7 FUNZIONI tipo restituito nome funzione (lista parametri) dichiarazioni; istruzioni; } Note Con void si specifica che la funzione non restituisce alcun valore. I valori si restituiscono con return. La lista dei parametri può anche essere vuota. Non è possibile dichiarare funzioni all interno di funzioni. Gli argomenti delle funzioni vengono passati sempre per valore, quindi modificando un parametro se ne modifica solo la copia. Es. void funz(int x, int y, char c) Se la funzione rilascia un valore non int, allora questo va dichiarato anche nel chiamante Es. float somma (float x, float y);... return(s) main() } float somma( );

8 PUNTATORI Dichiarazione int *p char *p Si dichiara un puntatore p ad un intero. Si dichiara un puntatore p ad un carattere. p puntatore *p locazione puntata da p &c (dove c è un char) indirizzo della variabile c Assegnazioni p=&c Ora p punta alla variabile c c=*p Ora c ha assunto il valore puntato da p. Incrementi p++ Punta alla locazione successiva (utile nel caso dei vettori) p+=i Punta alla locazione p+i p=0 Reset del puntatore PUNTATORI ED ARGOMENTI DI FUNZIONE Dichiarazione funzione void swap(int *x, int *y) Chiamata funzione int *a; int *b; swap(a,b) ; oppure int a; int b; swap(&a,&b);

9 VARIABILI ESTERNE (GLOBALI) Si dichiarano fuori da ogni funzione, anche dal main Vengono usate da ogni funzione, ma all interno di ogni funzione bisogna specificarle extern Es. int x main( ) } extern int x:... AUTOMATIC Sono le variabili per default STATIC Una variabile static locale ad una funzione mantiene il valore anche dopo il termine della funzione Se non si usasse static le variabili locali ad una funzione perderebbero il loro valore tra un invocazione della funzione ed un altra REGISTER Dichiarando una variabile register, si chiede al compilatore di memorizzare tale variabile in uno dei registri della CPU, magari per velocizzarne l accesso (solitamente si tratta di int, char e puntatori) INIZIALIZZAZIONE Se non sono inizializzate esplicitamente, le variabili STATIC e EXTERN vengono inizializzate a 0, quelle AUTOMATIC e REGISTER ad un valore indefinito

10 MACRO #define nomemacro(listaparametri) (istruzione) o blocco istruzioni} Es. #define swap(a,b) int help; help=a; a=b; b=help} #define max(a,b) ((a) > (b)? (a) : (b))

11 VETTORI Dichiarazione int vett[10]; Vettore di 10 interi (Da vett[0] a vett[9]) int vett[ ]= 1, 2, 3, 4, 5} Vettore di 5 elementi inizializzato in fase di dichiarazione int matrice[2][3]; Matrice 2 x 3 Il vettore è memorizzato su posizioni tutte consecutive vett è come un puntatore alla prima posizione del vettore vett[0] è il primo elemento del vettore Scrittura printf( %i,vett[0]); Lettura scanf( %i,&vett[0]); PUNTATORI E VETTORI int *pa; int vett[10]; pa=vett; Equivale a pa=&vett[0] Per spostarsi lungo l array puntato da pa si incrementa pa pa++ pa++ pa-- pa+=i Si sposta in avanti di una posizione Si sposta indietro di una posizione Si sposta in avanti di i posizioni pa<qa Confronto fra due puntatori allo stesso array, vero se pa punta ad un elemento che sta prima di qa

12 STRUTTURE struct nomestruttura lista membri } lista variabili; Es. Struct point int x; int y; } punto; E una struttura i cui membri sono due interi x e y; punto è una variabile di tipo struct point. Dichiarazione variabili struct point punto struct point punto=320,200} Dichiarazione di una variabile di tipo struct point Dichiarazione con assegnazione dei membri x e y (x=320, y=200) Assegnazione membri punto.x=320; punto.y=200;

13 STRUTTURE E PUNTATORI pp=&p (*pp).x (*pp).y dove p è una struct è il membro x è il membro y (*pp).x=5 pp->x=5 (*pp).x=7 pp->y=7 Letture scanf("%i ",&(*pp).x) Scritture printf("%i",(*pp).x) printf("%i",pp->x) PUNTATORI ALL INTERNO DI STRUTTURE struct point int *x; }; Tramite variabile struct point p; p.x=&n *(p.x) p.x è un puntatore e così punta ad n è il valore della locazione puntata da p.x Letture scanf("%i",p.x) Scritture printf("%i",*(p.x)) Tramite puntatore struct point *pp; (*pp).x=&n; *((*pp).x) (*pp).x è il puntatore p.x è il valore della locazione puntata da p.x Letture scanf("%i",(*pp).x,) Scritture printf("%i",*((*pp).x));

14 STRUTTURE E VETTORI struct studente char *nome; int *eta; char *indirizzo; } list[100]; Questo è un vettore di 100 studenti. typedef struct studente int eta; char *nome; } STUDENTE ; Così si dichiara una struct che ora corrisponde al tipo STUDENTE; struct studenti studente lista[100]; int next; } list; lista è un array di studenti. Letture scanf("%s",&list.lista[i].nome); Scritture printf("%s",&list.lista[i].nome); Assegnazioni struct studente list[ ] = 21, "Andrew" 18, "Brian"... }; In questo modo si dichiara un array di studenti inizializzando tutte le caselle. Dimensioni di una struttura sizeof(studente) Rilascia la misura in byte della struct studente; si può applicare a qualsiasi tipo di variabile.

15 UNION Una union è una variabile che può contenere, in istanti diversi, oggetti di tipo e dimensioni differenti. Tramite union è possibile allocare spazio in memoria a variabili il cui tipo può cambiare e manipolare i vari tipi all'interno della stessa area di memoria senza inserire informazioni dipendenti dalla macchina all'interno dei programmi. Es. union misto char lettera; int intero; float fl; }; union misto buffer[100]; Così indichiamo al compilatore che ciascun elemento del vettore buffer deve disporre in memoria di uno spazio sufficiente a memorizzare il più grande dei dati precedentemente dichiarati. Se l'elemento buffer[n] è un intero ad es. stampiamo con printf("%i", buffer[n].intero); Se è un carattere: printf("%c",buffer[n].lettera); Se è un float: printf("%f",buffer[n].fl);

16 INPUT E OUTPUT Un flusso di testo è visto come una sequenza di linee, ciascuna delle quali termina con un carattere di new line. getchar int getchar(void) restituisce ad ogni chiamata il successibo carattere in input oppure il valore EOF se incontra la fine del file. Redirezionamento dell'input nomeprog < nomefile.estensione puthchar int putchar(int) invia il carattere c allo standard output e restituisce il carattere scritto o EOF se si verifica un errore Redirezionamento dell'output nomeprog > nomefile.estensione ACCESSO AI FILE fopen fp=fopen(name, mode); es. FILE *f; f=fopen("a:\ciao.ale","rt"); fclose fclose(f); fread fread(punt, size, nbyte, file) punt = puntatore in cui scrivere i byte letti dal file size = numero di byte per elemento nbyte = numero di byte da leggere file = file pointer Es. fread(t,1,7,f); scrive nella locazione puntata da t, 7 elementi di 1 byte ciascuno (caratteri) letti da f. fwrite fwrite(punt, size, nbyte, f); Es. fwrite(s,1,9,f); scrive nel file 9 elementi da 1 byte ciascuno puntati da s.

17 fprintf fprintf(file, formato, dati) Es. fprintf(f,"%s","ciao MONDO"); scrive nel file f la stringa specificata fscanf fscanf(file, formato, dati) Es. fscanf(f,"%s",r); legge i dati dal file f e li mette nella locazione puntata da r getc c=getc(f); legge un carattere dal file e lo mette in c putc putc(c,f); scrive nel file il carattere c. N.B. Tutte queste funzioni utilizzano indistintamente vettori e puntatori, senza &.

18 PUNTATORI - ALLOCAZIONE DI MEMORIA malloc sintassi p=(nodo *) malloc(sizeof(nodo)); p=(int *) malloc(sizeof(int)); Equivale alla NEW del pascal calloc sintassi p=(int *) calloc(n,sizeof(int)) Riserva lo spazio per un array di n elementi anzichè per uno solo di essi come fa la malloc free sintassi free(p) Equivale alla dispose del pascal

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

Corso Programmazione

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

Dettagli

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

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

Qualsiasi programma in C++ segue lo schema:

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

Dettagli

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

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

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

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

SULL USO DEI CARATTERI. char x; si legge con ( %c,&x) e si stampa con ( %c,x) ma anche con ( %d,x) DUE ESEMPI

SULL USO DEI CARATTERI. char x; si legge con ( %c,&x) e si stampa con ( %c,x) ma anche con ( %d,x) DUE ESEMPI SULL USO DEI CARATTERI Ricordiamo che: int x; si legge con ( %d,&x) e si stampa con ( %d,x) float x; si legge con ( %f,&x) e si stampa con ( %f,x) double x;si legge con ( %lf,&x) e si stampa con ( %f,x)

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

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

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

Dettagli

Variabili e Funzioni. Informatica 1 / 19

Variabili e Funzioni. Informatica 1 / 19 Variabili e Funzioni Informatica 1 / 19 Programmi C e Un programma C e composto da funzioni e variabili Variabile: memorizza valori appartenenti ad un insieme di definizione (dipendente dal tipo) Funzione:

Dettagli

INTRODUZIONE AL LINGUAGGIO C

INTRODUZIONE AL LINGUAGGIO C INTRODUZIONE AL LINGUAGGIO C Problema: Somma di 2 numeri In PASCAL-LIKE begin Somma { dichiarazione delle variabili var: a,b,c: reali { inizializzazione di a e b a:=5. b:=7. { calcolo della somma di a

Dettagli

Fondamenti di C++ Input/Output di base

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

Dettagli

I costrutti del C. Strutture condizionali Strutture iterative Introduzione alle funzioni

I costrutti del C. Strutture condizionali Strutture iterative Introduzione alle funzioni I costrutti del C Strutture condizionali Strutture iterative Introduzione alle funzioni 1 Le Strutture del C Condizionali if-else (else if) switch Iterative while for do while break and continue 2 Il costrutto

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

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

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

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

Il linguaggio C. Puntatori e dintorni

Il linguaggio C. Puntatori e dintorni Il linguaggio C Puntatori e dintorni 1 Puntatori : idea di base In C è possibile conoscere e denotare l indirizzo della cella di memoria in cui è memorizzata una variabile (il puntatore) es : int a = 50;

Dettagli

Puntatori. Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori

Puntatori. Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori Puntatori Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori 1 Il puntatore Un tipo puntatore è un tipo scalare per

Dettagli

Puntatori. Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori

Puntatori. Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori Puntatori Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori 1 Il puntatore Un tipo puntatore è un tipo scalare per

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

PROGRAMMA = ALGORITMO

PROGRAMMA = ALGORITMO Corso di Laurea Scienze Prof. San. Tec., Area Tecnico-Assistenziale SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI Anno Accademico 2005-2006 Prof. Fausto Passariello Corso Integrato Metodologia della Ricerca

Dettagli

Programmazione C Massimo Callisto De Donato

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

Dettagli

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

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

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

Struttura di un linguaggio

Struttura di un linguaggio Il C nel C++ Struttura di un linguaggio Livello lessicale: regole per la definizione i simboli Livello sintattico: regole per la composizione dei simboli Livello semantico: significato delle strutture

Dettagli

Il C nel C++ Struttura di un linguaggio. Elementi lessicali. Spazi. Livello lessicale: Livello sintattico: Livello semantico:

Il C nel C++ Struttura di un linguaggio. Elementi lessicali. Spazi. Livello lessicale: Livello sintattico: Livello semantico: Struttura di un linguaggio Il C nel C++ Livello lessicale: regole per la definizione i simboli Livello sintattico: regole per la composizione dei simboli Livello semantico: significato delle strutture

Dettagli

Un esempio per cominciare. Inizio e fine di un programma. La somma di 3 numeri PASCAL ANSI C. Regole sintattiche

Un esempio per cominciare. Inizio e fine di un programma. La somma di 3 numeri PASCAL ANSI C. Regole sintattiche Un esempio per cominciare La somma di 3 numeri Vs ANSI PROGRAM SOMMA; VAR A,B,,d:REAL; BEGIN (* Inizializzazione di A,B, *) READLN(); A:5.; B:7.; (* alcolo della somma tra A,B e *) d:a+b+; (* Stampa del

Dettagli

puntatori Lab. Calc. AA 2006/07 1

puntatori Lab. Calc. AA 2006/07 1 puntatori Lab. Calc. AA 2006/07 1 Attributi di un oggetto nome o identificatore; tipo; valore (o valori); indirizzo; Lab. Calc. AA 2006/07 2 Indirizzo Consideriamo la dichiarazione con inizializzazione:

Dettagli

Laboratorio di informatica Ingegneria meccanica

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

Dettagli

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

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

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

Elementi di Informatica A. A. 2016/2017

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

Dettagli

Lezione 11: Liste a Puntatori e Input/Output

Lezione 11: Liste a Puntatori e Input/Output Lezione 11: Liste a Puntatori e Input/Output Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione Richiamo: strutture (struct)

Dettagli

I puntatori. Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore

I puntatori. Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore I puntatori Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore...... L operatore & fornisce l indirizzo di un oggetto: p = &c; assegna a p l indirizzo di c, i.e., p

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

Esercitazione 11. Liste semplici

Esercitazione 11. Liste semplici Esercitazione 11 Liste semplici Liste semplici (o lineari) Una lista semplice (o lineare) è una successione di elementi omogenei che occupano in memoria una posizione qualsiasi. Ciascun elemento contiene

Dettagli

Lezione 2. Laboratorio di Informatica II - a.a

Lezione 2. Laboratorio di Informatica II - a.a Lezione 2 1 I tipi di dati scalari 2 Le tipologie di numeri interi Al tipo int possono essere assegnate dimensioni diverse su architetture distinte (tipicamente 4 o 8 byte) Il tipo int rappresenta il formato

Dettagli

Qualsiasi programma in C++ segue lo schema: Variabili

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

Dettagli

Linguaggi di Programmazione I Lezione 9

Linguaggi di Programmazione I Lezione 9 Linguaggi di Programmazione I Lezione 9 Prof. Marcello Sette mailto://marcello.sette@gmail.com http://sette.dnsalias.org 6 maggio 28 Variabili 3 Ambiti................................................................

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

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1 Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1 Cosa è il C++ E un linguaggio di programmazione derivato dal C Può essere usato per modificare il SO Unix e i suoi derivati (Linux)

Dettagli

Allocazione dinamica della memoria

Allocazione dinamica della memoria Allocazione dinamica della memoria Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Violetta Lonati

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

Linguaggio C Variabili e tipi di dato

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

Dettagli

Lezione 9: Puntatori a funzioni. Tipi enumerativi e orientati ai bit

Lezione 9: Puntatori a funzioni. Tipi enumerativi e orientati ai bit Lezione 9: Puntatori a funzioni. Tipi enumerativi e orientati ai bit Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione

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

Tipi di dati strutturati e Linguaggio C. Record o strutture Il costruttore struct in C

Tipi di dati strutturati e Linguaggio C. Record o strutture Il costruttore struct in C Tipi di dati strutturati e Linguaggio C Record o strutture Il costruttore struct in C Dati strutturati Record Un record o struttura è una struttura dati ottenuta aggregando elementi di tipo diverso che

Dettagli

CARATTERI SPECIALI. \n Nuova linea \t Tabulazione orizzontale \b Backspace \f Form feed \r Ritorno carrello \ Virgolette \ Apice \\ Backslash

CARATTERI SPECIALI. \n Nuova linea \t Tabulazione orizzontale \b Backspace \f Form feed \r Ritorno carrello \ Virgolette \ Apice \\ Backslash CARATTERI SPECIALI CODICE SIGNIFICATO \n Nuova linea \t Tabulazione orizzontale \b Backspace \f Form feed \r Ritorno carrello \ Virgolette \ Apice \\ Backslash OPERATORI ARITMETICI - Sottrazione + Addizione

Dettagli

Si possono applicare solo a variabili (di tipi interi, floating o puntatori), ma non a espressioni generiche (anche se di questi tipi).

Si possono applicare solo a variabili (di tipi interi, floating o puntatori), ma non a espressioni generiche (anche se di questi tipi). Operatori di incremento e decremento: ++ e -- ++ e -- sono operatori unari con la stessa priorità del meno unario e associatività da destra a sinistra. Si possono applicare solo a variabili (di tipi interi,

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

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

Introduzione al linguaggio C Puntatori

Introduzione al linguaggio C Puntatori Introduzione al linguaggio C Puntatori Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica 19 ottobre 2017

Dettagli

Linguaggi e Traduttori Esercitazione di laboratorio N.2 - soluzione

Linguaggi e Traduttori Esercitazione di laboratorio N.2 - soluzione Linguaggi e Traduttori Esercitazione di laboratorio N.2 - soluzione Esercizio Si scriva, usando LEX e YACC, un programma in grado riconoscere la sintassi di un sottoinsieme del linguaggio C. Dato un file

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

Fondamenti di Informatica

Fondamenti di Informatica Storia del linguaggio C Fondamenti di Informatica 7. Linguaggio C - Introduzione Corso di Laurea in Ingegneria Informatica e dell Automazione A.A. 2012-2013 2 Semestre Prof. Giovanni Pascoschi Linguaggio

Dettagli

Puntatori in C. Puntatori. Variabili tradizionali Esempio: int a = 5; Proprietà della variabile a: nome: a

Puntatori in C. Puntatori. Variabili tradizionali Esempio: int a = 5; Proprietà della variabile a: nome: a Puntatori in C Puntatori Variabili tradizionali indirizzo int a = 5; A00E... Proprietà della variabile a: nome: a A010 A012 5 tipo: int A014 valore: 5 indirizzo: A010 Finora abbiamo usato solo le prime

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

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

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

Sintassi: Per la dichiarazione di variabili dei tipi fondamentali:

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

Dettagli

Costanti e Variabili

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

Dettagli

ALGORITMI E STRUTTURE DATI

ALGORITMI E STRUTTURE DATI ALGORITMI E STRUTTURE DATI Esercitazioni AndreA Orlandini http://www.dia.uniroma3.it/~orlandin/asd/ e-mail: orlandin@dia.uniroma3.it Orario di ricevimento: Martedì 14.00-16.00 Puntatori e Liste StudentiDIA

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

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

Il linguaggio C. Puntatori e Array

Il linguaggio C. Puntatori e Array Il linguaggio C Puntatori e Array Puntatori I puntatori sono variabili i cui valori sono indirizzi di locazioni in cui sono memorizzate altre variabili architettura a 32 bit: 232-1 indirizzi, ma non si

Dettagli

Verso i puntatori: Cosa è una variabile?

Verso i puntatori: Cosa è una variabile? Verso i puntatori: Cosa è una variabile? Quando si dichiara una variabile, ad es. int a; si rende noto il nome e il tipo della variabile. Il compilatore alloca l opportuno numero di byte di memoria per

Dettagli

Informatica (A-K) 7. Linguaggio C - 1

Informatica (A-K) 7. Linguaggio C - 1 Storia del linguaggio C Informatica (A-K) 7. Linguaggio C - 1 Corso di Laurea in Ingegneria Civile & Ambientale A.A. 2011-2012 2 Semestre Prof. Giovanni Pascoschi Linguaggio C 1972, nato come evoluzione

Dettagli

GESTIONE DEI FILE IN C. Docente: Giorgio Giacinto AA 2008/2009

GESTIONE DEI FILE IN C. Docente: Giorgio Giacinto AA 2008/2009 Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2

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

Lezione 8: Stringhe ed array multidimensionali

Lezione 8: Stringhe ed array multidimensionali Lezione 8: Stringhe ed array multidimensionali Vittorio Scarano Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione AVVISO: la lezione di laboratorio di 28/5 non si

Dettagli

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO CENTRO STUDI ULISSE Via Buccino, n. 22 - C.a.p. 84018 - Scafati (SA) Tel. Fax. 081.19970299-339.2365416-349.4152010 E-mail: info@centrostudiulisse.it - www.centrostudiulisse.it OCA JAVA 7 SE PROGRAMMER

Dettagli

Fondamenti di Informatica T. Linguaggio C: i puntatori

Fondamenti di Informatica T. Linguaggio C: i puntatori Linguaggio C: i puntatori Il puntatore E` un tipo di dato, che consente di rappresentare gli indirizzi delle variabili allocate in memoria. Dominio: Il dominio di una variabile di tipo puntatore è un insieme

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

Uso avanzato dei puntatori Allocazione dinamica della memoria

Uso avanzato dei puntatori Allocazione dinamica della memoria Uso avanzato dei puntatori Allocazione dinamica della memoria Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica

Dettagli

Tipi elementari. Stefano Ferrari. Università degli Studi di Milano Programmazione. anno accademico

Tipi elementari. Stefano Ferrari. Università degli Studi di Milano Programmazione. anno accademico Tipi elementari Stefano Ferrari Università degli Studi di Milano stefano.ferrari@unimi.it Programmazione anno accademico 2017 2018 Tipi di dato Ogni variabile (e ogni costante) è associata a un tipo, che

Dettagli

Unità Didattica 4 Linguaggio C. Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo.

Unità Didattica 4 Linguaggio C. Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo. Unità Didattica 4 Linguaggio C Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo. 1 Vettori Struttura astratta: Insieme di elementi dello stesso tipo, ciascuno individuato da un indice;

Dettagli

Quesiti ed esercizi tipo compito relativi alla prima parte del corso

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

Dettagli

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

Lezione 22: Input/Output e Files

Lezione 22: Input/Output e Files Lezione 22: Input/Output e Files Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università di Salerno Struttura della lezione Esami: date e modalità Funzioni di libreria standard

Dettagli

Passaggio dei parametri Per valore Il valore viene copiato dall environment esterno all environment della funzione o procedura Cambiamenti dei paramet

Passaggio dei parametri Per valore Il valore viene copiato dall environment esterno all environment della funzione o procedura Cambiamenti dei paramet Per valore Il valore viene copiato dall environment esterno all environment della funzione o procedura Cambiamenti dei parametri così passati non si riflettono sull environment esterno Per riferimento

Dettagli

Le variabili nel linguaggio C

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

Dettagli

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 di

Dettagli

Laboratorio di Informatica I

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

Dettagli

Le strutture. Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune.

Le strutture. Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune. Le strutture Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune. Dichiarazione di una struttura: struct point { int x; int y; }; La dichiarazione di una struttura

Dettagli

Scrittura formattata - printf

Scrittura formattata - printf Esercizi su Input/Output con formato FormattedIO 1 Scrittura formattata - printf Funzione printf int printf ( , ) La funzione restituisce un valore intero uguale ai caratteri

Dettagli