ARRAY E STRINGHE. G. Frosini Slide 1

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "ARRAY E STRINGHE. G. Frosini Slide 1"

Transcript

1 ARRAY E STRINGHE G. Frosini Slide 1

2 Array: VARIABILI ARRAY struttura dati costituita da elementi (anche nessuno, array vuoto) dello stesso tipo; tipo array: tipo degli elementi, non numero degli elementi; in Java gli array sono oggetti, riferiti da variabili array (riferimenti nella terminologia Java). Variabile array: definizione di una variabile array (riferimento): tipoelementi [] identificatore; Esempio: int[] ar; // definizione della variabile ar di tipo int[] ar la variabile ar è un riferimento destinato a contenere indirizzi di oggetti di tipo array di interi. G. Frosini Slide 2

3 OGGETTI ARRAY Oggetto array viene creato in memoria dinamica con l operatore new, che (oltre all effetto collaterale della creazione) restituisce come risultato l indirizzo dell oggetto creato; tale indirizzo viene (comunemente) memorizzato in una variabile array; la lunghezza dell array (numero di elementi) viene memorizzata, all atto della creazione dell oggetto, in una variabile length (variabile final) che fa parte dell oggetto stesso. variabilearray = new tipoelementi [numeroelementi] Esempio: ar = new int[3]; viene creato l oggetto array di 3 interi, il cui indirizzo viene memorizzato in ar; ar.length: ha per valore la costante 3. Applicazione dell operatore. : dereferenziazione di ar; selezione del membro length. indirizzo dell oggetto La definizione di una variabile array e la creazione di un oggetto array possono essere anche contestuali: esempio: int[] ar = new int[3]; ar variabile array ar.length oggetto array array G. Frosini Slide 3

4 ELEMENTI DI UN ARRAY Elementi: se presenti, sono numerati da 0 a length-1; vengono selezionati, attraverso un indice di posizione, applicando a una variabile array l operatore [] ; questo operatore effettua il test di validità dell indice in fase di esecuzione. l applicazione dell operatore [] comporta: la dereferenziazione di ar, ottenendo l indirizzo dell oggetto; la selezione di un elemento all interno dell array contenuto nell oggetto. Esempi: ar[2] = 10; int n = ar[1]; indirizzo dell oggetto ar[3] = 5; // segnalazione di errore in fase di esecuzione Inizializzazione di un oggetto array con un aggregato: ar int[] aa = { 5, 3, 7, 9 ; viene definita una variabile array aa; viene creato in memoria dinamica un oggetto array di 4 elementi, ciascuno con valore iniziale, e l indirizzo dell oggetto creato viene memorizzato nel riferimento aa. ar[1] G. Frosini Slide 4

5 ESEMPIO: INTERO POSITIVO IN 32 CIFRE BINARIE Trasformazione di un intero maggiore o uguale a 0 (positivo) in un array di 32 caratteri, '0' oppure '1', corrispondenti alle cifre binarie. public class CalcolaArrayBinarioP { public static void main(string[] args) { char c; int i, cifra, numero; char[] ac = new char[32]; Console.scriviStringa("Scrivi un numero intero maggiore o uguale a 0:"); numero = Console.leggiIntero(); for (i=0; i < 32; i++) { cifra = numero % 2; numero = numero / 2; c = (char)(cifra + '0'); ac[31-i] = c; for(i = 0; i < 32; i++) Console.scriviUnCarattere(ac[i]); Console.nuovaLinea(); Il programma può essere utilizzato per esaminare la codifica di un intero qualunque o (cambiando il numero di ieterazioni del for da 32 a 16) quella di un carattere (unicode). G. Frosini Slide 5

6 ARGOMENTI DI TIPO ARRAY Funzioni: possono avere come argomento formale un riferimento di un tipo array; possono avere come argomento attuale un riferimento dello stesso tipo, riferimento di un oggetto array di dimensioni qualsivoglia. Esempio: programma che calcola la somma degli elementi di un oggetto array di interi di qualunque dimensione, riferito da una variabile riferimento v : public class SommaA { static int somma(int[] v) { int i, s = 0; for (i = 0; i < v.length; i++) s += v[i]; return s; static public void main(string[] args) { int[] a = { 1, 2, 3 ; int[] b = { 11, 12, 13, 14, 15 ; Console.scriviIntero (somma(a)); Console.scriviIntero(somma(b)); G. Frosini Slide 6

7 ARGOMENTI RIFERIMENTI Argomenti di una funzione: sempre valori; se riferimenti, valori dei riferimenti; Modifiche agli argomenti formali: non hanno alcuna ripercussione sugli argomenti attuali. Argomenti formali riferimento: consentono di modificare l oggetto riferito (se trattasi di un array, i suoi elementi); il riferimento attuale consente di modificare l oggetto attualmente riferito. G. Frosini Slide 7

8 RADDOPPIO DI UN INTERO E DI UN ARRAY public class RaddoppiaIntero { static void raddoppiai(int n) { n *= 2; public static void main(string[] args) { int i; int num = 10; raddoppiai(num); Console.scriviIntero(num); // non raddoppia: scrive 10 num 10 Raddoppia il contenuto dell argomento raddoppiai n public class RaddoppiaArray { static void raddoppiaa(int[] a) { int i; for (i=0; i<a.length; i++) a[i] *= 2; raddoppiaa public static void main(string[] args) { int i; int[] vett = new int[3]; for (i =0; i<3; i++) vett[i] = i; raddoppiaa(vett); for (i =0; i<3; i++) Console.scriviInt(vett[i]); Console.nuovaLinea(); // raddoppia: scrive Raddoppia il contenuto dell array riferito dal argomento a vett A[0]... G. Frosini Slide 8

9 OPERAZIONI SUGLI ARRAY (1) Assegnamento: int[] ar1 = ; int[] ar2 = ; ar1 = ar2; avviene fra variabili array, e quindi fra riferimenti (che riferiscono oggetti array con lo stesso tipo di elementi, non necessariamente con lo stesso numero): Uguaglianza: dopo l assegnamento precedente, le due variabili array ar1 e ar2 contengono l indirizzo dello stesso oggetto array. ar1 == ar2; // uguale ar1!=ar2; // diverso avviene fra variabili array, e quindi fra riferimenti. l operatore uguale (diverso) restituisce true o false a seconda che le variabili riferiscano o non riferiscano (non riferiscano o riferiscano) lo stesso oggetto array. G. Frosini Slide 9

10 OPERAZIONI SUGLI ARRAY (2) Ricopiamento di array: System.arraycopy(Object ar1, int i1, Object ar2, int i2, int quanti ) ricopia dall array ar1 (a partire dall indice i1) nell array ar2 (a partire dall indice i2) quanti elementi. Uguaglianza fra array (occorre includere il package java.util.*): boolean Arrays.equals(Object ar1, Object ar2 ) l uguaglianza si verifica se: gli array sono dello stesso tipo (elementi dello stesso tipo), hanno la stessa lunghezza, e gli elementi in posizione corrispondente sono uguali. G. Frosini Slide 10

11 ARRAY MULTIDIMENSIONALI Array multidimensionali un array (primario) può avere come elementi altri array (secondari); in questo caso negli elementi dell array primario sono memorizzati i riferimenti degli array secondari (e non direttamente gli array secondari); gli array secondari, pur dovendo essere dello stesso tipo, non è detto che abbiano lo stesso numero di elementi; se hanno lo stesso numero di elementi, si ottengono le matrici. int[] a = { 1,2, b = { 1, 2, 3, c = { 1 ; int[][] aa = new int[3][]; // la variabile array aa ha tre elementi, // ognuno dei quali è un array di interi aa[0] = a; aa[1] = b; aa[2] = c; aa a b 1 c G. Frosini Slide 11

12 MATRICI Array di array di ugual dimensione: elementi interi, nr = numero righe, nc numero colonne; int[][] m = new int[nr][]; for(i=0; i<nr; i++) m[i] = new int[nc]; Si può anche scrivere: int[][] m = new int[nr][nc]; Esempio: public class Matrice { public static void main(string[] args) { int i, j; int[][] m = new int[3][4]; for(i=0; i<m.length; i++) for(j=0; j<m[i].length; j++) m[i][j] = i*4+j; for(i=0; i<m.length; i++) { for(j=0; j<m[i].length; j++) Console.scriviInt(m[i][j]); Console.nuovaLinea(); // uscita: // // // G. Frosini Slide 12

13 ORDINAMENTO DI UN ARRAY Algoritmo elementare: confrontare ogni elemento con il successivo, scambiando eventualmente gli elementi di posto; ripetere il tutto fino a quando l array viene scorso senza scambi. public class Ordina { static void sort(int[] v) { boolean ordinato; int i, t; do { ordinato = true; for (i = 0; i < v.length-1; i++) if (v[i] > v[i+1]) { ordinato = false; t = v[i+1]; v[i+1] = v[i]; v[i] = t; while (!ordinato); public static void main(string[] args) { int i; int[] vett = new int[8]; Console.scriviStringa("Scrivi 8 interi"); for (i=0; i<vett.length; i++) vett[i] = Console.leggiIntero(); sort(vett); for (i=0; i<vett.length; i++) Console.scriviInt(vett[i]); Console.nuovaLinea(); G. Frosini Slide 13

14 RICERCA IN UN ARRAY Problema: funzione che cerca se una data entità (chiave) è presente all'interno di una tabella ordinata (ipotesi: non vi sono chiavi uguali); la ricerca, se positiva, fornisce un risultato, che nel caso più semplice è l indice dell elemento trovato; caso considerato: la tabella è un array di interi. Algoritmo (ricerca binaria o logaritmica): confrontare la chiave cercata con l'elemento di mezzo della tabella; se questi sono uguali la ricerca termina, altrimenti: se la chiave è minore dell elemento di mezzo la ricerca prosegue (con le stesse regole) nella prima metà della tabella; se la chiave è maggiore dell elemento di mezzo la ricerca prosegue (con le stesse regole) nella seconda metà della tabella. Quando la ricerca prosegue, può accadere che la metà considerata sia vuota, e in questo caso l'elemento cercato non si trova nella tabella. G. Frosini Slide 14

15 ESEMPIO DI RICERCA BINARIA Risultato intero: posizione della chiave, oppure -1 (chiave non trovata). public class RicercaB { static int ricbin(int[] tab, int infe, int supe, int k) { if (supe < infe) return -1; // tabella vuota int medio = (infe + supe) / 2; if (k == tab[medio]) return medio; // elem. trovato if (k < tab[medio]) return ricbin(tab, infe, medio-1, k); return ricbin(tab, medio+1, supe, k); public static void main(string[] args) { int i, key, pos; int[] vett = new int[10]; Console.scriviStringa("Scrvi 10 interi:"); for(i=0; i<vett.length; i++) vett[i] = Console.leggiIntero(); Console.scriviStringa("Scrivi una chiave intera:"); key = Console.leggiIntero(); pos = ricbin(vett, 0, vett.length-1, key); if (pos == -1) Console.scriviStringa("Chiave non trovata"); else Console.scriviIntero(pos); G. Frosini Slide 15

16 PILA CON ARRAY Pila: insieme ordinato di dati di ugual tipo, in cui sono possibili inserimenti ed estrazioni con la seguente regola: ultimo inserito primo estratto (LIFO). Realizzazione utilizzando un array stack e un indice top: top 0 stack.length-1 top è l indice dell ultimo dato inserito. Inserimento: incremento di top, memorizzazione di un dato. Estrazione: prelievo di un dato, decremento di top. Pila vuota: top uguale a -1. Pila piena: top uguale a stack.length-1. G. Frosini Slide 16

17 ESEMPIO DI PILA CON ARRAY public class Pila { static int[] stack = new int[5]; static int top = -1; static boolean empty() { if (top == -1) return true; return false; static boolean full() { if (top == stack.length-1) return true; return false; static void push(int s) { if (top!=stack.length-1) { top++; stack[top] = s; static int pop() { int s = 0; if (top!=-1) { s = stack[top]; top--; return s; public static void main(string[] args) { int i, n, m; Console.scriviStringa("Quanti numeri vuoi inserire?:"); n = Console.leggiIntero(); Console.scriviStringa("Sequenza di numeri da inserire:"); for (i = 0; i < n; i++) { m = Console.leggiIntero(); if(!full()) { push(m); Console.scriviStr("Inserito numero "); Console.scriviIntero(m); else Console.scriviStringa("Pila piena"); Console.scriviStringa("Quanti numeri vuoi estrarre?"); n = Console.leggiIntero(); for (i = 0; i < n; i++) if(!empty()) { m = pop(); Console.scriviStr("Estratto Numero "); Console.scriviIntero(m); else Console.scriviStringa("Pila vuota"); G. Frosini Slide 17

18 CODA CON ARRAY Coda: insieme ordinato di dati di ugual tipo, in cui sono possibili inserimenti ed estrazioni con la seguente regola: primo inserito primo estratto (FIFO). Realizzazione utilizzando un array (circolare) queue e due indici: front back 0 queue.length-1 back è l indice della prossima immissione front è l indice della prossima estrazione quanti è il numero di elementi presenti Immissione: memorizzazione di un dato e incremento (circolare) di back. Estrazione: prelievo di un dato e incremento (circolare) di front. Coda vuota: quanti uguale a 0. Coda piena: quanti uguale a queue.length G. Frosini Slide 18

19 ESEMPIO DI CODA CON ARRAY public class Coda { static int front = 0, back = 0, quanti = 0; static int[] queue = new int[5]; static boolean empty() { if (quanti == 0) return true; return false; static boolean full() { if (quanti == queue.length) return true; return false; static void immetti(int s) { if (quanti!= queue.length) { queue[back] = s; back = (back+1)%queue.length; quanti++; static int estrai() { int s = 0 ; if (quanti!= 0) { s = queue[front]; front = (front+1)%queue.length; quanti--; return s; public static void main(string[] args) { int i, n, m; Console.scriviStringa("Quanti numeri vuoi inserire?"); n = Console.leggiIntero(); Console.scriviStringa("Sequenza di numeri da inserire:"); for (i = 0; i < n; i++) { m = Console.leggiIntero(); if(!full()) { immetti(m); Console.scriviStr("Inserito numero "); Console.scriviIntero(m); else Console.scriviStringa("Coda piena"); Console.scriviStringa("Quanti numeri vuoi estrarre?"); n = Console.leggiIntero(); for (i = 0; i < n; i++) if(!empty()) { m = estrai(); Console.scriviStr("Estratto Numero "); Console.scriviIntero(m); else Console.scriviStringa("Coda vuota"); G. Frosini Slide 19

20 STRINGHE (1) Stringa: sequenza di caratteri, anche nessun carattere (stringa vuota). Classe String: tipo, per stringhe costanti. Variabili String (informalmente, di tipo stringa) e oggetti String: una variabile stringa è un riferimento a un oggetto stringa, allocato in memoria dinamica: oggetto stringa Letterale stringa: variabile-stringa sequenza di caratteri racchiusa fra doppi apici; il compilatore trasforma un letterale stringa in un oggetto stringa, riferito da una variabile stringa anonima. Variabile stringa: può assumere come valore il riferimento di un letterale stringa: String s = "abc"; variabile anonima si hanno due azioni: s creazione di un oggetto stringa contenente "abc", riferito da una variabile anonima; assegnamento a s del valore della variabile anonima stringa 'a' 'b' 'c' G. Frosini Slide 20

21 STRINGHE (2) Creazione di un oggetto stringa: può avvenire anche utilizzando l operatore new, partendo da un letterale stringa, da un array di caratteri, o da un riferimento a un altro oggetto stringa, nel seguente modo: char[] aa = { '1', '2' ; String s1 = new String("de"); String s2 = new String(aa); String s3 = new String(s1); s1 'd' 'e' s2 '1' '2' s3 'd' 'e' G. Frosini Slide 21

22 CONCATENAZIONE DI STRINGHE Operatore di concatenazione + : se i due operandi sono riferimenti di oggetti stringa, l operatore produce il riferimento di un nuovo oggetto stringa che memorizza una nuova stringa ottenuta per concatenazione. se un solo operando è un riferimento di oggetto stringa e l altro di un tipo primitivo, quest ultimo viene preliminarmente convertito (da apposite funzioni della classe String) in un riferimento che indirizza un nuovo oggetto stringa. Esempi: "abc" + "de" stringa risultato: "abcde" "abc" stringa risultato: "5abc" "abc" stringa risultato: "abc32" "abc" + b (b boolean di valore true) stringa risultato: "abctrue" G. Frosini Slide 22

23 CONVERSIONE IN STRINGHE Classe String: contiene funzioni (metodi statici) per trasformare in riferimenti, contenenti indirizzi di oggetti stringa, valori di un tipo primitivo o di un riferimento di un array di caratteri: String String.valueOf ( boolean b ) String String.valueOf ( int i ) String String.valueOf ( long l ) String String.valueOf ( char c ) String String.valueOf ( float f ) String String.valueOf ( double d ) String String.valueOf ( char[] ac ) Applicazione dell operatore di concatenazione: String s = "Risultati: "; int i = 10; double d = 15.5; Console.scriviStringa(s + i + '\t' + d); In uscita: Risultati: G. Frosini Slide 23

24 ALTRE OPERAZIONI SULLE STRINGHE Assegnamento: avviene fra variabili stringa, anche anonime, e quindi tra riferimenti (e non fra oggetti stringa): String s1 = s; le due variabili stringa s e s1 contengono adesso l indirizzo dello stesso oggetto stringa. Uguaglianza (operatori == e!=) confronta il valore di variabili stringa, e quindi di riferimenti (e non di oggetti stringa). Confronto fra due oggetti stringa: ottenuta applicando la funzione compareto() (con un argomento stringa) a una variabile stringa (sia actualstring) (risultato: negativo se <, zero se =, positivo se >): int actualstring.compareto( String s ) Lunghezza di una stringa: restituita dalla funzione length() applicata a una variabile stringa (sia actualstring): int actualstring.length() Selezione di un carattere: ottenuta applicando la funzione charat() (con un argomento intero (indice) che va da 0 alla lunghezza - 1) a una variabile stringa (sia actualstring): char actualstring.charat(int indice) G. Frosini Slide 24

25 ARRAY DI CARATTERI E STRINGHE Array di caratteri: sono oggetti costanti in dimensione, ma di contenuto variabile. Stringhe: Sono oggetti costanti (che contengono stringhe costanti). Raffronto: array di caratteri e stringhe sono di tipo diverso; come visto, si può creare una stringa a partire da un array di caratteri, o trasformare in una stringa un array di caratteri; esempio: char[] ac; String s1, s2; s1 = new String(ac); s2 = String.valueOf(ac); si può anche creare un array di caratteri partendo da una stringa, con la seguente funzione della classse String: char[] actualstring.tochararray() esempio: ac = s.tochararray(); Osservazione: non esiste un tipo Array, che dovrebbe specificare il tipo di elementi. G. Frosini Slide 25

26 ORDINAMENTO DI UN ARRAY DI STRINGHE (1) public class OrdinaS { static void sorts(string[] v) { boolean ordinato; int i; String t; do { ordinato = true; vetts[i] for (i = 0; i < v.length-1; i++) vetts[i+1] if (v[i].compareto(v[i+1]) > 0) { ordinato = false; t = v[i+1]; v[i+1] = v[i]; v[i] = t; while (!ordinato); Vengono scambiati i riferimenti public static void main(string[] args) { int i; String[] vetts = new String[8]; Console.scriviStringa("Scrivi 8 stringhe"); for (i=0; i<vetts.length; i++) vetts[i] = Console.leggiStringa(); sorts(vetts); for (i=0; i<vetts.length; i++) Console.scriviStr(vettS[i]); Console.nuovaLinea(); G. Frosini Slide 26

27 ORDINAMENTO DI UN ARRAY DI STRINGHE (2) public class OrdinaSS { static boolean maggiore(string a, String b) { int i, lun; if(a.length() < b.length()) lun = a.length(); else lun = b.length(); for(i=0; i<lun;i++) if (a.charat(i)!= b.charat(i)) break; if ((i==lun && a.length()>b.length()) (i<lun && a.charat(i)>b.charat(i))) return true; return false; static void sorts(string[] v) { boolean ordinato; int i; String t; do { ordinato = true; for (i = 0; i < v.length-1; i++) if (maggiore(v[i],v[i+1])) { ordinato = false; t = v[i+1]; v[i+1] = v[i]; v[i] = t; while (!ordinato); public static void main(string[] args) { int i; String[] vetts = new String[8]; Console.scriviStringa("Scrivi 8 stringhe"); for (i=0; i<vetts.length; i++) vetts[i] = Console.leggiStringa(); sorts(vetts); for (i=0; i<vetts.length; i++) Console.scriviStr(vettS[i]); Console.nuovaLinea(); G. Frosini Slide 27

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

3. La sintassi di Java

3. La sintassi di Java pag.9 3. La sintassi di Java 3.1 I tipi di dati statici In Java, come in Pascal, esistono tipi di dati statici predefiniti e sono i seguenti: byte 8 bit da -128 a 127 short 16 bit coincide con l integer

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

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

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

Dettagli

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

Polinomio di secondo grado: Calcolo delle soluzioni di una equazione di secondo grado: import GraphicIO.*; public class Polinomio2 {

Polinomio di secondo grado: Calcolo delle soluzioni di una equazione di secondo grado: import GraphicIO.*; public class Polinomio2 { Polinomio di secondo grado: public class Polinomio2 GraphicConsole.println ("Inserisci i coefficienti interi del polinomio di secondo grado"); int a = GraphicConsole.readInt("a ="); int b = GraphicConsole.readInt("b

Dettagli

Algoritmi e Strutture Dati. Tipo di dato astratto e Strutture dati elementari

Algoritmi e Strutture Dati. Tipo di dato astratto e Strutture dati elementari Algoritmi e Strutture Dati Tipo di dato astratto e Strutture dati elementari 1 Argomenti della lezione Tipi di dato astratto Strutture dati elementari Liste o Implementazione di liste in Java Stack Code

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

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

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

Dettagli

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2007-08 Primo scritto 11 Gennaio 2008

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2007-08 Primo scritto 11 Gennaio 2008 Studente (Cognome Nome): Matricola: Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2007-08 Primo scritto 11 Gennaio 2008 Si noti che le soluzioni ai quesiti saranno considerate valide

Dettagli

Vettori Algoritmi elementari di ordinamento

Vettori Algoritmi elementari di ordinamento Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Vettori Algoritmi elementari di ordinamento Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale

Dettagli

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi Linguaggio Java Robusto Non permette costrutti pericolosi Eredità Multipla Gestione della Memoria Orientato agli oggetti Ogni cosa ha un tipo Ogni tipo è un oggetto (quasi) Protegge e gestisce dagli errori

Dettagli

Java:Struttura di Programma. Fabio Scanu a.s. 2014/2015

Java:Struttura di Programma. Fabio Scanu a.s. 2014/2015 Java:Struttura di Programma Fabio Scanu a.s. 2014/2015 Altre Attenzioni da riservare Java è Case Sensitive: La variabile «a» e la variabile «A» sono diverse Java ha alcune regole di scrittura: I nomi delle

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

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

Dettagli

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

QUEUE : considerazioni. QUEUE : considerazioni. QUEUE : esempio. QUEUE : esempio

QUEUE : considerazioni. QUEUE : considerazioni. QUEUE : esempio. QUEUE : esempio QUEUE : considerazioni QUEUE : considerazioni Si è realizzata una struttura dati complessa utilizzandone una primitiva, l array. Il pregio di tale implementazione è il basso costo computazionale, mentre

Dettagli

10 - Programmare con gli Array

10 - Programmare con gli Array 10 - Programmare con gli 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

Dettagli

Unità B3 Strutture di controllo

Unità B3 Strutture di controllo (A) CONOSCENZA TERMINOLOGICA Dare una breve descrizione dei termini introdotti: I/O su console Package Blocco di controllo Oggetto System.out Oggetto System.in Oggetto Tastiera Metodo readline() Strutture

Dettagli

I tipi di dato astratti

I tipi di dato astratti I tipi di dato astratti.0 I tipi di dato astratti c Diego Calvanese Fondamenti di Informatica Corso di Laurea in Ingegneria Elettronica A.A. 001/00.0 0 I tipi di dato astratti La nozione di tipo di dato

Dettagli

String, Array e Main. Lezione 7

String, Array e Main. Lezione 7 String, Array e Main Lezione 7 Scopo della Lezione Presentare la classe String ed il tipo Stringa; Presentare ed imparare ad usare gli array in Java; Approfondire la conoscenza con il metodo speciale main.

Dettagli

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti Nascita di Java L uscita di Java, verso la metà degli anni novanta, fu accolta con molto entusiasmo dalla comunità dei programmatori e dei provider di servizi internet perché permetteva agli utenti del

Dettagli

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2006-07 Secondo Compitino 21 Dicembre 2006

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2006-07 Secondo Compitino 21 Dicembre 2006 Studente (Cognome Nome): Matricola: Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2006-07 Secondo Compitino 21 Dicembre 2006 Si noti che le soluzioni ai quesiti saranno considerate

Dettagli

ARRAY BIDIMENSIONALI float [][] mx = new float[3][4]; (float []) [] mx = new float[3][4];

ARRAY BIDIMENSIONALI float [][] mx = new float[3][4]; (float []) [] mx = new float[3][4]; ARRAY BIDIMENSIONALI Si possono definire array di qualunque tipo di dato, quindi anche di altre array float [][] mx = new float[3][4]; ovvero.. (float []) [] mx = new float[3][4]; La loro motivazione (storica)

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

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

Dettagli

Esempi di esercizi d esame

Esempi di esercizi d esame Esempi di esercizi d esame Fondamenti di Informatica L-B 1 Cellulare Testo esercizio: 1.Specifiche Si richiede di realizzare una classe che implementa il funzionamento di un telefono cellulare Tale classe

Dettagli

Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2005-06 Secondo Compitino 17 Dicembre 2005

Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2005-06 Secondo Compitino 17 Dicembre 2005 Studente (Cognome Nome): Matricola: Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2005-06 Secondo Compitino 17 Dicembre 2005 Si noti che le soluzioni ai quesiti saranno considerate

Dettagli

R. Focardi 2002 Laboratorio di Ingegneria del Software Slide 1. Applicazioni = programmi stand-alone

R. Focardi 2002 Laboratorio di Ingegneria del Software Slide 1. Applicazioni = programmi stand-alone Il linguaggio Java Nato nel maggio 95 (James Gosling & al.) Orientato ad oggetti, basato sulle classi, concorrente Fortemente tipato: distinzione chiara tra errori statici ed errori dinamici Ad alto livello:

Dettagli

Programmazione in Java (I modulo) Lezione 3: Prime nozioni

Programmazione in Java (I modulo) Lezione 3: Prime nozioni Programmazione in Java (I modulo) Lezione 3: Prime nozioni La volta scorsa Abbiamo avuto un primo assaggio! Abbiamo visto come usare l editor per scrivere un programma Java. Abbiamo analizzato riga per

Dettagli

GESTIONE INFORMATICA DEI DATI AZIENDALI

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

Dettagli

SOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE

SOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE SOMMARIO Coda (queue): Specifica: interfaccia. Implementazione: Strutture indicizzate (array): Array di dimensione variabile. Array circolari. Strutture collegate (nodi). Prestazioni. Strutture Software

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 E04 Esempi di algoritmi e programmi C. Limongelli - A. Miola Novembre 2011 1 Contenuti q Somma di una sequenza di numeri interi

Dettagli

Programmazione 1 A.A. 2015/2016

Programmazione 1 A.A. 2015/2016 Cognome e Nome Matricola (se disponibile) Programmazione 1 A.A. 2015/2016 Parziale del 4 Novembre 2015 Compito n 1 Esercizio 1 (4 punti) Convertire da base 16 a base 2 il numero FA1 Convertire da base

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

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

Dettagli

La selezione binaria

La selezione binaria Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Introduzione L esecuzione di tutte le istruzioni in sequenza può non è sufficiente per

Dettagli

Esercizi di programmazione in C

Esercizi di programmazione in C Esercizi di programmazione in C Esercizio 1 Scrivere un programma in linguaggio C che legga da tastiera una sequenza di lunghezza ignota a priori di numeri interi positivi. Il programma, a partire dal

Dettagli

Prova d Esame 07.04.2006 Compito A

Prova d Esame 07.04.2006 Compito A DOMANDA 1 (6 punti) Si analizzi il codice seguente e si scriva l output prodotto dai metodi main public class General { public static String s1 = "Ciao"; protected int n; public General() { n = 1; public

Dettagli

Esercitazione n 4. Obiettivi

Esercitazione n 4. Obiettivi Esercitazione n 4 Obiettivi Progettare e implementare per intero un componente software in Java Linguaggio Java: Classi astratte Utilizzo di costruttori e metodi di superclasse Polimorfismo Esempio guida:

Dettagli

Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione

Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione basata sul campo d utilizzo. I principali package sono:

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 19 Ricorsione A. Miola Marzo 2012 http://www.dia.uniroma3.it/~java/fondinf/ Ricorsione 1 Contenuti q Funzioni e domini definiti

Dettagli

Il tipo di dato astratto Pila

Il tipo di dato astratto Pila Il tipo di dato astratto Pila Il tipo di dato Pila Una pila è una sequenza di elementi (tutti dello stesso tipo) in cui l inserimento e l eliminazione di elementi avvengono secondo la regola seguente:

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

Laboratorio di Algoritmi e Strutture Dati

Laboratorio di Algoritmi e Strutture Dati Laboratorio di Algoritmi e Strutture Dati Docente: Camillo Fiorentini 18 dicembre 2007 Esercizio 1: rappresentazione di una tabella di occorrenze L obiettivo è quello di rappresentare in modo efficiente

Dettagli

Soluzioni degli esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)

Soluzioni degli esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo) Soluzioni degli esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo) Soluzioni delle prove al calcolatore Esercizio 7 (esame del 08/01/2009) class TabellaDiNumeri{ private double[][] tabella;

Dettagli

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni Autore: Prof. Agostino Sorbara ITIS "M. M. Milano" Autore: Prof. Agostino Sorbara ITIS "M. M.

Dettagli

Esercizio 6 Realizzare una classe astratta per le Figure piane e due sottoclassi, la sottoclasse Quadrato e la sottoclasse Rettangolo.

Esercizio 6 Realizzare una classe astratta per le Figure piane e due sottoclassi, la sottoclasse Quadrato e la sottoclasse Rettangolo. Esercizio 6 Realizzare una classe astratta per le Figure piane e due sottoclassi, la sottoclasse Quadrato e la sottoclasse Rettangolo. public abstract class FiguraPiana2{ private double base; public FiguraPiana2(double

Dettagli

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

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

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Università di Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Esercitazione Informatica I AA 2012-2013. Nicola Paoletti

Esercitazione Informatica I AA 2012-2013. Nicola Paoletti Esercitazione Informatica I AA 2012-2013 Nicola Paoletti 4 Gigno 2013 2 Conversioni Effettuare le seguenti conversioni, tenendo conto del numero di bit con cui si rappresenta il numero da convertire/convertito.

Dettagli

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti 13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/

Dettagli

Esercizi Java. class somma2 { static int somma(int a,int b) {return a+b; }

Esercizi Java. class somma2 { static int somma(int a,int b) {return a+b; } Java è un linguaggio di programmazione c indipendente dalla piattaforma, ovvero un linguaggio di programmazione che permette di compilare i programmi una volta sola e di installarli su computer che usano

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 E01 Esempi di programmi A. Miola Ottobre 2011 1 Contenuti Vediamo in questa lezione alcuni primi semplici esempi di applicazioni

Dettagli

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

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

Dettagli

Programmazione ad Oggetti: JAVA. Esercitazione

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

Dettagli

1 introdurre le monete per l importo necessario. 2 selezionare la quantità di zucchero. 3 selezionare la bevanda desiderata

1 introdurre le monete per l importo necessario. 2 selezionare la quantità di zucchero. 3 selezionare la bevanda desiderata Esempi di Problema: Prendere un Caffè al Distributore Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica, e Programmi D. Gubiani

Dettagli

Prova d Esame 07.04.2006 Compito B

Prova d Esame 07.04.2006 Compito B DOMANDA 1 (6 punti) Si analizzi il codice seguente e si scriva l output prodotto dai metodi main public class General { public static String s1 = "ciao"; protected int n; public General() { n = 3; public

Dettagli

Funzioni in C. Violetta Lonati

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

Dettagli

Java Virtual Machine

Java Virtual Machine Java Virtual Machine programmi sorgente: files.java compilatore files.class bytecode linker/loader bytecode bytecode Java API files.class interprete macchina ospite Indipendenza di java dalla macchina

Dettagli

Elementi di Informatica

Elementi di Informatica Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica Algoritmi, e Programmi D. Gubiani 29 marzo 2010 D. Gubiani Algoritmi, e Programmi

Dettagli

Corso di Tecniche di Programmazione

Corso di Tecniche di Programmazione Corso di Tecniche di Programmazione Corsi di Laurea in Ingegneria Informatica ed Automatica Anno Accedemico 003/004 Proff. Giuseppe De Giacomo, Luca Iocchi, Domenico Lembo Dispensa : Algoritmi di Ordinamento

Dettagli

Introduzione alla programmazione in C

Introduzione alla programmazione in C Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA6 A1 I file testo 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti Modello produttore consumatore Operazioni logiche su struttura file 2 1 Introduzione

Dettagli

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2012-13 14 giugno 2013

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2012-13 14 giugno 2013 Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2012-13 14 giugno 2013 Testo Il database di una banca è costituito da due vettori paralleli. Il primo

Dettagli

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

ESERCIZIO 1 (Definizione funzioni passaggio parametri per copia)

ESERCIZIO 1 (Definizione funzioni passaggio parametri per copia) ESERCIZIO 1 (Definizione funzioni passaggio parametri per copia) Scrivere una funzione per definire se un numero è primo e un programma principale minimale che ne testa la funzionalità. #include

Dettagli

Rappresentazione delle informazioni

Rappresentazione delle informazioni Rappresentazione delle informazioni Rappresentazione delle informazioni L informatica si occupa di rappresentare ed elaborare informazioni diverse: numeri caratteri audio immagini video I caratteri: ASCII

Dettagli

COMPITO DI LABORATORIO DI PROGRAMMAZIONE 2001-2002 17 Luglio 2002. Soluzione degli Esercizi

COMPITO DI LABORATORIO DI PROGRAMMAZIONE 2001-2002 17 Luglio 2002. Soluzione degli Esercizi COMPITO DI LABORATORIO DI PROGRAMMAZIONE 2001-2002 17 Luglio 2002 degli Esercizi ESERCIZIO 1. Si consideri il seguente frammento di codice in linguaggio Java: int i=0, j=0; int[][] a=b; boolean trovato=false;

Dettagli

int f(char *s, short n, float x) {... } /* definizione di f */ int f(char *, short, float); /* prototipo di f */

int f(char *s, short n, float x) {... } /* definizione di f */ int f(char *, short, float); /* prototipo di f */ Prototipi di funzione Il prototipo di una funzione costituisce una dichiarazione della funzione, e come tale fornisce al compilatore le informazioni necessarie a gestire la funzione stessa. Nella definizione

Dettagli

La velocità di una carovana

La velocità di una carovana Programmazione A.A. 2002-03 I linguaggio Java ( Lezione X, Parte I ) Il primo programma Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica Università di Catania e-mail

Dettagli

Algoritmi e Strutture Dati & Laboratorio di Algoritmi e Programmazione

Algoritmi e Strutture Dati & Laboratorio di Algoritmi e Programmazione Algoritmi e Strutture Dati & Laboratorio di Algoritmi e Programmazione Appello dell 8 Febbraio 2005 Esercizio 1 (ASD) 1. Dire quale delle seguenti affermazioni è vera giustificando la risposta. (a) lg

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

Ricerche, ordinamenti e fusioni. 5.1 Introduzione. 5.2 Ricerca completa

Ricerche, ordinamenti e fusioni. 5.1 Introduzione. 5.2 Ricerca completa Ricerche, ordinamenti e fusioni 5.1 Introduzione Questo capitolo ci permette di fare pratica di programmazione utilizzando gli strumenti del linguaggio introdotti finora. A una prima lettura possono essere

Dettagli

Ricorsione. Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona.

Ricorsione. Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona. Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona Sommario Implementazione di Utilizzo ricorsione per processare dati in java vs. multipla

Dettagli

Problem solving elementare su dati vettoriali

Problem solving elementare su dati vettoriali Problem solving elementare su dati vettoriali Introduzione Verifiche su sequenze di dati Selezione o ricerca di dati 2 2006 Politecnico di Torino 1 Introduzione (1/2) I problemi di verifica consistono

Dettagli

PROGRAMMAZIONE AVANZATA JAVA E C. Massimiliano Redolfi. Lezione 7: Code, Stack, Liste PAJC. Ricerca. prof. Massimiliano Redolfi PAJC

PROGRAMMAZIONE AVANZATA JAVA E C. Massimiliano Redolfi. Lezione 7: Code, Stack, Liste PAJC. Ricerca. prof. Massimiliano Redolfi PAJC PROGRAMMAZIONE AVANZATA JAVA E C Massimiliano Redolfi Lezione 7: Code, Stack, Liste Ricerca 2 Ricerca Se dobbiamo cercare un elemento in un array possiamo trovarci in due situazioni Elementi non ordinati

Dettagli

Esempio: dest = parolagigante, lettere = PROVA dest (dopo l'invocazione di tipo pari ) = pprrlogvgante

Esempio: dest = parolagigante, lettere = PROVA dest (dopo l'invocazione di tipo pari ) = pprrlogvgante Esercizio 0 Scambio lettere Scrivere la funzione void scambiolettere(char *dest, char *lettere, int p_o_d) che modifichi la stringa destinazione (dest), sostituendone i caratteri pari o dispari (a seconda

Dettagli

Parcheggio.rtf 1/8 6 gennaio 2009. Prova di programmazione: parcheggio a pagamento

Parcheggio.rtf 1/8 6 gennaio 2009. Prova di programmazione: parcheggio a pagamento Parcheggio.rtf 1/8 6 gennaio 2009 Prova di programmazione: parcheggio a pagamento Si sviluppi il codice per la gestione di un parcheggio a pagamento mediante la classe Parcheggio, che ospita le auto rappresentate

Dettagli

LINGUAGGI DI PROGRAMMAZIONE

LINGUAGGI DI PROGRAMMAZIONE LINGUAGGI DI PROGRAMMAZIONE Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente) quali istruzioni di

Dettagli

Informatica. Fondamenti della Programmazione in Java. Leonardo Vanneschi

Informatica. Fondamenti della Programmazione in Java. Leonardo Vanneschi Informatica Fondamenti della Programmazione in Java Leonardo Vanneschi 1 1. Fondamenti Il primo programma in Java Il programma che stampa a video una sequenza di caratteri (o stringa): class Esempio {

Dettagli

Richiesta pagina PHP (es: index.php)

Richiesta pagina PHP (es: index.php) PHP PHP = personal home page SERVER Richiesta pagina PHP (es: index.php) Server Web (Apache) in ascolto sulla porta 80, si accorge che la pagina richiesta è una pagina PHP in base all'estensione o con

Dettagli

Programmazione I / Informatica generale Prova scritta 11 Giugno 2008

Programmazione I / Informatica generale Prova scritta 11 Giugno 2008 Programmazione I / Informatica generale Prova scritta 11 Giugno 2008 NOTA: Si trascuri ogni problema legato al tipo ed al valore di ritorno della funzione main. Inoltre, nei programmi è da sottintendere

Dettagli

Esercizi classi e array

Esercizi classi e array Esercizi classi e array Raffaella Brighi, a.a. 2006/07 Corso di Algoritmi e programmazione. A.A. 2006-07 CdL Operatore Informatico Giuridico. Progetto DataSet Realizzare una classe DataSet per la gestione

Dettagli

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

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

Dettagli

Alfabeto ed elementi lessicali del linguaggio C

Alfabeto ed elementi lessicali del linguaggio C Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2015-2016 Alfabeto ed elementi lessicali del linguaggio C Pietro Di Lena - pietro.dilena@unibo.it s t a t i c s h o r t l e g s ; i n

Dettagli

Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2012-13 25 luglio 2013

Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2012-13 25 luglio 2013 Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a. 2012-13 25 luglio 2013 Testo Il database di una banca è costituito da due vettori paralleli. Il

Dettagli

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Dipartimento di Elettronica, Informazione e Bioingegneria Informatica B Sezione D Franchi Alessio Mauro,

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

Fondamenti di Informatica 2

Fondamenti di Informatica 2 Fondamenti di Informatica 2 della prova scritta del 28 Febbraio 2006 Esercizio 1 (4 punti) Date le seguenti variabili int A[] = 2,3,7,-2,5,8,-4; int N = 7; int min = 3; int i; Scrivere la porzione di codice

Dettagli

Iterazione e ricorsione. Cicli, Array e Programmazione su Sequenze. Ciclo while. Cicli

Iterazione e ricorsione. Cicli, Array e Programmazione su Sequenze. Ciclo while. Cicli Iterazione e ricorsione Dal punto di vista della teoria della computazione, affinché un linguaggio di programmazione imperativo (C, Pascal, codice nei metodi del Java, ecc.) raggiunga la potenza di calcolo

Dettagli

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 10 Correttezza A. Miola Novembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Correttezza 1 Contenuti Introduzione alla correttezza

Dettagli

Esercizi della lezione 5 di Java

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

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA1 1.3 - Le strutture di controllo 1 Prerequisiti Istruzioni semplici Strutture di controllo Scittura di semplici applicazioni Java 2 1 Introduzione In molti casi le

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

Breve riepilogo della puntata precedente:

Breve riepilogo della puntata precedente: Breve riepilogo della puntata precedente: 1. In C, il passaggio dei parametri alle funzioni avviene sempre per copia, ovvero il valore del parametro viene copiato all'interno della variabile che rappresenta

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

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 6. Tutor: Ing. Diego Rughetti. Anno Accademico 2007/2008

Esercitazione 6. Tutor: Ing. Diego Rughetti. Anno Accademico 2007/2008 Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Esercitazione 6 Corso di Tecniche di programmazione Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti

Dettagli

INFORMATICA 1 L. Mezzalira

INFORMATICA 1 L. Mezzalira INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello

Dettagli

Tipi di dato-prima parte

Tipi di dato-prima parte Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Meccanica (A-K) Tipi di dato-prima parte Ing. Agnese Pinto 1 di 15 Tipi di dato Sommario Tipi di dato Classificazione dei tipi di dato Tipi

Dettagli

Introduzione a Classi e Oggetti

Introduzione a Classi e Oggetti Introduzione a Classi e Oggetti Oggetto: concetto astratto Entità di un programma dotata di tre proprietà caratteristiche stato informazioni conservate nell oggetto condizionano il comportamento dell oggetto

Dettagli