Massimo Tistarelli DAP - Università di Sassari Laboratorio di Computer Vision Graphics and Image Processing

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Massimo Tistarelli DAP - Università di Sassari Laboratorio di Computer Vision Graphics and Image Processing"

Transcript

1 Corso di Laurea in DESIGN Elementi di programmazione Massimo Tistarelli DAP - Università di Sassari Laboratorio di Computer Vision Graphics and Image Processing

2 I linguaggi di programmazione Programma Insieme ordinato di istruzioni elementari impartite ad un calcolatore per svolgere un compito Risponde a requisiti di completezza Elabora dati provenienti dai dispositivi di ingresso Produce risultati che possono essere memorizzati temporaneamente, per ulteriori elaborazioni, oppure trasmessi ai dispositivi di uscita L esecuzione delle istruzioni è effettuata dal processore e coordinata dal sistema operativo Programmazione attività che permette di affrontare in modo sistematico l ideazione e la realizzazione di un programma Massimo Tistarelli 2

3 I linguaggi di programmazione Algoritmo Insieme ordinato di passi non ambigui ed eseguibili che portano alla soluzione di un problema Proprietà che un algoritmo deve soddisfare: Essere comprensibile Non presentare ambiguità Essere attuabile Garantire una terminazione Massimo Tistarelli 3

4 I linguaggi di programmazione Formalizzazione generica di un algoritmo Tramite pseudocodice Tramite diagrammi di flusso Implementazione stesura definitiva di un algoritmo che utilizza un linguaggio di programmazione Il risultato di tale fase è comunemente chiamato programma Massimo Tistarelli 4

5 I linguaggi di programmazione Pseudocodifica Linguaggio il più possibile vicino a quello dell uomo Utilizza l indentazione Esempio: leggere un numero; se e positivo stamparlo e terminare l esecuzione, altrimenti leggerne un altro Ripeti Leggi A Se A > 0 stampa A Esci dal programma Fine se Fine ripeti Massimo Tistarelli 5

6 I linguaggi di programmazione Diagrammi di flusso (flow chart): Visualizzazione grafica del programma: Uso di simboli grafici per indicare le singole operazioni elementari I simboli sono connessi da archi orientati Evidenziano in modo grafico il flusso delle istruzioni Componenti: Istruzioni di Input/Output selezione Istruzioni sequenziali Inizio / fine algoritmo Massimo Tistarelli 6

7 I linguaggi di programmazione Inizio ESEMPIO: leggere un numero; se e positivo stamparlo e terminare l esecuzione, altrimenti leggerne un altro no int A Leggi A A>0? si Stampa A Fine Massimo Tistarelli 7

8 I linguaggi di programmazione Per procedere all implementazione di un programma occorre scegliere un LINGUAGGIO di programmazione Quali opzioni sono possibili? Codice macchina Codice assembler Metacodice Linguaggi di programmazione evoluti Linguaggi naturali PIU DIFFICILE PER L UOMO PIU SEMPLICE PER L UOMO Massimo Tistarelli 8

9 I linguaggi di programmazione Codice macchina È direttamente eseguibile dal processore È una sequenza di cifre binarie che rappresentano i codici operativi delle istruzioni e gli operandi Codice assembler Sostitituisce ai codici operativi e agli operandi codici mnemonici che richiamano alla memoria la funzione dell istruzione LD A 05H - carica il registro A con il valore esadecimale 5 SLA A - scala a sinistra il registro A Massimo Tistarelli 9

10 I linguaggi di programmazione Metacodice Codice non direttamente eseguibile dal processore, ne comprensibile da parte dell utente È una sequenza di byte che, come il codice macchina, rappresenta istruzioni e operandi È indipendente dalla piattaforma hardware Necessita comunemente di un interprete atto a tradurre il metacodice in linguaggio macchina Linguaggi evoluti Sono linguaggi caratterizzati da costrutti sintattici che facilitano la scrittura del codice e la definizione dei dati Possiedono strutture di controllo di alto livello (cicli, blocchi decisionali) Necessitano di compilatori o interpreti atti a tradurre i programmi in linguaggio macchina Massimo Tistarelli 10

11 I linguaggi di programmazione Compilatori programmi che agiscono su un programma sorgente, scritto in linguaggio evoluto, producendo il corrispondente codice macchina sono caratterizzati da una serie di passi, che convertono il programma sorgente in altrettanti oggetti intermedi Librerie, oggetti rilocabili Programma sorgente compilatore Programma assembler assemblatore Codice macchina rilocabile Loader/linker Codice macchina assoluto Massimo Tistarelli 11

12 I linguaggi di programmazione Interpreti programmi che effettuano la conversione in codice macchina passo dopo passo il BASIC e` uno dei più noti linguaggi interpretati un problema comune dei linguaggi interpretati è la lentezza di esecuzione Librerie, oggetti rilocabili Programma sorgente Interprete (generazione di codice macchina assoluto immediatamente eseguito) Massimo Tistarelli 12

13 I linguaggi di programmazione Compilatori JIT (Just in Time) Moderno compromesso tra i compilatori e gli interpreti Traducono il codice come gli interpreti ma ne memorizzano una parte in modo da velocizzare il processo Aumento notevole delle prestazioni (quasi come un linguaggio compilato) Aumento della quantità di memoria necessaria (poco preoccupante in relazione alla grande disponibilità) Massimo Tistarelli 13

14 Introduzione al JAVA Cos è JAVA? JAVA e` un linguaggio interpretato di recente introduzione (1991!) Il successo di JAVA e` legato quasi esclusivamente alla realizzazione del browser HotJava (1995) ed alla successiva integrazione della tecnologia JAVA nel browser Netscape Quali sono le caratteristiche principali? Apprezzare le caratteristiche di JAVA richiede un buon bagaglio di conoscenza Semplicità (deriva da C e C++) Programmazione orientata agli oggetti Elaborazione distribuita Robustezza (non esistono puntatori) Sicurezza Portabilità Massimo Tistarelli 14

15 Introduzione al JAVA Alcuni equivoci comuni JAVA non ha relazioni con il linguaggio HTML; è possibile tuttavia richiamare un programma JAVA da una pagina HTML (applet) Come tutti i programmi evoluti, JAVA non è di facile apprendimento. Ha però caratteristiche che lo rendono di uso abbastanza immediato JAVA non è un ambiente di programmazione. Ambienti di programmazione sono disponibili per JAVA come per altri linguaggi JAVA diventerà un linguaggio universale di programmazione?. È difficile affermarlo con certezza. Massimo Tistarelli 15

16 Introduzione al JAVA JAVA è un linguaggio lento? JAVA è un linguaggio sia compilato che interpretato L interpretazione del metacodice è certamente un punto debole; il problema è tuttavia superato dall utilizzo di compilatori just in time Librerie, oggetti rilocabili Programma sorgente JAVA Compilatore (javac) metacodice (bytecode) Interprete Java Virtual Machine (java) Massimo Tistarelli 16

17 Fondamenti del linguaggio Tipi fondamentali Numeri in virgola mobile Interi float range approx. ± E+38 (7 cifre decimali significative) double range approx ± E+308 (15 cifre decimali significative) int -> da a long -> da L a L short -> da a byte -> da -128 a 127 Massimo Tistarelli 17

18 Fondamenti del linguaggio Tipi fondamentali Caratteri char codice a due byte (unicode) per simboli NB: Il codice si esprime normalmente come \uxxxx dove XXXX sono cifre esadecimali Booleani Boolean -> true oppure false Utilizzati per test logici e per operazioni di confronto Massimo Tistarelli 18

19 Fondamenti del linguaggio Dichiarazione e assegnazione di variabili byte b; int aninteger; long along; char ch; char yesch, capitala; yesch = Y ; capitala = \u0041 ; //corrisponde al carattere A boolean k=true; int i; // DICHIARAZIONE i = 37; // ASSEGNAZIONE Massimo Tistarelli 19

20 Fondamenti del linguaggio Operatori int n = 5; // dichiarazione e inizializzazione int a = 2+n; // a vale 7 int b = a-3; // b vale 4 int c = a*b; // c vale 28 int d = a/b; // d vale 1!!!! int m = 7; // dichiarazione e inizializzazione int n = 7; // dichiarazione e inizializzazione int k; // k non è inizializzata n++; // n vale 8 m--; // m vale 6 k = m*n; // k vale 48 Massimo Tistarelli 20

21 Fondamenti del linguaggio Operatori relazionali Operatori per effettuare confronti: Uguale Diverso Maggiore Minore Maggiore o uguale Minore o uguale (a==b) (a!=b) (a>b) (a<b) (a>=b) (a<=b) Massimo Tistarelli 21

22 Fondamenti del linguaggio Operatori booleani Il risultato di un confronto è una variabile di tipo boolean (5>7) è false Posso combinare i valori delle espressioni booleane con gli operatori AND OR NOT AND (a && b) OR (a b) NOT (~b) XOR (a^b) Esempio: ((5==7) && (5>7)) è false Massimo Tistarelli 22

23 Fondamenti del linguaggio Stringhe: sequenze di caratteri, racchiuse tra virgolette String e = Hello World ; String e = ; Operazioni sulle stringhe: // stringa vuota Sottostringhe: tramite la funzione (metodo) substring String e = Hello World ; String s = e.substring(0,5) // sottostringa // che inizia in posizione 0 e finisce in 5 Concatenazione: si usa il simbolo + String e = Hello ; String s = World ; Stringe t = e+s; // t vale Hello World Massimo Tistarelli 23

24 Fondamenti del linguaggio Lunghezza ed estrazione di caratteri String e = Hello World ; char c = e.charat(4) // carattere in posizione 4 ( o ) int l = e.length() // lunghezza (11) Confronto String e = Hello ; String s = Hi ; if (e.equals(s)) // vale false if (e.compareto(s)) // vale 1 Ricerca String e = Hello ; int k = e.indexof( e ); // prima posizione del carattere // e (1) - vale 1 se non trovo corrispondenza Massimo Tistarelli 24

25 Fondamenti del linguaggio La struttura di un semplice programma JAVA public class Hello { public static void main(string[] args) { Istruzione 1 Istruzione 2 Istruzione 3 Nome classe Programma vero e proprio Massimo Tistarelli 25

26 Fondamenti del linguaggio Esempio 1: somma tra due numeri interi e un numero con la virgola int a,b float c float tot START Stampa messaggio chiedendo all utente l inserimento di un intero leggi b Stampa messaggio chiedendo all utente l inserimento di un numero con la virgola leggi c leggi a Stampa messaggio chiedendo all utente l inserimento di un intero tot = a+b+c Stampa tot END Massimo Tistarelli 26

27 Fondamenti del linguaggio // legge due numeri interi e un numero con la virgola da tastiera // ed effettua la somma import java.util.*; // libreria utilità di sistema! public class esempio1{ public static void main(string[] args) { int a,b; float c, tot; Scanner sc = new Scanner(System.in); System.out.println("Inserire un numero intero"); a= sc.nextint(); System.out.println("Inserire un numero intero"); b= sc.nextint(); System.out.println("Inserire un numero in virgola mobile"); c= sc.nextfloat(); tot = a+b+c; System.out.print("La somma vale: "+tot); Massimo Tistarelli 27

28 Fondamenti del linguaggio Strutture di controllo: if - else if (a>b) { System.out.print(a); else { System.out.print(b); Stampa a a>b Stampa b if (K>10) { K = K+1; K=K+1 K>10 Massimo Tistarelli 28

29 Fondamenti del linguaggio Strutture di controllo: while int x=0; int y = 2; while(x<4) { x ++; y = y*y; System.out.print(y); x<4 x++ y=y*y Stampa y Massimo Tistarelli 29

30 Fondamenti del linguaggio Strutture di controllo: do while int x=0; int y=2; do { x ++; y = y*y; while(x<4); System.out.print(y); x++ y=y*y x<4 Stampa y Massimo Tistarelli 30

31 Fondamenti del linguaggio Strutture di controllo: cicli definiti I=0 for(int I=0; I<=10; I++) { System.out.println(I); I<10 NB: non è diverso dal while Stampa I I++ Massimo Tistarelli 31

32 Fondamenti del linguaggio Strutture di controllo: selezione multipla int choice = sc.nextint(); switch (choice) { case 1: break; case 2: break;... default: break; choice ==1 choice ==2 caso default.. Massimo Tistarelli 32

33 Fondamenti del linguaggio Esempio 2: confronto tra due numeri interi int a,b START Stampa messaggio chiedendo all utente l inserimento di un intero Stampa a si a>b? no Stampa b leggi a END Stampa messaggio chiedendo all utente l inserimento di un intero leggi b Massimo Tistarelli 33

34 Fondamenti del linguaggio // legge due numeri interi e stampa il numero più grande import java.util.*; // libreria utilità di sistema! public class esempio2{ public static void main(string[] args) { int a,b; Scanner sc = new Scanner(System.in); System.out.println("Inserire un numero intero"); a = sc.nextint(); System.out.println("Inserire un numero intero"); b = sc.nextint(); if (a>b) { System.out.print( Il numero più grande è: + a); else { System.out.print( Il numero più grande è: + b); Massimo Tistarelli 34

35 Fondamenti del linguaggio Esempio 3: conteggio ed eliminazione delle vocali di una stringa int contatore String sin, sout, vocali START vocali = aeiouaeiou sout = vuota contatore = 0 Stampa messaggio chiedendo all utente l inserimento di una stringa leggi sin si incolla in coda a sout carattere i-mo sin i=0 i<lung sin si carattere i-mo sin!= vocale? no no contatore ++ stampa sout e contatore END i=i+1 Massimo Tistarelli 35

36 Fondamenti del linguaggio // conta ed elimina le vocali di una stringa import java.util.*; public class esempio3{ public static void main(string[] args) { String vocali, sin, sout; int contatore=0; vocali = "aeiouaeiou"; sout=""; Scanner sc = new Scanner(System.in); System.out.println("Inserire una stringa arbitraria"); sin = sc.nextline(); for (int i=0; i<sin.length();i++) { if (vocali.indexof(sin.charat(i))== -1) { sout = sout+sin.charat(i); else {contatore++; System.out.println("contate ed eliminate "+ contatore + " vocali"); System.out.print(sout); Massimo Tistarelli 36

37 Fondamenti del linguaggio Esempio 4: inversione di una stringa String sin, sout START i=0 sout = vuota Stampa messaggio chiedendo all utente l inserimento di una stringa i<lung sin incolla in testa a sout carattere i-mo sin stampa sout END leggi sin i=i+1 Massimo Tistarelli 37

38 Fondamenti del linguaggio // inverte una stringa import java.util.*; public class esempio4{ public static void main(string[] args) { String sin, sout; sout=""; Scanner sc = new Scanner(System.in); System.out.println("Inserire una stringa arbitraria"); sin= sc.nextline(); for (int i=0; i<sin.length();i++) { sout = sin.charat(i)+sout; System.out.print(sout); Massimo Tistarelli 38

39 Fondamenti del linguaggio Esempio 5: Lettura e scrittura su disco di un file di testo preparare un file di testo di nome ingresso.txt che contenga righe come queste: Amedeo 22 Giovanni 20 Marco 25 Si vuole leggere il file ingresso.txt e creare un file uscita.txt dove i voti siano incrementati di uno, ad esempio: Amedeo 23 Giovanni 21 Marco 26 Massimo Tistarelli 39

40 Fondamenti del linguaggio Esempio 5: Lettura e scrittura su disco di un file di testo String nome int voto ci sono elementi START apri file di ingresso apri file di uscita leggi nome e voto stampa nome e voto voto = voto+1 chiudi file END scrivi nome e voto Massimo Tistarelli 40

41 Fondamenti del linguaggio import java.io.*; import java.util.*; public class LeggiFile{ public static void main(string[] args) throws IOException { FileReader inputf; // stream di ingresso PrintWriter outputf; // stream di uscita String nome; int val; // Apertura stream di ingresso inputf = new FileReader("ingresso.txt"); Scanner sf = new Scanner(inputf); // Apertura stream di uscita outputf = new PrintWriter("uscita.txt"); //(continua) Massimo Tistarelli 41

42 Fondamenti del linguaggio while (sf.hasnext()) { nome = sf.next(); val= sf.nextint(); System.out.println("sto leggendo: " + nome + " " + val); val=val+1; outputf.println(nome+ " " + val); // chiusura stream inputf.close(); outputf.close();...e se volessi usare un file con struttura nome, cognome, voto? Massimo Tistarelli 42

43 Fondamenti del linguaggio Array: sono oggetti di sistema! int[] k = new int[100]; int [][] matrice = new int[10][10]; Notare bene: Il programmatore deve CREARE esplicitamente questi oggetti le celle sono indicizzate a partire dal valore 0 fino a 99 per inizializzare un array occorre utilizzare un ciclo iterativo: Esempio: for (int i=0; i<100; i++){ K[i] = 0; Massimo Tistarelli 43

44 Fondamenti del linguaggio Esempio 6: massimo tra quattro numeri interi int i int [] N int max START max=n[0] i=1 Stampa max Stampa messaggio i=0 no max<n[i] si END max=n[i] i<4 SI Leggi N[i] i=i+1 i=i+1 i<4 Massimo Tistarelli 44

45 Fondamenti del linguaggio // massimo tra quattro numeri import java.util.*; // libreria utilità di sistema! public class esempio6{ public static void main(string[] args) { // dichiarazione delle variabili necessarie int[] N = new int[4]; int max,i; // lettura da tastiera dei valori Scanner sc = new Scanner(System.in); System.out.println("Inserire 4 numeri interi"); for (i=0;i<4;i++) { N[i]= sc.nextint(); // (continua) Massimo Tistarelli 45

46 Fondamenti del linguaggio // inizializzazione variabili max = N[0]; i = 1; // ciclo di controllo do { if(max<n[i]) { max = N[i]; i=i+1; while(i<4); // stampa massimo System.out.println("Massimo:" + max); // fine del main // fine della classe esempio6 Massimo Tistarelli 46

47 Fondamenti del linguaggio Esempio 7 : calcolo di media per una popolazione di 10 numeri in virgola mobile int i float [] val float media float somma START somma=0 i=0 media=somma/i Stampa media i=0 i<10 SI END i<10 SI somma=somma+val[i] leggi val[i] i=i+1 i=i+1 Massimo Tistarelli 47

48 Fondamenti del linguaggio import java.util.*; // libreria utilità di sistema! public class esempio7{ public static void main(string[] args) { // dichiarazione delle variabili float[] val= new float[10]; int i; float media, somma; // lettura da tastiera dei valori Scanner sc = new Scanner(System.in); for (i=0;i<10;i++) { System.out.println("Inserire il numero del vettore in posizione " + i); val[i]=sc.nextfloat(); Massimo Tistarelli 48

49 Fondamenti del linguaggio // ciclo di calcolo somma=0; for (i=0;i<10;i++) { somma = somma + val[i]; media = somma / i; // stampa media System.out.println("Media:" + media); // fine del main // fine esempio 6 Massimo Tistarelli 49

50 Fondamenti del linguaggio // cosa aggiungere per calcolare la varianza? float var; var=0; for (i=0;i<10;i++) { var += (val[i]-media) * (val[i]-media); var /= i; // stampa var System.out.println( Varianza:" + var); Massimo Tistarelli 50

51 Fondamenti del linguaggio Esempio 8 : calcolo del fattoriale int i, num long fat fat=num i=num START Stampa messaggio i>1 SI Stampa fat END leggi num i=i-1 fat = fat * i Massimo Tistarelli 51

52 Fondamenti del linguaggio import java.util.*; // libreria utilità di sistema! public class esempio8{ public static void main(string[] args) { // dichiarazione delle variabili int num, i; long fat; // uso long per codificare numeri grandi System.out.println("Inserire un numero intero"); // lettura da tastiera del valore Scanner sc = new Scanner(System.in); num = sc.nextint(); Massimo Tistarelli 52

53 Fondamenti del linguaggio fat = num; i=num; while(i > 1){ i = i-1; fat = fat * i; // stampo il risultato System.out.print("Il fattoriale di " + num + " vale: "+ fat); //fine main // fine classe di programma Massimo Tistarelli 53

54 Funzioni e procedure Tradizionalmente si indica con il nome di PROCEDURA un insieme di istruzioni associato ad un nome. La procedura, ovvero l insieme di istruzioni associato, può essere richiamato più volte nel corso del programma. Stampa() { System.out.println("Stampo questa frase"); Una procedura viene chiamata FUNZIONE se restituisce un valore int Somma( int a, int b) { int ris; ris = a+b; return ris; Massimo Tistarelli 54

55 Funzioni e procedure In JAVA non c è differenza tra procedure e funzioni. Si utilizza per entrambe il nome metodo. Un metodo deve sempre dichiarare il risultato di ritorno, che ovviamente può essere vuoto: void Stampa() { System.out.println("Stampo questa frase"); I parametri di un metodo devono sempre avere tipo definito. Di norma essi vengono COPIATI (passaggio per valore) e quindi LE VARIABILI ORIGINALI NON POSSONO ESSERE ALTERATE Se viene passato un OGGETTO esso non viene copiato. Le alterazioni all interno del metodo si rifletteranno quindi sull oggetto originale. Massimo Tistarelli 55

56 Funzioni e procedure Esempio 9 : calcolo del fattoriale ripetuto int num long fat START num>1 SI Stampa messaggio Calcola fattoriale di num e salva in fat END leggi num Stampa fat Stampa messaggio leggi num Massimo Tistarelli 56

57 Funzioni e procedure import java.util.*; // libreria utilità di sistema! public class esempio9{ public static void main(string[] args) { // dichiarazione delle variabili int num; long fat; // uso long per codificare numeri grandi System.out.println("Inserire un numero intero"); // lettura da tastiera del valore Scanner sc = new Scanner(System.in); num = sc.nextint(); while(num > 1){ fat = calcola_fattoriale(num); Massimo Tistarelli 57

58 Funzioni e procedure System.out.println( Fatt. di " + num +" = "+ fat); System.out.println("Inserire un numero intero"); num = sc.nextint(); //fine while // fine main static long calcola_fattoriale(int n){ long f; int i; f = n; i = n; while(i > 1){ i = i -1; f = f * i; return (f); // fine metodo calcola_fattoriale // fine classe di programma Massimo Tistarelli 58

59 Cicli nidificati: ordinamento di un array Esempio 10: ordinamento int i, indmin, n i=0 stampa array START Leggi lunghezza array e memorizza in n SI n < 2 i<(n-1) SI trova il min tra gli elementi che vanno dalla posizione i alla fine e memorizza la posizione del minimo in indmin Stampa errore crea array e carica array Scambio elementi in posizione i e indmin i=i+1 END Massimo Tistarelli 59

60 Cicli nidificati: ordinamento di un array Esempio 10: ordinamento int i,j, indmin, n float [] vl float temp START Leggi n (lunghezza vl) i=0 i<(n-1) SI indmin = i j < n SI vl[j]<vl[indmin] SI Stampa vl n < 2 SI i=0 j = i+1 indmin = j Stampa errore i<n j=j+1 SI leggi vl[i] Scambio elementi i e indmin i=i+1 i=i+1 END Massimo Tistarelli 60

61 Cicli nidificati: ordinamento di un array import java.util.*; // libreria utilità di sistema! public class esempio10{ public static void main(string[] args) { // dichiarazione delle variabili float[] vl; int n,indmin,i,j; float temp; // leggo la lunghezza del vettore System.out.println("Inserire il numero totale di valori da caricare nell'array"); Scanner sc = new Scanner(System.in); n = sc.nextint(); Massimo Tistarelli 61

62 Cicli nidificati: ordinamento di un array if (n < 2) { System.out.println("Il numero deve essere superiore a due - termine del programma"); else{ // creo il vettore vl = new float[n]; // carico l'array for (i=0; i<n ; i++) { System.out.println ("Inserire il numero in posizione "+ i); vl[i] = sc.nextfloat(); Massimo Tistarelli 62

63 Cicli nidificati: ordinamento di un array // ordino for (i=0; i<(n-1) ; i++) { indmin=i; for (j=i+1; j<n ; j++) { if (vl[j]<vl[indmin]) {indmin=j; // scambio elementi in posiz i e indmin temp = vl[i]; vl[i]=vl[indmin]; vl[indmin]=temp; //stampo il risultati for (i=0; i<n ; i++) System.out.println( vl[i]); // else // main // classe di programma Massimo Tistarelli 63

64 Esercizi di riepilogo Leggere da tastiera dieci valori che rappresentano la rilevazione relativa al numero di clienti di un albergo nel corso di dieci giorni consecutivi stampare l istogramma orizzontale di tale dato giorno 1 xxxx 2 xxxxxxxxxx 3 xxxxx 4... stampare l istogramma verticale di tale dato x x x x x x x x x x giorno Massimo Tistarelli 64

65 Esercizi di riepilogo // soluzione diagramma orizzontale import java.util.*; public class esempio11{ public static void main(string[] args) { int [] vb = new int[10]; int i,j; Scanner sc = new Scanner(System.in); // carico l'array for (i=0; i<vb.length ; i++) { System.out.print("Inserire il numero in posizione "+ i+ " : "); vb[i] = sc.nextint(); System.out.println ("giorno"); for (i=0; i<vb.length ; i++) { System.out.print(i + " "); for (j=0; j<vb[i] ; j++) { System.out.print("x"); System.out.println(); Massimo Tistarelli 65

66 Esercizi di riepilogo // soluzione diagramma verticale con array bidimensionale import java.util.*; public class esempio12{ public static void main(string[] args) { int [] vb = new int[10]; char [][] isto; int i,j; int max=1; Scanner sc = new Scanner(System.in); // carico l'array di valori memorizzando il massimo valore for (i=0; i<vb.length ; i++) { System.out.print("Inserire il numero in posizione "+ i+ " : "); vb[i] = sc.nextint(); if (vb[i] > max) {max = vb[i]; // creo l'array dell'istogramma a 2 dimensioni e carico i simboli isto = new char[max][vb.length]; for (i=0; i<vb.length ; i++) { for (j=0; j<vb[i] ; j++) { isto[max-1-j][i]= 'x'; Massimo Tistarelli 66

67 Esercizi di riepilogo // soluzione diagramma verticale con array bidimensionale // stampo for (j=0; j<max ; j++) { System.out.print(" "); //spazio ad inizio riga for (i=0; i<vb.length ; i++) { System.out.print(isto[j][i]); System.out.print(" "); // spazio tra i simboli System.out.println(); // nuova riga // stampo la didascalia System.out.print('\n'+"giorno "); for (i=0; i<vb.length ; i++) { System.out.print(i+" "); Massimo Tistarelli 67

68 Programmazione orientata agli oggetti Il Record: un nuovo oggetto di sistema definibile dall utente class Employee { Notare bene: String name; double salary; Il programmatore deve CREARE esplicitamente questi oggetti (come per gli array) esempio: Employee e1 = new Employee(); Massimo Tistarelli 68

69 Programmazione orientata agli oggetti import java.util.*; class Employee { String name; double salary; public class esempio13{ public static void main(string[] args) { Employee e1= new Employee(); e1.name = "Sechi Giovanni"; e1.salary = 12000; System.out.println("Reddito "+ e1.name + ": " + e1.salary); devo utilizzare una classe aggiuntiva entro il file di programma Massimo Tistarelli 69

70 Programmazione orientata agli oggetti Esempio 14 (testo d esame) Una sistema per la gestione telefonica archivia per ogni telefonata i seguenti dati: 1. numero chiamato 2. tipo chiamata (verso telefono fisso o cellulare) 3. durata chiamata in secondi Progettare un programma che consenta di caricare i dati sopra elencati relativi a 5000 interventi. Il programma deve quindi calcolare e stampare la durata media di una chiamata verso telefono fisso. Massimo Tistarelli 70

71 Programmazione orientata agli oggetti Esempio 14: uso record class Telefonata { String numero; boolean tipo; // false = fisso // true = mobile int durata; Telefonata[] elenco_tel int i, cont float dur_media START creazione elenco caricamento dati da tastiera dur_media=0 cont=0 i=0 i< 5000 SI elenco_tel[i].tipo == false i++ SI dur_media = dur_media + elenco_tel[i].durata cont=cont+1 stampa risultato END Massimo Tistarelli 71

72 Programmazione orientata agli oggetti import java.util.*; class Telefonata { String numero; boolean tipo; // false = verso fisso, true = verso mobile int durata; public class esempio14{ public static void main(string[] args) { Telefonata[] elenco_tel; int i; int cont; float dur_media; // creazione elenco telefonate elenco_tel = new Telefonata[10]; for (i=0; i<10 ; i++) {elenco_tel [i] = new Telefonata(); Massimo Tistarelli 72

73 Programmazione orientata agli oggetti // apertura tastiera Scanner kb = new Scanner(System.in); // lettura dati da tastiera for (i=0; i<10 ; i++) { System.out.println("Inserire numero chiamato "); elenco_tel[i].numero = kb.next(); System.out.println("Inserire 1 per chiamata verso mobile, 0 per chiamata verso fisso"); if (kb.nextint()==1) {elenco_tel[i].tipo = true; else {elenco_tel[i].tipo = false; System.out.println("Inserire durata della chiamata in secondi "); elenco_tel[i].durata = kb.nextint(); Massimo Tistarelli 73

74 Programmazione orientata agli oggetti // calcolo durata media telefonate verso fisso dur_media = 0; cont = 0; for (i=0; i<10 ; i++) { if (elenco_tel[i].tipo == false) { dur_media = dur_media + elenco_tel[i].durata; cont = cont+1; // stampa risultati if (cont!=0) { dur_media = dur_media/cont; System.out.println("Durata media verso tel fisso: "+ dur_media); else { System.out.println("Nessuna chiamata verso telefono fisso"); Massimo Tistarelli 74

75 Programmazione orientata agli oggetti La nozione di classe estende il concetto di record i campi diventano PRIVATI si aggiungono funzioni PUBBLICHE che lavorano sui dati funzione funzione funzione dati globali PROGRAMMAZIONE PROCEDURALE metodo metodo dati locali metodo metodo PROGRAMMAZIONE ORIENTATA metodo metodo AGLI OGGETTI dati locali Massimo Tistarelli 75

76 Programmazione orientata agli oggetti Classi definite dall utente: come si creano in modo appropriato class Employee { public Employee(String n, double s) { name = n; COSTRUTTORE salary = s; public void print() { System.out.println(name + " " + salary ); public void raisesalary(double bypercent) { salary *= 1 + bypercent / 100; private String name; private float salary; DATI PROTETTI Massimo Tistarelli 76

77 Programmazione orientata agli oggetti Classi definite dall utente: come si usano in modo appropriato class Employee { public Employee..... public class EmployeeTest { public static void main(string[] args) { Employee E1, E2; E1 = new Employee("Harry Hacker", 35000); E2 = new Employee("Carl Cracker", 35000); E1.print(); E2.print(); E1.raiseSalary(5); E2.raiseSalary(5); E1.print(); E2.print(); queste sono chiamate dei metodi di classe Massimo Tistarelli 77

78 Programmazione orientata agli oggetti Meccanismi di ereditarieta` class Manager extends Employee { public Manager(String n, float s) { super(n, s); secretaryname = ""; public void raisesalary(double bypercent) { // add 1/2% bonus for every year of service double bonus = 0.5 ; super.raisesalary(bypercent + bonus); //continua Massimo Tistarelli 78

79 Programmazione orientata agli oggetti Meccanismi di ereditarieta` // continua da pagina precedente public void setsecretaryname(string n) { secretaryname = n; public String getsecretaryname() { return secretaryname; private String secretaryname; // fine classe Manager Massimo Tistarelli 79

80 Programmazione orientata agli oggetti Meccanismi di ereditarieta` - Uso public class EmployeeTest { public static void main(string[] args) { Employee[] staff = new Employee[2]; staff[0] = new Employee("Harry Hacker", 35000); staff[1] = new Manager("Carl Cracker", 35000); int i; for (i = 0; i < 2; i++) staff[i].print(); for (i = 0; i < 2; i++) staff[i].raisesalary(5); for (i = 0; i < 2; i++) staff[i].print(); // qui di seguito il codice della classe Employee // qui il codice della classe Manager Massimo Tistarelli 80

Classi astratte. Master in Web Technology e Security luglio - settembre 2000. Interfacce

Classi astratte. Master in Web Technology e Security luglio - settembre 2000. Interfacce Master in Web Technology e Security luglio - settembre 2000 JAVA Alberto Martelli Parte III Programmazione grafica Classi astratte Vogliamo implementare un algoritmo di ordinamento di un array che sia

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

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

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

L interfaccia grafica con Java

L interfaccia grafica con Java L interfaccia grafica con Java 1/24 L interfaccia utente serve per la comunicazione tra utente e programma Distinguiamo le interfacce tra quelle a caratteri e quelle grafiche Le GUI (Graphical user interface)

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

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

APPLICAZIONI & APPLET

APPLICAZIONI & APPLET APPLICAZIONI & APPLET Java è un ottimo linguaggio per costruire applicazioni anche non per Internet anche non grafiche ma si è diffuso storicamente, e trae forza, dal concetto di applet come piccola (?)

Dettagli

TECNOLOGIE APPLICAZIONI WEB Linguaggio Java: Le Applet

TECNOLOGIE APPLICAZIONI WEB Linguaggio Java: Le Applet Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE APPLICAZIONI WEB Linguaggio Java: Le Applet Prof. Franco Zambonelli Lucidi realizzati in collaborazione

Dettagli

Programmazione Java (Applicazioni e Applet )

Programmazione Java (Applicazioni e Applet ) Programmazione Java (Applicazioni e Applet ) Prof. Flavio Cerini Dopo aver installato il JDK 1.4.1_01 e inserito il percorso della cartella \bin nel PATH si possono provare i seguenti programmi funzionanti.

Dettagli

Java Applet. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010

Java Applet. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010 Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it Java Applet 1 Application VS Applet Una

Dettagli

L interfaccia grafica in Java

L interfaccia grafica in Java L interfaccia grafica in Java Java possiede due package per la creazione di interfacce grafiche java.awt javax.swing AWT (Abstract Widget Toolkit) presente già in Java 1.0, migliorato in Java 1.1. Invariato

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

I Canvas. import java.awt.*; import javax.swing.*; public class Graf{ public Graf () { JFrame f = new JFrame("Finestra"); // crea frame invisibile

I Canvas. import java.awt.*; import javax.swing.*; public class Graf{ public Graf () { JFrame f = new JFrame(Finestra); // crea frame invisibile I Canvas Tra i vari contenitori Java il Canvas (area di disegno o tela) è una semplice superficie di disegno particolarmente utile per visualizzare immagini o per effettuare altre operazioni grafiche.

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

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

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 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

20 - Input/Output su File

20 - Input/Output su File 20 - Input/Output su File 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

Eventi di azione. // con interfaccia per eventi di azione

Eventi di azione. // con interfaccia per eventi di azione Eventi di azione (Interfaces ActionListener, Classes ActionEvent) Sono generati quando si premono bottoni, si selezionano voci di menù, si preme invio mentre si scrive in un campo di testo. In awt sono

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA5 B1 Gestione eventi 1 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti AWT o Swing Programmazione ad eventi 2 1 Introduzione Le interfacce create

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

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

Dettagli

Autore: Prof. Agostino Sorbara ITIS "M. M. Milano" Polistena (RC)

Autore: Prof. Agostino Sorbara ITIS M. M. Milano Polistena (RC) In questa lezione introduciamo alcuni strumenti che Java rende disponibili per la creazione di interfacce utente a manipolazione diretta, dette anche WYSISYG (what you see is what you get), con un elevato

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

Introduzione al package grafico Swing

Introduzione al package grafico Swing Introduzione al package grafico Swing Architettura di javax.swing Java supporta direttamente nella propria architettura il concetto di applicazione grafica, tramite il package javax.swing, in cui i componenti

Dettagli

OBIETTIVI SPECIFICI DI APPRENDIMENTO

OBIETTIVI SPECIFICI DI APPRENDIMENTO Disciplina:... Anno scolastico: 20.../20... Classe/i :... Docente:... DI APPRENDIMENTO SEZIONE 1 Premesse matematiche Nozioni fondamentali sui sistemi di numerazione Sistemi di numerazione in base diversa

Dettagli

Alessandro De Luca. Lezione, 13 maggio 2015

Alessandro De Luca. Lezione, 13 maggio 2015 Basi Basi di di dati dati ee sistemi sistemi informativi informativi II mod.laboratorio mod.laboratorio Alessandro De Luca Università degli Studi di Napoli Federico II Lezione, Introduzione a Java Swing

Dettagli

Programmazione ad oggetti

Programmazione ad oggetti DAIS Univ. Ca' Foscari Venezia Programmazione ad oggetti Samuel Rota Bulò Informazioni generali Docente: Samuel Rota Bulò @email: srotabul@dais.unive.it Homepage: http://www.dais.unive.it/~srotabul/ ooprogramming2012.html

Dettagli

UN CLONE IN CLIKE C-LIKE DI SEGUIVISIONE

UN CLONE IN CLIKE C-LIKE DI SEGUIVISIONE IDROID 86 LAB pagg 12-13 23-04-2007 14:57 Pagina 12 I-D01 LAB UN CLONE IN CLIKE C-LIKE DI SEGUIVISIONE PROGRAMMAZIONE Alcuni comportamenti predefiniti attivabili su I-Droid01 sono facilmente riproducibili

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

Struttura di un programma Java

Struttura di un programma Java Struttura di un programma Java Un programma in Java è un insieme di dichiarazioni di classi. Una classe non può contenere direttamente delle istruzioni, ma può contenere la dichiarazione di metodi, che

Dettagli

Oggi. Programmazione e laboratorio: introduzione al corso. Docenti: laboratorio. Docenti: teoria. Il corso. Orario.

Oggi. Programmazione e laboratorio: introduzione al corso. Docenti: laboratorio. Docenti: teoria. Il corso. Orario. Programmazione e laboratorio: introduzione al corso Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro mizzaro@dimi.uniud.it Programmazione per

Dettagli

Programmazione Java: Interfacce grafiche (GUI)

Programmazione Java: Interfacce grafiche (GUI) Programmazione Java: Interfacce grafiche (GUI) romina.eramo@univaq.it http://www.di.univaq.it/romina.eramo/tlp ( 1 ) (GUI) Interfacce grafiche Rendere facili le cose semplici e possibili le cose difficili

Dettagli

Guida all uso dell ambiente di sviluppo 1 integrato o IDE. JCreator LE 4.50

Guida all uso dell ambiente di sviluppo 1 integrato o IDE. JCreator LE 4.50 Guida all uso dell ambiente di sviluppo 1 integrato o IDE JCreator LE 4.50 Inizializzazione: creazione del nuovo progetto e del file sorgente in ambiente JCreator Al lancio del programma si apre la finestra

Dettagli

Interfacce grafiche. Una GUI (Graphic User Interface) contiene vari componenti: bottoni, etichette, immagini...

Interfacce grafiche. Una GUI (Graphic User Interface) contiene vari componenti: bottoni, etichette, immagini... Interfacce grafiche Una GUI (Graphic User Interface) contiene vari componenti: bottoni, etichette, immagini... Alcuni componenti ne contengono altri (ad esempio le finestre), e sono detti contenitori.

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

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

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

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

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

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

ARRAY E STRINGHE. G. Frosini Slide 1

ARRAY E STRINGHE. G. Frosini Slide 1 ARRAY E STRINGHE G. Frosini Slide 1 Array: VARIABILI ARRAY struttura dati costituita da elementi (anche nessuno, array vuoto) dello stesso tipo; tipo array: tipo degli elementi, non numero degli elementi;

Dettagli

Le command line di Java

Le command line di Java Le command line di Java Esercitazioni di Programmazione 2 Novella Brugnolli brugnoll@science.unitn.it Ambiente di lavoro Per compilare ed eseguire un programma Java abbiamo bisogno di: The JavaTM 2 Platform,

Dettagli

Appunti dei corsi di Programmazione di Rete Sistemi di elaborazione: Reti II

Appunti dei corsi di Programmazione di Rete Sistemi di elaborazione: Reti II Appunti dei corsi di Programmazione di Rete Sistemi di elaborazione: Reti II PROF. G. BONGIOVANNI 0) INTRODUZIONE AL LINGUAGGIO JAVA PER PROGRAMMATORI C++...2 0.1) Caratteristiche principali... 2 0.1.1)

Dettagli

Java: Compilazione e Traduzione. Fondamenti di Informatica L-B Esercitazione n 3 Introduzione a JAVA. C: Editing, compilazione, esecuzione

Java: Compilazione e Traduzione. Fondamenti di Informatica L-B Esercitazione n 3 Introduzione a JAVA. C: Editing, compilazione, esecuzione Fondamenti di Informatica L-B Esercitazione n 3 Introduzione a JAVA A.A. 2007/08 Tutor: Barbara Pettazzoni barbara.pettazzoni@studio.unibo.it Java: Compilazione e Traduzione Editing, compilazione, esecuzione

Dettagli

Java Interfaccia Grafica

Java Interfaccia Grafica Java Interfaccia Grafica Testi di consultazione: a) core Java 1.1 (Volume I Fundamentals) Cay S. Horstmann, Gary Cornell, Prentice Hall, 1997. b) Java 1.2 Unleashed, Jamie Jaworski, Sams Publishing, 1998.

Dettagli

Esercitazione del Corso di Informatica Grafica. Strumenti per scrivere applicazioni in JAVA

Esercitazione del Corso di Informatica Grafica. Strumenti per scrivere applicazioni in JAVA Esercitazione del Corso di Informatica Grafica Strumenti per scrivere applicazioni in JAVA Perché Java Indipendenza dalla piattaforma Un applicazione scritta in Java può essere facilmente spostato da un

Dettagli

maggio 2004 Stefano Sanna - gerda@crs4.it

maggio 2004 Stefano Sanna - gerda@crs4.it java.awt awt.* Abstract Window Toolkit maggio 2004 Agenda Java e interfacce grafiche Caratteristiche di AWT Design e implementazione di interfacce grafiche Panoramica dei componenti disponibili Primitive

Dettagli

3. Programmazione strutturata (testo di riferimento: Bellini-Guidi)

3. Programmazione strutturata (testo di riferimento: Bellini-Guidi) Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Meccanica (A-K) 3. (testo di riferimento: Bellini-Guidi) Ing. Agnese Pinto 1 di 28 Linguaggi di programmazione Un programma è un algoritmo

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

Scope e visibilità per classi

Scope e visibilità per classi Scope e visibilità per classi Packages Classi interne nelle loro diverse forme Interne / statiche / locali Utilizzo congiunto con interfacce Implementazione di iteratori Gestione di eventi Packages Package:

Dettagli

Programmare in Java. Olga Scotti

Programmare in Java. Olga Scotti Programmare in Java Olga Scotti Linguaggi di programmazione linguaggio macchina assembler linguaggi ad alto livello Linguaggi ad alto livello istruzioni comprensibili linguaggio simile a quello naturale

Dettagli

Programmazione in Java Parte I: Fondamenti

Programmazione in Java Parte I: Fondamenti Programmazione in Java Parte I: Fondamenti Lezione 1 Dott. Marco Faella Riferimenti Testi consigliati: Progettazione del software e design pattern in Java di C.S. Horstmann Apogeo Gli esempi di codice

Dettagli

10.4. La classe File e gli attributi di directory e file

10.4. La classe File e gli attributi di directory e file pag.143 10.4. La classe File e gli attributi di directory e file Questa classe, molto utile per operare con i file su disco, consente di accedere alle directory, verificare e acquisire le caratteristiche

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

Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini

Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini Introduzione all utilizzo di Visual Basic for Application Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini PROGRAMMAZIONE Insieme delle attività da svolgersi per creare

Dettagli

LICEO SCIENTIFICO "LEONARDO DA VINCI" - RC PROGRAMMA DI INFORMATICA A.S. 2014/15 - CLASSE: I Q - Indirizzo Scienze applicate Prof Miritello Rita

LICEO SCIENTIFICO LEONARDO DA VINCI - RC PROGRAMMA DI INFORMATICA A.S. 2014/15 - CLASSE: I Q - Indirizzo Scienze applicate Prof Miritello Rita LICEO SCIENTIFICO "LEONARDO DA VINCI" - RC PROGRAMMA DI INFORMATICA A.S. 2014/15 - CLASSE: I Q - Indirizzo Scienze applicate Modulo 1: Introduzione all informatica Fondamenti di teoria della elaborazione

Dettagli

Le basi della grafica in Java. Prof. Francesco Accarino IIS Altiero Spinelli via Leopardi 132 Sesto san Giovanni

Le basi della grafica in Java. Prof. Francesco Accarino IIS Altiero Spinelli via Leopardi 132 Sesto san Giovanni Le basi della grafica in Java Prof. Francesco Accarino IIS Altiero Spinelli via Leopardi 132 Sesto san Giovanni Elaborazione classica o imperativa L elaborazione è concentrata nel momento centrale, durante

Dettagli

PROGETTO LAUREE SCIENTIFICHE

PROGETTO LAUREE SCIENTIFICHE 1 PROGETTO LAUREE SCIENTIFICHE Write once, write everywhere è il motto dei progettisti del linguaggio java. Infatti questo linguaggio è il risultato dell esigenza di programmare per quello che si può chiamare

Dettagli

Java: la libreria delle classi

Java: la libreria delle classi Java: la libreria delle classi Applet anatomia di un applet cenni di html La libreria JDBC per l accesso ai database il package java.sql 213 Applet Un applet è una applicazione Java che ha una forma particolare

Dettagli

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Da JavaScript a Java

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Da JavaScript a Java Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Da JavaScript a Java Versione 3.4.05 Per la prima lezione in aula e la prima esercitazione in laboratorio 1 Da JavaScript a Java

Dettagli

INTRODUZIONE INTRODUZIONE JAVA JAVA

INTRODUZIONE INTRODUZIONE JAVA JAVA INTRODUZIONE INTRODUZIONE Lo sviluppo di applicazioni complesse porta a costruire moduli software sempre più potenti e versatili, che possano essere riutilizzati in numerosi progetti I linguaggi ad oggetti

Dettagli

Complessità computazionale

Complessità computazionale 1 Introduzione alla complessità computazionale Un problema spesso può essere risolto utilizzando algoritmi diversi Come scegliere il migliore? La bontà o efficienza di un algoritmo si misura in base alla

Dettagli

Java: Compilatore e Interprete

Java: Compilatore e Interprete Java: Compilatore e Interprete Java Virtual Machine Il bytecode non è Linguaggio Macchina. Per diventarlo, deve subire un ulteriore trasformazione che viene operata dall interprete Java in modalità JIT

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

SOMMARIO INTRODUZIONE...XV CAPITOLO 1: PRESENTAZIONE...1 CAPITOLO 2: FONDAMENTI DI JAVA...39

SOMMARIO INTRODUZIONE...XV CAPITOLO 1: PRESENTAZIONE...1 CAPITOLO 2: FONDAMENTI DI JAVA...39 sommario 24-06-2004 10:18 Pagina V SOMMARIO INTRODUZIONE.......................................XV CAPITOLO 1: PRESENTAZIONE.......................................1 1.1 Introduzione...2 1.2 L organizzazione

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

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO Corso Base Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO Java Java è un Linguaggio di Programmazione orientato agli oggetti. Un Linguaggio di Programmazione è un linguaggio ad alto livello, dotato

Dettagli

IL LINGUAGGIO Visual Basic

IL LINGUAGGIO Visual Basic Caratteristiche del linguaggio VB Linguaggio basato sugli eventi IL LINGUAGGI Visual Basic I programmi non sono procedurali, poiche non seguono una sequenza operativa. gni programma si basa infatti su

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

Struttura logica di un programma

Struttura logica di un programma Struttura logica di un programma Tutti i programmi per computer prevedono tre operazioni principali: l input di dati (cioè l inserimento delle informazioni da elaborare) il calcolo dei risultati cercati

Dettagli

Appunti di Informatica 1. Gianluca Rossi

Appunti di Informatica 1. Gianluca Rossi Appunti di Informatica 1 Gianluca Rossi Versione maggio 2011 Indice 1 Algoritmi, macchine e linguaggi di programmazione 3 1.1 La macchina di Von Neumann........................ 5 1.2 Dal linguaggio macchina

Dettagli

Connessione ad internet

Connessione ad internet Introduzione al C++ Connessione ad internet Istruzioni per la connessione internet: - una volta connessi, aprire un browser (firefox) - in Modifica/preferenze/avanzate/rete/impostazioni - attivare la modalità

Dettagli

! Programmazione strutturata. ! OO: TDA, scambio messaggi, eredità, polimorfismo, OO in Java. ! Rassegna API. ! Documentazione Javadoc delle API

! Programmazione strutturata. ! OO: TDA, scambio messaggi, eredità, polimorfismo, OO in Java. ! Rassegna API. ! Documentazione Javadoc delle API Riassunto Applet (e altro dell AWT ) Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 22 19 maggio

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

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

Introduzione alla programmazione in Java

Introduzione alla programmazione in Java Introduzione alla programmazione in Java 1 Programmare ad oggetti La programmazione come attività di creazione di modelli. I concetti di classe, oggetto e scambio di messaggi. Un primo esempio di programma

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

23 - Graphical User Interface GUI (Cenni)

23 - Graphical User Interface GUI (Cenni) 23 - Graphical User Interface GUI (Cenni) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo

Dettagli

Corso di INFORMATICA 2 (Matematica e Applicazioni)

Corso di INFORMATICA 2 (Matematica e Applicazioni) Università di Camerino Scuola di Scienze e Tecnologie Sezione di Matematica Corso di INFORMATICA 2 (Matematica e Applicazioni) Anno Accademico 2014/15 3 Anno Primo Semestre Docenti: Paolo Gaspari Roberto

Dettagli

Esempio. Esempio. Linguaggio di Programmazione. Linguaggi di programmazione. Linguaggio di computazione. Linguaggi di programmazione

Esempio. Esempio. Linguaggio di Programmazione. Linguaggi di programmazione. Linguaggio di computazione. Linguaggi di programmazione Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Fondamenti di Informatica Problema e metodologie di progetto Linguaggio C: Introduzione Monica Mordonini Problema e Algoritmo

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

www.wlascuola.4000.it

www.wlascuola.4000.it 1 Cenni di programmazione Risolvere un problema significa trovare un procedimento che consenta di produrre i risultati, a partire dai dati iniziali, attraverso un processo di elaborazione. La metodologia

Dettagli

Gestione degli eventi in Java

Gestione degli eventi in Java Gestione degli eventi in Java package java.awt.event.* Il modello degli eventi I componenti dell awt generano eventi in seguito alle azioni dell utente movimento del mouse click pressione di un tasto etc.

Dettagli

Progetto Automi e Linguaggi Parser svliluppato con JLex e cup

Progetto Automi e Linguaggi Parser svliluppato con JLex e cup Progetto Automi e Linguaggi Parser svliluppato con JLex e cup Sviluppato da Santoro Carlo Maurizio Matricola:0108/528 Sviluppo terminato il: 18/06/06 TRACCIA DEL PROGETTO Si costruisca, utilizzando la

Dettagli

LAVORI ESTIVI DI INFORMATICA PER LA CLASSE IV Sez. Ainf (Prof. Tessore Luca)

LAVORI ESTIVI DI INFORMATICA PER LA CLASSE IV Sez. Ainf (Prof. Tessore Luca) Ministero dell Istruzione, dell Università e della Ricerca Istituto Tecnico Industriale Statale Enrico Mattei Via Martiri di Cefalonia 46-20097 San Donato Milanese Tel. 0255691411 - Fax 025276676 itisando@tin.it

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

Le motivazioni, che guidarono lo sviluppo di Java, erano quelle di creare un linguaggio semplice e familiare. Esso è

Le motivazioni, che guidarono lo sviluppo di Java, erano quelle di creare un linguaggio semplice e familiare. Esso è JAVA Introduzione Java è un linguaggio di alto livello e orientato agli oggetti, creato dalla Sun Microsystem nel 1995. Le motivazioni, che guidarono lo sviluppo di Java, erano quelle di creare un linguaggio

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

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso Obiettivi formativi Introdurre i principi del funzionamento di un elaboratore e della programmazione. Presentare gli approcci elementari alla soluzione di problemi (algoritmi)e al progetto di strutture

Dettagli

Matlab: Strutture di Controllo. Informatica B

Matlab: Strutture di Controllo. Informatica B Matlab: Strutture di Controllo Informatica B Tipo di dato logico È un tipo di dato che può avere solo due valori true (vero) 1 false (falso) 0 I valori di questo tipo possono essere generati direttamente

Dettagli

Corso di Esercitazioni di Programmazione

Corso di Esercitazioni di Programmazione Corso di Esercitazioni di Programmazione Introduzione Dott.ssa Sabina Rossi Informazioni Pagina web del corso: News Orari Mailing list Lezioni Esercitazioni Date esami Risultati esami.. http://www.dsi.unive.it/~prog1

Dettagli

Corso Programmazione 1 Capitolo 01: Concetti Elementari

Corso Programmazione 1 Capitolo 01: Concetti Elementari Corso Programmazione 1 Capitolo 01: Concetti Elementari Docente: Roberto Sebastiani - roberto.sebastiani@unitn.it Esercitatori: Mario Passamani - mario.passamani@unitn.it Alessandro Tomasi - alessandro.tomasi@unitn.it

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

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

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

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware COS È UN LINGUAGGIO? Un linguaggio è un insieme di parole e di metodi di combinazione delle

Dettagli

Con il pulsante Start si introducono palline che rimbalzano in un area di disegno fino a che non è terminato il loro ciclo di vita (1000 movimenti).

Con il pulsante Start si introducono palline che rimbalzano in un area di disegno fino a che non è terminato il loro ciclo di vita (1000 movimenti). Rimbalzi. import java.awt.*; import java.awt.event.*; import java.applet.applet; public class Bounce extends Applet implements ActionListener { private Canvas canvas; private Button b1; private Button

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

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 05 La rappresentazione dell informazione Carla Limongelli Ottobre 2011 http://www.dia.uniroma3.it/~java/fondinf/ La rappresentazione

Dettagli