Lettura e scrittura da file. Lettura e scrittura da file
|
|
- Antonietta Corradi
- 7 anni fa
- Visualizzazioni
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 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
DettagliIl 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
DettagliDati 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
DettagliAssegnazione 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
DettagliL AMBIENTE CODE BLOCKS E L IO
L AMBIENTE CODE BLOCKS E L IO Il primo programma in C++ #include using namespace std; main() { cout
DettagliIntroduzione 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
DettagliCorso 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
DettagliLinguaggio 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
DettagliI/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
DettagliLezione 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,
DettagliL 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
DettagliL 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
DettagliStruttura di un programma C++
Struttura di un programma C++ // Programma semplice in C++ #include using namespace std; int main() { cout
DettagliQualsiasi 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
DettagliQualsiasi 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
DettagliDichiarazioni 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:
DettagliOgni 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
DettagliTipi 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
DettagliLaboratorio 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
DettagliTipi 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
DettagliTipi 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
DettagliCostanti 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
DettagliPrimi 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
DettagliIntroduzione 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,
DettagliArray. 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()
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
DettagliLe 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
DettagliChar 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
DettagliPrecisazione 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:
DettagliStruttura 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
DettagliIntroduzione 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
DettagliElementi 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
DettagliCaratteristiche 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
DettagliCominciamo 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
DettagliTipi 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
DettagliFondamenti 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
DettagliIl 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
DettagliJava 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
DettagliIngegneria 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
DettagliIl 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
DettagliLinguaggio 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
DettagliCorso 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
DettagliI 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
DettagliTipi 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
DettagliINTRODUZIONE 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
DettagliCorso 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
DettagliProgrammazione 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
DettagliProf. 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
Dettagliciclo 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
DettagliIl 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;
DettagliIntroduzione 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++
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
DettagliFunzioni, 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,
DettagliAllocazione 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
DettagliTipi 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
DettagliIl 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
DettagliStruttura 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
DettagliCorso 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
DettagliLaboratorio 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à
DettagliIntroduzione 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
DettagliUnità 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;
DettagliProgrammazione 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
DettagliESERCIZI 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
DettagliTipi 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
DettagliC: 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
DettagliCorso 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
DettagliTipi 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
DettagliLezione 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
DettagliProgrammazione 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
DettagliStrutture 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
DettagliInformatica/ 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
DettagliIntroduzione 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
DettagliAppunti 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)
DettagliElementi 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
DettagliLe 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
DettagliTipi 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
DettagliCorso 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
DettagliVariabili. 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
DettagliLaboratorio di Informatica
-- Conversione di tipo in C (V) -- Laboratorio di Informatica Ingegneria Meccanica Lezione 7, 22 novembre 2007 versione 24 novembre 2007 Renato Menicocci
DettagliFondamenti 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
DettagliINTRODUZIONE 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
DettagliINTRODUZIONE 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
DettagliLINGUAGGI 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
DettagliInformatica 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)
DettagliGocce 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
DettagliLezione 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
DettagliLaboratorio 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
DettagliIstituto 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
DettagliIl 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
DettagliCast 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
Dettagli1
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
DettagliIntroduzione 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ì
Dettagli1 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
DettagliProgrammazione 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