Fondamenti di Programmazione

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Fondamenti di Programmazione"

Transcript

1 Fondamenti di Programmazione Capitolo 13 Programmazione Orientata agli Oggetti Prof. Mauro Gaspari:

2 Ereditarietà L'ereditarietà (= inheritance) permette di definire nuove classi utilizzando una versione modificata di classi esistenti. La programmazione object based estesa con il concetto di ereditarietà si chiama orientata agli oggetti (= object oriented). In questo modo è possibile riutilizzare il codice già scritto: aggiungere nuovi metodi ad una classe senza modificare la struttura della classe esistente. In genere l'ereditarietà permette di ereditare i metodi e gli attributi definiti in una classe.

3 Ereditarietà in Python In Python si ereditano prevalentemente i metodi. Però ereditando il metodo init si ereditano anche gli attributi.

4 Una classe per le carte class Card: suitlist = ["Clubs", "Diamonds", "Hearts", "Spades"] ranklist = ["narf", "Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King"] def init (self, suit=0, rank=0): self.suit = suit self.rank = rank def str (self): return (self.ranklist[self.rank] + " of " + self.suitlist[self.suit])

5 Class Variables Notare che le variabili suitlist e ranklist non vengono inizializzate negli oggetti! Queste variabili si chiamano anche attributi di classe (= class variables/attributes), sono definiti fuori dai metodi e si possono accedere da tutti i metodi della classe.

6 Esempio: Attributi di Classe >>> card1 = Card(1, 11) >>> print card1 Jack of Diamonds >>> card2 = Card(1, 3) >>> print card2 3 of Diamonds >>> print card2.suitlist[1] Diamonds >>> card1.suitlist[1] = "Swirly Whales" >>> print card1 Jack of Swirly Whales >>> print card2 3 of Swirly Whales NB. si consiglia di non modificare attributi di classe

7 Confronto di carte def cmp (self, other): # check the suits if self.suit > other.suit: return 1 if self.suit < other.suit: return -1 # suits are the same... check ranks if self.rank > other.rank: return 1 if self.rank < other.rank: return -1 # ranks are the same... it's a tie return 0 Il metodo cmp può essere utilizzato per ottenere l'overloading dei gli operatori condizionali su tipi definiti dall'utente. Per convenzione cmp ha due argomenti: self, other e restituisce: 1: se il primo oggetto è più grande. 1: se il secondo oggetto è più grande. 0: se sono uguali.

8 Osservazioni Alcuni insiemi sono completamente ordinati: interi, foatingpoint. Altri insiemi sono senza ordine, ovvero non c'èun modo sensato per stabilire un ordine (ad esempio i tipi di frutta). Altri insiemi sono parzialmente ordinati: è possibile confrontare alcuni elementi ma altri no. Per definire cmp è opportuno che l'insieme sia completamente ordinato. Si è deciso che il segno è più importante del valore della carta.

9 Esempio: mazzo di carte class Deck: NB. append è un metodo def init (self): che funziona sulle liste e non self.cards = [] for suit in range(4): sulle tuple. for rank in range(1, 14): self.cards.append(card(suit, rank)) def str (self): s = "" for i in range(len(self.cards)): s = s + " "*i + str(self.cards[i]) + "\n" return s

10 Altri metodi def printdeck(self): for card in self.cards: print card seleziona un indice a caso nell'intervallo def shuffle(self): import random ncards = len(self.cards) for i in range(ncards): j = random.randrange(i, ncards) self.cards[i], self.cards[j] = self.cards[j], self.cards[i]

11 Altri metodi NB. utilizzo dell'operatore in con oggetti: se il primo argomento è un oggetto si utilizza il metodo cmp per testare l'appartenenza. def removecard(self, card): if card in self.cards: self.cards.remove(card) return 1 else: return 0

12 Altri metodi def popcard(self): return self.cards.pop() def isempty(self): return (len(self.cards) == 0)

13 Come riutilizzare il codice per definire il concetto di mano. class Hand(Deck): def init (self, name=""): self.cards = [] self.name = name def addcard(self,card) : self.cards.append(card) NB. il metodo removecard si eredita da Deck quindi non è necessario ridefinirlo.

14 Come dare le carte In quale classe inserire questo metodo? Sembra più naturale in Deck class Deck :... def deal(self, hands, ncards=999): nhands = len(hands) for i in range(ncards): if self.isempty(): break card = self.popcard() hand = hands[i % nhands] hand.addcard(card) Numero di persone a cui si danno le carte # break if out of cards # take the top card # whose turn is next? # add the card to the hand

15 Come stampare una mano? Si può riutilizzare il metodo definito per Deck che viene ereditato. >>> deck = Deck() >>> deck.shuffle() >>> hand = Hand("frank") >>> deck.deal([hand], 5) >>> print hand Hand frank contains 2 of Spades 3 of Spades 4 of Spades Ace of Hearts 9 of Clubs

16 Oppure si può definire un metodo più specifico. NB. una volta definito class Hand(Deck) questo metodo overrides... quello della classe Deck def str (self): s = "Hand " + self.name if self.isempty(): s = s + " is empty\n" else: s = s + " contains\n" return s + Deck. str (self) Si chiama il metodo della classe Deck si può fare perché una mano è anche un Deck

17 Osservazioni In genere è sempre possibile usare istanze di una sottoclasse al posto di istanze della sua superclasse. La notazione Classe.metodo si può utilizzare per forzare l'utilizzo di un metodo della superclasse quando c'è anche un metodo nella classe corrente (si applica il next method ).

18 Esempio: gioco di carte class CardGame: def init (self): self.deck = Deck() self.deck.shuffle() NB. questo è il primo caso in cui la init fa anche un calcolo, ovvero mescola il mazzo.

19 Osservazioni Questa classe rappresenta un gioco generico. Posso realizzare giochi specifici ereditando da questa classe.

20 Esempio: uomo nero class OldMaidHand(Hand): segno dello stesso def removematches(self): colore count = 0 originalcards = self.cards[:] for card in originalcards: match = Card(3 card.suit, card.rank) if match in self.cards: self.cards.remove(card) self.cards.remove(match) print "Hand %s: %s matches %s" % (self.name,card,match) count = count + 1 return count

21 >>> game = CardGame() >>> hand = OldMaidHand("frank") >>> game.deck.deal([hand], 13) >>> print hand Hand frank contains Ace of Spades 2 of Diamonds 7 of Spades 8 of Clubs 6 of Hearts 8 of Spades 7 of Clubs Queen of Clubs 7 of Diamonds 5 of Clubs Jack of Diamonds 10 of Diamonds 10 of Hearts Esempio di uso NB. il metodo init è ereditato dalla classe Hand

22 Esempio di match >>> hand.removematches() Hand frank: 7 of Spades matches 7 of Clubs Hand frank: 8 of Spades matches 8 of Clubs Hand frank: 10 of Diamonds matches 10 of Hearts >>> print hand Hand frank contains Ace of Spades 2 of Diamonds 6 of Hearts Queen of Clubs 7 of Diamonds 5 of Clubs Jack of Diamonds

23 Classe oldmaidgame oldmadegame è una sottoclasse di cardgame. in più si definisce un metodo play che prende come parametro il numero di giocatori. dato che init è ereditata da cardgame il nuovo gioco parte con un mazzo già mescolato.

24 class OldMaidGame(CardGame): def play(self, names): self.deck.removecard(card(0,12)) # remove Queen of Clubs self.hands = [] # make a hand for each player for name in names : self.hands.append(oldmaidhand(name)) self.deck.deal(self.hands) # deal the cards print " Cards have been dealt" self.printhands() matches = self.removeallmatches() # remove initial matches print " Matches discarded, play begins" self.printhands() turn = 0 # play until all 50 cards are matched numhands = len(self.hands) while matches < 25: matches = matches + self.playoneturn(turn) turn = (turn + 1) % numhands print " Game is Over" self.printhands()

25 Remove all matches class OldMaidGame(CardGame):... def removeallmatches(self): count = 0 for hand in self.hands: count = count + hand.removematches() return count

26 play One Turn class OldMaidGame(CardGame):... def playoneturn(self, i): if self.hands[i].isempty(): return 0 neighbor = self.findneighbor(i) pickedcard = self.hands[neighbor].popcard() self.hands[i].addcard(pickedcard) print "Hand", self.hands[i].name, "picked", pickedcard count = self.hands[i].removematches() self.hands[i].shuffle() return count

27 find Neighbor class OldMaidGame(CardGame):... def findneighbor(self, i): numhands = len(self.hands) for next in range(1,numhands): neighbor = (i + next) % numhands if not self.hands[neighbor].isempty(): return neighbor

28 Esempio di partita >>> import cards >>> game = cards.oldmaidgame() >>> game.play(["allen","jeff","chris"]) Cards have been dealt È opportuno creare un modulo con le definizioni appena date. Per farlo è necessario salvarle in un file che supponiamo essere: cards.py. Questo file si può caricare con la primitiva import se si trova nella directory corrente.

Introduzione all' OO in Python

Introduzione all' OO in Python Introduzione all' OO in Python Linguaggi di Programmazione: Paradigmi di Programmazione (Sperimentazioni) Matteo Baldoni Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 85

Dettagli

Mini-HOWTO sull ordinamento dei dati Release 0.01

Mini-HOWTO sull ordinamento dei dati Release 0.01 Mini-HOWTO sull ordinamento dei dati Release 0.01 Andrew Dalke 3 aprile 2004 dalke@bioreason.com Sommario Questo documento è un piccolo resoconto su una mezza dozzina di metodi di organizzare una lista

Dettagli

Modulo 4: Ereditarietà, interfacce e clonazione

Modulo 4: Ereditarietà, interfacce e clonazione Modulo 4: Ereditarietà, interfacce e clonazione Argomenti Trattati: Classi, Superclassi e Sottoclassi Ereditarietà Ereditarietà ed Attributi Privati Override super Ereditarietà e Costruttori Polimorfismo

Dettagli

Parola chiave extends

Parola chiave extends Il Linguaggio Java Ereditarietà Ereditarietà L'ereditarietà permette di creare nuove classi sulla base di classi esistenti In particolare, permette di riusare il codice (metodi e campi); aggiungere nuovi

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

Programmazione a Oggetti Lezione 10. Ereditarieta

Programmazione a Oggetti Lezione 10. Ereditarieta Programmazione a Oggetti Lezione 10 Ereditarieta Sommario Come definire sottoclassi Costruttori Abstract Classes Final Ereditarietà: promemoria Strumento tipico dell OOP per riusare il codice e creare

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa 12 ADT: Lista, Pila, Coda A. Miola Marzo 2008 http://www.dia.uniroma3.it/~java/fondinf2/ ADT: Lista, Pila, Coda 1 Contenuti!Tipo

Dettagli

Programmazione II. Lezione 4. Daniele Sgandurra 30/09/2011. daniele.sgandurra@iit.cnr.it

Programmazione II. Lezione 4. Daniele Sgandurra 30/09/2011. daniele.sgandurra@iit.cnr.it Programmazione II Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 30/09/2011 1/46 Programmazione II Lezione 4 30/09/2011 Sommario 1 Esercitazione 2 Panoramica della Programmazione Ad Oggetti 3

Dettagli

Traduzione e adattamento a cura di Gylas per Giochi Rari

Traduzione e adattamento a cura di Gylas per Giochi Rari Traduzione e adattamento a cura di Gylas per Giochi Rari Versione 1.0 Luglio 2001 NOTA. La presente traduzione non sostituisce in alcun modo il regolamento originale del gioco; il presente documento è

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica Laboratorio di Informatica Introduzione a Python Dottore Paolo Parisen Toldin - parisent@cs.unibo.it Argomenti trattati Che cosa è python Variabili Assegnazione Condizionale Iterazione in una lista di

Dettagli

Calcolare il massimo di una lista

Calcolare il massimo di una lista Calcolare il massimo di una lista Ieri abbiamo imparato a calcolare il massimo di una lista predefinita: lista = [4,24,-89,81,3,0,-12,31] max = lista[0] # questo e' un commento: primo elemento di lista

Dettagli

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) 12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,

Dettagli

Traduzione e adattamento a cura di Gylas per Giochi Rari Versione 1.0 Luglio 2001. http://giochirari.it e-mail: giochirari@giochirari.

Traduzione e adattamento a cura di Gylas per Giochi Rari Versione 1.0 Luglio 2001. http://giochirari.it e-mail: giochirari@giochirari. Traduzione e adattamento a cura di Gylas per Giochi Rari Versione 1.0 Luglio 2001 http://giochirari.it e-mail: giochirari@giochirari.it NOTA. La presente traduzione non sostituisce in alcun modo il regolamento

Dettagli

costruttori e distruttori

costruttori e distruttori costruttori e distruttori Costruttore E un metodo che ha lo stesso nome della classe a cui appartiene: serve per inizializzare un oggetto all atto della sua creazione Ce ne possono essere uno, più di uno,

Dettagli

Prossime lezioni. Dai TDA agli oggetti. Riassunto. Riassunto TDA. Oggi. Stefano Mizzaro 1

Prossime lezioni. Dai TDA agli oggetti. Riassunto. Riassunto TDA. Oggi. Stefano Mizzaro 1 Prossime lezioni Dai TDA agli oggetti Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro mizzaro@dimi.uniud.it Programmazione, lezione 18 19 gennaio

Dettagli

Soluzione dell esercizio del 2 Febbraio 2004

Soluzione dell esercizio del 2 Febbraio 2004 Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo

Dettagli

progettare buone gerarchie

progettare buone gerarchie progettare buone gerarchie 1 generalizzazione permette di definire dettagli del modello a vari livelli di astrazione 2 generalizzazione le istanze delle classi più specifiche sono istanze anche delle classi

Dettagli

Programmazione ad Oggetti: JAVA. Esercitazione

Programmazione ad Oggetti: JAVA. Esercitazione Programmazione ad Oggetti: JAVA Esercitazione Docente Ing. Mariateresa Celardo mariateresa.celardo@uniroma2.it Scrivere la classe Motorino che ha i seguenti attributi colore: una stringa indicante il colore

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

da 2 a 5 giocatori, dai 10 anni in su, durata 30 minuti

da 2 a 5 giocatori, dai 10 anni in su, durata 30 minuti da 2 a 5 giocatori, dai 10 anni in su, durata 30 minuti OBIETTIVO Il vincitore è colui che, dopo due round di gioco, delle sue 11 ordinazioni, ne ha consegnate il maggior numero. CONTENUTO DELLA SCATOLA

Dettagli

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto: Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante

Dettagli

SERVIZIO DI MESSAGGISTICA ALL UTENTE. Manuale per l operatore

SERVIZIO DI MESSAGGISTICA ALL UTENTE. Manuale per l operatore SERVIZIO DI MESSAGGISTICA ALL UTENTE Manuale per l operatore rev. 02 giugno 2010 SOMMARIO COME USARE IL PROGRAMMA PER LA MESSAGGISTICA...3 COSA BISOGNA FARE PRIMA DI INIZIARE A UTILIZZARE IL PROGRAMMA...3

Dettagli

Alcuni Design Pattern in Java

Alcuni Design Pattern in Java Marco Faella Alcuni Design Pattern in Java basato su Progettazione del Software e Design Pattern in Java, di Cay Horstmann Pattern ITERATOR Contesto: 1) Un oggetto (aggregato) contiene altri oggetti (elementi)

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

Fondamenti di Programmazione

Fondamenti di Programmazione Fondamenti di Programmazione Capitolo 2 Variabili, Espressioni e Comandi Prof. Mauro Gaspari: gaspari@cs.unibo.it Valori e Tipi Un valore (= value) è una delle entità fondamentali che i programmi sono

Dettagli

Introduzione all uso di Eclipse

Introduzione all uso di Eclipse Introduzione all uso di Eclipse Daniela Micucci Programmazione Outline Eclipse: concetti generali Definire un workspace Creare un project Importare un file Utilizzo 1 Introduzione Eclipse è un ambiente

Dettagli

GESTIONE INFORMATICA DEI DATI AZIENDALI

GESTIONE INFORMATICA DEI DATI AZIENDALI GESTIONE INFORMATICA DEI DATI AZIENDALI Alberto ZANONI Centro Vito Volterra Università Tor Vergata Via Columbia 2, 00133 Roma, Italy zanoni@volterra.uniroma2.it Rudimenti di programmazione Programming

Dettagli

Esempio: il conto bancario

Esempio: il conto bancario Ereditarietà Prof. Francesco Scarcello D.E.I.S., Università della Calabria Corso di Informatica 2 Esempio: il conto bancario public class BankAccount { public BankAccount() { balance = 0; public BankAccount(double

Dettagli

ITIS Mattei Sondrio. Appunti veloci su moodle versione 2.7

ITIS Mattei Sondrio. Appunti veloci su moodle versione 2.7 ITIS Mattei Sondrio Appunti veloci su moodle versione 2.7 Generalità Moodle è una piattaforma web per pubblicare corsi, creare test, depositare dispense ecc. Ci sono vari tipi di utenti che usano moodle:

Dettagli

REGOLE DA TORNEO DI DUEL MASTERS Valide dal 6 agosto 2004

REGOLE DA TORNEO DI DUEL MASTERS Valide dal 6 agosto 2004 REGOLE DA TORNEO DI DUEL MASTERS Valide dal 6 agosto 2004 Introduzione Le Regole da Torneo di Duel Masters devono essere usate unitamente alle Regole Universali da Torneo DCI, alle Penalità Ufficiali DCI

Dettagli

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012 Fondamenti di informatica Oggetti e Java ottobre 2012 1 JUnit JUnit è uno strumento per assistere il programmatore Java nel testing JUnit consente di scrivere test di oggetti e classi Java i test sono

Dettagli

Simulazione traffico urbano

Simulazione traffico urbano Simulazione traffico urbano Si richiede di simulare il movimento del traffico in un ipotetico tratto di strada che viene percorso da delle automobili e che dei pedoni devono attraversare. La situazione

Dettagli

!"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&) !"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9

!#$%&&'()#*%+%+!#$',,'()#*%+ -)%*&'&'+'$.)+-$$%&&) !#$%&&'(%)'*+%,#-%#.'%&'#/0)-+#12+3,)4+56#7+#.')8'9 !"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&)!"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9 Slide 1 Paradigmi di Programmazione! Un linguaggio supporta uno stile di programmazione se

Dettagli

Introduzione al Python

Introduzione al Python Andrea Passerini passerini@disi.unitn.it Informatica Caratteristiche procedurale si specifica la procedura da eseguire sui dati strutturato concetto di visibililtà delle variabili orientato agli oggetti

Dettagli

Gestione Risorse Umane Web

Gestione Risorse Umane Web La gestione delle risorse umane Gestione Risorse Umane Web Generazione attestati di partecipazione ai corsi di formazione (Versione V03) Premessa... 2 Configurazione del sistema... 3 Estrattore dati...

Dettagli

Liberare la memoria allocata dinamicamente.

Liberare la memoria allocata dinamicamente. Scrivere un programma per la gestione dei libri e dei prestiti di una biblioteca universitaria. I libri sono caratterizzati dalle seguenti informazioni: titolo, autore, collocazione del libro, numero di

Dettagli

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 18 31/03/2014

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 18 31/03/2014 Laboratorio di Programmazione 1 1 Docente: dr. Damiano Macedonio Lezione 18 31/03/2014 Funzioni: Dichiarazione e Definizione La dichiarazione di una funzione serve a comunicare al compilatore quali sono

Dettagli

Esercizi della lezione 5 di Java

Esercizi della lezione 5 di Java Esercizi della lezione 5 di Java Esercizio 5 Create il tipo di dato Counter dell Esercizio 1 come sottoclasse del tipo di dato SimpleCounter. Esercizio 1 Create un tipo di dato Counter che abbia: un valore

Dettagli

Probabilità e bridge. Michele Impedovo

Probabilità e bridge. Michele Impedovo Probabilità e bridge Michele Impedovo Riassunto Nel gioco del bridge è di fondamentale importanza prevedere come sono distribuite le carte di un certo seme tra i due avversari. Questo articolo propone

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa E08 Soluzione Esercizi F. Gasparetti, C. Limongelli Marzo 2008 http://www.dia.uniroma3.it/~java/fondinf1/ Soluzione Esercizi

Dettagli

7.4 Estrazione di materiale dal web

7.4 Estrazione di materiale dal web 7.4 Estrazione di materiale dal web Salvataggio di file Salvataggio della pagina Una pagina web può essere salvata in locale per poterla consultare anche senza essere collegati alla Rete. Si può scegliere

Dettagli

Corso di Programmazione ad Oggetti

Corso di Programmazione ad Oggetti Corso di Programmazione ad Oggetti Il meccanismo dell ereditarietà a.a. 2008/2009 Claudio De Stefano 1 L ereditarietà consente di definire nuove classi per specializzazione o estensione di classi preesistenti,

Dettagli

PROGRAMMA GESTIONE TURNI MANUALE UTENTE. Programma Gestione Turni Manuale Utente versione 1.1

PROGRAMMA GESTIONE TURNI MANUALE UTENTE. Programma Gestione Turni Manuale Utente versione 1.1 PROGRAMMA GESTIONE TURNI MANUALE UTENTE INDICE 1 PREMESSA 3 2 COMANDI COMUNI 3 3 SEDI 3 4 FESTIVITÀ 4 5 PERIODI TURNI 4 6 COD. TURNI 6 7 TURNI SPORTIVI 9 8 COD. EQUIPAGGI 9 9 DISPONIBILITÀ 10 10 INDISPONIBILITÀ

Dettagli

NOTA. La presente traduzione non sostituisce in alcun modo il regolamento originale del gioco.

NOTA. La presente traduzione non sostituisce in alcun modo il regolamento originale del gioco. NOTA. La presente traduzione non sostituisce in alcun modo il regolamento originale del gioco. Il presente documento è da intendersi come un aiuto per i giocatori di lingua italiana per comprendere le

Dettagli

Lezione 4. Modello EER

Lezione 4. Modello EER Lezione 4 Modello EER 1 Concetti del modello EER Include tutti i concetti di modellazione del modello ER Concetti addizionali: sottoclassi/superclassi, specializzazione, categorie, propagazione (inheritance)

Dettagli

https://ftp.gruppotesta.it

https://ftp.gruppotesta.it https://ftp.gruppotesta.it Il sito FTP del Gruppo Armando Testa è stato sviluppato per permettere di inviare o ricevere files di grandi dimensioni (difficilmente veicolabili via e-mail), anche al di fuori

Dettagli

La struttura dati ad albero binario

La struttura dati ad albero binario La struttura dati ad albero binario L albero è una struttura dati nella quale le informazioni sono organizzate in modo gerarchico, dall alto verso il basso. Gli elementi di un albero si chiamano nodi,

Dettagli

Istruzioni per la configurazione di IziOzi

Istruzioni per la configurazione di IziOzi Istruzioni per la configurazione di IziOzi Installazione L'applicazione si può installare da qualunque dispositivo Android a partire dalla versione 4.1 con la procedura standard tramite Google Play Store.

Dettagli

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere. UML e i Casi d USO I casi d uso specificano una sequenza di azioni che producono un risultato visibile agli attori del sistema. Essi nascono per fornire descrizioni delle capacità del sistema. I casi d

Dettagli

BLACK JACK. Come si gioca

BLACK JACK. Come si gioca BLACK JACK INDICE 2 Il Gioco 2 Il tavolo da gioco 3 Le carte da gioco 5 Varianti del Gioco 7 Regole generali 12 BLACK JACK Il tavolo da gioco 2 Il gioco si svolge tra il banco rappresentato dal Casinó

Dettagli

Esercitazione di Basi di Dati

Esercitazione di Basi di Dati Esercitazione di Basi di Dati Corso di Fondamenti di Informatica 6 Maggio 2004 Come costruire una ontologia Marco Pennacchiotti pennacchiotti@info.uniroma2.it Tel. 0672597334 Ing.dell Informazione, stanza

Dettagli

10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress.

10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress. ESERCIZIARIO Risposte ai quesiti: 10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress. 10.2. Un numero intero in Java è compreso nell'intervallo ( 2 31 ) e (2 31

Dettagli

Introduzione. Java. Composizione. Esempio -- composizione. G. Prencipe prencipe@di.unipi.it. È qualcosa che abbiamo già visto varie volte

Introduzione. Java. Composizione. Esempio -- composizione. G. Prencipe prencipe@di.unipi.it. È qualcosa che abbiamo già visto varie volte Java riutilizzo delle classi G. Prencipe prencipe@di.unipi.it Introduzione Una delle caratteristiche fondamentali in Java è il riutilizzo del codice Ci sono due modi per ottenerlo Creare oggetti di classi

Dettagli

Algebra Booleana ed Espressioni Booleane

Algebra Booleana ed Espressioni Booleane Algebra Booleana ed Espressioni Booleane Che cosa è un Algebra? Dato un insieme E di elementi (qualsiasi, non necessariamente numerico) ed una o più operazioni definite sugli elementi appartenenti a tale

Dettagli

Il modello EER comprende tutti i concetti di modellazione del modello ER, cui si aggiungono:

Il modello EER comprende tutti i concetti di modellazione del modello ER, cui si aggiungono: IL MODELLO EER Modellazione Entità-Associazione estesa 2 Modellazione EER (modellazione ER-estesa) Il modello EER comprende tutti i concetti di modellazione del modello ER, cui si aggiungono: i concetti

Dettagli

Introduzione al MATLAB c Parte 2

Introduzione al MATLAB c Parte 2 Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 18 gennaio 2008 Outline 1 M-file di tipo Script e Function Script Function 2 Costrutti di programmazione

Dettagli

Regole del gioco UNO CONTENUTO DELLA CONFEZIONE: 108 Carte così distribuite: 19 Carte di colore Rosso che vanno dallo 0 al 9

Regole del gioco UNO CONTENUTO DELLA CONFEZIONE: 108 Carte così distribuite: 19 Carte di colore Rosso che vanno dallo 0 al 9 Regole del gioco UNO CONTENUTO DELLA CONFEZIONE: 108 Carte così distribuite: 19 Carte di colore Rosso che vanno dallo 0 al 9 19 Carte di colore Blu che vanno dallo 0 al 9 19 Carte di colore Giallo che

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa 11 Tipi astratti di dato e loro rappresentazione A. Miola Marzo 28 http://www.dia.uniroma3.it/~java/fondinf2/ ADT e Rappresentazione

Dettagli

Concetti Base Eccezioni Eccezioni e Metodi Gerarchia di Eccezioni. Java: Eccezioni. Damiano Macedonio

Concetti Base Eccezioni Eccezioni e Metodi Gerarchia di Eccezioni. Java: Eccezioni. Damiano Macedonio Dipartimento di Informatica, Università degli Studi di Verona Corso di Programmazione per Bioformatica lezione del 30 maggio 2014 Introduzione Un programma diviso in sezioni distinte Un approccio alla

Dettagli

Istruzioni condizionali. Istruzioni condizionali IF-THEN- ELSE IF-THEN-ELSE. Statistica computazionale Carla Rampichini a.a.

Istruzioni condizionali. Istruzioni condizionali IF-THEN- ELSE IF-THEN-ELSE. Statistica computazionale Carla Rampichini a.a. Istruzioni condizionali Istruzioni condizionali Statistica computazionale Carla Rampichini a.a. 2008/09 Subsetting I I espressione; I-THEN-ELSE I espress THEN istr; [ELSE istr;] DO WHILE DO UNTIL I-THEN-

Dettagli

ESTARWEB ISTRUZIONI SEZIONE DOCUMENTALE

ESTARWEB ISTRUZIONI SEZIONE DOCUMENTALE ESTARWEB ISTRUZIONI SEZIONE DOCUMENTALE Il servizio per l invio di circolari alle aziende clienti è stato attivato automaticamente nel menù configurazione. Questo modulo permette di inviare documenti in

Dettagli

Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste

Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste versione 2.1 24/09/2015 aggiornamenti: 23-set-2015; 24-set-2015 Autore: Francesco Brunetta (http://www.francescobrunetta.it/)

Dettagli

Organizzazione degli archivi

Organizzazione degli archivi COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i

Dettagli

Eredità in C++ Corso di Linguaggi di Programmazione ad Oggetti 1. a cura di Giancarlo Cherchi

Eredità in C++ Corso di Linguaggi di Programmazione ad Oggetti 1. a cura di Giancarlo Cherchi Eredità in C++ Corso di Linguaggi di Programmazione ad Oggetti 1 a cura di Giancarlo Cherchi 1 Introduzione Il meccanismo dell eredità consente di sfruttare delle relazioni tipo/sottotipo, ereditando attributi

Dettagli

Le operazioni di allocazione e deallocazione sono a carico del sistema.

Le operazioni di allocazione e deallocazione sono a carico del sistema. Allocazione della memoria In C++ è possibile creare (allocare) variabili in maniera statica o dinamica. Nell allocazione statica una variabile esiste ed è utilizzabile dal momento della sua dichiarazione

Dettagli

Informa(ca Appun% dal laboratorio 2

Informa(ca Appun% dal laboratorio 2 Informa(ca Appun% dal laboratorio 2 Conce- fondamentali Esistono programmi, come Microso8 Word oppure Acrobat Reader, che vengono usa% dagli uten% per far eseguire al computer determinate operazioni (come

Dettagli

Regolamento In italiano

Regolamento In italiano Exploding Kittens Regolamento In italiano Giocatori: 2-5 (fino a 9 se si uniscono due mazzi) Contenuto: 56 carte Ehi! Non leggete questo regolamento! Leggere è il modo peggiore per imparare a giocare a

Dettagli

I COLORI DELLE CARTE ( SUITS )

I COLORI DELLE CARTE ( SUITS ) Il Pyramid è un gioco di carte giocato nella serie originale di Battlestar Galactica. Nella nuova serie non è scomparso ma viene chiamato Full Colors mentre il termine Pyramid è ora riferito ad uno sport

Dettagli

G iochi con le carte 1

G iochi con le carte 1 Giochi con le carte 1 PREPARAZIONE E DESCRIZIONE DELLE CARTE L insegnante prepara su fogli A3 e distribuisce agli allievi le fotocopie dei tre diversi tipi di carte. Invita poi ciascun allievo a piegare

Dettagli

Autodesk Map parte III query

Autodesk Map parte III query Autodesk Map parte III query Marco Negretti e-mail: marco.negretti@polimi.it http://geomatica.como.polimi.it V 5.1 29/10/2008 Un nuovo progetto Un progetto in Autodesk Map comprende diversi elementi, ad

Dettagli

PYTHON CHEAT SHEET. Rapido documentazione di consultazione per istruzioni, funzioni e tipi in Python. #stampa le variabili x e y

PYTHON CHEAT SHEET. Rapido documentazione di consultazione per istruzioni, funzioni e tipi in Python. #stampa le variabili x e y PYTHON CHEAT SHEET Rapido documentazione di consultazione per istruzioni, funzioni e tipi in Python OUTPUT print Ciao print x,y #stampa una stringa #stampa le variabili x e y print %s... %s %(x,y) #stampa

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Dettagli

DESIGN PATTERN CREAZIONALI INGEGNERIA DEL SOFTWARE INTRODUZIONE SINGLETON. Scopo dei design pattern creazionali

DESIGN PATTERN CREAZIONALI INGEGNERIA DEL SOFTWARE INTRODUZIONE SINGLETON. Scopo dei design pattern creazionali DESIGN PATTERN CREAZIONALI DESIGN PATTERN CREAZIONALI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2013 2014 rcardin@math.unipd.it

Dettagli

CONCETTO DI ANNIDAMENTO

CONCETTO DI ANNIDAMENTO LEZIONE14 SQL ANNIDAMENTI PAG. 1 / 5 PROF. ANDREA ZOCCHEDDU LEZIONE14 SQL ANNIDAMENTI CONCETTO DI ANNIDAMENTO LINGUAGGIO SQL QUERY ANNIDATE Per annidamento si intende la possibilità che, all interno di

Dettagli

Traccia di soluzione dell esercizio del 25/1/2005

Traccia di soluzione dell esercizio del 25/1/2005 Traccia di soluzione dell esercizio del 25/1/2005 1 Casi d uso I casi d uso sono in Figura 1. Ci sono solo due attori: il Capo officina e il generico Meccanico. Figura 1: Diagramma dei casi d uso. 2 Modello

Dettagli

Laboratorio di programmazione

Laboratorio di programmazione Laboratorio di programmazione Lezione VI Tatiana Zolo tatiana.zolo@libero.it 1 LE STRUCT Tipo definito dall utente i cui elementi possono essere eterogenei (di tipo diverso). Introduce un nuovo tipo di

Dettagli

Analytic Tools for Knowledge Forum (AT)

Analytic Tools for Knowledge Forum (AT) Università della Valle D Aosta Université de la Vallée d Aoste Analytic Tools for Knowledge Forum (AT) Guida all utilizzo A cura di: Stefano Cacciamani e Oliviero De Angelis 1 Indice Introduzione..3 Rilevare

Dettagli

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 13 settembre 2011

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 13 settembre 2011 Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 13 settembre 2011 Testo Il database di un videonoleggio è costituito da due vettori paralleli.

Dettagli

Introduzione a LyX. Creazione di un documento... 1608 Struttura e stile... 1610 Modelli di documento...1613 Automatismi... 1613 Riferimenti...

Introduzione a LyX. Creazione di un documento... 1608 Struttura e stile... 1610 Modelli di documento...1613 Automatismi... 1613 Riferimenti... Introduzione a LyX Creazione di un documento.............................. 1608 Struttura e stile......................................... 1610 Modelli di documento...................................1613

Dettagli

Marco Faella Classi enumerate

Marco Faella Classi enumerate Marco Faella Classi enumerate 22 Lezione n. Parole chiave: Java Corso di Laurea: Informatica Insegnamento: Linguaggi di Programmazione II Email Docente: faella.didattica@gmail.com A.A. 2009-2010 Il problema

Dettagli

RULEBOOK. @AsmadiGames. facebook.com/asmadigames

RULEBOOK. @AsmadiGames. facebook.com/asmadigames RULEBOOK @AsmadiGames facebook.com/asmadigames GIOCARE A RED 4 players 0 minutes Vincere a Red è semplice: basta avere la carta migliore! Ma quante volte cambieranno le regole durante la partita? Chi alla

Dettagli

Guida all uso di. a cura dell Area Economia Applicata (AEA) - IPI

Guida all uso di. a cura dell Area Economia Applicata (AEA) - IPI Guida all uso di a cura dell Area Economia Applicata (AEA) - IPI 1. Introduzione pag. 2 2. Scelta dell area tematica e del dato pag. 4 3. Criteri di selezione pag. 7 4. Esportazione pag. 9 1 Questa guida

Dettagli

CONTENT MANAGEMENT SY STEM

CONTENT MANAGEMENT SY STEM CONTENT MANAGEMENT SY STEM I NDI CE I NTRODUZI ONE Accesso al CMS 1) CONTENUTI 1.1 I nserimento, modifica e cancellazione dei contenuti 1.2 Sezioni, categorie e sottocategorie 2) UTENTI 3) UP LOAD FILES

Dettagli

Università degli Studi di Napoli Federico II. FACOLTÀ DI INGEGNERIA Corso di Laurea in Ingegneria Informatica LM. Progetto di un applicazione Android

Università degli Studi di Napoli Federico II. FACOLTÀ DI INGEGNERIA Corso di Laurea in Ingegneria Informatica LM. Progetto di un applicazione Android Università degli Studi di Napoli Federico II FACOLTÀ DI INGEGNERIA Corso di Laurea in Ingegneria Informatica LM Progetto di un applicazione Android Briscola bluetooth Candidati: Giuliano Formato Daniele

Dettagli

Il linguaggio SQL: query innestate

Il linguaggio SQL: query innestate Il linguaggio SQL: query innestate Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: SQLc-subquery.pdf Sistemi Informativi L-A DB di riferimento

Dettagli

Test di unità con JUnit4

Test di unità con JUnit4 Test di unità con JUnit4 Richiamo sul test di unità Il test d unità è una metodologia che permette di verificare il corretto funzionamento di singole unità di codice in determinate condizioni. Nel caso

Dettagli

Parte 1. Vettori di bit - AA. 2012/13 1.1

Parte 1. Vettori di bit - AA. 2012/13 1.1 1.1 Parte 1 Vettori di bit 1.2 Notazione posizionale Ogni cifra assume un significato diverso a seconda della posizione in cui si trova Rappresentazione di un numero su n cifre in base b: Posizioni a n

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa 10 Strutture collegate - 2 A. Miola Febbraio 2008 http://www.dia.uniroma3.it/~java/fondinf2/ Strutture collegate - 2 1 Contenuti!Strutture

Dettagli

Leggere un messaggio. Copyright 2009 Apogeo

Leggere un messaggio. Copyright 2009 Apogeo 463 Leggere un messaggio SyllabuS 7.6.3.3 Per contrassegnare un messaggio selezionato puoi fare clic anche sulla voce di menu Messaggio > Contrassegna messaggio. Marcare, smarcare un messaggio I messaggi

Dettagli

FIRESHOP.NET. Gestione del taglia e colore. www.firesoft.it

FIRESHOP.NET. Gestione del taglia e colore. www.firesoft.it FIRESHOP.NET Gestione del taglia e colore www.firesoft.it Sommario SOMMARIO Introduzione... 3 Configurazione iniziale... 5 Gestione delle varianti... 6 Raggruppamento delle varianti... 8 Gestire le varianti

Dettagli

Inizializzazione, Assegnamento e Distruzione di Classi

Inizializzazione, Assegnamento e Distruzione di Classi Inizializzazione, Assegnamento e Distruzione di Classi Lezione 9 Operazioni Automatiche In ogni programma C++ oggetti classe vengono gestiti automaticamente dal compilatore Inizializzati al momento della

Dettagli

Modulo 3 - Elaborazione Testi 3.5 Stampa unione

Modulo 3 - Elaborazione Testi 3.5 Stampa unione Università degli Studi dell Aquila Corso ECDL programma START Modulo 3 - Elaborazione Testi 3.5 Stampa unione Maria Maddalena Fornari Stampa Unione Processo che permette di unire dati provenienti da tipi

Dettagli

ALBO PRETORIO WEB MANUALE DELLA PROCEDURA SOMMARIO. Uso del manuale. Informazioni generali. Interfaccia grafica. Guida di riferimento

ALBO PRETORIO WEB MANUALE DELLA PROCEDURA SOMMARIO. Uso del manuale. Informazioni generali. Interfaccia grafica. Guida di riferimento #K$+ SOMMARIO ALBO PRETORIO WEB SOMMARIO Uso del manuale Informazioni generali Interfaccia grafica Guida di riferimento Guida alle operazioni ricorrenti Appendici # 000 K SOMMARIO $ SOMMARIO + 00001 Pagina

Dettagli

Page 1. Evoluzione. Intelligenza Artificiale. Algoritmi Genetici. Evoluzione. Evoluzione: nomenclatura. Corrispondenze natura-calcolo

Page 1. Evoluzione. Intelligenza Artificiale. Algoritmi Genetici. Evoluzione. Evoluzione: nomenclatura. Corrispondenze natura-calcolo Evoluzione In ogni popolazione si verificano delle mutazioni. Intelligenza Artificiale In un ambiente che varia, le mutazioni possono generare individui che meglio si adattano alle nuove condizioni. Questi

Dettagli

CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS

CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS CONTENUTI: CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS Creazione database vuoto Creazione tabella Inserimento dati A) Creazione di un database vuoto Avviamo il programma Microsoft Access. Dal menu

Dettagli

Informatica Generale Andrea Corradini. 19 - Sistemi di Gestione delle Basi di Dati

Informatica Generale Andrea Corradini. 19 - Sistemi di Gestione delle Basi di Dati Informatica Generale Andrea Corradini 19 - Sistemi di Gestione delle Basi di Dati Sommario Concetti base di Basi di Dati Il modello relazionale Relazioni e operazioni su relazioni Il linguaggio SQL Integrità

Dettagli

Guida per l utilizzo del software Registro Pazienti v1.2

Guida per l utilizzo del software Registro Pazienti v1.2 Guida per l utilizzo del software Registro Pazienti v1.2 Pagina 1 di 5 Indice: - Scelta del paziente (pag. 2) - Gestione del paziente (pag. 3) - Importa appuntamenti (pag. 4) - Scorciatoie da tastiera

Dettagli

Guida Rapida all uso del License Manager di ROCKEY4Smart (V. 1.0.10.724)

Guida Rapida all uso del License Manager di ROCKEY4Smart (V. 1.0.10.724) Guida Rapida all uso del License Manager di ROCKEY4Smart (V. 1.0.10.724) Procedo con un esempio: voglio proteggere una applicazione (nell esempio Blocco Note di Windows: notepad.exe) per distribuirla con

Dettagli

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli