Introduzione alla programmazione con linguaggio Java { Dr. M. Carta, Ing. M. Ennas, Ing. S. Piras, Ing. F. Saba }

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Introduzione alla programmazione con linguaggio Java. 2004 { Dr. M. Carta, Ing. M. Ennas, Ing. S. Piras, Ing. F. Saba }"

Transcript

1 Introduzione alla programmazione con linguaggio Java

2 Note di Copyright Queste trasparenze (slide) sono coperte dalle leggi sul copyright. Testi grafica e immagini in essa contenuti sono di proprietà dei rispettivi autori: Dr. Maurizio Carta, Ing.. Mauro Ennas, Ing.. Stefano Piras e Ing.. Fabrizio Saba. Tali slide possono essere duplicate e riprodotte dalle scuole di ogni ordine e grado italiane o estere per applicazioni legate alla didattica e senza finalità di lucro. Ogni altra finalità o uso (ivi compresa la duplicazione su supporto magnetico, la trasmissione, la memorizzazione e la stampa totale o parziale) è vietata senza autorizzazione scritta da parte degli autori. Gli autori non si assumono nessuna responsabilità sulle informazioni contenute in queste slide che sono state realizzate per finalità meramente didattiche e sono aggiornate alla data riportata in calce. L intestazione a piè pagina deve comunque non essere alterata e deve sempre essere riportata anche in un utilizzo parziale del suddetto materiale.

3 Indice del corso Modulo 1: Introduzione Modulo 2: Sintassi Java Modulo 3: Oggetti e Classi Modulo 4: Features Modulo 5: Eccezioni Modulo 6: GUI Modulo 7: Extra

4 Modulo 1 Definizioni introduttive e concetti ricorrenti

5 In questo modulo Il processo di produzione del software Java Virtual Machine Garbage Collection Code Security Scrivere, compilare ed eseguire un applicazione Java Docs

6 Sintesi degli argomenti trattati Processi Waterfall Unified Model Concetti chiave dell OOP (programmazione orientata agli oggetti) Java Virtual Machine Code Security Garbage Collection Classi Oggetti: attributi e metodi

7 Processi Programmazione Java SDK 2.0

8 Processi Metodologia orientata agli oggetti È una tecnica do modellazione dei sistemi Descrive e modella i sistemi come una interazione tra oggetti correlati tra loro L interazione degli oggetti all interno del sistema è organizzata in classi La metodologia consiste di tre componenti Un processo Una notazione Un insieme di regole

9 Processi Metodologia orientata agli oggetti Un processo Attività passo passo, utilizzate come modello di progetto e sviluppo di software (esempio: Rational Unified Process) Una notazione Rappresentazione, spesso grafica, che descrive i sottosistemi che complessivamente costituiscono il sistema in esame e le loro interazioni Un insieme di regole Insieme di regole che descrivono come il sistema lavora

10 Processi Analisi e Progetto La fase di analisi focalizza la sua attenzione sui seguenti punti: 1. Stabilire una chiara visione sul problema economico (business view) 2. Identificare le fasi che il sistema deve attraversare nel funzionamento 3. Stabilire un vocabolario comune per descrivere il problema 4. Individuare la soluzione migliore al problema

11 Processi Analisi e Progetto La fase di progetto focalizza la sua attenzione sui seguenti punti: 1. Risolvere il problema 2. Identificare il come fare invece del cosa fare 3. Introdurre sistemi di supporto che permettano al sistema di lavorare 4. Definire ed implementare strategie per il sistema

12 Caratteristiche della OOP Oggetti e Classi Le caratteristiche principali della programmazione orientata agli oggetti sono rappresentate da oggetti e Classi Gli oggetti sono i mattoni mediante i quali si costruiscono sofisticati software nell OOP Le classi rappresentano il modo in cui devono essere realizzati gli oggetti

13 Caratteristiche della OOP Oggetti Sono singole entità, univocamente determinabili Vengono utilizzati come mattoni nel progetto di software Object Oriented Hanno identità, dati e comportamento Possono essere semplici o complessi Possono essere reali (appartenenti al mondo reale) o immaginari Hanno attributi e operazioni (detti metodi) Sono istanze dinamiche di una classe

14 Caratteristiche della OOP Classi La classe definisce un oggetto Tutti gli oggetti vengono creati a partire da una classe ossia sono istanze di una classe

15 Caratteristiche della OOP Caratteristiche principali dell OOP Astrazione Icapsulazione Associazione Aggregazione Composizione Ereditarietà Coesione ed accoppiamento Polimorfismo

16 Caratteristiche principali della OOP Astrazione (Abstraction) Astrazione Processo che ignorando i dettagli concentra la sua attenzione sulle caratteristiche essenziali di un oggetto o di un entità Semplifica le funzionalità e le informazioni Aiuta l utente ad interagire con gli oggetti

17 Caratteristiche principali della OOP Incapsulazione (Encapsulation) Incapsulazione Si riferisce al meccanismo di mascheramento dell informazione all interno di un oggetto Produce due visioni dell oggetto Una visione esterna: mostra cosa l oggetto è in grado di fare Una visione interna: spiega come è in grado di fare un determinato task

18 Caratteristiche principali della OOP Aggregazione (Aggregation) Aggregazione Si riferisce alla possibilità di definire un oggetto in termini di parti componenti È un tipo particolare di associazione Qualifica relazioni del tipo Come un

19 Caratteristiche principali della OOP Composizione (Composition) Composizione Si palesa quando un oggetto è contenuto in un altro È un tipo di associazione Qualifica la relazione di tipo Contenuto in

20 Caratteristiche principali della OOP Ereditarietà (Inheritance) Ereditarietà È il meccanismo attraverso il quale si definisce una nuova classe in termini di una classe esistente Viene qualificata dalla frase è un oppure un tipo di Permette di relazionare gruppi di classi in modo da permettere una loro gestione collettiva ed il loro utilizzo

21 Caratteristiche principali della OOP Ereditarietà (Inheritance) Animali Cani Gatti Uccelli

22 Caratteristiche principali della OOP Coesione ed Accoppiamento Coesione Misura quanto una classe o un gruppo di classi contribuisca ad un singolo obiettivo all interno di un sistema Accoppiamento Misura quanto due o più classi sono legate ad altre classi È anche una misura delle dipendenze fra oggetti

23 Caratteristiche principali della OOP Polimorfismo (Polymorphism) Il polimorfismo si riferisce a funzioni che possono essere applicate ad oggetti istanziati da classi diverse, per ottenere lo stesso risultato semantico Operazioni simili definite per più di una classe sono polimorfiche Si basa sull ereditarietà L implementazione di un metodo polimorfico dipende dall oggetto al quale è applicato

24 Caratteristiche principali della OOP Gerarchia di oggetti Veicoli Aerei Auto Sportive Utilitarie Cabriolet Formula 1

25 Metodi di sviluppo Sviluppo di processi Metodi tradizionali Processo a cascata Metodi unificati di sviluppo Unified Process

26 Metodi tradizionali di sviluppo Processo a cascata Metodi tradizionali Requirements Analysis Design Implementation Tempo Lo sviluppo viene completato in una esecuzione delle fasi sequenziale Ogni fase deve essere completamente eseguita e documentata prima di passare alla successiva; i problemi di implementazione si scoprono tardi ed è difficile intervenire Test

27 Metodi unificati di sviluppo OOA&D Process Metodi unificati di sviluppo Tipicamente si tratta un progetto come se si tratasse di tanti progetti parziali UML (Unified Modeling Language) è una notazione non un processo La Unified Software Development Process è iterativo ed incrementale

28 Metodi unificati di sviluppo Ciclo di vita del progetto La Unified Software Development Process è iterativo ed incrementale L iterazione si riferisce ad un passo nel ciclo di vita del progetto Il risultato dell interazione è una crescita del progetto Progetti di grosse dimensioni vengono scomposti in più progetti di dimensioni ridotte

29 Metodi unificati di sviluppo Ciclo di vita del progetto La Unified Software Development Process è iterativo ed incrementale Per ogni fase di sviluppo si deve: Selezionare ed utilizzare i casi di uso rilevanti Creare il progetto utilizzando l architettura scelta Implementare il progetto utilizzando componenti Verificare se i componenti soddisfano i casi d uso precedentemente individuati Quando l iterazione ha raggiunto il suo obbiettivo, lo sviluppo procede alla stadio sucessivo

30 Metodi unificati di sviluppo Fasi principali Fasi del ciclo iterativo e incrementale Inception Elanoration Costruction Transition Ogni ciclo presenta uno o più iterazioni Il completamento di ciascuna fase rappresenta una milestone

31 Metodi unificati di sviluppo Fasi del ciclo iterativo e incrementale Inizializzazione (inception) Lancio del progetto Stabilire un obbiettivo economico per il progetto Definire il problema in termini di bussines Individuare rischi critici Definire le finalità per chiarire il problema Documentare il Bussiness Problem

32 Metodi unificati di sviluppo Fasi del ciclo iterativo e incrementale Elaborazione (elaboration) Analisi e progetto di alto livello Stabilire l architettura di base del progetto Monitorare i rischi critici del progetto Creare un piano che supporti gli obbiettivi del progetto

33 Metodi unificati di sviluppo Fasi del ciclo iterativo e incrementale Costruzione (costruction) In questa fase tutto è teso a produrre miglioramenti progressivi nella costruzione del software

34 Metodi unificati di sviluppo Fasi del ciclo iterativo e incrementale Transizione (transiction) Introdurre il software ai clienti Completare il test della versione preliminare Implementare il tuning della prestazioni, dell utilizzazione e della soddisfazione da parte del cliente

35 Metodi unificati di sviluppo Flusso Flusso del ciclo iterativo ed incrementale Analisi iniziale dei requisiti Analisi Progetto Implementazione Testing Differenti iterazioni del flusso per realizzare differenti stati di approfondimento dei contenuti

36 Metodi unificati di sviluppo Flusso Requirements Tempo Feed Back Analysis Design Implementation Test

37 Metodi unificati di sviluppo Sviluppo iterativo del flusso 1 iterazione Requirements Analysis Design Implementation Test 2 iterazione Requirements Analysis Design Implementation Test 3 iterazione Requirements Analysis Design Implementation Test Tempo

38 Metodi unificati di sviluppo Benefici del flusso iterarivo Riduzione dei costi Migliore manutenzione e scheluding Migliore distribuzione dei tempi di lavoro di gruppo Migliore capacità di far fronte alle esigenze dei clienti utilizzatori

39 Concetti chiave dell OOP Programmazione Java SDK 2.0

40 Concetti chiave dell OOP Java Virtual Machine (JVM) Bytecode Il codice prodotto dalla compilazione e che dovrà essere digerito dalla JVM è compatto ed efficiente (ottimizzato): la maggior parte dei controlli di tipo vengono effettuati nel compilation time Esso risulta platform indipendent ossia il codice (programma.java) compilato produce un bytecode (programma.class) che può essere eseguito su una JVM di una piattaforma qualsiasi Uni*, linux, Windows, Mac-OS ) che soddisfi le Java Virtual Machine Specifications della Sun-Microsystems

41 Concetti chiave dell OOP Java Virtual Machine (JVM) Compilazione Sistema Run Time Hello.java CLASS LOADER Javac Hello.java LA RETE Esecuzione Hello.class HARDWARE

42 Concetti chiave dell OOP Sicurezza del codice (code security) Ambiente di esecuzione (runtime environment) Tre processi principali Caricare Il class loader carica tutte le classi necessarie per l esecuzione, separando lo spazio dei nomi locale da quello importato dalla rete! Verificare Tutto il codice viene rigorosamente verificato, prima di essere eseguito sulla macchina locale! Eseguire

43 Concetti chiave dell OOP Sicurezza del codice (code security) Class Loader I metodi locali vengono sempre caricati per primi (limita i cavalli di Troia) Bytecode verifier Rispetto delle specifiche della JVM Non ci devono essere violazioni di accesso I tipi dei parametri devono essere sempre corretti Non ci devono essere conversioni dei dati proibite (interi in reference ad esempio) Runtime Il codice viene eseguito se e solo se soddisfa i requisiti sopra indicati

44 Concetti chiave dell OOP Sicurezza del codice (code security) Compilazione Sistema Run Time Hello.java CLASS LOADER Javac Hello.java LA RETE Byte Code Verifier Interpreter JIT code generator Hello.class Runtime HARDWARE

45 Concetti chiave dell OOP Garbage collection Il meccanismo di deallocazione della memoria è automatico, non dipende dal programmatore! La deallocazione è a cura della JVM che esegue dei processi di verifica della memoria occupata e permette di marcare quella che può essere successivamente liberata Ciò limita la possibilità che una applicazione possa terminare involontariamente (crash) a causa di una impossibilità di allocazione di nuova memoria memory leaks La deallocazione dinamica ( garbage collection ) varia con l implementazione della JVM su piattaforme distinte

46 Concetti chiave dell OOP Concetti ricorrenti Variabile Classe Oggetto Attributi Metodi Erediterietà e polimorfismo Interfaccia e Package

47 Concetti chiave dell OOP Classe: modello di un oggetto Classe Modello di oggetto, contenente variabili e metodi che ne rappresentano il comportamento e gli attributi. Una classe può ereditare variabili e metodi da altre classi Metodo di classe Metodo definito in una classe; può essere richiamato tramite la classe oppure una delle sue istanze Istanza di una classe Equivale ad un oggetto; ogni oggetto è un istanza di una classe Metodo istanza Metodo definito in una classe, che agisce su un istanza della classe stessa. In generale, i metodi istanza sono chiamati semplicemente metodi

48 Concetti chiave dell OOP Oggetto: Istanza di una classe Variabile istanza Variabile che appartiene ad un istanza individuale, il cui valore è depositato in un istanza Interfaccia Collezione di specifiche astratte di comportamenti, che ogni classe può implementare individualmente Oggetto Istanza concreta di una classe. Oggetti diversi, istanze della stessa classe, accedono agli stessi metodi, ma portano spesso valori differenti nelle proprie variabili istanza Package Collezione di classi ed interfacce. Le classi dei package diversi da java.lang devono essere importate esplicitamente o richiamate con il nome completo del package

49 Concetti chiave dell OOP Variabili e tipi di dato Variabile istanza Definiscono gli attributi e lo stato di un oggetto Variabili di classe Le variabili di classe sono simili alle variabili di istanza ma si applicano a tutte le istanze di una stessa classe e alla classe stessa Variabili locali Sono dichiarate ed utilizzate nelle dichiarazioni di metodi, ad esempio per i contatori dei cicli, come valori temporanei, rilevanti solo all interno di uno stesso metodo (o di un blocco) la memoria occupata da una variabile locale viene liberata Diversamente da altri linguaggi, Java non possiede variabili globali, cioè variabili visibili (accessibili) da tutte le componenti del programma. Per comunicare dati globali si utilizzano variabili istanza e di classe.

50 Concetti chiave dell OOP Incapsulazione (incapsulation) L icapsulazione è il processo attraverso il quale si nascondono le parti interne dell implementazione di un oggetto, consentendo l accesso a quest ultimo soltanto attraverso un interfaccia definita

51 Concetti chiave dell OOP Incapsulazione (incapsulation) Package è il livello di protezione di default, significa che metodi e variabili sono accessibili a tutte le altre classi dello stesso package Protezione private significa che metodi e variabili sono accessibili soltanto ad altri metodi della stessa classe Protezione public significa che metodi e variabili sono accessibili a tutte le classi java Protezione protected significa che metodi e variabili sono accessibili a tutte le classi dello stesso package e alle sottoclassi esterne

52 Concetti chiave dell OOP Incapsulazione (incapsulation) Modificatore Stessa Classe Stesso package Sottoclasse Universo Public SI SI SI SI Protected SI SI SI Default SI SI Private SI Una variabile, un metodo o una classe hanno accessibilità di default se non hanno un modificatore di protezione esplicito come quelli indicati.

53 Concetti chiave dell OOP Ereditarietà (inheritance) L ereditarietà è il concetto della programmazione orientata agli oggetti in cui tutte le classi sono organizzate in una stretta gerarchia Ogni classe della gerarchia ha delle superclassi (classi che la precedono) e sottoclassi (classi che la seguono in gerarchia) Le sottoclassi ereditano attributi e comportamenti dalle loro superclassi

54 Concetti chiave dell OOP Polimorfismo (polymorphism) Il polimorfismo è l abilità di avere molte forme differenti Un oggetto ha una sola forma Una variabile è polimorfica perché riferisce oggetti di forme differenti Una reference ha più forme (può individuare oggetti di forma differente) public class Impiegato extends Object public class Manager extends Impiegato

55 Concetti chiave dell OOP Riusabilità del codice La programmazione in java è basata su moduli e componenti software le cui funzionalità ottimizzate possono essere utilizzate per realizzare più codici distinti che richiedono stesse funzionalità È buona norma realizzare codici che prevedano il riuso delle routine e degli algoritmi che vengono di volta in volta programmati, per permettere una più agile costruzione di codici con funzionalità simili migliorando così le performance di produzione software

56 Scrivere, compilare ed eseguire Compilare javac Hello.java Eseguire java Hello // // CiaoMondo.java CiaoMondo.java public public class class CiaoMondo CiaoMondo { { public static void main CiaoMondo (Sting args){ public static void main CiaoMondo (Sting args){ System.out.println( Ciao Mondo! ); System.out.println( Ciao Mondo! ); } } } }

57 Applicazioni java La prima application: HelloWorld // CiaoMondo.java public class CiaoMondo { public static void main CiaoMondo (Sting args){ //contenuto: System.out.println( Ciao Mondo! ); } } //fine della classe

58 Compilazione e running (1) Compilazione e running Compilazione di application e applet Sono necessari i file class della API java, disponibili gratuitamente nel sito: Installare JDK (Java Development Kit), edizione standard o enterprise: Java 2 SDK, Standard Edition (J2SE) Java 2 SDK, Enterprise Edition (J2SEE) In tal modo si avrà una directory del tipo C:/j2se1.4.1

59 Compilazione e running (2) Compilazione e running Nella sottodirectory c:/j2se/bin vi sono i comandi Per la compilazione si usa c:/j2se/bin/javac HelloWorld.java In assenza di errori la compilazione produce il file HelloWorld.class

60 Compilazione e running (3) Compilazione e running Compilazione di servlet Sono necessari i file class della API java per i servlet, disponibili gratuitamente nel sito: Installare JSDK (Java Servlet Development Kit) In tal modo si avrà una directory c:/jsdk2.1

61 Compilazione e running (4) Compilazione e running Compilazione di servlet La directory c:/jsdk2.1 contiene il file servlet.jar, che serve per compilare i servlet Il comando è: c:/j2se/bin/javac classpath c:/jsdk2.1/servlet.jar Aservlet.java

62 Compilazione e running (5) Compilazione e running Esecuzione (running) Di un applicazione C:/j2se/bin/java HelloWorld Di un applet C:/j2se/bin/appletviewer AnApplet.html oppure Collegamento all URL di AnApplet.html Di un servlet: Collegamento all URL di AServlet.html e interazione (con bottoni, campi di testo, ecc.)

63 Compilazione e running (6) Compilazione e running Per evitare di digitare il path completo di ogni comando, aggiungere c:/j2se/bin alla variabile d ambiente PATH In tal modo, il comando di compilazione diventa, ad esempio: prompt>javac C:/>javac

64 Java docs Application Programming Interface (API)

65 Grazie per l attenzione Domande?

66 Introduzione alla programmazione con linguaggio Java

67 Note di Copyright Queste trasparenze (slide) sono coperte dalle leggi sul copyright. Testi grafica e immagini in essa contenuti sono di proprietà dei rispettivi autori: Dr. Maurizio Carta, Ing.. Mauro Ennas, Ing.. Stefano Piras e Ing.. Fabrizio Saba. Tali slide possono essere duplicate e riprodotte dalle scuole di ogni ordine e grado italiane o estere per applicazioni legate alla didattica e senza finalità di lucro. Ogni altra finalità o uso (ivi compresa la duplicazione su supporto magnetico, la trasmissione, la memorizzazione e la stampa totale o parziale) è vietata senza autorizzazione scritta da parte degli autori. Gli autori non si assumono nessuna responsabilità sulle informazioni contenute in queste slide che sono state realizzate per finalità meramente didattiche e sono aggiornate alla data riportata in calce. L intestazione a piè pagina deve comunque non essere alterata e deve sempre essere riportata anche in un utilizzo parziale del suddetto materiale.

68 Indice del corso Modulo 1: Introduzione Modulo 2: Sintassi Java Modulo 3: Oggetti e Classi Modulo 4: Features Modulo 5: Eccezioni Modulo 6: GUI Modulo 7: Extra

69 Modulo 2 Sintassi del linguaggio Java

70 In questo modulo Il processo di produzione del software Java Virtual Machine Garbage Collection Code Security Scrivere, compilare ed eseguire un applicazione Java Docs

71 Sintesi degli argomenti trattati Sintassi di base Variabili di tipo primitivo Dichiarazione e definizione di variabili Convenzioni sui nomi di classi, variabili e metodi Casting Controllo del flusso: costrutti e operatori Costrutti Operatori Matrici e vettori Arrays Il package java.util: classi Vector, Hashtable, Enumeration, StringTokenizer

72 Sintassi di base Programmazione Java SDK 2.0

73 Sintassi di base di Java Commenti Esistono tre tipi di commenti: /* per testo su più righe */ // su una sola riga /** per il sistema di documentazione javadoc */

74 Sintassi di base di Java Tipi primitivi Esistono otto tipi di dati primitivi Interi byte, short, int, long In virgola mobile double, float Caratteri char Logici boolean

75 Sintassi di base di Java Interi Tipo Byte Short Int Long Dimensione 8 bit 16 bit 32 bit 64 bit Valore Da -128 a 127 Da a Da a Da a Per default un intero e di tipo Int

76 Sintassi di base di Java Reali (in virgola mobile, floating point) Tipo Float Double Dimensione 32 bit 64 bit Valore +/ E+38F +/ E+308 Per default un floating point è di tipo double

77 Sintassi di base di Java I letterali floating point presentano: Un punto decimale Una parte esponenziale (E o e) Sono seguiti da F o f (float) Sono seguiti da D o d (double) Esempio: 3.14 semplice floating point (double) 6.456F valore in virgola mobile (float) 115.2E+306D grosso valore double in virgola mobile (D è ridondante)

78 Sintassi di base di Java Carattere (char) Rappresenta un carattere Unicode a 16 bit senza segno Un char definito deve essere racchiuso da apici ( ) Usa le seguenti notazioni: a la lettera a /t il tab

79 Sintassi di base di Java Variabili logiche (boolean) Il tipo è rappresentato da boolean che ha due valori letterali: True (vero) False (falso)

80 Sintassi di base di Java Variabili stringhe (String) Il tipo String non è primitivo ma è una classe. Si usa per rappresentare una serie di caratteri Un letterale String è costituito da una serie di caratteri racchiusi tra doppi apici ( ) Può contenere salti di riga, tabulazioni e Unicode. Ciao Mondo Ciao Mondo /t Ciao Mondo Ciao Mondo /n Ciao Mondo stringa semplice stringa con tabulatore stringa nuova riga

81 Sintassi di base di Java Dichiarazione di variabili Per utilizzare una variabile bisogna prima dichiararla Una dichiarazione di variabile è costituita da un tipo e un nome Esempio: Int n, m; float a; char c; string mionome; boolean stato;

82 Sintassi di base di Java Assegnazione di variabili Si può assegnare un valore ad una variabile tramite l operatore di assegnamento (=) Es. x = 2; stato = true; L assegnazione si può fare anche quando si dichiara una variabile Es. int x = 2; boolean stato = true; string s= ciao ; Si possono concatenare più assegnazioni Es. x = y = 0;

83 Sintassi di base di Java Assegnazione di variabili Dichiarazione di una variabile = indicazione del tipo Es. int m; Assegnazione = attribuzione di un valore (coerente con il tipo) Es. m = 2; ma non m = 2.3; Dichiarazione e assegnazione: int m = 2;

84 Sintassi di base di Java Casting Ogni variabile primitiva è ospitata in una casella di memoria; Quando si dichiara e inizializza una variabile, viene riservato per essa uno spazio in memoria, di ampiezza variabile a seconda del tipo Ad esempio per un double occorre uno spazio maggiore che per un int

85 Sintassi di base di Java Casting (esempio) Int n = 12 a0x Int m = n 1100 a0x57 Viene copiato il valore di n, cioè il contenuto della casella di memoria di n, nella casella di memoria di m

86 Sintassi di base di Java Casting Non si possono uguagliare variabili di tipo diverso: int n = 2; double b = n; Non si possono eseguire operazioni con tipi diversi: Double b = 2.5 * n; Bisogna trasformare n (10) in double (10.0)

87 Sintassi di base di Java Casting Bisogna ospitare n in una casella di memoria più ampia, atta a contenere un double Questo si realizza con il casting Double nd = (double) n; (nd=10.0) In generale, la sintassi del casting è: Tipo v1; Tipo v2 = (tipo1) v1;

88 Sintassi di base di Java Casting Ci sono due tipi di casting: il primo ospita le variabili in spazi di memoria più ampi di quello di partenza: byte short, byte int, byte double, short int, short double, int double Questo tipo di casting non fa perdere precisione

89 Sintassi di base di Java Casting Il secondo ospita le variabili in spazi di memoria più piccoli quello di partenza: double int, double short, double byte, int short, short byte Questo tipo di casting fa perdere precisione e, se fatto male conduce a risultati senza senso

90 Sintassi di base di Java Casting (esempi) double d1 = ; int n1 = (int) d1; byte b1 = (byte) n1; int n2 = 1248; byte b2 = (byte) n2; n1 vale 12 OK, b1 vale 12 n2 vale 1248 NO! Il byte va da -128 a 127

91 Sintassi di base di Java Casting (esempi) L application ExPrimitive.java insegna ad utilizzare variabili di tipo primitivo L application ExStringhe1.java insegna le basi dell utilizzazione delle stringhe L application ExCasting.java insegna a fare il casting di variabili di tipo primitivo

92 Sintassi di base di Java Convenzioni sui nomi Variabili nomi con iniziale minuscola; se composti, la seconda iniziale è maiuscola boolean stato string nome, tuonome Classi nomi con iniziale maiuscola Class String class CiaoMondo Metodi nomi composti, anche verbi, che spieghino la funzione del metodo. La prima lettera è minuscola, le atre iniziali maiuscole accendifari() addvalue()

93 Sintassi di base di Java Conclusioni Abbiamo visto come dichiarare delle varibili di tipo primitivo e assegnare loro dei valori che siano coerenti con il tipo Abbiamo visto come ospitare il contenuto di una variabile in un altra di tipo diverso

94 Sintassi di base di Java Richiami e suggerimenti Ricordare bene tutti i tipi primitivi Interi byte, short, int, long In virgola mobile double, float Caratteri char Logici boolean

95 Costruttori e operatori Programmazione Java SDK 2.0

96 Costruttori e operatori I costrutti. I cicli Ripetono un istruzione o un blocco per un certo numero di volte In java esistono tre tipi di cicli: ciclo for ciclo while ciclo do

97 Costruttori e operatori La sintassi del ciclo for For (inizializzazione; espressione booleana; incremento) { istruzione o blocco di istruzioni } Esempio: int i; for (i=0; i < 3; i++) { out.println ( ciaoooooooo! ); }

98 Costruttori e operatori La sintassi del ciclo while while (espressione booleana) { istruzione o blocco di istruzioni } Esempio: int i; while (i < 3) { out.println ( ciaoooooooo! ); }

99 Costruttori e operatori La sintassi del ciclo do do { istruzione o blocco di istruzioni } while (espressione booleana); Esempio: int i=0; do { out.println ( ciaoooooooo! ); i++; } while (i < 3); Esercizio: ExCicli.java Esercizio: ExCicli.java

100 Costruttori e operatori I costrutti condizionali Eseguono diverse istruzioni a seconda del verificarsi o meno di certe condizioni In java esistono: costrutto if costrutto switch

101 Costruttori e operatori La sintassi del costrutto if (1) Il costrutto if ha varie sintassi a seconda che venga utilizzato con la parola chiave else o else if Nel caso più semplice si presenta come segue: if (espressione booleana) { istruzione o blocco di istruzioni }

102 Costruttori e operatori La sintassi del costrutto if (2) Quando è presente un else si scrive come segue: if (espressione booleana) { istruzione o blocco di istruzioni } else { altre istruzioni }

103 Costruttori e operatori La sintassi del costrutto if (3) Altrimenti con l else if, ha la seguente sintassi: if (espressione booleana) { istruzione o blocco di istruzioni } else if (espressione booleana) { altre istruzioni } altri else if in numero qualunque else { altre istruzioni }

104 Costruttori e operatori La sintassi del costrutto if - Esempi int voto; if (voto>6){ Out.println( sei stato promosso ); } else { out.println( Sei stato bocciato ); }

105 Costruttori e operatori La sintassi del costrutto if - Esempi int intvoto; if if (voto (voto >= >= 8) 8) { out.println( Sei out.println( Sei stato stato promosso promosso con con ottimo! ); ottimo! ); } else else if if (voto (voto >= >= 7){ 7){ out.println( Sei out.println( Sei stato stato promosso promosso con con buono ); buono ); } else else if if (voto (voto >= >= 6){ 6){ out.println( Sei out.println( Sei stato stato promosso promosso con con sufficiente ); sufficiente ); } else else if if (voto (voto < 6){ 6){ out.println( Sei out.println( Sei stato stato respinto ); respinto ); }

106 Costruttori e operatori La sintassi del costrutto switch Il costrutto switch si usa quando il valore di una variabile deve essere confrontato con una seri di valori interi (solo interi) switch (espressione) { case valore1: istruzioni; break; case valore2: istruzioni; break; default: istruzioni; break; }

107 Costruttori e operatori La sintassi del costrutto switch - Esempi int intvoto; switch switch (voto) (voto){ case case (8): (8): System.out.println( Promosso con con 8 ); 8 ); break; break; case case (7): (7): System.out.println( Promosso con con 7 ); 7 ); break; break; default: default: System.out.println( Voto sconosciuto ); sconosciuto ); break; break; }

108 Costruttori e operatori La sintassi del costrutto switch - Esempi int intday; switch switch (day) (day){ case case 1: 1: out.println( Lunedì ); break; break; case case 2: 2: out.println( Martedì ); break; break; default: default: out.println( nessun giorno ); giorno ); break; break; }

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL 1 Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono

Dettagli

Oggetti Lezione 3. aspetti generali e definizione di classi I

Oggetti Lezione 3. aspetti generali e definizione di classi I Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione

Dettagli

Le variabili. Olga Scotti

Le variabili. Olga Scotti Le variabili Olga Scotti Cos è una variabile Le variabili, in un linguaggio di programmazione, sono dei contenitori. Possono essere riempiti con un valore che poi può essere riletto oppure sostituito.

Dettagli

Corso di Programmazione ad Oggetti

Corso di Programmazione ad Oggetti Corso di Programmazione ad Oggetti Introduzione alla programmazione ad oggetti a.a. 2008/2009 Claudio De Stefano 1 La programmazione modulare Un programma può essere visto come un insieme di moduli che

Dettagli

! Programmazione strutturata ! TDA. ! Classi, incapsulamento, ! OO. ! Scambio messaggi, eredità, polimorfismo. ! OO in Java

! Programmazione strutturata ! TDA. ! Classi, incapsulamento, ! OO. ! Scambio messaggi, eredità, polimorfismo. ! OO in Java Riassunto Rassegna API - 1 Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 17 3 maggio 2015! Programmazione

Dettagli

Introduzione alla Programmazione ad Oggetti in C++

Introduzione alla Programmazione ad Oggetti in C++ Introduzione alla Programmazione ad Oggetti in C++ Lezione 1 Cosa è la Programmazione Orientata agli Oggetti Metodologia per costruire prodotti software di grosse dimensioni che siano affidabili e facilmente

Dettagli

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it UML: Class Diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania Class Diagram Forniscono una vista strutturale

Dettagli

Classi ed Oggetti in JAVA

Classi ed Oggetti in JAVA Classi ed Oggetti in JAVA Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dell Informazione Università di Siena Via Roma 56 53100 SIENA Uff. 0577233606 rigutini@dii.unisi.it www.dii.unisi.it/~rigutini/

Dettagli

AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Unified Process. Prof. Agostino Poggi

AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Unified Process. Prof. Agostino Poggi AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Unified Process Prof. Agostino Poggi Unified Process Unified Software Development Process (USDP), comunemente chiamato

Dettagli

Programmazione Java: Variabili membro, Metodi La parola chiave final

Programmazione Java: Variabili membro, Metodi La parola chiave final Programmazione Java: Variabili membro, Metodi La parola chiave final romina.eramo@univaq.it http://www.di.univaq.it/romina.eramo/tlp Roadmap Definire una classe» Variabili membro» Metodi La parola chiave

Dettagli

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof. Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record

Dettagli

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori Gli array Array e puntatori Laboratorio di Informatica I un array è un insieme di elementi (valori) avente le seguenti caratteristiche: - un array è ordinato: agli elementi dell array è assegnato un ordine

Dettagli

Abstract Data Type (ADT)

Abstract Data Type (ADT) Abstract Data Type Pag. 1/10 Abstract Data Type (ADT) Iniziamo la nostra trattazione presentando una nozione che ci accompagnerà lungo l intero corso di Laboratorio Algoritmi e Strutture Dati: il Tipo

Dettagli

P a s q u a l e t t i V e r o n i c a

P a s q u a l e t t i V e r o n i c a PHP: OOP Pasqualetti Veronica Oggetti Possiamo pensare ad un oggetto come ad un tipo di dato più complesso e personalizzato, non esistente fra i tipi tradizionali di PHP, ma creato da noi. 2 Gli oggetti

Dettagli

/** * VETTORE DINAMICO elementi */ private Vector elementi; /** * METODO COSTRUTTORE */ public coda() { elementi=new Vector(); }

/** * VETTORE DINAMICO elementi */ private Vector elementi; /** * METODO COSTRUTTORE */ public coda() { elementi=new Vector(); } import java.util.*; class coda * Questa classe contiene tutti i metodi per la gestione della coda * @author D'Ambrosio Giovanni Classe 4D I.T.I.S. Grottaminarda * @version 26/02/2010 * VETTORE DINAMICO

Dettagli

esercizi Esercizi / problemi

esercizi Esercizi / problemi Sistemi informativi applicati (reti di calcolatori): esercizi 1 Esercizi / problemi 1. Creare un applicazione che calcoli la media aritmetica dei seguenti valori interi: 35, 117, 23 e ne visualizzi il

Dettagli

PROGRAMMAZIONE ORIENTATA AGLI OGGETTI in C++

PROGRAMMAZIONE ORIENTATA AGLI OGGETTI in C++ PROGRAMMAZIONE ORIENTATA AGLI OGGETTI in C++ Classi ed oggetti. Classi derivate, ereditarietà e polimorfismo. Template Capitoli 12, 13, 14 Luis Joyannes Aguilar. Fondamenti di Programmazione in C++. Algoritmi,

Dettagli

IL LINGUAGGIO C++ Configurazione di Dev-C++

IL LINGUAGGIO C++ Configurazione di Dev-C++ IL LINGUAGGIO C++ Note sull'uso di DevC++ Requisiti di sistema per Dev-C++ - Sistema operativo Microsoft Windows 95, 98, Millenium Edition, NT 4, 2000 o XP - RAM: 8 Mb (consigliati almeno 32 Mb) - CPU:

Dettagli

Arduino: Programmazione

Arduino: Programmazione Programmazione formalmente ispirata al linguaggio C da cui deriva. I programmi in ARDUINO sono chiamati Sketch. Un programma è una serie di istruzioni che vengono lette dall alto verso il basso e convertite

Dettagli

RUP (Rational Unified Process)

RUP (Rational Unified Process) RUP (Rational Unified Process) Caratteristiche, Punti di forza, Limiti versione del tutorial: 3.3 (febbraio 2007) Pag. 1 Unified Process Booch, Rumbaugh, Jacobson UML (Unified Modeling Language) notazione

Dettagli

Rational Unified Process Introduzione

Rational Unified Process Introduzione Rational Unified Process Introduzione G.Raiss - A.Apolloni - 4 maggio 2001 1 Cosa è E un processo di sviluppo definito da Booch, Rumbaugh, Jacobson (autori dell Unified Modeling Language). Il RUP è un

Dettagli

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Lezione 1 Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Definizione di utente e di programmatore L utente è qualsiasi persona che usa il computer anche se non è in grado di programmarlo

Dettagli

La fase di realizzazione. La fase di realizzazione (cont.) Traduzione in Java del diagramma degli use case

La fase di realizzazione. La fase di realizzazione (cont.) Traduzione in Java del diagramma degli use case Università degli Studi di Roma La Sapienza Corso di Laurea in Ingegneria dell Informazione Sede di Latina Corso di Laurea in Ingegneria dell Informazione Consorzio Nettuno La fase di realizzazione si occupa

Dettagli

Linguaggio C: introduzione

Linguaggio C: introduzione Linguaggio C: introduzione Il linguaggio C è un linguaggio general purpose sviluppato nel 1972 da Dennis Ritchie per scrivere il sistema operativo UNIX ed alcune applicazioni per un PDP-11. Il linguaggio

Dettagli

I file di dati. Unità didattica D1 1

I file di dati. Unità didattica D1 1 I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità

Dettagli

Informatica Applicata

Informatica Applicata Ing. Irina Trubitsyna Concetti Introduttivi Programma del corso Obiettivi: Il corso di illustra i principi fondamentali della programmazione con riferimento al linguaggio C. In particolare privilegia gli

Dettagli

Università degli Studi di Parma. Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica

Università degli Studi di Parma. Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica A.A. 2007-08 CORSO DI INGEGNERIA DEL SOFTWARE Prof. Giulio Destri http://www.areasp.com (C) 2007 AreaSP for

Dettagli

Elementi di semantica denotazionale ed operazionale

Elementi di semantica denotazionale ed operazionale Elementi di semantica denotazionale ed operazionale 1 Contenuti! sintassi astratta e domini sintattici " un frammento di linguaggio imperativo! semantica denotazionale " domini semantici: valori e stato

Dettagli

Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi

Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi alternative: function nome { lista-comandi } oppure nome ( ) {

Dettagli

Rapida Introduzione all uso del Matlab Ottobre 2002

Rapida Introduzione all uso del Matlab Ottobre 2002 Rapida Introduzione all uso del Matlab Ottobre 2002 Tutti i tipi di dato utilizzati dal Matlab sono in forma di array. I vettori sono array monodimensionali, e così possono essere viste le serie temporali,

Dettagli

Funzioni. Corso di Fondamenti di Informatica

Funzioni. Corso di Fondamenti di Informatica Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Funzioni Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti e dei

Dettagli

MODELLO AD OGGETTI PER LE BASI DI DATI E ANALISI DI PRODOTTI COMMERCIALI. Luca Carnini. Tesina presentata per la discussione del diploma di laurea in

MODELLO AD OGGETTI PER LE BASI DI DATI E ANALISI DI PRODOTTI COMMERCIALI. Luca Carnini. Tesina presentata per la discussione del diploma di laurea in MODELLO AD OGGETTI PER LE BASI DI DATI E ANALISI DI PRODOTTI COMMERCIALI di Luca Carnini Tesina presentata per la discussione del diploma di laurea in Ingegneria informatica Politecnico di Milano sede

Dettagli

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile Problemi connessi all utilizzo di un numero di bit limitato Abbiamo visto quali sono i vantaggi dell utilizzo della rappresentazione in complemento alla base: corrispondenza biunivoca fra rappresentazione

Dettagli

Il linguaggio Java. Concetti base. I packages

Il linguaggio Java. Concetti base. I packages Il linguaggio Java I packages Concetti base Un package è una collezione di classi ed interfacce correlate che fornisce uno spazio dei nomi ed un controllo sugli accessi Un package facilita il reperimento

Dettagli

Fondamenti di Informatica. Dichiarazione, creazione e gestione di array in Java

Fondamenti di Informatica. Dichiarazione, creazione e gestione di array in Java Fondamenti di Informatica Dichiarazione, creazione e gestione di array in Java Array in Java - creazione La creazione fa una inizializzazione implicita: num = new int[10]; con valore 0 per int e double,

Dettagli

Fondamenti di Informatica e Laboratorio T-AB Ingengeria dell Automazione a.a. 2008/2009. Lab 02 Tipi semplici in C

Fondamenti di Informatica e Laboratorio T-AB Ingengeria dell Automazione a.a. 2008/2009. Lab 02 Tipi semplici in C Fondamenti di Informatica e Laboratorio T-AB Ingengeria dell Automazione a.a. 2008/2009 Lab 02 Tipi semplici in C Obiettivo dell esercitazione Acquistare familiarità con i tipi di dato semplici supportati

Dettagli

Le funzioni. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni

Le funzioni. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni Funzioni Le funzioni Con il termine funzione si intende, in generale, un operatore che, applicato a un insieme di operandi, consente di calcolare un risultato, come avviene anche per una funzione matematica

Dettagli

Tipicamente un elaboratore è capace di trattare domini di dati di tipi primitivi

Tipicamente un elaboratore è capace di trattare domini di dati di tipi primitivi TIPI DI DATO Tipicamente un elaboratore è capace di trattare domini di dati di tipi primitivi numeri naturali, interi, reali caratteri e stringhe di caratteri e quasi sempre anche collezioni di oggetti,

Dettagli

Scuola Specializzazione Istruzione Superiore. Object Oriented Programming (OOP) Introduzione alla programmazione orientata agli oggetti

Scuola Specializzazione Istruzione Superiore. Object Oriented Programming (OOP) Introduzione alla programmazione orientata agli oggetti Scuola Specializzazione Istruzione Superiore Object Oriented Programming (OOP) Introduzione alla programmazione orientata agli oggetti Michele Batocchi ITC Vittorio Emanuele II Perugia A.S. 2007/2008 Introduzione

Dettagli

Concetto di Funzione e Procedura METODI in Java

Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile

Dettagli

Processi (di sviluppo del) software. Fase di Analisi dei Requisiti. Esempi di Feature e Requisiti. Progettazione ed implementazione

Processi (di sviluppo del) software. Fase di Analisi dei Requisiti. Esempi di Feature e Requisiti. Progettazione ed implementazione Processi (di sviluppo del) software Fase di Analisi dei Requisiti Un processo software descrive le attività (o task) necessarie allo sviluppo di un prodotto software e come queste attività sono collegate

Dettagli

Linguaggio C++ Uso ambiente Dev C++ con creazione di progetto con scelta Basic --> Empty Project

Linguaggio C++ Uso ambiente Dev C++ con creazione di progetto con scelta Basic --> Empty Project Linguaggio C++ Uso ambiente Dev C++ con creazione di progetto con scelta Basic --> Empty Project NB: E necessario: adoperare la sintassi più evoluta per le direttive di precompilazione 1, usando come contenitore

Dettagli

Progetti reali con ARDUINO

Progetti reali con ARDUINO Progetti reali con ARDUINO Introduzione alla scheda Arduino (parte 2ª) ver. Classe 3BN (elettronica) marzo 22 Giorgio Carpignano I.I.S. Primo LEVI - TORINO Il menù per oggi Lettura dei pulsanti Comunicazione

Dettagli

AA 2006-07 LA RICORSIONE

AA 2006-07 LA RICORSIONE PROGRAMMAZIONE AA 2006-07 LA RICORSIONE AA 2006-07 Prof.ssa A. Lanza - DIB 1/18 LA RICORSIONE Il concetto di ricorsione nasce dalla matematica Una funzione matematica è definita ricorsivamente quando nella

Dettagli

MIPS Instruction Set 2

MIPS Instruction Set 2 Laboratorio di Architettura 15 aprile 2011 1 Architettura Mips 2 Chiamata a Funzione 3 Esercitazione Registri MIPS reference card: http://refcards.com/docs/waetzigj/mips/mipsref.pdf 32 registri general

Dettagli

Visibilità dei Membri di una Classe

Visibilità dei Membri di una Classe Visibilità dei Membri di una Classe Lezione 10 Ogni classe definisce un proprio scope racchiude il codice contenuto nella definizione della classe e di tutti i suoi membri ogni metodo della classe definisce

Dettagli

Sottoprogrammi: astrazione procedurale

Sottoprogrammi: astrazione procedurale Sottoprogrammi: astrazione procedurale Incapsulamento di un segmento di programma presente = false; j = 0; while ( (j

Dettagli

Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment

Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment Bloodshed Dev-C++ Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio IDE = Integrated Development Environment Gerardo Pelosi 01 Ottobre 2014 Pagina 1 di 8 Dev-C++ - Installazione Potete

Dettagli

Gli algoritmi. Gli algoritmi. Analisi e programmazione

Gli algoritmi. Gli algoritmi. Analisi e programmazione Gli algoritmi Analisi e programmazione Gli algoritmi Proprietà ed esempi Costanti e variabili, assegnazione, istruzioni, proposizioni e predicati Vettori e matrici I diagrammi a blocchi Analisi strutturata

Dettagli

Pila.h versione 6. class Pila { private: int marker; int * contenuto; public:

Pila.h versione 6. class Pila { private: int marker; int * contenuto; public: 1 Pila.h versione 6 struct Pila { private: int size; int defaultgrowthsize; int marker; int * contenuto; void cresci(int increment); public: Pila(int initialsize) ; Pila(); ~Pila() ; void copy(pila * to)

Dettagli

Programmazione di rete in Java

Programmazione di rete in Java Programmazione di rete in Java Reti di calcolatori Una rete di calcolatori è un sistema che permette la condivisione di dati informativi e risorse (sia hardware sia software) tra diversi calcolatori. Lo

Dettagli

Introduzione ad Access

Introduzione ad Access Introduzione ad Access Luca Bortolussi Dipartimento di Matematica e Informatica Università degli studi di Trieste Access E un programma di gestione di database (DBMS) Access offre: un supporto transazionale

Dettagli

CORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity

CORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity CORSO DI ALGORITMI E PROGRAMMAZIONE JDBC Java DataBase Connectivity Anno Accademico 2002-2003 Accesso remoto al DB Istruzioni SQL Rete DataBase Utente Host client Server di DataBase Host server Accesso

Dettagli

+ / operatori di confronto (espressioni logiche/predicati) / + 5 3 9 = > < Pseudo codice. Pseudo codice

+ / operatori di confronto (espressioni logiche/predicati) / + 5 3 9 = > < Pseudo codice. Pseudo codice Pseudo codice Pseudo codice Paolo Bison Fondamenti di Informatica A.A. 2006/07 Università di Padova linguaggio testuale mix di linguaggio naturale ed elementi linguistici con sintassi ben definita e semantica

Dettagli

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Algoritmi Algoritmi Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Il procedimento (chiamato algoritmo) è composto da passi elementari

Dettagli

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1) Strutture Strutture e Unioni DD cap.10 pp.379-391, 405-406 KP cap. 9 pp.361-379 Strutture Collezioni di variabili correlate (aggregati) sotto un unico nome Possono contenere variabili con diversi nomi

Dettagli

ALGORITMI 1 a Parte. di Ippolito Perlasca. Algoritmo:

ALGORITMI 1 a Parte. di Ippolito Perlasca. Algoritmo: ALGORITMI 1 a Parte di Ippolito Perlasca Algoritmo: Insieme di regole che forniscono una sequenza di operazioni atte a risolvere un particolare problema (De Mauro) Procedimento che consente di ottenere

Dettagli

Introduzione al linguaggio C Gli array

Introduzione al linguaggio C Gli array Introduzione al linguaggio C Gli array Vettori nome del vettore (tutti gli elementi hanno lo stesso nome, c) Vettore (Array) Gruppo di posizioni (o locazioni di memoria) consecutive Hanno lo stesso nome

Dettagli

Lezione 9: Strutture e allocazione dinamica della memoria

Lezione 9: Strutture e allocazione dinamica della memoria Lezione 9: Strutture e allocazione dinamica della memoria Laboratorio di Elementi di Architettura e Sistemi Operativi 9 Maggio 2012 Allocazione dinamica della memoria Memoria dinamica È possibile creare

Dettagli

PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI

PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI PROBLEMA DELLA RICERCA in termini generali: Dati in input un insieme S di elementi (numeri, caratteri, stringhe, ) e un elemento

Dettagli

Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto

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

Dettagli

Così come le macchine meccaniche trasformano

Così come le macchine meccaniche trasformano DENTRO LA SCATOLA Rubrica a cura di Fabio A. Schreiber Il Consiglio Scientifico della rivista ha pensato di attuare un iniziativa culturalmente utile presentando in ogni numero di Mondo Digitale un argomento

Dettagli

Guida rapida all uso di ECM Titanium

Guida rapida all uso di ECM Titanium Guida rapida all uso di ECM Titanium Introduzione Questa guida contiene una spiegazione semplificata del funzionamento del software per Chiputilizzare al meglio il Tuning ECM Titanium ed include tutte

Dettagli

Corso di Fondamenti di Informatica

Corso di Fondamenti di Informatica Corso di Fondamenti di Informatica L uso delle funzioni in C++ Claudio De Stefano - Corso di Fondamenti di Informatica 1 Funzioni Nel C++ è possibile scomporre problemi complessi in moduli più semplici

Dettagli

INTRODUZIONE, LINGUAGGIO, HANDS ON. Giuseppe Cirillo g.cirillo@unina.it

INTRODUZIONE, LINGUAGGIO, HANDS ON. Giuseppe Cirillo g.cirillo@unina.it INTRODUZIONE, LINGUAGGIO, HANDS ON Giuseppe Cirillo g.cirillo@unina.it Il linguaggio C 1972-Dennis Ritchie 1978-Definizione 1990-ANSI C 1966 Martin Richars (MIT) Semplificando CPL usato per sviluppare

Dettagli

Le Stringhe. Un introduzione operativa. Luigi Palopoli

Le Stringhe. Un introduzione operativa. Luigi Palopoli Le Stringhe p.1/19 Le Stringhe Un introduzione operativa Luigi Palopoli ReTiS Lab - Scuola Superiore S. Anna Viale Rinaldo Piaggio 34 Pontedera - Pisa Tel. 050-883444 Email: palopoli@sssup.it URL: http://feanor.sssup.it/

Dettagli

Progettazione Orientata agli Oggetti

Progettazione Orientata agli Oggetti Progettazione Orientata agli Oggetti Sviluppo del software Ciclo di vita del software: comprende tutte le attività dall analisi iniziale fino all obsolescenza (sviluppo, aggiornamento, manutenzione) Procedimento

Dettagli

Ricapitoliamo. Ricapitoliamo

Ricapitoliamo. Ricapitoliamo Ricapitoliamo Finora ci siamo concentrati sui processi computazionali e sul ruolo che giocano le procedure nella progettazione dei programmi In particolare, abbiamo visto: Come usare dati primitivi (numeri)

Dettagli

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Condizione di sincronizzazione Qualora si voglia realizzare una determinata politica di gestione delle risorse,la decisione se ad

Dettagli

How to Develop Accessible Linux Applications

How to Develop Accessible Linux Applications How to Develop Accessible Linux Applications Sharon Snider Copyright 2002 IBM Corporation v1.1, 2002-05-03 Diario delle Revisioni Revisione v1.1 2002-05-03 Revisionato da: sds Convertito in DocBook XML

Dettagli

GUIDA ALLA PROGRAMMAZIONE GRAFICA IN C

GUIDA ALLA PROGRAMMAZIONE GRAFICA IN C GUIDA ALLA PROGRAMMAZIONE GRAFICA IN C.:luxx:. PREMESSE In questa guida non verranno trattati i costrutti di flusso, le funzioni, o comunque le caratteristiche del linguaggio, che si danno come presupposte.

Dettagli

Quando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione.

Quando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione. Grafi ed Alberi Pag. /26 Grafi ed Alberi In questo capitolo richiameremo i principali concetti di due ADT che ricorreranno puntualmente nel corso della nostra trattazione: i grafi e gli alberi. Naturale

Dettagli

Linguaggio del calcolatore. Algebra di Boole AND, OR, NOT. Notazione. And e or. Circuiti e reti combinatorie. Appendice A + dispense

Linguaggio del calcolatore. Algebra di Boole AND, OR, NOT. Notazione. And e or. Circuiti e reti combinatorie. Appendice A + dispense Linguaggio del calcolatore Circuiti e reti combinatorie ppendice + dispense Solo assenza o presenza di tensione: o Tante componenti interconnesse che si basano su e nche per esprimere concetti complessi

Dettagli

Cos è una stringa (1) Stringhe. Leggere e scrivere stringhe (1) Cos è una stringa (2) DD Cap. 8 pp. 305-341 KP Cap. 6 pp. 241-247

Cos è una stringa (1) Stringhe. Leggere e scrivere stringhe (1) Cos è una stringa (2) DD Cap. 8 pp. 305-341 KP Cap. 6 pp. 241-247 Cos è una stringa (1) Stringhe DD Cap. 8 pp. 305-341 KP Cap. 6 pp. 241-247 Una stringa è una serie di caratteri trattati come una singola unità. Essa potrà includere lettere, cifre, simboli e caratteri

Dettagli

Lab. 1 - Introduzione a Matlab

Lab. 1 - Introduzione a Matlab Lab. 1 - Introduzione a Matlab Alcune informazioni su Matlab Matlab è uno strumento per il calcolo scientifico utilizzabile a più livelli, dalla calcolatrice tascabile, alla simulazione ed analisi di sistemi

Dettagli

R.Focardi Laboratorio di Ingegneria del Software 6. 1

R.Focardi Laboratorio di Ingegneria del Software 6. 1 Networking Java permette comunicazioni in rete basate sul concetto di socket, che permette di vedere la comunicazione in termini di flusso (stream), in modo analogo all input-output di file, usando Stream

Dettagli

Esempi di algoritmi. Lezione III

Esempi di algoritmi. Lezione III Esempi di algoritmi Lezione III Scopo della lezione Implementare da zero algoritmi di media complessità. Verificare la correttezza di un algoritmo eseguendolo a mano. Imparare a valutare le prestazioni

Dettagli

if t>=0 x=1; else x=0; end fornisce, nella variabile x, il valore della funzione gradino a tempi continui, calcolata in t.

if t>=0 x=1; else x=0; end fornisce, nella variabile x, il valore della funzione gradino a tempi continui, calcolata in t. Il programma MATLAB In queste pagine si introduce in maniera molto breve il programma di simulazione MAT- LAB (una abbreviazione di MATrix LABoratory). Introduzione MATLAB è un programma interattivo di

Dettagli

Descrizioni VHDL Behavioral

Descrizioni VHDL Behavioral 1 Descrizioni VHDL Behavioral In questo capitolo vedremo come la struttura di un sistema digitale è descritto in VHDL utilizzando descrizioni di tipo comportamentale. Outline: process wait statements,

Dettagli

Indicizzazione terza parte e modello booleano

Indicizzazione terza parte e modello booleano Reperimento dell informazione (IR) - aa 2014-2015 Indicizzazione terza parte e modello booleano Gruppo di ricerca su Sistemi di Gestione delle Informazioni (IMS) Dipartimento di Ingegneria dell Informazione

Dettagli

Le funzionalità di un DBMS

Le funzionalità di un DBMS Le funzionalità di un DBMS Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: DBMS.pdf Sistemi Informativi L-A DBMS: principali funzionalità Le

Dettagli

Riferimenti ed Oggetti

Riferimenti ed Oggetti Riferimenti e oggetti Riferimenti ed Oggetti In non si possono definire variabili di tipo oggetto ma solo di tipo riferimento a oggetto. I riferimenti sono assimilabili ai tipi base. Allocazione statica

Dettagli

Architetture CISC e RISC

Architetture CISC e RISC FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Architetture CISC e RISC 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n.

Dettagli

Laboratorio di Sistemi Fattoriale di un numero Jsp [Java]

Laboratorio di Sistemi Fattoriale di un numero Jsp [Java] Desideriamo realizzare una applicazione web che ci consenta di calcolare il fattoriale di un numero. L'esercizio in sé non particolarmente difficile, tuttavia esso ci consentirà di affrontare il problema

Dettagli

Esercizi Capitolo 5 - Alberi

Esercizi Capitolo 5 - Alberi Esercizi Capitolo 5 - Alberi Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile saltare alle

Dettagli

UML Component and Deployment diagram

UML Component and Deployment diagram UML Component and Deployment diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania I diagrammi UML Classificazione

Dettagli

APPLICAZIONI SU PIU FILE

APPLICAZIONI SU PIU FILE APPLICAZIONI SU PIU FILE Serve poter sviluppare applicazioni su piú file: - alcune funzioni e alcune definizioni di dati in un file - altre funzioni e dati in file diversi Perché?? 1. Se il programma è

Dettagli

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO... Modulo A Programmiamo in Pascal Unità didattiche 1. Installiamo il Dev-Pascal 2. Il programma e le variabili 3. Input dei dati 4. Utilizziamo gli operatori matematici e commentiamo il codice COSA IMPAREREMO...

Dettagli

Il ciclo di vita del software

Il ciclo di vita del software Il ciclo di vita del software Il ciclo di vita del software Definisce un modello per il software, dalla sua concezione iniziale fino al suo sviluppo completo, al suo rilascio, alla sua successiva evoluzione,

Dettagli

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007 Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007 Dott.Davide Di Ruscio Dipartimento di Informatica Università degli Studi di L Aquila Lezione del 08/03/07 Nota Questi lucidi sono tratti

Dettagli

Dati importati/esportati

Dati importati/esportati Dati importati/esportati Dati importati Al workspace MATLAB script Dati esportati file 1 File di testo (.txt) Spreadsheet Database Altro Elaborazione dati Grafici File di testo Relazioni Codice Database

Dettagli

I class diagram. Class - names

I class diagram. Class - names I class diagram Forniscono una vista strutturale (statica) del sistema in termini di classi attributi operazioni relazioni tra classi (associazioni, generalizzazioni,...) Un class diagram rappresenta uno

Dettagli

Ricerca sequenziale di un elemento in un vettore

Ricerca sequenziale di un elemento in un vettore Ricerca sequenziale di un elemento in un vettore La ricerca sequenziale o lineare è utilizzata per ricercare i dati in un vettore NON ordinato. L algoritmo di ricerca sequenziale utilizza quan non ha alcuna

Dettagli

Un oggetto per la lettura dalla tastiera

Un oggetto per la lettura dalla tastiera Fondamenti di informatica Oggetti e Java ottobre 2012 1 Un oggetto per la lettura dalla tastiera Le API di Java hanno un oggetto System.in che rappresenta la tastiera del calcolatore, ma che non è semplice

Dettagli

Algebra Relazionale. algebra relazionale

Algebra Relazionale. algebra relazionale Algebra Relazionale algebra relazionale Linguaggi di Interrogazione linguaggi formali Algebra relazionale Calcolo relazionale Programmazione logica linguaggi programmativi SQL: Structured Query Language

Dettagli

Esercitazione 7. Procedure e Funzioni

Esercitazione 7. Procedure e Funzioni Esercitazione 7 Procedure e Funzioni Esercizio Scrivere un programma che memorizza in un array di elementi di tipo double le temperature relative al mese corrente e ne determina la temperatura massima,

Dettagli

Cicli in Visual Basic for Application. For contatore = inizio To fine istruzioni Next contatore

Cicli in Visual Basic for Application. For contatore = inizio To fine istruzioni Next contatore Cicli in Visual Basic for Application Le strutture del programma che ripetono l'esecuzione di una o più istruzioni sono chiamate Cicli. Alcune strutture per i cicli sono costruite in modo da venire eseguite

Dettagli

Ambienti di sviluppo integrato

Ambienti di sviluppo integrato Ambienti di sviluppo integrato Un ambiente di sviluppo integrato (IDE - Integrated Development Environment) è un ambiente software che assiste i programmatori nello sviluppo di programmi Esso è normalmente

Dettagli