Agenda. Premessa (2/2) Premessa (1/2) Fondamenti di Informatica T2 Modulo 2. Ing. Elena Nardini Università di Bologna A.A.

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Agenda. Premessa (2/2) Premessa (1/2) Fondamenti di Informatica T2 Modulo 2. Ing. Elena Nardini Università di Bologna A.A."

Transcript

1 Università degli Studi di Bologna Facoltà di Ingegneria Fondamenti di Informatica T2 Modulo 2 Agenda 1. Creazione e test di un componente Frazione 2. Calcolo del codice fiscale Corso di Laurea in Ingegneria Informatica Anno accademico 2008/ Componente Frazione (1/2) Realizzare un componente Frazione come tipo di dato astratto (ADT) progettato come tipo valore (una volta nata il suo valore è costante) dotato di una opportuna interfaccia che consenta di: Interfaccia di base Costruire una nuova frazione partendo da numeratore e denominatore Ottenere numeratore e denominatore della frazione Stabilire se la frazione è uguale ad una data Ottenere una rappresentazione stringa della frazione Ottenere una nuova frazione che rappresenti lo stesso valore in forma ridotta ai minimi termini Componente Frazione (2/2) Interfaccia estesa Somma la frazione con un altra e restituisce una nuova frazione che rappresenta il risultato Moltiplicare la frazione con un altra e restituisce una nuova frazione che rappresenta il risultato Somma di un insieme di frazioni e restituisce una nuova frazione che rappresenta il risultato Moltiplicazione di un insieme di frazioni e restituisce una nuova frazione che rappresenta il risultato e di cui sia opportunamente verificato il funzionamento (il testing non è mai opzionale!!!) Verificare il corretto funzionamento di ogni singolo aspetto del componente. 3 4 Premessa (1/2) Due generiche frazioni n / m e p / q sono equivalenti se vale la seguente uguaglianza: n * q = m * p. ESEMPIO: 1/2 è equivalente a 3/6 e a 9/18 È possibile determinare la forma minima equivalente di una frazione data; cioè è possibile trasformare una frazione in un altra equivalente ed irriducibile. La riduzione ai minimi termini di una frazione si effettua dividendo il numeratore e il denominatore per il loro massimo comun divisore (M.C.D.) ESEMPIO: il M.C.D del numeratore e denominatore della frazione 14/8 è 2 la frazione ridotta ai minimi termini è 7/4 5 Premessa (2/2) Il M.C.D. di due numeri è il più grande numero positivo intero che li divide senza resto È possibile calcolare in modo efficiente il M.C.D. di due numeri utilizzando l algoritmo di Euclide L algoritmo funziona nel seguente modo: 1. Supponiamo che a e b siano i valori di cui calcolare il M.C.D. 2. Se il resto della divisione fra a e b è uguale a zero, b rappresenta il M.C.D. fra a e b 3. Se invece il resto è diverso da 0, si pone a = b e b = resto e si riparte dal punto 2 IMPORTANTE: in Java, il resto della divisione fra due numeri a e b si calcola attraverso l operatore % resto = a%b 6

2 ADT si possono avere tante entità dello stesso tipo quante ne servono In C occorre definire una struct, un po di funzioni e occorre gestire l allocazione esplicita della memoria tramite malloc/free (funzioni di libreria) per creare nuove entità. In Java occorre definire una classe, un po di metodi e per creare nuove entità è sufficiente usare new (keyword di linguaggio); una volta terminato di usare il componente (nessun riferimento punta più ad esso), il garbage collector si occuperà della deallocazione. 7 Stato del componente: è caratterizzato dai valori di numeratore e denominatore Interi Per costruire ci vuole un costruttore Prende in ingresso sufficienti valori e li imposta nello stato interno per far sì che, una volta costruita, la frazione sia in uno stato consistente almeno numeratore e denominatore altre situazioni? Se la frazione è negativa? È negativo il numeratore o il denominatore? E se sono negativi entrambi? Comunque siano i parametri in ingresso al costruttore, normalizziamo il tutto in modo che il segno sia conservato dal solo numeratore; il denominatore è sempre positivo. 8 Per costruire ci vuole un costruttore Prende in ingresso sufficienti parametri per far si che una volta costruita la frazione sia in uno stato consistente almeno numeratore e denominatore altre situazioni? Una volta che tali valori sono dentro l entità, occorre poterli vedere da fuori Due accessor pubblici (getx) che consentano di ottenere numeratore e denominatore 9 Per cambiare numeratore e denominatore GIAMMAI, sarebbe un suicidio informatico! Sarebbe come dire che il numero 3 vale cinque e non più tre Piuttosto si può fare in modo che un riferimento ad una frazione punti non più alla frazione che vale 1/3 ma ad un altra che vale 1/5 Poi, come si può avere la certezza che la frazione non sia condivisa? Sarebbe un dramma 10 Rappresentazione in stringa (metodo tostring) Un metodo che non ha in ingresso alcun parametro poiché fornisce una rappresentazione dello stato interno dell entità nel caso specifico il suo valore Test di uguaglianza/equivalenza (metodo equals) Un metodo che prende in ingresso un altra frazione ed indica se la frazione presa in ingresso uguale a quella su cui è stato invocato il metodo In questo modo, il concetto di uguaglianza è definito dal programmatore Nel caso specifico uguale significa equivalente 3/12 equivale a ¼ Riduzione ai minimi termini (metodo riduzioneminimitermini) Restituisce una nuova frazione senza alterare quella su cui è stato invocato il metodo Si tratta di valori costanti! Test del componente Verificare il funzionamento di ogni parte Costruire la frazione Verificare che i metodi accesso restituiscano i valori attesi Verificare che il metodo tostring restituisca la rappresentazione attesa Verificare che il metodo riduzioneminimitermini restituisca la frazione attesa Costruire altre frazioni e verificare che il metodo equals si comporti nel modo atteso 11 12

3 Domanda La funzione relativa al calcolo dell MCD è un metodo della classe Frazione? Si consideri che: Il calcolo dell MCD non serve solo per l ADT Frazione ma anche in altri contesti Il calcolo dell MCD non ha necessità di uno stato Il calcolo dell MCD è un metodo statico e pubblico di una classe di servizio (MyMath) 13 MyMath public final class MyMath public static int mcd(int a, int b) int resto; if (b > a) int tmp = a; a = b; b = tmp; do resto = a % b; a = b; b = resto; while (resto!= 0); return a; 14 Frazione: stato e costruttori public class Frazione private int num, den; public Frazione(int num, int den) boolean negativo = num * den < 0; this.num = negativo? -Math.abs(num) : Math.abs(num); this.den = Math.abs(den); public Frazione(int num) this(num, 1); 15 Frazione: accessors e minterms public int getnum() return this.num; public int getden() return den; public Frazione minterm() int mcd = MyMath.mcd(Math.abs(getNum()), getden()); int n = getnum() / mcd; int d = getden() / mcd; return new Frazione(n, d); 16 Frazione: equals e tostring public boolean equals(frazione f) return f.getnum() * getden() == f.getden() * getnum(); public String tostring() String frazione = ""; int num = getnum(); int den = getden(); if (getden() == 1) frazione += num; else frazione += num + "/" + den; return frazione; 17 public class MyMain MyMain public static void main(string[] args) Frazione frazione1 = new Frazione(3, 12); // 3/12 System.out.println("Creata la frazione " + frazione1); Frazione frazione2 = new Frazione(1, 4); // 1/4 System.out.println("Creata la frazione " + frazione2); Frazione frazione3 = new Frazione(4, 1); // 4 System.out.println("Creata la frazione " + frazione3); Frazione frazioneridotta = frazione1.minterm(); // 1/4 System.out.println("La frazione " + frazione1 + " ridotta ai minimi termini diventa " + frazioneridotta + "\n"); 18

4 MyMain if (frazione1.equals(frazione2)) // true else frazione2 + " sono equivalenti"); frazione2 + " non sono equivalenti" + "\n"); if (frazione1.equals(frazione3)) // false else frazione3 + " sono equivalenti"); frazione3 + " non sono equivalenti" + "\n"); 19 MyMain (valori negativi) Frazione frazione4 = new Frazione(-1, 8); // -1/8 System.out.println("Creata la frazione " + frazione4); Frazione frazione5 = new Frazione(2, -3); // -2/3 System.out.println("Creata la frazione " + frazione5); Frazione frazione6 = new Frazione(-5, -7); // 5/7 System.out.println("Creata la frazione " +frazione6+"\n"); frazioneridotta = frazione5.minterm(); // -2/3 System.out.println("La frazione " + frazione5 + " ridotta ai minimi termini diventa " +frazioneridotta+ "\n"); 20 Estensione del componente Estendere la classe Frazione con le seguenti funzionalità: Somma di due frazioni Prodotto di due frazioni Somma di un insieme di frazioni Prodotto di un insieme di frazioni Estensione del componente Come sono i metodi che realizzano le estensioni? Somma/Prodotto: vengono invocati su una frazione prendono in ingresso la frazione da sommare/moltiplicare restituiscono una nuova frazione risultato dell operazione Somma/Prodotto di un insieme di frazioni Non ha senso, sebbene sia possibile, che possano essere invocati su una frazione: Per realizzare entrambi i metodi si sfruttino Quale di quelle dell insieme? i metodi somma e prodotto È sensato che siano metodi statici! prendono in ingresso un array di frazioni Restituiscono una nuova frazione risultato dell operazione Codice: somma e prodotto Codice: somma e prodotto su array di frazioni public class Frazione public static Frazione sum(frazione[] fs) private int num, den; Frazione tmp = new Frazione(0, 1); // Elemento neutro public Frazione sum(frazione f) for (Frazione f : fs) tmp = tmp.sum(f); int n = this.num * f.den + this.den * f.num; return tmp; int d = this.den * f.den; return new Frazione(n, d); public static Frazione mul(frazione[] fs) public Frazione mul(frazione f) Frazione tmp = new Frazione(1, 1); // Elemento neutro for (Frazione f : fs) int n = this.num * f.num; tmp = tmp.mul(f); int d = this.den * f.den; return tmp; return new Frazione(n, d); 23 24

5 Trattamento degli errori L attuale contratto di utilizzo prevede che colui che crea la Frazione è responsabile del risultato Calcolo del Codice Fiscale L algoritmo è semplice Creare una frazione con zero al denominatore è possibile ma prima o poi scoppia tutto Non è il massimo poiché il bug, in questo caso, è evidentemente a MONTE della costruzione mentre se ne subiscono le conseguenze a VALLE della stessa quando si usa la frazione Non avendo (ancora) un modo di interrompere brutalmente l esecuzione e di notificare al chiamante il problema, quali soluzioni si possono trovare? Ci vorrebbe qualcosa che verificasse i parametri PRIMA della costruzione Qualcosa cosa? Fatevi venire in mente Qualcosa e anche come Basta conoscere bene gli strumenti Oggi verrà progettata la soluzione In laboratorio la implementerete Codice Fiscale: Regole Riprendiamo le regole per il calcolo Cognome: le prime tre consonanti; se non bastano, le vocali; se non bastano ancora, una (o più) X ROSSI RSS SUN SNU WU WUX Nome: la prima, la terza e la quarta consonante; se non ci sono quattro consonanti, si usano le prime tre; se non bastano, si usano le vocali; se non bastano ancora, una (o più) X MARIO MRA GASTONE GTN Codice Fiscale: Regole Anno: le ultime due cifre Mese: A, B, C, D, E, H, L, M, P, R, S, T dove A è Gennaio, T è Dicembre Giorno: Uomini: il numero del giorno Donne: il numero del giorno aumentato di 40 01/02/1978 (maschio) 78B01 25/12/1969 (femmina) 69T Codice Fiscale: Regole Comune di nascita: sigla che si trova su apposite tabelle: Bologna = A944 Reggio E. = H223 Alfonsine (RA) = A191 Jesi (AN) = E388 Ecc Carattere di controllo: Le cifre da 0 a 9 vengono sostituite dalle corrispondenti lettere da A a J si ottiene un codice composto di sole lettere Alle lettere di posto pari viene assegnato un valore da 0 a 25, pari alla loro posizione nell alfabeto (A = 0) Alle lettere di posto dispari viene assegnato un valore in base alla mappa: B A K P L C Q D R E V O S F T G U H M I N J W Z Y X Si sommano tutti i valori di cui sopra e si prende il risultato modulo 26 Calcolo del Codice Fiscale: Progetto Per ognuna delle regole di cui sopra è bene predisporre un metodo diverso in modo da suddividere quindi semplificare il problema Tutti questi metodi faranno parte di una classe (è obbligatorio ) Per funzionare hanno bisogno di uno stato? NO! SONO METODI STATICI! Un metodo principale avrà il compito di coordinare il lavoro di tutti gli altri e dovrà essere visibile dall esterno (gli altri possono essere privati) Façade 29 30

6 Progetto: le mappe Nelle regole relative al mese e al carattere di controllo, viene utilizzata una mappa che consente di recuperare una lettera partendo da un numero Due possibilità: Array: char[] mappa = new char[] B, A, ; Stringa: String mappa = BAK ; In entrambi i casi la posizione di un carattere è il numero con cui si entra nella mappa Array: char c = mappa[numero]; Stringa: char c = mappa.charat(numero); Perché è meglio la stringa dell array? Progetto: le mappe Una mappa speciale deve associare il nome del comune al relativo codice Metodo più stupido: creare una serie di if else per il confronto della stringa in ingresso coi nomi dei comuni gestiti; quando si trova il match, output del codice relativo Metodo meno stupido: creare un array di oggetti che rappresentino delle coppie Comune, Codice Progetto: vocali e consonanti Come riconoscere vocali e consonanti? Ipotesi: nome e cognome sono di sole lettere (no altri caratteri) Si può creare un insieme (nel senso dato precedentemente) che contenga le sole vocali (sono di meno!) e supporre che ciò che non è vocale non può che essere consonante Ad esempio: String VOCALI = "AEIOU ; char[] vocali = new char[] A, E, I, O, U ; omocodia? Se c è un problema di omocodia occorre applicare al codice già creato la regola corrispondente sostituendo le cifre numeriche, a partire da destra, con le lettere della mappa che segue: 0 L 1 M 2 N 3 P 4 Q 5 R 6 S 7 T 8 U 9 V Sostituire una cifra alla volta al bisogno Un metodo statico pubblico che prende in ingresso un codice fiscale e ne produce un altro dopo aver sostituito UNA cifra Interfaccia del componente Un metodo statico pubblico calcolacodicefiscale Input: cognome, nome, giorno mese e anno di nascita, comune di nascita, sesso Output: il codice fiscale Un metodo statico pubblico risolviomocodia Input: un codice fiscale Output: un codice fiscale Metodi privati Metodi di utilità isconsonante: prende in ingresso un carattere e restituisce un booleano che indica se si tratta di una consonante Altro?? Metodi di trasformazione calcolacognome: prende in ingresso il cognome e restituisce tre lettere secondo la regola già espressa calcolanome: prende in ingresso il nome e restituisce tre lettere secondo la regola già espressa calcolaanno: prende in ingresso l anno e restituisce le ultime due cifre calcolamese: prende in ingresso il mese e restituisce un carattere calcolagiornosesso: prende in ingresso il giorno e il sesso e restituisce due cifre calcolacomune: prende in ingresso il comune e restituisce i relativo codice calcolacarcontrollo: prende in ingresso TUTTO il codice finora calcolato e restituisce il carattere di controllo corrispondente 35 36

7 Altri metodi L implementazione è: una regola = un metodo Alcune regole sarebbe bene spezzarle in metodi diversi per fattorizzare e semplificare ulteriormente Esempio: metodo che si occupa di aggiungere vocali o X nella codifica di nome/cognome (è uguale per entrambe le regole) 37

Fondamenti di Informatica T2 Modulo 2. Corso di Laurea in Ingegneria Informatica Anno accademico 2008/2009. Agenda

Fondamenti di Informatica T2 Modulo 2. Corso di Laurea in Ingegneria Informatica Anno accademico 2008/2009. Agenda Università degli Studi di Bologna Facoltà di Ingegneria Fondamenti di Informatica T2 Modulo 2 Corso di Laurea in Ingegneria Informatica Anno accademico 2008/2009 Agenda 1. Creazione e test di un componente

Dettagli

ESERCIZIO: CODICE FISCALE

ESERCIZIO: CODICE FISCALE ESERCIZIO: CODICE FISCALE Problema: Scrivere un programma che, a partire dai dati anagrafici, calcoli il codice fiscale di una persona. Il C.F. è composto di 5 parti: tre lettere identificative del cognome

Dettagli

Classi e array. Viene ora affrontato un problema di definizione di una classe in cui una variabile d istanza è di tipo array

Classi e array. Viene ora affrontato un problema di definizione di una classe in cui una variabile d istanza è di tipo array Classi e array Viene ora affrontato un problema di definizione di una classe in cui una variabile d istanza è di tipo array Si vuole definire una classe Polinomio per la rappresentazione di polinomi a

Dettagli

Esercizio 1 - Componente Matrice (1/3) Esercizio 1 - Componente Matrice (3/3) Esercizio 1 - Componente Matrice (2/3)

Esercizio 1 - Componente Matrice (1/3) Esercizio 1 - Componente Matrice (3/3) Esercizio 1 - Componente Matrice (2/3) Università degli Studi di Bologna Facoltà di Ingegneria Fondamenti di Informatica T Modulo - Lab Corso di Laurea in Ingegneria Informatica Anno accademico 008/009 - Componente Matrice (1/3) Realizzare

Dettagli

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

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

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Prova Intermedia Marzo 2011 http://www.dia.uniroma3.it/~java/fondinf/ Prova Intermedia 1 Modalità della Prova Intermedia La Prova Intermedia

Dettagli

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A Matematica 13/11/2007 Teoria Compito A Domanda 1 Descrivere, eventualmente utilizzando uno schema, gli elementi funzionali di una CPU. Domanda 2 Java è un linguaggio compilato o interpretato? Motivare

Dettagli

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

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

Dettagli

Corso: Fondamenti di Informatica (Gruppo 2) a.a Corsi di laurea: Ing. Settore Informazione

Corso: Fondamenti di Informatica (Gruppo 2) a.a Corsi di laurea: Ing. Settore Informazione Corso: Fondamenti di Informatica (Gruppo 2) a.a. 2017-18 Corsi di laurea: Ing. Settore Informazione Questionario a Risposte Multiple per auto-valutazione del Lab05 Domanda n. 1 Argomento: Iterazioni, array

Dettagli

Passaggio di parametri

Passaggio di parametri Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E05 C. Limongelli Dicembre 2011 1 Contenuti q Passaggio di tipi primitivi q Passaggio di tipi riferimento: Stringhe q Passaggio

Dettagli

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

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

Dettagli

ARRAY RESTITUITI DA FUNZIONI

ARRAY RESTITUITI DA FUNZIONI ARRAY RESTITUITI DA FUNZIONI Gli array Java possono essere restituiti come risultato di funzioni, come qualunque altro oggetto ESEMPIO int[] creatabellaquadrati(int n) ESEMPIO DI ARRAY RESTITUITO ESEMPIO

Dettagli

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]

Dettagli

Esercitazione n 2. Obiettivi

Esercitazione n 2. Obiettivi Esercitazione n 2 Obiettivi Progettazione di una applicazione Java Utilizzo di classi come schemi Utilizzo di costruttori Utilizzo di stringhe Uguaglianza tra oggetti Utilizzo di classi come componenti

Dettagli

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari 7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa

Dettagli

Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Questionario di autovalutazione 4

Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Questionario di autovalutazione 4 Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Questionario di autovalutazione 4 Domanda n. 1 Argomento: Rappresentazione dell'informazione Domanda: Il numero binario

Dettagli

Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni

Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni Esercizio 1 Dire quale è la complessità temporale del seguente metodo, espressa con notazione asintotica O(.) (con la migliore

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

public static boolean occorre (int[] a, int n) { int i = 0; boolean trovato = false;

public static boolean occorre (int[] a, int n) { int i = 0; boolean trovato = false; Metodi iterativi con array monodimensionali 1. Scrivere un metodo che, dato un array di interi a, restituisce il valore minimo in a. public static int minimo (int[] a) { int min = a[0]; for (int i=1; i

Dettagli

Programmazione con Java

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

Dettagli

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

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

Dettagli

Gestione dei compiti

Gestione dei compiti 1 of 18 23/10/2006 103 Gestione dei compiti Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Domanda n. 1 Argomento: Logica booleana Domanda: Qual e' il risultato

Dettagli

Per gli esercizi sulla algebra booleana, si consiglia di verificare tramite tabelle di verità le equivalenze logiche proposte sulle dispense.

Per gli esercizi sulla algebra booleana, si consiglia di verificare tramite tabelle di verità le equivalenze logiche proposte sulle dispense. Fondamenti di Informatica - A. Fantechi Raccolta di esercizi Per gli esercizi sulla algebra booleana, si consiglia di verificare tramite tabelle di verità le equivalenze logiche proposte sulle dispense.

Dettagli

Java Le stringhe. Stringhe

Java Le stringhe. Stringhe Java Le stringhe 1 Le stringhe in Java In Java le stringhe non sono semplicemente array di caratteri terminati con zero come avviene in C In Java le stringhe sono oggetti appartenenti alla classe String

Dettagli

DEFINIZIONE. L unità frazionaria 1n (con n 0) rappresenta una sola delle n parti uguali in cui è stato diviso l intero.

DEFINIZIONE. L unità frazionaria 1n (con n 0) rappresenta una sola delle n parti uguali in cui è stato diviso l intero. L unità frazionaria DEFINIZIONE. L unità frazionaria n con n 0 rappresenta una sola delle n parti uguali in cui è stato diviso l intero. Sono unità frazionarie: ognuna di esse indica che l intero è stato

Dettagli

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Esercizi sui metodi. Carla Limongelli. Maggio Esercizi 1

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Esercizi sui metodi. Carla Limongelli. Maggio Esercizi 1 Corso di Laurea Ingegneria Civile Fondamenti di Informatica Esercizi sui metodi Carla Limongelli Maggio 2010 Esercizi 1 Passaggio di parametri di tipo primitivo Indicare che cosa viene visualizzato sullo

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica Laboratorio di Informatica Facoltà di Ingegneria Clinica BCLR Dispense di Paolo Caressa e Raffaele Nicolussi. Lezione 5. Versione per Python 3. Docenti: Alberto Marchetti Spaccamela Raffaele Nicolussi

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E03 Esempi di algoritmi e programmi A. Miola Novembre 2011 1 Contenuti q Progettazione di algoritmi q Problemi di ingresso - uscita

Dettagli

Metodi statici. Dichiarazione e chiamata di metodi statici

Metodi statici. Dichiarazione e chiamata di metodi statici Metodi statici Dichiarazione e chiamata di metodi statici Cos è un metodo Un metodo è un blocco di istruzioni che fornisce una funzionalità e viene identificato con un nome Può avere dei parametri ed un

Dettagli

LICEO STATALE G.P. VIEUSSEUX. Classico, Scientifico e. Scientifico opzione scienze applicate

LICEO STATALE G.P. VIEUSSEUX. Classico, Scientifico e. Scientifico opzione scienze applicate 1. Utilizzando la codifica ASCII scrivi in binario le lettere a (minuscolo) e B (MAIUSCOLO) Ricordiamo che A = 65 B=66 ecco tutto l alfabeto di 26 lettere 65 66 67 68 69 70 71 72 73 74 75 76 77 A B C D

Dettagli

Laboratorio di programmazione

Laboratorio di programmazione Laboratorio di programmazione Lezione VIII Tatiana Zolo tatiana.zolo@libero.it 1 PROGRAMMAZIONE A OGGETTI Quando si programma a oggetti si scompone il problema in sottogruppi di parti collegate che tengono

Dettagli

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi:

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi: Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 22 settembre 2014 TEMPO DISPONIBILE: 2 ore Negli

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 E04 Esercizi sui problemi di ordinamento C. Limongelli Marzo 2008 http://www.dia.uniroma3.it/~java/fondinf2/ Algoritmi di Ordinamento

Dettagli

Il linguaggio C. Puntatori e dintorni

Il linguaggio C. Puntatori e dintorni Il linguaggio C Puntatori e dintorni 1 Puntatori : idea di base In C è possibile conoscere e denotare l indirizzo della cella di memoria in cui è memorizzata una variabile (il puntatore) es : int a = 50;

Dettagli

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

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

Dettagli

623 = , 413 = , 210 = , 203 =

623 = , 413 = , 210 = , 203 = Elementi di Algebra e Logica 2008. 3. Aritmetica dei numeri interi. 1. Determinare tutti i numeri primi 100 p 120. Sol. :) :) :) 2. (i) Dimostrare che se n 2 non è primo, allora esiste un primo p che divide

Dettagli

3. un metodo che restituisce l elenco delle matricole di tutti gli studenti del corso;

3. un metodo che restituisce l elenco delle matricole di tutti gli studenti del corso; Un esempio di definizione di classe con array di oggetti Sia data la classe StudUniv per gli studenti universitari (definita in una lezione precedente). Scrivere una nuova classe Corso, dove ciascun corso

Dettagli

10 STRUTTURE DI CONTROLLO REPEAT E WHILE. Strutture di controllo e variabili strutturate

10 STRUTTURE DI CONTROLLO REPEAT E WHILE. Strutture di controllo e variabili strutturate LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 10 STRUTTURE DI CONTROLLO REPEAT E WHILE Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II

Dettagli

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

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

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

0ROWLSOLFD]LRQHH'LYLVLRQH WUDQXPHULUHODWLYL

0ROWLSOLFD]LRQHH'LYLVLRQH WUDQXPHULUHODWLYL 0ROWLSOLFD]LRQHH'LYLVLRQH WUDQXPHULUHODWLYL Salvatore Orlando & Marta Simeoni Arch. Elab. - S. Orlando 1 0ROWLSOLFD]LRQHWUDQXPHULLQWHUL Oltre ai circuiti per realizzare somme e sottrazioni di interi, è

Dettagli

Scaletta. Cenni di computabilità. Cosa fa un programma? Definizioni (1/2) Definizioni (2/2) Problemi e domande. Stefano Mizzaro 1

Scaletta. Cenni di computabilità. Cosa fa un programma? Definizioni (1/2) Definizioni (2/2) Problemi e domande. Stefano Mizzaro 1 Scaletta Cenni di computabilità Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 23 27 novembre 2013

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E04 Esempi di algoritmi e programmi C. Limongelli - A. Miola Settembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Esempi

Dettagli

La codifica digitale

La codifica digitale La codifica digitale Codifica digitale Il computer e il sistema binario Il computer elabora esclusivamente numeri. Ogni immagine, ogni suono, ogni informazione per essere compresa e rielaborata dal calcolatore

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA2 2.1- Funzioni 1 Prerequisiti Programmazione elementare in Java Tecnica top-down Concetto matematico di funzione Compilazione e link di programmi Esecuzione di funzioni

Dettagli

Lezione 6 programmazione in Java

Lezione 6 programmazione in Java Lezione 6 programmazione in Java Nicola Drago drago@sci.univr.it Dipartimento di Informatica Università di Verona Anteprima Le costanti I vettori Cos è un vettore Come si usa I vari tipi di vettori Esempi

Dettagli

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

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Paradigma OO Incapsulamento Polimorfismo e overloading Esercizi svolti Esercizi proposti Paradigma OO Nella programmazione tradizionale,

Dettagli

14 - Metodi e Costruttori

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

Dettagli

A1. Calcolo in Q. A1.1 Tabelline e potenze. A1.2 Scomposizione in fattori di numeri interi MCD e mcm

A1. Calcolo in Q. A1.1 Tabelline e potenze. A1.2 Scomposizione in fattori di numeri interi MCD e mcm A. Calcolo in Q Questo capitolo tratta argomenti che solitamente sono già stati svolti alle scuole medie ed elementari. Tali argomenti sono necessari per affrontare il programma delle scuole superiori.

Dettagli

18 - Classi parzialmente definite: Classi Astratte e Interfacce

18 - Classi parzialmente definite: Classi Astratte e Interfacce 18 - Classi parzialmente definite: Classi Astratte e Interfacce Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/

Dettagli

Le basi del linguaggio Java

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

Dettagli

ESERCIZIARIO DI MATEMATICA

ESERCIZIARIO DI MATEMATICA Dipartimento di rete matematica ESERCIZIARIO DI MATEMATICA PER PREPARARSI ALLA SCUOLA SUPERIORE progetto Continuità SCUOLA SECONDARIA DI I GRADO Istituti comprensivi: Riva Riva Arco Dro Valle dei Laghi

Dettagli

Corso di Laurea Ingegneria Elementi di Informatica. Iterazione. C. Limongelli. Iterazione

Corso di Laurea Ingegneria Elementi di Informatica. Iterazione. C. Limongelli. Iterazione Corso di Laurea Ingegneria Elementi di Informatica C. Limongelli 1 Contenuti Si vogliono formalizzare diverse tecniche per la risoluzione di problemi di: Accumulazione Conteggio Verifica esistenziale Verifica

Dettagli

Calcolare x n = x x x (n volte)

Calcolare x n = x x x (n volte) Calcolare x n = x x x (n volte) Abbiamo bisogno di: una variabile ris in cui ad ogni iterazione del ciclo si ha un risultato parziale, e che dopo l ultima iterazione contiene il risultato finale; una variabile

Dettagli

Corso di Laurea Ingegneria Civile Elementi di Informatica. Esercizi. Carla Limongelli. Esercizi 1

Corso di Laurea Ingegneria Civile Elementi di Informatica. Esercizi. Carla Limongelli. Esercizi 1 Corso di Laurea Ingegneria Civile Elementi di Informatica Esercizi Carla Limongelli Esercizi 1 Quanti giorni in un mese? Scrivere un metodo che ricevuto in input un mese e un anno, restituisca il numero

Dettagli

Richiami di Fondamenti di Informatica - 1

Richiami di Fondamenti di Informatica - 1 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 2 Richiami di Fondamenti di Informatica - 1 A. Miola Febbraio 2008 http://www.dia.uniroma3.it/~java/fondinf1/ Richiami di FdI-1

Dettagli

C: panoramica. Violetta Lonati

C: panoramica. Violetta Lonati C: panoramica Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010 Violetta Lonati

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E03 Esempi di algoritmi e programmi A. Miola Settembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Esempi di algoritmi e

Dettagli

Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object

Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object Programmazione orientata agli oggetti La classe, metodi e classi final, this 1 La classe Negli esempi fatti nella prima parte del corso abbiamo definito alcune classi, per esempio Counter e Orologio, senza

Dettagli

Informazioni generali

Informazioni generali Informazioni generali Esercitazioni del corso di Fondamenti di informatica Tutor: Ing. Rughetti Diego Esercitazione: Giovedì 14.30-16.00 Tutoraggio: Giovedì 16.15-17.45 Contatto: rughettidiego@tiscali.it

Dettagli

Programmazione a oggetti

Programmazione a oggetti Programmazione a oggetti Quanti oggetti, tra di loro parlando, fanno programmi. Pilu Crescenzi piluc@dsi.unifi.it Università di Firenze Programmazione a oggetti p.1/32 Cosa è un oggetto Una scatola software

Dettagli

Array di array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 03. A. Miola Febbraio 2008

Array di array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 03. A. Miola Febbraio 2008 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa Array di array A. Miola Febbraio 8 http://www.dia.uniroma.it/~java/fondinf/ Array di array Contenuti Array bidimensionali creazione

Dettagli

osservazione: 1 MCD(m,n) min(m,n) = si provano i numeri compresi tra 1 e min(m,n) conviene iniziare da min(m,n) e scendere verso 1

osservazione: 1 MCD(m,n) min(m,n) = si provano i numeri compresi tra 1 e min(m,n) conviene iniziare da min(m,n) e scendere verso 1 Esempio: Leggere due interi positivi e calcolarne il massimo comun divisore. MCD(12, 8) = 4 MCD(12, 6) = 6 MCD(12, 7) = 1 Sfruttando direttamente la definizione di MCD osservazione: 1 MCD(m,n) min(m,n)

Dettagli

Fondamenti di Informatica T-1

Fondamenti di Informatica T-1 Fondamenti di Informatica T-1 Introduzione al linguaggio Java - Input/Output, Variabili, Tipi Tutor: Allegra De Filippo allegra.defilippo@unibo.it a.a. 2015/2016 Fondamenti di Informatica T-1 Allegra De

Dettagli

Liceo scientifico Pascal Manerbio Esercizi di matematica per le vacanze estive

Liceo scientifico Pascal Manerbio Esercizi di matematica per le vacanze estive Di alcuni esercizi non verranno riportati i risultati perché renderebbero inutile lo svolgimento degli stessi. Gli esercizi seguenti risulteranno utili se i calcoli saranno eseguiti mentalmente applicando

Dettagli

Introduzione al C++ (continua)

Introduzione al C++ (continua) Introduzione al C++ (continua) I puntatori Un puntatore è una variabile che contiene un indirizzo di memoria pi_greco 3.141592 pi_greco_ptr indirizzo di 3.141592 & DEREFERENZIAZIONE RIFERIMENTO * se x

Dettagli

Indice. Prefazione. 3 Oggetti e Java 53

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

Dettagli

Gestione dinamica della memoria

Gestione dinamica della memoria Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2016-2017 Gestione dinamica della memoria Pietro Di Lena - pietro.dilena@unibo.it A pessimistic programmer sees the array as half empty.

Dettagli

Definizione di classi

Definizione di classi Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E05 Definizione di classi A. Miola Novembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Definizione di classi 1 Contenuti

Dettagli

Rappresentazione degli algoritmi

Rappresentazione degli algoritmi Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti

Dettagli

Esonero di Informatica I. Ingegneria Medica

Esonero di Informatica I. Ingegneria Medica Di seguito sono elencati una serie di domande tipo esonero ; i quiz vogliono dare un sistema di autovalutazione e di confronto allo studente che deve prepararsi alla prova di metà corso. Il numero e l

Dettagli

Parte Seconda. Prova di selezione culturale

Parte Seconda. Prova di selezione culturale Parte Seconda Prova di selezione culturale TEORIA DEGLI INSIEMI MATEMATICA ARITMETICA Insieme = gruppo di elementi di cui si può stabilire inequivocabilmente almeno una caratteristica in comune. Esempi:

Dettagli

STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe

STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe String Una stringa Java rappresenta uno specifico valore e come

Dettagli

Laboratorio di Python

Laboratorio di Python Problem solving, Ricorsione, Università di Bologna 13 e 15 marzo 2013 Sommario 1 2 3 4 Errore di semantica Esercizio def vocali(s): voc='' for c in s: if c in 'aeiou': voc=voc+c return voc Cerchiamo di

Dettagli

Problemi e algoritmi. Il che cosa ed il come. Il che cosa ed il come. Il che cosa e il come

Problemi e algoritmi. Il che cosa ed il come. Il che cosa ed il come. Il che cosa e il come Problemi e algoritmi Il che cosa e il come Problema: descrive che cosa si deve calcolare Specifica (di un algoritmo): descrive che cosa calcola un algoritmo Algoritmo: descrive come effettuare un calcolo

Dettagli

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento Fondamenti di Informatica Algoritmi di Ricerca e di Ordinamento 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare se un elemento fa parte della sequenza oppure l elemento

Dettagli

Allocazione dinamica

Allocazione dinamica Allocazione dinamica Quando non si sa a priori quanto un array debba essere grande allocazione dinamica di array Quando si deve restituire un array come risultato di una funzione (a meno di non barare

Dettagli

Java: Definire Classi e Creare Oggetti

Java: Definire Classi e Creare Oggetti Dipartimento di Informatica, Università degli Studi di Verona Corso di Programmazione per Bioformatica lezione del 21 marzo 2014 Introduzione Programmare con gli Oggetti Un programma Java è costituito

Dettagli

Lezione 6 Introduzione al C++ Mauro Piccolo

Lezione 6 Introduzione al C++ Mauro Piccolo Lezione 6 Introduzione al C++ Mauro Piccolo piccolo@di.unito.it Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,

Dettagli

Iterazione. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa E07. C. Limongelli Novembre 2007

Iterazione. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa E07. C. Limongelli Novembre 2007 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E07 Iterazione C. Limongelli Novembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Iterazione 1 Contenuti Si vogliono formalizzare

Dettagli

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO CENTRO STUDI ULISSE Via Buccino, n. 22 - C.a.p. 84018 - Scafati (SA) Tel. Fax. 081.19970299-339.2365416-349.4152010 E-mail: info@centrostudiulisse.it - www.centrostudiulisse.it OCA JAVA 7 SE PROGRAMMER

Dettagli

Laboratorio di Programmazione 1 [Java]

Laboratorio di Programmazione 1 [Java] Laboratorio di Programmazione 1 [Java] Prova di esame - 7 Settembre 2010 Tempo massimo: 50 minuti Si implementino in Java le classi Tavolo e Ristorante. La classe Tavolo ha i seguenti attributi: numero

Dettagli

Fondamenti di informatica T-1 (A K) Esercitazione 2: Linguaggio Java, basi e controllo del flusso

Fondamenti di informatica T-1 (A K) Esercitazione 2: Linguaggio Java, basi e controllo del flusso Fondamenti di informatica T-1 (A K) Esercitazione 2: Linguaggio Java, basi e controllo del flusso AA 2015/2016 Tutor: Vincenzo Lomonaco vincenzo.lomonaco@unibo.it Programma Introduzione al calcolatore

Dettagli

5 - Istruzioni condizionali

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

Dettagli

Testing. Esempio. Esempio. Soluzione 1. Fondamenti di Informatica T2 Modulo 2. Università di Bologna A.A. 2008/2009. Come fare???

Testing. Esempio. Esempio. Soluzione 1. Fondamenti di Informatica T2 Modulo 2. Università di Bologna A.A. 2008/2009. Come fare??? Università degli Studi di Bologna Facoltà di Ingegneria Testing Prima di rilasciare una qualsiasi applicazione/librerie è buona norma effettuare una serie di test opportuni Fondamenti di Informatica T2

Dettagli

Frazioni algebriche. Osserviamo che un espressione di questo tipo si ottiene talvolta quando ci si propone di ottenere il quoziente di due monomi.

Frazioni algebriche. Osserviamo che un espressione di questo tipo si ottiene talvolta quando ci si propone di ottenere il quoziente di due monomi. Frazioni algebriche 14 14.1 Definizione di frazione algebrica Diamo la seguente definizione: Definizione 14.1. Si definisce frazione algebrica un espressione del tipo A B polinomi. dove A e B sono Osserviamo

Dettagli

= < < < < < Matematica 1

= < < < < < Matematica  1 NUMERI NATURALI N I numeri naturali sono: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,... L insieme dei numeri naturali è indicato con la lettera. Si ha cioè: N= 0,1,2,3,4,5,6,7,.... L insieme dei naturali privato

Dettagli

Le operazioni fondamentali in R

Le operazioni fondamentali in R La REGOLA DEI SEGNI: 1. ADDIZIONE Le operazioni fondamentali in R + per + dà + per dà + + per dà per + dà Esempi: (+5) + (+9) = + 5 + 9 = + 14 (+5) + ( 3) = + 5 3 = + 2 ( 5) + ( 9) = 5 9 = 14 ( 5) + (+3)

Dettagli

Convenzioni di chiamata a procedure

Convenzioni di chiamata a procedure Università degli Studi di Milano Laboratorio di Architettura degli Elaboratori II Corso di Laurea in Informatica, A.A. 2016-2017 Convenzioni di chiamata a procedure Nicola Basilico Dipartimento di Informatica

Dettagli

Moltiplicazione e Divisione tra numeri relativi

Moltiplicazione e Divisione tra numeri relativi Moltiplicazione e Divisione tra numeri relativi Salvatore Orlando & Marta Simeoni Arch. Elab.A M. Simeoni 1 Moltiplicazione tra numeri interi Oltre ai circuiti per realizzare somme e sottrazioni di interi,

Dettagli

Problemi, algoritmi e oggetti

Problemi, algoritmi e oggetti Fondamenti di informatica Oggetti e Java Luca Cabibbo Capitolo 5 Marzo 2007 1 Fondamenti di informatica: Oggetti e Jav Contenuti... Problemi e algoritmi comprensione del problema identificazione di un

Dettagli

CORSO ZERO DI MATEMATICA

CORSO ZERO DI MATEMATICA UNIVERSITÀ DEGLI STUDI DI PALERMO FACOLTÀ DI ARCHITETTURA CORSO ZERO DI MATEMATICA RADICALI Dr. Erasmo Modica erasmo@galois.it LE RADICI Abbiamo visto che l insieme dei numeri reali è costituito da tutti

Dettagli

La classe Object. Ce li ha anche HelloWorld!!!

La classe Object. Ce li ha anche HelloWorld!!! La classe Object Ogni classe estende implicitamente la classe java.lang.object La classe java.lang.object contiene dei metodi che vengono implicitamente ereditati I metodi ereditati sono: clone equals

Dettagli

Array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 11. A. Miola Dicembre 2007

Array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 11. A. Miola Dicembre 2007 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 11 Array A. Miola Dicembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Array 1 Contenuti Il problema degli studenti da promuovere

Dettagli

Problemi e algoritmi. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05 (da U. de' Liguoro - Alg. & Spe. 03/04)

Problemi e algoritmi. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05 (da U. de' Liguoro - Alg. & Spe. 03/04) Problemi e algoritmi Il che cosa e il come Il che cosa ed il come Problema: descrive che cosa si deve calcolare Specifica (di un algoritmo): descrive che cosa calcola un algoritmo Algoritmo: descrive come

Dettagli

ADT LISTA: altre operazioni non primitive ADT LISTA COSTRUZIONE ADT LISTA COSTRUZIONE ADT LISTA (2)

ADT LISTA: altre operazioni non primitive ADT LISTA COSTRUZIONE ADT LISTA COSTRUZIONE ADT LISTA (2) ADT LISTA Pochi Linguaggi forniscono tipo lista fra predefiniti (LISP, Prolog); per gli altri, ADT lista si costruisce a partire da altre strutture dati (in C tipicamente vettori o puntatori) OPERAZIONI

Dettagli

Programmazione orientata agli oggetti Oggetti Composti. Oggetti composti

Programmazione orientata agli oggetti Oggetti Composti. Oggetti composti Programmazione orientata agli oggetti Oggetti Composti 1 - 1 Negli esempi che abbiamo visto finora gli attributi delle classi erano variabili di tipo primitivo E però possibile definire come attributi

Dettagli

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012 Fondamenti di Informatica - 1 Prof. B.Buttarazzi A.A. 2011/2012 Sommario I sistemi di numerazione Il sistema binario Altri sistemi di numerazione Algoritmi di conversione Esercizi 07/03/2012 2 Sistemi

Dettagli

Rappresentazione dei numeri interi in un calcolatore

Rappresentazione dei numeri interi in un calcolatore Corso di Calcolatori Elettronici I A.A. 2012-2013 Rappresentazione dei numeri interi in un calcolatore Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica

Dettagli

Compito di Programmazione, 22 marzo 2007 INFORMATICI E MULTIMEDIALI

Compito di Programmazione, 22 marzo 2007 INFORMATICI E MULTIMEDIALI Compito di Programmazione, 22 marzo 2007 INFORMATICI E MULTIMEDIALI Esercizio 1 Si consideri la seguente classe che specifica liste di interi: public class List { private int head; private List tail; public

Dettagli