Lettura e scrittura da file. Lettura e scrittura da file

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Lettura e scrittura da file. Lettura e scrittura da file"

Transcript

1 Lettura e scrittura da file Come la lettura e la scrittura da I/O (tastiera e video) per poter leggere e/o scrivere da/su file è necessario includere le definizioni del tipo fstream e le operazioni su di esso. #include <fstream> #include <iostream> using namespace std; main() { double vettore[5]; istruzione necessaria per le ultime versioni di compilatori ifstreaminfile; /* Dichiarazione di tipo */ InFile.open ( dati.dat ); /* Apertura del file */ if (!InFile) { cout << Errore di apertura del file << endl; /* controllo */ else { for(int i=0;i<5;i++) { InFile >> vettore[i]; /* lettura dati */ cout << vettore[i] << endl; InFile.close(); /* chiusura file */ Lettura e scrittura da file Completamente analoga è la scrittura #include <fstream> #include <iostream> using namespace std; main() { double vettore[5]={0,1,2,3,4 ; ofstreamoutfile; /* Dichiarazione di tipo */ OutFile.open ( dati.dat ); /* Apertura del file */ if (!OutFile) { cout << Errore di apertura del file << endl; /* controllo */ else { for(int i=0;i<5;i++) { OutFile << vettore[i]<<endl; /* scrittura dati */ OutFile.close(); /* chiusura file */ Se il file non esiste viene creato, se esiste è sovrascritto. Ci può essere errore se non c è sufficiente spazio su disco 1

2 Compilazione e link Il Codice Sorgente è scritto in linguaggio evoluto; usa funzioni complesse e nomi simbolici per variabili e functions. Il Codice Oggetto è scritto in linguaggio machina, ma contiene riferimenti simbolici a variabili e subroutines. Usa subroutines per eseguire funzioni complesse. Il Codice Eseguibile è scritto in linguaggio macchina e usa indirizzi di memoria per indicare variabili e functions. Nel Sorgente e nell Oggetto possono esistere riferimenti a variabili o functions esterne, cioè non definite nel codice medesimo. Il Codice Eseguibile non contiene riferimenti esterni. Codice Sorgente Codice Oggetto Librerie di Linguaggio Codice Eseguibile Compilatore Librerie Utente Linker Librerie di Sistema Istruzioni per la compilazione La compilazione di un sorgente C++ ed il link sono eseguiti dallo stesso comando: g++ La sola compilazione si ottiene con g++ c o <oggetto>.o <sorgente>.c Se si vuole eseguire compolazione e link si usa g++ o <eseguibile> <sorgente>.c <oggetti>.o l<librerie> Le librerie si aggiungono con l opzione l ed hanno nomi del tipo lib<nome>.a oppure lib<nome>.so Le librerie di linguaggio e quelle di sistema sono aggiunte automaticamente dal comando g++. 2

3 Elementi di un linguaggio evoluto In ogni linguaggio evoluto si possono identificare diverse componenti: Sintassi: indica l insieme delle regole generali che governano la scrittura del programma. Struttura: indica il modo in cui è possibile suddividere un programma complesso in elementi più semplici e fornisce le regole per la comunicazione tra i sottoprogrammi. Variabili: sono le regole per la definizione e l utilizzo delle aree di memoria destinate ai dati da elaborare. Controllo di flusso: sono le istruzioni per l esecuzione di cicli,test, etc Funzioni: sono i comandi che si usano per eseguire funzioni complesse (input/output, funzioni matematiche). Esempio di un programma in C++ main () { int i; double x; for (i=0; i<100; i++) { x = i/100.0; cout << cos( << i << /100) =,cos(x), endl; Funzione I/O Subroutine Variabili Output: cos(0/100) = cos(1/100) = cos(2/100) = Controllo di flusso Funzione matematica 3

4 Codifica in memoria Le variabili di un linguaggio evoluto sono porzioni della memoria che contengono i dati dell utente, scritti in una qualche rappresentazione binaria. I formati possibili sono: Interi con o senza segno Reali cioè numeri rappresentati in virgola mobile Stringhe di caratteri alfanumerici Variabili logiche Tipi composti Rappresentazioni definite dall utente Le variabili Una variabile è una porzione della memoria che contiene dati (di ingresso o di uscita) codificati in un qualche modo. Nei linguaggi evoluti, le variabili sono identificate da un nome, nei linguaggi macchina da un indirizzo. Posseggono le seguenti caratteristiche: Tipo: specifica il tipo di codifica usato Dimensione: indica la quantità di memoria occupata (dim = n_comp*dim_comp) Modo di allocazione: indica la strategia usata per riservare lo spazio in memoria Scope (visibilità): indica quali pezzi di un programma possono vedere (e usare) una variabile. Valore iniziale: il valore della variabile all inizio dell esecuzione del programma. 4

5 Il tipo di una variabile La codifica utilizzata per rappresenare i dati nella memoria occupata da una variabile si dice tipo. In C sono disponibili diversi tipi predefiniti: int, unsigned int: intero con o senza segno, float: double: char: 4 bytes. floating point, 4 bytes. floating point, 8 bytes. carattere alfanumerico, 1 byte. Il programmatore deve essere sicuro che tutte le parti di un programma che utilizzano una data variabile siano d accordo sul suo tipo; in caso contrario i risultati saranno imprevedibili. TIPI aritmetici e loro RANGE Interi TIPO BIT BYTE Contenuto Range char unsigned char Carattere ASCII short int 16 2 intero con segno -2^15 2^15-1 int 32 4 intero con segno -2^31 2^31-1 long int 32 4 intero con segno -2^31 2^31-1 unsigned short 16 2 intero senza segno 0-2^16-1 unsigned int 32 4 intero senza segno 0-2^32-1 unsigned long 32 4 intero senza segno 0-2^32-1 Floating-point TIPO BIT BYTE Valore minimo (non standard) Valore massimo (non standard) float ^ ^38 double ^ ^308 long double ^ ^4932 5

6 Il codice ASCII Per rappresentare il testo si usa un codice, detto codice ASCII, in cui a ogni combinazione di otto bits (1 byte) si fa corrispondere un simbolo; ad esempio: A = 65 a = 97 B = 66 b = 98 0 = 48 ( = 40 1 = 49 + = 43 Ci sono ovviamente 256 simboli possibili, solo in parte occupati da lettere, numeri e simboli vari. Un insieme di caratteri ASCII si dice stringa. Variabili Logiche Variabili Logiche Le variabili logiche possono assumere solo i valori vero o falso. In C++ si possono usare variabili intere come variabili logiche, con la convenzione che 0 = falso 1 = vero. Le espressioni logiche sono comunque molto usate; nel comando: if (a>5) { a>5 un espressione logica che vale 0 o 1 (cioè int i; i = (a>5); assegna a i il valore 0 o 1 a seconda del valore di a). Esistono poi vere e proprie variabili logiche, di tipo bool, che possono assumere i valori true e false. bool test = true;... if (test && a==0) {... 6

7 Istruzione sizeof L istruzione sizeof(espressione) restituisce un intero che corrisponde al numero di byte occupati in memoria dall espressione tra le parentesi. E molto utile nella scrittura dei programmi per calcolare lo spazio di memoria occorrente. Provate le seguenti istruzioni: cout << sizeof(double) ; cout<< sizeof(char); cout<< sizeof(bool); Dimensione di una variabile E possibile definire collezioni di variabili con uno o più indici, che possono essere manipolate come singoli oggetti nei programmi. In analogia con la notazione matematica, una variabile ad un indice si dice vettore, una a due o più indici matrice. Il vantaggio dei vettori rispetto a gruppi di n variabili distinte, e che gli elementi di un vettore possono essere acceduti uno a uno per mezzo di un altra variabile. Ad esempio: int i; Gli indici vanno da0 a n-1 float dati[10]; for (i=0; i<10; i++) { cout << Il dato numero << i << vale << dati[i] << endl; 7

8 Posizione in memoria degli elementi di un vettore Uno scalare occupa sempre n bytes contigui in memoria (4 nel caso di un int); i1 n n+1 n+2 n+3 n Un vettore occupa un insieme di m bytes contigui, dove m = n*size, n è la lunghezza del vettore e size è la dimensione di un elemento. n+1 i2[0] n+2 n+3 n+4 n+5 i2[1] n+6 n+7 Anche in un vettore bi-dimensionale le variabili sono allocate in memoria in modo contiguo, facendo scorrere più rapidamente l indice più a destra. E bene, quando si eseguono loop, rispettare l ordine naturale delle matrici: int a[1000][1000], b[1000][1000]; for (i=0; i<1000; i++) { for (j=0; j<1000; j++) { a[i][j] = a[i][j] + b[i][j]; /* corretto */ /* a[j][i] = a[j][i] + b[j][i]; inefficiente */ int i3[5][5]; n n+4 n+8 n+12 n+16 n+20 : : n+88 n+92 n+96 i3[0][0] i3[0][1] i3[0][2] i3[0][3] i3[0][4] i3[1][0] i3[4][2] i3[4][3] i3[4][4] 8

9 Dichiarazione delle variabili in C++ In C++, ogni variabile utilizzata deve essere dichiarata esplicitamente prima di venire utilizzata. La linea che dichiara la variabile ne specifica, accanto al tipo, anche la dimensione ed eventualmente il valore iniziale. Ad esempio: int i1, i2[10], i3[5][5]; float test = 0.24; unsigned int counter[3] = { 1, 2, 3 ; string hello = Ciao ; Costanti In C++ si possono realizzare diversi tipi di costanti: Costanti (alfa) numeriche esplicite, come nelle istruzioni double C = 5./9.*(F-32); char c = x ; stringa += coda ; Simboli definiti a livello di precompilazione, che vengono sostituiti con il valore numerico al momento della compilazione: #define COMPONENTS 12 double a[components]; 9

10 Espressioni con diversi tipi di dati - gerarchia long double double float unsigned long int long int unsigned int int Conversioni implicite e casting Abbiamo visto che in alcuni casi il compilatore esegue delle conversioni implicite tra tipi diversi. Ad esempio, se a è un int e b un float, allora se si scrive b=a il compilatore convertirà implicitamente a in un float di ugual valore e lo assegnerà a b. In alcuni casi è necessario richiedere esplicitamente una conversione, il che si ottiene specificando tra parentesi, prima dell espressione, il tipo in cui l espressione deve essere convertita: int a; float b; b = (float)a/5; Attenzione alle operazioni tra costanti: a=1/5; // operazione tra due costanti intere! cout << a; // dà come risultato... 10

11 Gerarchia degli OPERATORI (esistono altri operatori, guardate sui manuali) moltiplicazione e divisione *,/ somma e sottrazione +,- relazionali <,<=,>,>= uguaglianza ==,!= AND logico && OR logico NOT logico! assegnazione (*) = precedenza Per la valutazione di una espressione vengono eseguite prima le operazioni con precedenza più alta, a parità di precedenza le espressioni che contengono questi operatori (escluso l assegnazione) sono valutate da sinistra a destra. Esempio: a=b+c-d; è equivalente a a=b=c; è invece equivalente a b=c; a=(b+c)-d; a=b; Scope delle variabili Lo scope delle variabili in programmazione corrisponde allo loro visibilità da parte dei vari moduli (functions) che compongono un programma. Le variabili hanno, se non specificato diversamente, solo significato nella funzione (subroutine) nella quale sono definite e modificate. Quindi, in generale, si dice che una variabile è locale. Per passare le informazioni da una funzione all altra esistono due metodi: 1. Il passaggio dei parametri 2. Definire le variabili al quale devono accedere più funzioni come globali. 11

12 Esempio di variabili locali e globali #include <iostream> double in, out; quadrato() { out = in*in; main() { cin >> in; quadrato(); cout << out; in e out sono variabili globali, ovvero visibili da tutte le functions del programma. quadrato() è una function che agisce sulle variabili in ed out. main() è una function che legge da tastiera il valore di in, chiama la function quadrato() e scrive su terminale il valore di out. Allocazione statica e automatica Allocazione statica e automatica La più semplice allocazione di memoria si dice statica: una variabile viene associata ad una locazione fissa all inizio del programma e lì rimane per tutta l esecuzione. Questa strategia comporta alcuni problemi: La memoria rimane sempre allocata anche se la variabile viene usata solo per brevi periodi. È necessario fissare a priori la dimensione delle variabili perché il compilatore deve sapere già al momento della compilazione quanto spazio riservare. Il primo problema viene risolto dall allocazione automatica: il compilatore fa in modo che la variabile venga allocata all inizio del blocco che la usa e buttata via quando le istruzioni del blocco sono terminate. Le variabili all interno di un blocco sono sempre allocate in modo automatico, a meno che non siano dichiarate con l opzione static (es. static float xx; ). 12

13 Il concetto di puntatore Il puntatore è lo strumento con cui si realizza l allocazione dinamica della memoria. Si tratta di una variabile intera il cui valore rappresenta l indirizzo di un altra variabile (target). Siccome il puntatore è una variabile, il suo contenuto può essere cambiato durante l esecuzione del programma, il che equivale a modificare la posizione in memoria del target. Inoltre un puntatore può puntare a scalari o vettori di qualunque dimensione, il che consente di modificare dinamicamente la dimensione del target. n x n+1 n : : Puntatore Target Uso dei puntatori nei linguaggi Per poter utilizzare la tecnica del puntatore è necessario che il linguaggio di programmazione fornisca due strumenti: Deve essere possibile costruire, a partire dal nome del puntatore, un riferimento simbolico al target. Deve essere disponibile uno strumento che consenta al programmatore di eseguire in modo esplicito l allocazione di una porzione di memoria che costituirà il target di un puntatore. 13

14 Implementazione dei puntatori in C++ In C++ il puntatore è una variabile con un suo nome. Esiste un operatore * che, posto davanti al nome di un puntatore, simboleggia il target. Esiste anche un operatore & che data una variabile ne specifica l indirizzo in memoria. La sintassi per la definizione dei puntatori è del tipo: int *a; /* a è un puntatore a int */ float *b /* b è un puntatore a float */ I puntatori sono specifici di ogni tipo, e possono essere usati per scalari o vettori. Ad esempio, se p1 e p2 sono puntatori *p1 è il target di p1 p2[7] è l ottava componente del vettore puntato da p2 p1[0] coincide con *p1 Se f è un vettore allocato staticamente, il nome senza parentesi è il puntatore a quel vettore. Inizializzazione dei puntatori Definire un puntatore NON significa associargli alcun target. Di conseguenza un puntatore appena creato è del tutto inutilizzabile in quanto non punta a niente di sensato. E però buona norma assegnare ai puntatori un valore iniziale fisso (di solito 0 o il simbolo NULL) in modo da poter usare questo valore per testare se il puntatore è associato o meno a un target. int *pt = NULL; if (pt!= NULL) { /* il puntatore pt ha un target definito */ 14

15 Associazione a una variabile statica Un puntatore può essere associato a una variabile statica (in principio anche a una automatica, ma la cosa è molto rischiosa perché quando la variabile viene distrutta il puntatore rimane definito in modo errato). int *pt=null, i1, v1[10]; pt = &i1; /* da questo momento *pt coincide con i1 */ pt = v1; /* pt[i] coincide con v1[i] */ Allocazione dinamica Con allocazione dinamica si intende la creazione di una variabile durante l esecuzione. Ciò consente di creare variabili di dimensione voluta, pilotata ad esempio da un input ricevuto dal programma, o di modificare dinamicamente la dimensione di vettori o strutture. In C++ le variabili allocate dinamicamente vengono accedute tramite puntatori, e lo spazio in memoria viene riservato con la funzione di sistema new e rilasciato quando non è più necessarie con la funzione delete. 15

16 Uso di new e delete new è una funzione di sistema che ricerca in memoria un area di dimensioni specificate implicitamente dal tipo e dalla eventuale dimensione specificati di seguito, e ritorna l indirizzo iniziale di tale area (o NULL se non c è spazio in memoria). La memoria necessaria sarà data in generale dal prodotto della dimensione della variabile da allocare per la dimensione del singolo elemento. Il calcolo è comunque eseguito in modo automatico. La memoria allocata con new deve essere resa nuovamente disponibile al sistema quando non serve più. Per fare questo si chiama la funzione di sistema delete addr dando come parametro l indirizzo di inizio dell area. Se la memoria è stat allocata come un vettore si userà delete[]. Vediamo come allocare dinamicamente un vettore di double: int dim; double *vect; cout << Dimmi la dimensione del vettore : ; cin >> dim; vect = new double[dim]; if (vect!= NULL) { int i; for (i=0; i<dim; i++) { vect[i] = delete[] vect; 16

Codifica in memoria. Laboratorio di Calcolo A 53

Codifica in memoria. Laboratorio di Calcolo A 53 Codifica in memoria Le variabili di un linguaggio evoluto sono porzioni della memoria che contengono i dati dell utente, scritti in una qualche rappresentazione binaria. I formati possibili sono: Interi

Dettagli

Il primo programma C++

Il primo programma C++ Il primo programma C++ Un programma in qualsiasi linguaggio evoluto è una sequenza di istruzioni che la CPU dopo opportune conversioni esegue. La sintassi dei linguaggi di programmazione è molto piu rigida

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

Assegnazione di una variabile

Assegnazione di una variabile Assegnazione di una variabile Per scrivere un valore dentro una variabile si usa l operatore di assegnazione, che è rappresentato dal simbolo =. Quindi, se scrivo int a; a = 12; assegno alla variabile

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

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

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

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

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

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

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

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

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

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

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

Ogni variabile in C è una astrazione di una cella di memoria a cui corrisponde un nome, un contenuto e un indirizzo.

Ogni variabile in C è una astrazione di una cella di memoria a cui corrisponde un nome, un contenuto e un indirizzo. Ogni variabile in C è una astrazione di una cella di memoria a cui corrisponde un nome, un contenuto e un indirizzo. int a = 5; a 5 α=&a Esistono in C particolari variabili dette puntatori che possono

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

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

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

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

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

Array. Unità 7. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Array. Unità 7. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico

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

Le basi del linguaggio Java

Le basi del linguaggio Java Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una

Dettagli

Char e bool. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Char e bool. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico

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

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

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

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

Caratteristiche di un linguaggio ad alto livello

Caratteristiche di un linguaggio ad alto livello Caratteristiche di un linguaggio ad alto livello Un linguaggio ad alto livello deve offrire degli strumenti per: rappresentare le informazioni di interesse dell algoritmo definire le istruzioni che costituiscono

Dettagli

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

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

Dettagli

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

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

Java e i Tipi di dati primitivi. Parte 3

Java e i Tipi di dati primitivi. Parte 3 Java e i Tipi di dati primitivi Parte 3 La nozione di tipo di dato Il tipo del dato consente di esprimere la natura del dato Indica il modo con cui verrà interpretata la sequenza di bit che rappresenta

Dettagli

Ingegneria Elettronica Ingegneria delle Telecomunicazioni (J-Z) Ing. Antonio Monteleone A.A. 2001/02 3 ciclo

Ingegneria Elettronica Ingegneria delle Telecomunicazioni (J-Z) Ing. Antonio Monteleone A.A. 2001/02 3 ciclo Ingegneria Elettronica Ingegneria delle Telecomunicazioni (J-Z) Ing. Antonio Monteleone A.A. 2001/02 3 ciclo In C++ è possibile distinguere due aree distinte di memoria: memoria stack e memoria heap E

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

Corso di Laboratorio di programmazione e calcolo

Corso di Laboratorio di programmazione e calcolo Corso di Laboratorio di programmazione e calcolo Docente: Stefano Finzi Vita Pagina del corso: http://www1.mat.uniroma1.it/mat_cms/pres_corso.php?corso_da_ presentare=1851&lingua=italiano oppure link da

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

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

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

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

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Elementi di Base Parte 3 Istruzioni di Assegnazione G. Mecca M. Samela Università della Basilicata Elementi di Base >> Sommario Sommario Introduzione Istruzioni

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

ciclo di vita della soluzione (informatica) di un problema

ciclo di vita della soluzione (informatica) di un problema Università di Roma Tor Vergata L2-1 ciclo di vita della soluzione (informatica) di un problema errori run-time errori sintattici codice editor codice C++ compilatore esegui eseguibile OK risultati scorretti

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

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

#include <iostream> // libreria che gestisce flusso di input e output. using namespace std; // uso di librerie standard del C++

#include <iostream> // libreria che gestisce flusso di input e output. using namespace std; // uso di librerie standard del C++ 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

Funzioni, Stack e Visibilità delle Variabili in C

Funzioni, Stack e Visibilità delle Variabili in C Funzioni, Stack e Visibilità delle Variabili in C Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2018/2019 Argomenti del Corso Ogni lezione consta di una spiegazione assistita da slide,

Dettagli

Allocazione dinamica della memoria

Allocazione dinamica della memoria Allocazione dinamica della memoria Allocazione statica: limiti Per quanto sappiamo finora, in C le variabili sono sempre dichiarate staticamente la loro esistenza deve essere prevista e dichiarata a priori

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

Il C nel C++ Struttura di un linguaggio. regole per la definizione i simboli. regole per la composizione dei simboli

Il C nel C++ Struttura di un linguaggio. regole per la definizione i simboli. regole per la composizione dei simboli 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

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

Corso di Informatica A.A

Corso di Informatica A.A Corso di Informatica A.A. 2009-2010 Lezione 10 Lezione 10 1 Inside C : Puntatori Puntatori Referenziazione e Dereferenziazione Pointers: Puntatori Le variabili finora incontrate sono caratterizzate da

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

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

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

Programmazione in Java (I modulo)

Programmazione in Java (I modulo) Programmazione in Java (I modulo) Lezione 4 Variabili di tipo primitivo. Dichiarazione di costanti Conversioni di tipo: operatore cast Altri operatori di assegnamento Operazioni aritmetiche e di confronto

Dettagli

ESERCIZI DI PROGRAMMAZIONE C/C++ per le classi seconde

ESERCIZI DI PROGRAMMAZIONE C/C++ per le classi seconde ESERCIZI DI PROGRAMMAZIONE C/C++ per le classi seconde vers.0 in lavorazione Docente SAFFI FABIO Contenuti Struttura del file sorgente...2 Organizzazione della directory di lavoro...2 Esercizi sulle funzione

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

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

Corso di Fondamenti di Informatica

Corso di Fondamenti di Informatica Corso di Fondamenti di Informatica Il tipo puntatore; l allocazione dinamica della memoria Claudio De Stefano - Corso di Fondamenti di Informatica 1 puntatori una variabile di tipo puntatore al tipo x

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

Lezione 12: Allocazione Dinamica della Memoria

Lezione 12: Allocazione Dinamica della Memoria Lezione 12: Allocazione Dinamica della Memoria Laboratorio di Elementi di Architettura e Sistemi Operativi 17 Aprile 2013 Puntatori e vettori Puntatori ed indirizzi Semplificando, la memoria di un computer

Dettagli

Programmazione in Java (I modulo) Lezione 4

Programmazione in Java (I modulo) Lezione 4 Programmazione in Java (I modulo) Lezione 4 Costanti Chiamiamo costanti tutti i valori numerici (interi o con la virgola), i caratteri e le stringhe. Esempio: 2, 3.7, 'y, buongiorno Le costanti numeriche

Dettagli

Strutture Dati Dinamiche

Strutture Dati Dinamiche Strutture Dati Dinamiche Motivazioni Le variabili considerate fino a questo punto devono essere dichiarate staticamente, ossia la loro esistenza, il loro nome e la loro dimensione devono essere previsti

Dettagli

Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 02/04/2014/ Appello straordinario/ Foglio delle domande / VERSIONE 1

Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 02/04/2014/ Appello straordinario/ Foglio delle domande / VERSIONE 1 Informatica/ Ing. Meccanica/ Ing. Edile/ Prof. Verdicchio/ 02/04/2014/ Appello straordinario/ Foglio delle domande/ VERSIONE 1 1) Nell uso dei puntatori in C++ la scrittura -> vuol dire: a) riferimento

Dettagli

Introduzione al C. Lez. 1 Elementi. Rossano Venturini

Introduzione al C. Lez. 1 Elementi. Rossano Venturini Introduzione al C Lez. 1 Elementi Rossano Venturini rossano@di.unipi.it Pagine del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start http://algoritmica.spox.spoj.pl/alglab2013 Lezioni

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

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

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

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

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA.2.2 Operare con i dati Prerequisiti Concetti matematici di: Espressione Operatore 2 Introduzione Le variabili utilizzate da un programma vengono usate con operatori

Dettagli

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica -- Conversione di tipo in C (V) -- Laboratorio di Informatica Ingegneria Meccanica Lezione 7, 22 novembre 2007 versione 24 novembre 2007 Renato Menicocci

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

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione

Dettagli

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - Programma

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - Programma Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione

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

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

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

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

Laboratorio di Informatica Ingegneria Clinica Lezione 14-16/11/2011

Laboratorio di Informatica Ingegneria Clinica Lezione 14-16/11/2011 Laboratorio di Informatica Ingegneria Clinica Lezione 14-16/11/2011 Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via del Policlinico, 147 00161 Roma I puntatori Variabili e parametri Parametri formali

Dettagli

Istituto Tecnico Industriale M. M. Milano Polistena. Classe III D a.s. 2015/2016 C++ Guida Base

Istituto Tecnico Industriale M. M. Milano Polistena. Classe III D a.s. 2015/2016 C++ Guida Base Istituto Tecnico Industriale M. M. Milano Polistena Classe III D a.s. 2015/2016 C++ Guida Base Prof. Rocco Ciurleo - ITIS M. M. Milano Polistena - 3 D a.s. 2015/2016 1 Le Origini Il Linguaggio C++ è il

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

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

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

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

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

Programmazione I - corso B a.a prof. Viviana Bono

Programmazione I - corso B a.a prof. Viviana Bono Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 2009-10 prof. Viviana Bono Blocco 12 Riepilogo e complementi sui tipi Ripasso del sistema di tipi

Dettagli