Informatica 3. LEZIONE 5: Tipi di dati

Размер: px
Начинать показ со страницы:

Download "Informatica 3. LEZIONE 5: Tipi di dati"

Транскрипт

1 Informatica 3 LEZIONE 5: Tipi di dati Modulo 1: Tipi e costruttori di tipo Modulo 2: Tipi definiti dall utente e tipi di dati astratti Modulo 3: Sistemi di tipi

2 Informatica 3 Lezione 5 - Modulo 1 Tipi e costruttori di tipo

3 Introduzione I dati di un linguaggio di programmazione vengono organizzati attraverso il concetto di tipo Il tipo di un dato specifica i valori che una variabile di quel tipo può assumere e le operazioni ammissibili I linguaggi offrono: Tipi di dati predefiniti dal sistema Costruttori di tipo (dati aggregati) Tipi definiti dall utente Tipi di dati astratti

4 Tipi predefiniti Tutti i linguaggi di programmazione offrono un insieme di tipi predefiniti Booleani Caratteri Interi Reali Definiscono un insieme di valori e le operazioni che si possono compiere su di essi Tipi predefiniti in C++: char, float, double, int, void Permettono di: Classificare i dati manipolati da un programma Proteggere i dati da operazioni illegali

5 Vantaggi Vantaggi dei tipi predefiniti: Nascondere la rappresentazione sottostante Non si può accedere direttamente alla stringa di bit (nome dell entità del tipo) Occorre applicare delle operazioni Migliora la leggibilità del codice Rende l implementazione dei tipi modificabile maggiore portabilità Verificare il corretto uso delle variabili a tempo di compilazione (se il tipo è noto) Migliora l affidabilità del codice Non consente di verificare tutti i tipi di errore x=i/j; non può verificare se j!=0 Fare l overloading degli operatori a tempo di compilazione Es. int i,j,k; i=j+k; //operatore + tra interi

6 Tipi primitivi Tipi primitivi: Non sono costruiti a partire da altri tipi I loro valori sono atomici e non possono essere decomposti Spesso coincidono con i tipi predefiniti, salvo eccezioni (es. caratteri e stringhe in Ada) Si possono costruire nuovi tipi primitivi Si definiscono i valori del nuovo tipo Operazioni: dipendono dal linguaggio Esempio: tipo enumerativo

7 Tipo enumerativo Tipo ordinale i cui valori sono definiti dall'utente Le uniche operazioni ammesse sono quelle valide per tutti gli ordinali (:=, <>,=, <, >,..., ORD, DEC, INC,..) Esempio: enum colore {bianco, giallo, rosso, verde, blu}; colore MioColore=giallo; switch(miocolore) {case bianco:...} NB: l'ordine tra gli elementi è quello in cui sono dichiarati (se non si specificano valori): bianco < giallo < rosso < verde < blu

8 Aggregati Dai tipi primitivi: tipi aggregati Aggregato: Ha un nome Può aggregare oggetti omogenei o disomogenei Permette operazioni sull intero oggetto oppure sui suoi componenti, selezionandoli

9 Costruttori di aggregati Prodotto cartesiano: A 1 x A 2 x x A n tuple ordinate (c 1,c 2,,c n ), con c i A i Esempi: Numero complesso: (parte reale, parte immaginaria) --> float x float Punto: (x,y) --> int x int oppure float x float Esempi di costruttori: Struct, record ecc. struct complesso { float reale; float immag; }; complesso num; num.reale

10 Costruttori di aggregati Mapping finito: Mapping: dominio codominio Esempi di costruttore: Routine Array int vett[10]; definisce un mapping dai valori 0..9 all insieme degli interi indicizzazione vett[5]=0; C++: Indici non nel dominio specificato Indici compresi tra 0 e N-1 (in altri linguaggi anche altri intervalli) Non si possono specificare slicing (es. vett[1..3])

11 Costruttori di aggregati Union Il tipo viene specificato come un insieme disgiunto di campi Esempio di costruttore: union indirizzo { short int offset; long unsigned ind_assoluto; }; mutuamente esclusivi

12 Costruttori di aggregati Ricorsione: Per definire aggregati la cui dimensione cresce arbitrariamente e la cui struttura ha complessità arbitraria Tramite puntatori: un componente viene definito come puntatore all oggetto Esempio di costruttore: struct nodo { int numero; nodo* succ; };

13 Informatica 3 Lezione 5 - Modulo 2 Tipi definiti dall utente e tipi di dati astratti

14 Tipi definiti dall utente tipo semplice o aggregato a cui è associato un nome scelto dall'utente enum bool {FALSE, TRUE}; bool b; Nome del tipo Dichiarazione variabile struct complesso{ float parte_intera; float parte_immaginaria; }; complesso numero;

15 Tipi definiti dall utente Vantaggi: leggibilità modificabilità fattorizzazione espressione (limitata) della semantica di una variabile Problemi: il nuovo tipo non è protetto da operazioni illegali rapprsentazione interna visibile

16 Tipo di dato astratto Tipo di dato astratto (abstract data type ADT): Tipo di dato (insieme di valori e collezione di operazioni su tali valori) accessibile solo attraverso un interfaccia Consente di scrivere programmi per mezzo di astrazioni di alto livello Si tengono distinte le trasformazioni concettuali operate sui dati dalla strutturazione dei dati e dalle specifiche implementazioni algoritmiche Meccanismi astratti per applicazioni specifiche utili per risolvere problemi in svariati domini applicativi

17 Tipo di dato astratto in C++ In C++: costrutto class Estensione di una struct in cui i campi possono essere dati oppure routine Solo alcuni dati/routine sono accessibili altri sono nascosti Parti pubblica e privata della classe La dichiarazione delle funzioni pubbliche formano la sua interfaccia

18 Esempio: pila Esempio: il tipo di dato PILA (STACK) Descrizione: una pila é un ADT in cui é possibile inserire un elemento (PUSH) La push aumenta la dimensione della pila di 1 rimuovere l'ultimo elemento inserito (POP) La pop decrementa la dimensione della pila di 1 push pop Politica LIFO (Last In First Out)

19 Esempio in C++ class stack_of_char{ public: stack_of_char(int size); ~stack_of_char(); void push(char c); char pop(); int empty() const;... private: // codice dipendente // dall implementazione } Operazioni che si possono applicare al nuovo tipo stack_of_char pila(10); pila.push( a ); pila.push( b ); char c=pila.pop(); if(pila.empty()) { }... push a

20 Esempio in C++ class stack_of_char{ public: stack_of_char(int size); ~stack_of_char(); void push(char c); char pop(); int empty() const;... private: // codice dipendente // dall implementazione } Operazioni che si possono applicare al nuovo tipo stack_of_char pila(10); pila.push( a ); pila.push( b ); char c=pila.pop(); if(pila.empty()) { }... push b a

21 Esempio in C++ class stack_of_char{ public: stack_of_char(int size); ~stack_of_char(); void push(char c); char pop(); Operazioni che si possono applicare al nuovo tipo int empty() const;... private: // codice dipendente // dall implementazione } stack_of_char pila(10); pila.push( a ); pila.push( b ); char c=pila.pop(); if(pila.empty()) { }... b pop a

22 ADT generici ADT generici: ADT parametrici rispetto al tipo dei loro componenti Costrutto C++: template template<class T> class stack { public: stack (int size); ~stack (); void push(t c); T pop(); int empty() const; private: //codice dipendente //dall implementazione }; stack<int> int_st(30); stack<char> char_st(10);

23 Informatica 3 Lezione 5 - Modulo 3 Sistemi di tipi

24 Sistema dei tipi Sistema dei tipi (type system): insieme di regole utilizzate dal linguaggio per strutturare e organizzare i tipi Gli oggetti sono istanze di tipo Ogni tentativo di manipolare gli oggetti con operazioni illegali è un errore di tipo (error type) Un programma è type safe se non presenta errori di tipo

25 Sistema dei tipi Un sistema dei tipi si dice forte se garantisce la type safety Linguaggio fortemente tipizzato Il compilatore può garantire la correttezza dei tipi Altrimenti si dice debole Linguaggio debolmente tipizzato I linguaggi tipizzati staticamente (il tipo di ogni oggetto è noto a tempo di compilazione) sono fortemente tipizzati Non è vero il contrario

26 Compatibilità dei tipi Ad un oggetto di tipo T1 si possono applicare operazioni del tipo T2 se T1 è compatibile con T2 Conformità o equivalenza Esempio: struct s1{ int y; int w; }; struct s2{ int y; int w; }; s1 a, x; s2 b; s3 c; int d; a=b; x=a; c=funz(b); d=funz(a); Compatibilità di nome: Un nome di tipo è compatibile solo con se stesso Compatibilità strutturale: struct s3{ int y; }; s3 funz(s1 z) { T1 è compatibile con T2 se hanno la stessa struttura richiede di sostituire ricorsivamente al nome dei tipi definiti dall'utente la loro definizione. }

27 Conversioni di tipo Cambiamento implicito o esplicito del tipo di un operando al fine di soddisfare le regole di compatibilità Si supponga di voler effettuare la seguente operazione int num1, somma; float num2; somma = num1 + num2; In diversi linguaggi i compilatori applicano delle conversioni automaticamente: coercizione (num1 - int) + (num2 - float) = (float) --> assegnamento a (int) C/C++: casting somma = num1 + (int) num2;

28 Controllo, conversione e compatibilità tra tipi x=y+z regole di conversione controllo di tipo regole di compatibilità OK KO

29 Tipi e sottotipi Sottotipo: T' è sottotipo di T se ha le stesse proprietà di T ma un insieme di valori ristretto. T' non è un nuovo tipo, ma ha dei vincoli in più Valori: sottoinsieme dei valori di un tipo Stesse operazioni type naturale=0..maxint; cifra=0..9; età=0..120; T T

30 Sistemi monomorfici e polimorfici Sistema monomorfico: Ogni oggetto appartiene ad un tipo Sistema fortemente tipizzato e poco flessibile E possibile verificare a tempo di compilazione la correttezza dei tipi Sistema polimorfico: Ogni oggetto può appartenere a uno o più tipi Tipi compatibili, coercizione, sottotipi I linguaggi offrono diversi livelli di polimorfismo

31 Classificazione di polimorfismo Polimorfismo Universale: insieme infinito di tipi Parametrico: es. routine generiche Inclusione: es. sottotipi Ad hoc: insieme finito di tipi Overloading Coercizione

32 Verifica degli errori Errori: Del linguaggio Dell applicazione Verifica degli errori: Statica: a tempo di compilazione Non è possibile rilevare tutti gli errori (es. divisione per 0) Dinamica: durante l esecuzione sui dati di input

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Lettura di dati da input In Java la lettura di dati da input

Подробнее

Esercitazione: Implementazione in linguaggio C dell ADT. Stack con l utilizzo. di linked list

Esercitazione: Implementazione in linguaggio C dell ADT. Stack con l utilizzo. di linked list Esercitazione: Implementazione in linguaggio C dell ADT Stack con l utilizzo di linked list Laboratorio di Programmazione Introduzione un ADT (Abstract Data Type) è un modello (formale) che generalizza

Подробнее

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

Подробнее

Astrazione Dati. Nicola Fanizzi. Linguaggi di Programmazione [010194] 10 mag, Dipartimento di Informatica Università degli Studi di Bari

Astrazione Dati. Nicola Fanizzi. Linguaggi di Programmazione [010194] 10 mag, Dipartimento di Informatica Università degli Studi di Bari Astrazione Dati Nicola Fanizzi Dipartimento di Informatica Università degli Studi di Bari Linguaggi di Programmazione [010194] 10 mag, 2016 Sommario 1 Astrazione dati Incapsulamento Esempio / ADT pila

Подробнее

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

Подробнее

Specifica: la sintassi. Specifica: la semantica. Specifica: la semantica

Specifica: la sintassi. Specifica: la semantica. Specifica: la semantica Tipi di dato e strutture dati Specifica e realizzazione di strutture informative come classi Che cos è un tipo di dato? Tutti i linguaggi di programmazione tipati forniscono tipi ed operatori predefiniti

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

Strutture dati e loro organizzazione. Gabriella Trucco

Strutture dati e loro organizzazione. Gabriella Trucco Strutture dati e loro organizzazione Gabriella Trucco Introduzione I linguaggi di programmazione di alto livello consentono di far riferimento a posizioni nella memoria principale tramite nomi descrittivi

Подробнее

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

Подробнее

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi.. 2010/2011 Sommario Conversione di tipo:casting Tipo enumerativo lgebra Booleana Esercizi Conversione di tipo:casting Il casting o conversione di tipo avviene

Подробнее

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)

Подробнее

Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati

Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati Informatica 3 LEZIONE 10: Introduzione agli algoritmi e alle strutture dati Modulo 1: Perchè studiare algoritmi e strutture dati Modulo 2: Definizioni di base Informatica 3 Lezione 10 - Modulo 1 Perchè

Подробнее

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

Подробнее

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

Подробнее

18 - Vettori. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

18 - Vettori. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 18 - Vettori Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it Corso di

Подробнее

Introduzione al Linguaggio C

Introduzione al Linguaggio C INFORMATICA 1 Lezione 3 (Introduzione al Linguaggio C, Introduzione ai Tipi di dato, Cenni alla codifica binaria) Introduzione al Linguaggio C 1 Passi fondamentali del C Definito nel 1972 (AT&T Bell Labs)

Подробнее

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX Indice Prefazione Gli Autori Ringraziamenti dell Editore La storia del C XVII XXIX XXXI XXXIII PARTE A Capitolo 1 Computer 1 1.1 Hardware e software 2 1.2 Processore 3 1.3 Memorie 5 1.4 Periferiche di

Подробнее

Indice. Prefazione. 3 Oggetti e Java 53

Indice. Prefazione. 3 Oggetti e Java 53 Prefazione xv 1 Architettura dei calcolatori 1 1.1 Calcolatori e applicazioni 1 1.1.1 Alcuni esempi di applicazioni 3 1.1.2 Applicazioni e interfacce 4 1.2 Architettura dei calcolatori 7 1.2.1 Hardware

Подробнее

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

Basi della programmazione in Java. Anteprima. Uso delle variabili. Il concetto di variabile Uso delle variabili. Input da tastiera I tipi Esercizi Basi della programmazione in Java Nicola Drago [email protected] Dipartimento di Informatica Università di Verona Anteprima Il concetto di variabile Uso delle variabili Dichiarazione Assegnamento Visualizzazione

Подробнее

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

Подробнее

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;

Подробнее

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 [email protected] Lunedì 10 maggio 2010 http://disi.unitn.it/~agiordani/ I tipi di dati scalari I tipi aritmetici, i tipi enumerativi

Подробнее

Funzioni, Stack e Visibilità delle Variabili in C

Funzioni, Stack e Visibilità delle Variabili in C Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7

Подробнее

Introduzione alla programmazione in C++

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

Подробнее

Espressioni ed operatori in C

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

Подробнее

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

Подробнее

Laboratorio di programmazione

Laboratorio di programmazione Laboratorio di programmazione Lezione VIII Tatiana Zolo [email protected] 1 PROGRAMMAZIONE A OGGETTI Quando si programma a oggetti si scompone il problema in sottogruppi di parti collegate che tengono

Подробнее

Programmazione con Java

Programmazione con Java Programmazione con Java Classi e istanze in Java Definizione di classe in Java A meno che non si usino classi già scritte da altri, prima di poter creare un qualsiasi oggetto devo creare la sua rappresentazione:

Подробнее

Lezione 6 Introduzione al C++ Mauro Piccolo

Lezione 6 Introduzione al C++ Mauro Piccolo Lezione 6 Introduzione al C++ Mauro Piccolo [email protected] Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,

Подробнее

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

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

Подробнее

Client - Interfaccia - Implementazione

Client - Interfaccia - Implementazione Client - Interfaccia - Implementazione Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Violetta Lonati

Подробнее

Dati aggregati. Violetta Lonati

Dati aggregati. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica - in breve: Definizione di tipi Array Stringhe Strutture

Подробнее

Il Linguaggio C. Caratteristiche. Caratteristiche. Esempio di programma in C. Tipi di dato primitivi in C. Dati

Il Linguaggio C. Caratteristiche. Caratteristiche. Esempio di programma in C. Tipi di dato primitivi in C. Dati Caratteristiche Il Linguaggio C Linguaggio sequenziale (lineare), imperativo, strutturato a blocchi usabile anche come linguaggio di sistema software di base sistemi operativi compilatori... FI - Algoritmi

Подробнее

Programmazione a Oggetti Lezione 7. Il linguaggio Java: aspetti generali

Programmazione a Oggetti Lezione 7. Il linguaggio Java: aspetti generali Programmazione a Oggetti Lezione 7 Il linguaggio Java: aspetti generali Sommario Obiettivi di JAVA Portabilità: produrre codice eseguibile su più piattaforme (JVM) Affidabilità: Evitare il più possibile

Подробнее

Linguaggi e Ambienti di Programmazione

Linguaggi e Ambienti di Programmazione Linguaggi e Ambienti di Programmazione Principi e tecniche diffuse che si incontrano spesso nelle applicazioni dell informatica. Compilatori Editor di struttura: riceve in input una sequenza di comandi

Подробнее

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 19 - Eccezioni Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso

Подробнее

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

Подробнее

ADT: Abstract Data Type. Quasi ADT. ADT per collezioni di dati (code generalizzate) 04 I tipi di dati astratti (I parte)

ADT: Abstract Data Type. Quasi ADT. ADT per collezioni di dati (code generalizzate) 04 I tipi di dati astratti (I parte) ADT: Abstract Data Type I tipi di dati astratti (I parte) Gianpiero Cabodi e Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino Scopo Livello di astrazione sui dati tale da mascherare completamente

Подробнее

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

Подробнее

14 - Metodi e Costruttori

14 - Metodi e Costruttori 14 - Metodi e Costruttori Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

Подробнее

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

Подробнее

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014 Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 11 luglio 2014 TEMPO DISPONIBILE: 2 ore Negli esercizi

Подробнее

Linguaggio C: le funzioni. Visibilità variabili e passaggio parametri

Linguaggio C: le funzioni. Visibilità variabili e passaggio parametri Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: le funzioni. Visibilità variabili e passaggio parametri

Подробнее

Indice generale Introduzione...vii Parte I Concetti e costrutti fondamentali... 1 Capitolo 1 Introduzione al linguaggio... 3

Indice generale Introduzione...vii Parte I Concetti e costrutti fondamentali... 1 Capitolo 1 Introduzione al linguaggio... 3 Introduzione...vii Organizzazione del libro... viii Struttura del libro e convenzioni... ix Codice sorgente e progetti... x Compilare ed eseguire direttamente i listati e gli snippet di codice... x Compilare

Подробнее

Introduzione a Matlab

Introduzione a Matlab INFORMATICA B Ingegneria Elettrica Introduzione a Matlab Introduzione a Matlab Matlab (MATrix LABoratory) è uno strumento per il calcolo scientifico ed ingegneristico Matlab facilita lo sviluppo di programmi

Подробнее

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi:

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi: SQL e linguaggi di programmazione L interazione con l ambiente SQL può avvenire in 3 modi: in modo interattivo col server attraverso interfacce o linguaggi ad hoc legati a particolari DBMS attraverso i

Подробнее

Fondamenti di Informatica T-1

Fondamenti di Informatica T-1 Fondamenti di Informatica T-1 Introduzione al linguaggio Java - Input/Output, Variabili, Tipi Tutor: Allegra De Filippo [email protected] a.a. 2015/2016 Fondamenti di Informatica T-1 Allegra De

Подробнее

A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas

A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas Classi e oggetti A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas Oggetti La programmazione orientata agli oggetti, OOP (Object-Oriented Programming),

Подробнее

Capitolo 9. Tipi enumerativi, tipi generici e interfacce. c 2005 Pearson Education Italia Capitolo 9-1 / 73

Capitolo 9. Tipi enumerativi, tipi generici e interfacce. c 2005 Pearson Education Italia Capitolo 9-1 / 73 Capitolo 9 Tipi enumerativi, tipi generici e interfacce c 2005 Pearson Education Italia Capitolo 9-1 / 73 Sommario: Tipi enumerativi, tipi generici e interfacce 1 Definizione di tipi enumerativi La classe

Подробнее

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

Подробнее

Informatica 3. LEZIONE 1: Introduzione. Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di programmazione

Informatica 3. LEZIONE 1: Introduzione. Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di programmazione Informatica 3 LEZIONE 1: Introduzione Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di Informatica 3 Lezione 1- Modulo 1 Introduzione al corso Introduzione Corso di Informatica 3

Подробнее