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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Introduzione a Visual Basic Lezione 1 Concetti base e istruzioni condizionali

Introduzione a Visual Basic Lezione 1 Concetti base e istruzioni condizionali a Visual Basic Lezione 1 Concetti base e istruzioni condizionali Mario Alviano Introduzione all informatica Università della Calabria http://alviano.net/introinfo A.A. 2008/09 Introduzione Un esempio:

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

Richiami di informatica e programmazione

Richiami di informatica e programmazione Richiami di informatica e programmazione Il calcolatore E una macchina usata per Analizzare Elaborare Collezionare precisamente e velocemente una grande quantità di informazioni. Non è creativo Occorre

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

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

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

JAVASCRIPT. Tale file è associato alla pagina web mediante il tag