Java. Linguaggi di Programmazione Linguaggi Speciali & Tecnologie dei Linguaggi di Programmazione: Scritto del 30 Giugno 2006

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Java. Linguaggi di Programmazione Linguaggi Speciali & Tecnologie dei Linguaggi di Programmazione: Scritto del 30 Giugno 2006"

Transcript

1 Linguaggi di Programmazione Linguaggi Speciali & Tecnologie dei Linguaggi di Programmazione: Scritto del 30 Giugno 2006 Java Nome e Cognome: Matricola: Corso di Laurea: Date le classi seguenti: class Point { int x; int y; Point(int x, int y) { this.x = x; this.y = y; public static Point[] makearray(int n, Point p1, Point p2) { Point[] res = new Point[n]; boolean flag = true; for (int i = 0; i < n; i++) { res[i] = flag? p1 : p2; flag =!flag; return res; public static Point sum(point[] a) { Point res = a[0]; for(int i = 1; i < a.length; i++) { res.x = res.x + a[i].y; res.x = res.x + a[i].x; return res; Dopo l esecuzione di: Point pt1 = new Point(1,2); Point pt2 = new Point(2,4); Point pt3 = Point.sum(Point.makeArray(3, pt1, pt2)); 1. Quanto vale pt1.x? 2. Quanto vale pt1.y? 3. Quanto vale pt2.x? 4. Quanto vale pt2.y? 5. Quanto vale pt3.x? 6. Quanto vale pt3.y? Date le classi seguenti: 1

2 class A { String method(b a, A b) { return "a"; class B extends A { String method(a a, B b) { return "b"; String method(b a, B b) { return "c"; e gli oggetti seguenti: A a = new A(); B b = new B(); A c = new B(); 7. Quanto vale a.method(a, a)? (a) "a" (b) "b" (c) "c" (d) Errore NoSuchMethod (e) Errore Ambiguous 8. Quanto vale b.method(b, b)? (a) "a" (b) "b" (c) "c" (d) Errore NoSuchMethod (e) Errore Ambiguous 9. Quanto vale c.method(c, c)? (a) "a" (b) "b" (c) "c" (d) Errore NoSuchMethod (e) Errore Ambiguous 10. Quanto vale b.method(b, c)? (a) (b) (c) (d) (e) "a" "b" "c" Errore NoSuchMethod Errore Ambiguous 2

3 11. Dato un array bidimensionale a di stringhe, il suo contorno è composto dalle caselle a[i][j] dove il valore di i o j è quello minimo o quello massimo rispetto alla loro dimensione. Una copertura di a è un array monodimensionale b di stringhe tale che il contorno di a è contenuto in b, ovvero ogni elemento del contorno di a compare in b. Definire un metodo pubblico statico unique che verifica che un array monodimensionale di stringhe è composto di valori unici, ovvero ogni valore compare una volta sola nell array. Definire un metodo minimalcover che prende un array bidimensionale a di stringhe e un array monodimensionale b di stringhe e verifica che b è una copertura di lunghezza minima di a. Per esempio, minimalcover(new String[][] { {"verde", "verde", "verde", "verde", {"bianco", "blue", "bianco", { "rosso", new String[] {"verde", "bianco", "rosso") restituisce true. 3

4 12. Sia Combinator la rappresentazione di un piccolo linguaggio di combinatori Turing completo. Questo linguaggio è composto di due combinatori S e K e dell applicazione di una funzione a un argomento. abstract class Combinator { class S extends Combinator { S () { class K extends Combinator { K () { 4

5 class Apply extends Combinator { Combinator fun; Combinator arg; Apply (Combinator fun, Combinator arg) { this.fun = fun; this.arg = arg; Per simulare l applicazione con più di un argomento si combina l applicazione. Per esempio, il termine S K (K S) K che rappresenta l applicazione di S ai tre argomenti K, (K S) e K, ed il termine K S S che rappresenta l applicazione di K ai due argomenti S e S si definiscono come: Combinator c1 = new Apply(new Apply(new Apply(new S(), new K()), new Apply(new K(), new S())), new K()); Combinator c2 = new Apply(new Apply(new K(), new S()), new S()); Ci sono due regole di riduzione, una per ogni combinatore. Dati due termini x e y qualsiasi, K x y si riduce in x. Dati tre termini x, y e z qualsiasi, S x y z si riduce in x z (y z). La valutazione si effettua in modo non deterministico iterando l applicazione delle regole di riduzione all interno del termine. Per esempio, c1 si valuta in K. Una possibile sequenza di riduzioni è la seguente: S K (K S) K K K (K S K) K K S K. Aggiungere in Combinator: - un metodo pubblico iss che indica se un oggetto di tipo Combinator è un S. Per esempio, new S().isS() restituisce true. - un metodo pubblico isk che indica se un oggetto di tipo Combinator è un K. Per esempio, new K().isK() restituisce true. - un metodo pubblico isapp che indica se un oggetto di tipo Combinator è un Apply. Per esempio, c1.isapp() restituisce true. - un metodo pubblico numberofs che ritorna il numero di combinatori S dentro un termine. Per esempio, c1.numberofs() restituisce 2. - un metodo pubblico equals che fa un test di uguaglianza strutturale con un oggetto o di tipo Object. Per esempio, c1.equals("true") restituisce false, invece new S().equals(new S()) restituisce true. - un metodo pubblico gethead che ritorna il combinatore di testa di un applicazione con argomenti multipli. Per esempio, c1.gethead().iss() restituisce true. - un metodo pubblico numberofargs che ritorna il numero di argomenti di un applicazione. Per esempio, c1.numberofargs() restituisce 3 e c2.numberofargs() restituisce 2. - un metodo pubblico isreds che indica se la regola di riduzione per S è applicabile sulla radice di un termine. Per esempio, c1.isreds() restituisce true. - un metodo pubblico isredk che indica se la regola di riduzione per K è applicabile sulla radice di un termine. Per esempio, c2.isredk() restituisce true. - un metodo pubblico reduce che prova ad applicare una riduzione all interno di un termine. Se tale riduzione non è possibile solleva l eccezione NothingToDoException. Per esempio, c2.reduce().iss() restituisce true. 5

6 - un metodo pubblico eval che itera la riduzione all interno di un termine fino ad esaurimento. Per esempio, c1.eval().isk() restituisce true. 6

7 7

8 Esterel 13. Scrivere un programma che gestisce il centralino delle docce di una piscina comunale. Il centralino gestisce l apertura e la chiusura di due docce (OPEN1, OPEN2 e CLOSE1, CLOSE2). All inizio, le due docce non sono in funzione. Sul centralino ci sono due pulsanti con una lampadina che indicano lo stato delle docce. Il programma può accendere la lampadina (LIGHT1_ON o LIGHT2_ON) o spengerla (LIGHT1_OFF o LIGHT1_OFF). Per mettere in funzione una doccia, l utente deve introdurre una carta magnetica (ENTER) e premere sul pulsante corrispondente (BUTTON1 o BUTTON1). Quando la doccia è libera, il centralino carica il costo della doccia sulla carta (DEBIT) e mette in funzione la doccia corrispondente (OPEN1 o OPEN2) e accende la lampadina corrispondente (LIGHT1_ON o LIGHT2_ON). La doccia funziona per 3 minuti (SECOND) prima di fermarsi (CLOSE1 e LIGHT1_OFF o CLOSE2 e LIGHT2_OFF). Premere su una doccia già occupata fa emettere un segnale sonoro (BEEP). Lasciare una carta inserita per più di un minuto (SECOND) fa emettere un segnale sonoro (BEEP) ogni due secondi (SECOND) fino a quando la carta è ritirata (EXIT). Le dichiarazioni dei segnali sono le seguenti: module SHOWER: input SECOND, ENTER, EXIT, BUTTON1, BUTTON2; relation SECOND # ENTER # EXIT # BUTTON1 # BUTTON2; output BEEP, DEBIT, OPEN1, OPEN2, CLOSE1, CLOSE2, LIGHT1_ON, LIGHT2_ON, LIGHT1_OFF, LIGHT2_OFF;... end module 8

9 Risposte dello scritto del 30 Giugno 2006 Java Date le classi seguenti: class Point { int x; int y; Point(int x, int y) { this.x = x; this.y = y; public static Point[] makearray(int n, Point p1, Point p2) { Point[] res = new Point[n]; boolean flag = true; for (int i = 0; i < n; i++) { res[i] = flag? p1 : p2; flag =!flag; return res; public static Point sum(point[] a) { Point res = a[0]; for(int i = 1; i < a.length; i++) { res.x = res.x + a[i].y; res.x = res.x + a[i].x; return res; Dopo l esecuzione di: Point pt1 = new Point(1,2); Point pt2 = new Point(2,4); Point pt3 = Point.sum(Point.makeArray(3, pt1, pt2)); 1. Quanto vale pt1.x? Quanto vale pt1.y? 2 3. Quanto vale pt2.x? 2 4. Quanto vale pt2.y? 4 5. Quanto vale pt3.x? 18 1

10 6. Quanto vale pt3.y? 2 Date le classi seguenti: class A { String method(b a, A b) { return "a"; class B extends A { String method(a a, B b) { return "b"; String method(b a, B b) { return "c"; e gli oggetti seguenti: A a = new A(); B b = new B(); A c = new B(); 7. Quanto vale a.method(a, a)? (a) "a" (b) "b" (c) "c" (d) Errore NoSuchMethod (e) Errore Ambiguous 8. Quanto vale b.method(b, b)? (a) "a" (b) "b" (c) "c" (d) Errore NoSuchMethod (e) Errore Ambiguous 9. Quanto vale c.method(c, c)? (a) (b) (c) (d) (e) "a" "b" "c" Errore NoSuchMethod Errore Ambiguous 2

11 10. Quanto vale b.method(b, c)? (a) (b) (c) (d) (e) "a" "b" "c" Errore NoSuchMethod Errore Ambiguous 11. Dato un array bidimensionale a di stringhe, il suo contorno è composto dalle caselle a[i][j] dove il valore di i o j è quello minimo o quello massimo rispetto alla loro dimensione. Una copertura di a è un array monodimensionale b di stringhe tale che il contorno di a è contenuto in b, ovvero ogni elemento del contorno di a compare in b. Definire un metodo pubblico statico unique che verifica che un array monodimensionale di stringhe è composto di valori unici, ovvero ogni valore compare una volta sola nell array. Definire un metodo minimalcover che prende un array bidimensionale a di stringhe e un array monodimensionale b di stringhe e verifica che b è una copertura di lunghezza minima di a. Per esempio, minimalcover(new String[][] { {"verde", "verde", "verde", "verde", {"bianco", "blue", "bianco", { "rosso", new String[] {"verde", "bianco", "rosso") restituisce true. public static boolean in(string s, int n, String[] a) { for(int i = n; i < a.length; i++) { if (s.equals(a[i])) { public static boolean in(string s, String[] a) { return in(s, 0, a); public static boolean in(string[] a, String[] b) { for (int i = 0; i < a.length; i++) { if (!in(a[i], b)) { public static boolean unique(string[] a) { for(int i = 0; i < a.length - 1; i++) { if (in(a[i], i + 1, a)) { 3

12 public static boolean inborder(string s, String[][] a) { if (a.length == 0) { if (in(s, a[0]) in(s, a[a.length -1])) { for(int i = 1; i < a.length - 1; i++) { if (a[i].length!=0 && (s.equals(a[i][0]) s.equals(a[i][a[i].length -1]))) { public static boolean inborder(string a[], String[][] b) { for(int i = 0; i < a.length; i++) { if (!(inborder(a[i], b))) { public static boolean cover(string[] c, String[][] a) { if (a.length == 0) { if (!(in(a[0], c) && in(a[a.length -1], c))) { for(int i = 1; i < a.length - 1; i++) { if (a[i].length!= 0 &&!(in(a[i][0], c) && in(a[i][a[i].length -1], c))){ public static boolean minimalcover(string[][] a, String[] c) { return (unique(c) && inborder(c,a) && cover(c,a)); 12. Sia Combinator la rappresentazione di un piccolo linguaggio di combinatori Turing completo. Questo linguaggio è composto di due combinatori S e K e dell applicazione di una funzione a un argomento. abstract class Combinator { 4

13 class S extends Combinator { S () { class K extends Combinator { K () { class Apply extends Combinator { Combinator fun; Combinator arg; Apply (Combinator fun, Combinator arg) { this.fun = fun; this.arg = arg; Per simulare l applicazione con più di un argomento si combina l applicazione. Per esempio, il termine S K (K S) K che rappresenta l applicazione di S ai tre argomenti K, (K S) e K, ed il termine K S S che rappresenta l applicazione di K ai due argomenti S e S si definiscono come: Combinator c1 = new Apply(new Apply(new Apply(new S(), new K()), new Apply(new K(), new S())), new K()); Combinator c2 = new Apply(new Apply(new K(), new S()), new S()); Ci sono due regole di riduzione, una per ogni combinatore. Dati due termini x e y qualsiasi, K x y si riduce in x. Dati tre termini x, y e z qualsiasi, S x y z si riduce in x z (y z). La valutazione si effettua in modo non deterministico iterando l applicazione delle regole di riduzione all interno del termine. Per esempio, c1 si valuta in K. Una possibile sequenza di riduzioni è la seguente: S K (K S) K K K (K S K) K K S K. Aggiungere in Combinator: - un metodo pubblico iss che indica se un oggetto di tipo Combinator è un S. Per esempio, new S().isS() restituisce true. - un metodo pubblico isk che indica se un oggetto di tipo Combinator è un K. Per esempio, new K().isK() restituisce true. - un metodo pubblico isapp che indica se un oggetto di tipo Combinator è un Apply. Per esempio, c1.isapp() restituisce true. - un metodo pubblico numberofs che ritorna il numero di combinatori S dentro un termine. Per esempio, c1.numberofs() restituisce 2. - un metodo pubblico equals che fa un test di uguaglianza strutturale con un oggetto o di tipo Object. Per esempio, c1.equals("true") restituisce false, invece new S().equals(new S()) restituisce true. - un metodo pubblico gethead che ritorna il combinatore di testa di un applicazione con argomenti multipli. Per esempio, c1.gethead().iss() restituisce true. - un metodo pubblico numberofargs che ritorna il numero di argomenti di un applicazione. Per esempio, c1.numberofargs() restituisce 3 e c2.numberofargs() restituisce 2. 5

14 - un metodo pubblico isreds che indica se la regola di riduzione per S è applicabile sulla radice di un termine. Per esempio, c1.isreds() restituisce true. - un metodo pubblico isredk che indica se la regola di riduzione per K è applicabile sulla radice di un termine. Per esempio, c2.isredk() restituisce true. - un metodo pubblico reduce che prova ad applicare una riduzione all interno di un termine. Se tale riduzione non è possibile solleva l eccezione NothingToDoException. Per esempio, c2.reduce().iss() restituisce true. - un metodo pubblico eval che itera la riduzione all interno di un termine fino ad esaurimento. Per esempio, c1.eval().isk() restituisce true. class NothingToDoException extends Exception { abstract class Combinator { public boolean iss() { public boolean isk() { public boolean isapp() { public abstract int numberofs(); public abstract boolean equals(object o); public Combinator gethead() { return this; public int numberofargs() { return 0; public boolean isredk() { return (gethead().isk() && numberofargs() == 2); public boolean isreds() { return (gethead().iss() && numberofargs() == 3); public Combinator reducetop() { return this; public Combinator reduce() throws NothingToDoException { Combinator res = reducetop(); if (this.equals(res)) { throw new NothingToDoException(); return res; public Combinator eval() { Combinator res = this, next; while (true) { System.out.println(res); 6

15 next = res.reducetop(); if (next.equals(res)) { return res; res = next; class S extends Combinator { S() { public boolean iss() { public int numberofs() { return 1; public boolean equals(object o) { return (o instanceof S); class K extends Combinator { K() { public boolean isk() { public int numberofs() { return 0; public boolean equals(object o) { return (o instanceof K); class Apply extends Combinator { Combinator fun; Combinator arg; Apply(Combinator fun, Combinator arg) { this.fun = fun; this.arg = arg; public boolean isapp() { public int numberofs() { return fun.numberofs() + arg.numberofs(); public boolean equals(object o) { if (!(o instanceof S)) { 7

16 Apply app = (Apply) o; return (fun.equals(app.fun) && arg.equals(app.arg)); public Combinator gethead() { return fun.gethead(); public int numberofargs() { return fun.numberofargs() + 1; public Combinator reducetop() { if (isredk()) { return ((Apply) fun).arg; if (isreds()) { Apply app1 = (Apply) fun; Apply app2 = (Apply) app1.fun; return new Apply(new Apply(app2.arg, arg), new Apply(app1.arg, arg)); Combinator res1 = fun.reducetop(); if (fun.equals(res1)) { return (new Apply(fun, arg.reducetop())); return new Apply(res1, arg); Esterel 13. Scrivere un programma che gestisce il centralino delle docce di una piscina comunale. Il centralino gestisce l apertura e la chiusura di due docce (OPEN1, OPEN2 e CLOSE1, CLOSE2). All inizio, le due docce non sono in funzione. Sul centralino ci sono due pulsanti con una lampadina che indicano lo stato delle docce. Il programma può accendere la lampadina (LIGHT1_ON o LIGHT2_ON) o spengerla (LIGHT1_OFF o LIGHT1_OFF). Per mettere in funzione una doccia, l utente deve introdurre una carta magnetica (ENTER) e premere sul pulsante corrispondente (BUTTON1 o BUTTON1). Quando la doccia è libera, il centralino carica il costo della doccia sulla carta (DEBIT) e mette in funzione la doccia corrispondente (OPEN1 o OPEN2) e accende la lampadina corrispondente (LIGHT1_ON o LIGHT2_ON). La doccia funziona per 3 minuti (SECOND) prima di fermarsi (CLOSE1 e LIGHT1_OFF o CLOSE2 e LIGHT2_OFF). Premere su una doccia già occupata fa emettere un segnale sonoro (BEEP). Lasciare una carta inserita per più di un minuto (SECOND) fa emettere un segnale sonoro (BEEP) ogni due secondi (SECOND) fino a quando la carta è ritirata (EXIT). Le dichiarazioni dei segnali sono le seguenti: module SHOWER: input SECOND, ENTER, EXIT, BUTTON1, BUTTON2; relation SECOND # ENTER # EXIT # BUTTON1 # BUTTON2; 8

17 output BEEP, DEBIT, OPEN1, OPEN2, CLOSE1, CLOSE2, LIGHT1_ON, LIGHT2_ON, LIGHT1_OFF, LIGHT2_OFF;... end module module SHOWER: input SECOND, ENTER, EXIT, BUTTON1, BUTTON2; relation SECOND # ENTER # EXIT # BUTTON1 # BUTTON2; output BEEP, DEBIT, OPEN1, OPEN2, CLOSE1, CLOSE2, LIGHT1_ON, LIGHT2_ON, LIGHT1_OFF, LIGHT2_OFF; signal SHOW1, SHOW2, RUN1, RUN2 in loop await RUN1; emit OPEN1; emit LIGHT1_ON; emit DEBIT; await SECOND; abort sustain SHOW1; when 179 SECOND; emit LIGHT2_ON; emit CLOSE2; end loop loop await RUN2; emit OPEN2; emit LIGHT2_ON; emit DEBIT; await SECOND; abort sustain SHOW2; when 179 SECOND; emit LIGHT2_ON; emit CLOSE2; end loop loop await ENTER; abort every BUTTON1 do present SHOW1 then emit BEEP else emit RUN1 end present end every every BUTTON2 do present SHOW2 then emit BEEP else emit RUN2 end present end every 9

18 await 60 SECOND; every 2 SECOND do emit BEEP end every when EXIT end loop end signal end module 10

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

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

Dettagli

Oggetti Lezione 3. aspetti generali e definizione di classi I

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

Dettagli

Semplici Algoritmi di Ordinamento

Semplici Algoritmi di Ordinamento Fondamenti di Informatica Semplici Algoritmi di Ordinamento Fondamenti di Informatica - D. Talia - UNICAL 1 Ordinamento di una sequenza di elementi Esistono molti algoritmi di ordinamento. Tutti ricevono

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

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

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

Dettagli

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

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

Dettagli

Elementi di semantica denotazionale ed operazionale

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

Dettagli

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

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

Dettagli

Arduino: Programmazione

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

Dettagli

Programmazione Java: Variabili membro, Metodi La parola chiave final

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

Dettagli

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

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

Dettagli

Definizione. File di dati. Insieme di record omogenei memorizzati in memoria di massa. Record. Bianchi. Anna Roma 1980. Verdi. Luca Milano 1960.

Definizione. File di dati. Insieme di record omogenei memorizzati in memoria di massa. Record. Bianchi. Anna Roma 1980. Verdi. Luca Milano 1960. File di dati Definizione File di dati Insieme di record omogenei memorizzati in memoria di massa Bianchi Verdi Neri Verdi Anna Roma 1980 Luca Milano 1960 Andrea Torino 1976 Paola Bari 1954 Record Operazioni

Dettagli

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

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

Dettagli

RICORSIVITA. Vediamo come si programma la soluzione ricorsiva al problema precedente: Poniamo S 1 =1 S 2 =1+2 S 3 =1+2+3

RICORSIVITA. Vediamo come si programma la soluzione ricorsiva al problema precedente: Poniamo S 1 =1 S 2 =1+2 S 3 =1+2+3 RICORSIVITA 1. Cos è la ricorsività? La ricorsività è un metodo di soluzione dei problemi che consiste nell esprimere la soluzione relativa al caso n in funzione della soluzione relativa al caso n-1. La

Dettagli

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

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

Dettagli

Finestra.java. static String nomicolonne[] = {"ind.","cognome","nome","telefono","e-mail"}; //nomi delle colonne della tabella

Finestra.java. static String nomicolonne[] = {ind.,cognome,nome,telefono,e-mail}; //nomi delle colonne della tabella import java.awt.*; import java.awt.event.actionevent; import java.awt.event.actionlistener; import java.awt.event.windowevent; import java.awt.event.windowlistener; import java.io.*; import java.util.*;

Dettagli

Esercizio di Sincronizzazione tra Processi: Ponte a Senso Unico Alternato con Capacità Limitata

Esercizio di Sincronizzazione tra Processi: Ponte a Senso Unico Alternato con Capacità Limitata Esercizio di Sincronizzazione tra Processi: Ponte a Senso Unico Alternato con Capacità Limitata Supponiamo sempre di avere un ponte stretto che permette il passaggio delle auto solo in un verso per volta,

Dettagli

Esercizi Capitolo 5 - Alberi

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

Dettagli

Descrizioni VHDL Behavioral

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

Dettagli

Struttura di un programma Java. Package. Uso dei package

Struttura di un programma Java. Package. Uso dei package Università degli Studi di Roma La Sapienza Corso di Laurea in Ingegneria dell Informazione (sede di Latina) Corso di Laurea in Ingegneria dell Informazione (consorzio Nettuno) Struttura di un programma

Dettagli

Le variabili. Olga Scotti

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

Dettagli

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

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

Dettagli

Verifica che una grammatica sia Context Free nel GrammaReader

Verifica che una grammatica sia Context Free nel GrammaReader Verifica che una grammatica sia Context Free nel GrammaReader Sommario Dispensa di Linguaggi di Programmazione Corrado Mencar Pasquale Lops In questa dispensa si descrivono alcune soluzioni per verificare

Dettagli

Laboratorio di Sistemi Fattoriale di un numero Jsp [Java]

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

Dettagli

AA 2006-07 LA RICORSIONE

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

Dettagli

Programmazione di rete in Java

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

Dettagli

Fondamenti dell Informatica Ricorsione e Iterazione Simona Ronchi Della Rocca (dal testo: Kfoury, Moll and Arbib, cap.5.2)

Fondamenti dell Informatica Ricorsione e Iterazione Simona Ronchi Della Rocca (dal testo: Kfoury, Moll and Arbib, cap.5.2) Fondamenti dell Informatica Ricorsione e Iterazione Simona Ronchi Della Rocca (dal testo: Kfoury, Moll and Arbib, cap.5.2) Definiamo innanzitutto una relazione d ordine tra le funzioni. Siano φ e ψ funzioni

Dettagli

Un oggetto per la lettura dalla tastiera

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

Dettagli

Sottoprogrammi: astrazione procedurale

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

Dettagli

Istruzioni per il controllo di ciclo - ciclo a condizione generica

Istruzioni per il controllo di ciclo - ciclo a condizione generica Istruzioni per il controllo di ciclo - ciclo a condizione generica Permette di ripetere l esecuzione di un blocco di istruzioni finchè non viene verificata una condizione logica. Sintassi istruzione_1...

Dettagli

esercizi Esercizi / problemi

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

Dettagli

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati

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

Dettagli

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

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

Dettagli

STRUTTURE (O COSTRUTTI) DI CONTROLLO

STRUTTURE (O COSTRUTTI) DI CONTROLLO Le strutture di controllo Le strutture di controllo STRUTTURE (O COSTRUTTI) DI CONTROLLO determinano l ordine con cui devono essere eseguite le istruzioni sono indipendenti dalla natura delle istruzioni

Dettagli

Ricerca sequenziale di un elemento in un vettore

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

Dettagli

Abstract Data Type (ADT)

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

Dettagli

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

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

Dettagli

Chiamate di sistema per la Inter Process Communication (IPC) in POSIX. E.Mumolo, DEEI mumolo@units.it

Chiamate di sistema per la Inter Process Communication (IPC) in POSIX. E.Mumolo, DEEI mumolo@units.it Chiamate di sistema per la Inter Process Communication (IPC) in POSIX E.Mumolo, DEEI mumolo@units.it Pipe Cos'è un pipe? E' un canale di comunicazione che unisce due processi Caratteristiche: La più vecchia

Dettagli

Progetti reali con ARDUINO

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

Dettagli

Middleware Laboratory. Dai sistemi concorrenti ai sistemi distribuiti

Middleware Laboratory. Dai sistemi concorrenti ai sistemi distribuiti Dai sistemi concorrenti ai sistemi distribuiti Problemi nei sistemi concorrenti e distribuiti I sistemi concorrenti e distribuiti hanno in comune l ovvio problema di coordinare le varie attività dei differenti

Dettagli

DAL PROBLEMA AL CODICE: ATTRAVERSO LO PSEUDOCODICE

DAL PROBLEMA AL CODICE: ATTRAVERSO LO PSEUDOCODICE DAL PROBLEMA AL CODICE: ATTRAVERSO LO PSEUDOCODICE Il problema Un computer è usato per risolvere dei problemi Prenotazione di un viaggio Compilazione e stampa di un certificato in un ufficio comunale Preparazione

Dettagli

Le Liste. Elisa Marengo. Università degli Studi di Torino Dipartimento di Informatica. Elisa Marengo (UNITO) Le Liste 1 / 31

Le Liste. Elisa Marengo. Università degli Studi di Torino Dipartimento di Informatica. Elisa Marengo (UNITO) Le Liste 1 / 31 Le Liste Elisa Marengo Università degli Studi di Torino Dipartimento di Informatica Elisa Marengo (UNITO) Le Liste 1 / 31 Cos è una Lista Una lista è una collezione di elementi omogenei che: potrebbero

Dettagli

La ricorsione. Politecnico di Milano Sede di Cremona

La ricorsione. Politecnico di Milano Sede di Cremona La ricorsione Politecnico di Milano Sede di Cremona Gianpaolo Cugola Dipartimento di Elettronica e Informazione cugola@elet.polimi.it http://www.elet.polimi.it/~cugola Definizioni ricorsive Sono comuni

Dettagli

Concetto di Funzione e Procedura METODI in Java

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

Dettagli

Esercitazione 7. Procedure e Funzioni

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

Dettagli

Gestione dinamica di una pila

Gestione dinamica di una pila Gestione dinamica di una pila Una pila o stack è una lista lineare a lunghezza variabile in cui inserimenti (push) ed estrazioni (pop) vengono effettuate ad un solo estremo, detto testa (top) della pila.

Dettagli

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

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

Dettagli

Introduzione alla Programmazione ad Oggetti in C++

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

Dettagli

RICORSIONE - schema ricorsivo (o induttivo) si esegue l'azione S, su un insieme di dati D, mediante eventuale esecuzione di

RICORSIONE - schema ricorsivo (o induttivo) si esegue l'azione S, su un insieme di dati D, mediante eventuale esecuzione di RICORSIONE - schema ricorsivo (o induttivo) si esegue l'azione S, su un insieme di dati D, mediante eventuale esecuzione di esempio CERCA 90 NEL SACCHETTO = estrai num Casi num 90 Effetti CERCA 90 NEL

Dettagli

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

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

Dettagli

CORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity

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

Dettagli

Ricorsione. Corso di Fondamenti di Informatica

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

Dettagli

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

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

Dettagli

Gli algoritmi. Gli algoritmi. Analisi e programmazione

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

Dettagli

Lezione 9: Strutture e allocazione dinamica della memoria

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

Dettagli

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

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

Dettagli

Programmazione Funzionale

Programmazione Funzionale Programmazione Funzionale LP imperativi: apparenza simile modello di progettazione = macchina fisica Famiglia dei LP imperativi = progressivo miglioramento del FORTRAN Obiezione: pesante aderenza dei LP

Dettagli

Serduino - SERRA CON ARDUINO

Serduino - SERRA CON ARDUINO Serduino - SERRA CON ARDUINO 1 Componenti Facchini Riccardo (responsabile parte hardware) Guglielmetti Andrea (responsabile parte software) Laurenti Lorenzo (progettazione hardware) Rigolli Andrea (reparto

Dettagli

Le funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni.

Le funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni. Le funzioni in C I programmi C sono costituiti da definizioni di variabili e funzioni. Una definizione di funzione ha il seguente formato: tipo-ritornato nome-funzione(lista-parametri) { dichiarazioni

Dettagli

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

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

Dettagli

Le Stringhe. Un introduzione operativa. Luigi Palopoli

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

Dettagli

---------------------------------------------------------------- Puntatori a funzione. In C è possibile utilizzare dei puntatori a funzioni, ovvero

---------------------------------------------------------------- Puntatori a funzione. In C è possibile utilizzare dei puntatori a funzioni, ovvero ---------------------------------------------------------------- Puntatori a funzione. In C è possibile utilizzare dei puntatori a funzioni, ovvero delle variabili a cui possono essere assegnati gli indirizzi

Dettagli

Sistemi Operativi Sincronizzazione tra Processi

Sistemi Operativi Sincronizzazione tra Processi Sistemi Operativi Processi Docente: Claudio E. Palazzi cpalazzi@math.unipd.it Crediti per queste slides al Prof. Tullio Vardanega 1 Processi indipendenti possono avanzare concorrentemente senza alcun vincolo

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

Dipartimento di Sistemi e Informatica Università degli Studi di Firenze. Dev-C++ Ing. Michele Banci 27/03/2007 1

Dipartimento di Sistemi e Informatica Università degli Studi di Firenze. Dev-C++ Ing. Michele Banci 27/03/2007 1 Dipartimento di Sistemi e Informatica Università degli Studi di Firenze Dev-C++ Ing. Michele Banci 27/03/2007 1 Utilizzare Dev-C++ Tutti i programmi che seranno realizzati richiedono progetti separati

Dettagli

ALGORITMI 1 a Parte. di Ippolito Perlasca. Algoritmo:

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

Dettagli

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

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

Dettagli

Fondamenti di Informatica T. Linguaggio C: File

Fondamenti di Informatica T. Linguaggio C: File Linguaggio C: File I File Il file e` l'unita` logica di memorizzazione dei dati su memoria di massa, che consente una memorizzazione persistente dei dati, non limitata dalle dimensioni della memoria centrale.

Dettagli

Introduzione al linguaggio C Gli array

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

Dettagli

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

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

Dettagli

Esercizi di Algoritmi e Strutture Dati

Esercizi di Algoritmi e Strutture Dati Esercizi di Algoritmi e Strutture Dati Moreno Marzolla http://www.moreno.marzolla.name/ Ultimo Aggiornamento: 25 giugno 2014 Copyright Copyright 2012, 2013, 2014 Moreno Marzolla. Quest'opera è stata rilasciata

Dettagli

Linguaggio C: introduzione

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

Dettagli

Introduzione al VHDL. Alcuni concetti introduttivi

Introduzione al VHDL. Alcuni concetti introduttivi Introduzione al VHDL Alcuni concetti introduttivi Riferimenti The VHDL Cookbook, Peter J. Ashenden, Reperibile nel sito: http://vlsilab.polito.it/documents.html The VHDL Made Easy, David Pellerin, Douglas

Dettagli

MIPS Instruction Set 2

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

Dettagli

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

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

Dettagli

Integrare le MFC con Irrlicht. Sezione 1: Creazione del progetto. by Raffaele White tiger Mancuso

Integrare le MFC con Irrlicht. Sezione 1: Creazione del progetto. by Raffaele White tiger Mancuso Integrare le MFC con Irrlicht by Raffaele White tiger Mancuso In questo topic spiegherò come integrare irrlicht in un documento singolo MFC *(1). Io ho usato il visual c++ 6 ma la procedura dovrebbe essere

Dettagli

Le funzionalità di un DBMS

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

Dettagli

I name server DNS. DNS: Domain Name System. Esempio di DNS. DNS: Root name server. DNS: queries ripetute

I name server DNS. DNS: Domain Name System. Esempio di DNS. DNS: Root name server. DNS: queries ripetute DNS: Domain Name System I name DNS Persone: identificatori: CF, nome, Numero di Passaporto Host e router Internet: Indirizzo IP ( bit) - usato per instradare i pacchetti nome, per es., massimotto.diiie.unisa.it

Dettagli

R.Focardi Laboratorio di Ingegneria del Software 6. 1

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

Dettagli

WWW.TINYLOC.COM CUSTOMER SERVICE GPS/ RADIOTRACKING DOG COLLAR. T. (+34) 937 907 971 F. (+34) 937 571 329 sales@tinyloc.com

WWW.TINYLOC.COM CUSTOMER SERVICE GPS/ RADIOTRACKING DOG COLLAR. T. (+34) 937 907 971 F. (+34) 937 571 329 sales@tinyloc.com WWW.TINYLOC.COM CUSTOMER SERVICE T. (+34) 937 907 971 F. (+34) 937 571 329 sales@tinyloc.com GPS/ RADIOTRACKING DOG COLLAR MANUALE DI ISTRUZIONI ACCENSIONE / SPEGNERE DEL TAG HOUND Finder GPS Il TAG HOUND

Dettagli

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net

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

Dettagli

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

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

Dettagli

Funzioni. Corso di Fondamenti di Informatica

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

Dettagli

Gestione dei File in C

Gestione dei File in C Gestione dei File in C Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario In questo documento saranno introdotte

Dettagli

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

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

Dettagli

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

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

Dettagli

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008. - lezione 14 - Thread in Java

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008. - lezione 14 - Thread in Java Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it - lezione 14 - Thread in Java 1 Cos è un

Dettagli

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

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

Dettagli

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

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

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

Dettagli

1 EJB e Portal Component Object http://desvino.altervista.org

1 EJB e Portal Component Object http://desvino.altervista.org 1 EJB e Portal Component Object http://desvino.altervista.org In questo tutorial studiamo come sfruttare la tecnologia EJB, Enterprise JavaBean, all interno del SAP Netweaver Portal. In breve, EJB è un

Dettagli

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

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

Dettagli

SIMATIC. SCL per S7-300/400 Programmazione di blocchi. Prefazione, Contenuto. Parte 1: Sviluppo di programmi. Parte 2: Uso e test

SIMATIC. SCL per S7-300/400 Programmazione di blocchi. Prefazione, Contenuto. Parte 1: Sviluppo di programmi. Parte 2: Uso e test Prefazione, Contenuto Parte 1: Sviluppo di programmi Parte 2: Uso e test SIMATIC Parte 3: Descrizione del linguaggio Programmazione di blocchi Appendici Glossario, Indice analitico Manuale Numero di ordinazione

Dettagli

CALCOLO DEL MASSIMO COMUN DIVISORE

CALCOLO DEL MASSIMO COMUN DIVISORE CALCOLO DEL MASSIMO COMUN DIVISORE Problema: "calcolare il Massimo Comun Divisore (M.C.D.) di due numeri naturali, A e B, secondo l'algoritmo cosiddetto delle sottrazioni successive". L'algoritmo "delle

Dettagli

StarOffice TM 7 Office Suite

StarOffice TM 7 Office Suite StarOffice TM 7 Office Suite A Sun TM ONE Software Offering Manuale di programmazione in Basic Sun Microsystems, Inc. 4150 Network Circle Santa Clara, CA 95054 U.S.A. 650-960-1300 Part No. 817-3918-10

Dettagli

PROGRAMMAZIONE ORIENTATA AGLI OGGETTI in C++

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

Dettagli

Universita' di Ferrara Dipartimento di Matematica e Informatica. Algoritmi e Strutture Dati. Rappresentazione concreta di insiemi e Hash table

Universita' di Ferrara Dipartimento di Matematica e Informatica. Algoritmi e Strutture Dati. Rappresentazione concreta di insiemi e Hash table Universita' di Ferrara Dipartimento di Matematica e Informatica Algoritmi e Strutture Dati Rappresentazione concreta di insiemi e Hash table Copyright 2006-2015 by Claudio Salati. Lez. 9a 1 Rappresentazione

Dettagli

Classi ed Oggetti in JAVA

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

Dettagli

Ambienti di sviluppo integrato

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

Dettagli