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

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

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

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

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

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

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

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

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

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

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

Access. Microsoft Access. Aprire Access. Aprire Access. Aprire un database. Creare un nuovo database

Access. Microsoft Access. Aprire Access. Aprire Access. Aprire un database. Creare un nuovo database Microsoft Access Introduzione alle basi di dati Access E un programma di gestione di database (DBMS) Access offre: un supporto transazionale limitato Meccanismi di sicurezza, protezione di dati e gestione

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

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

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

Gian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C

Gian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C Università degli Studi di Cagliari Corso di Laurea in Ingegneria Biomedica (Industriale), Chimica, Elettrica, e Meccanica FONDAMENTI DI INFORMATICA 1 http://www.diee.unica.it/~marcialis/fi1 A.A. 2010/2011

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

Descrizione di un algoritmo

Descrizione di un algoritmo Descrizione di un algoritmo Un algoritmo descrive due tipi fondamentali di oper: calcoli ottenibili tramite le oper primitive su tipi di dato (valutazione di espressioni) che consistono nella modifica

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

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione Automatizzare i compiti ripetitivi I file batch Anno accademico 2000-01 1 Spesso capita di dover eseguire ripetutatmente una data sequenza di comandi Introdurli uno a uno da tastiera è un processo lento

Dettagli

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

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

Dettagli

Arduino: Programmazione

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

Dettagli

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

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

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

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

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

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

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

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 è ACCESS? E un programma di gestione di database (DBMS) Access offre: un ambiente user frendly da usare (ambiente grafico)

Cos è ACCESS? E un programma di gestione di database (DBMS) Access offre: un ambiente user frendly da usare (ambiente grafico) Cos è ACCESS? E un programma di gestione di database (DBMS) Access offre: un ambiente user frendly da usare (ambiente grafico) 1 Aprire Access Appare una finestra di dialogo Microsoft Access 2 Aprire un

Dettagli

LINGUAGGI DI PROGRAMMAZIONE

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

Dettagli

FONDAMENTI di INFORMATICA L. Mezzalira

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

Dettagli

Introduzione al MATLAB c Parte 2

Introduzione al MATLAB c Parte 2 Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 18 gennaio 2008 Outline 1 M-file di tipo Script e Function Script Function 2 Costrutti di programmazione

Dettagli

Introduzione al Linguaggio C

Introduzione al Linguaggio C Introduzione al Linguaggio C File I/O Daniele Pighin April 2009 Daniele Pighin Introduzione al Linguaggio C 1/15 Outline File e dati Accesso ai file File I/O Daniele Pighin Introduzione al Linguaggio C

Dettagli

Funzioni in C. Violetta Lonati

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

Dettagli

GESTIONE INFORMATICA DEI DATI AZIENDALI

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

Dettagli

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

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

Dettagli

Gestione dei File in C

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

Dettagli

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

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

Laboratorio di Informatica

Laboratorio di Informatica Laboratorio di Informatica Introduzione a Python Dottore Paolo Parisen Toldin - parisent@cs.unibo.it Argomenti trattati Che cosa è python Variabili Assegnazione Condizionale Iterazione in una lista di

Dettagli

Richiesta pagina PHP (es: index.php)

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

Dettagli

Fasi di creazione di un programma

Fasi di creazione di un programma Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo 41 Sviluppo di programmi Per la costruzione di un programma

Dettagli

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli CODICE Le fonti in cui si possono trovare tutorial o esempi di progetti utilizzati con Arduino si trovano nel sito ufficiale di Arduino, oppure nei forum di domotica e robotica. Il codice utilizzato per

Dettagli

Concetto di Funzione e Procedura METODI in Java

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

Dettagli

DAL DIAGRAMMA AL CODICE

DAL DIAGRAMMA AL CODICE DAL DIAGRAMMA AL CODICE Un diagramma di flusso Appare, come un insieme di blocchi di forme diverse che contengono le istruzioni da eseguire, collegati fra loro da linee orientate che specificano la sequenza

Dettagli

ISTITUTO TECNICO ECONOMICO MOSSOTTI

ISTITUTO TECNICO ECONOMICO MOSSOTTI CLASSE III INDIRIZZO S.I.A. UdA n. 1 Titolo: conoscenze di base Conoscenza delle caratteristiche dell informatica e degli strumenti utilizzati Informatica e sistemi di elaborazione Conoscenza delle caratteristiche

Dettagli

Fondamenti di Informatica PROBLEMI E ALGORITMI. Fondamenti di Informatica - D. Talia - UNICAL 1

Fondamenti di Informatica PROBLEMI E ALGORITMI. Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica PROBLEMI E ALGORITMI Fondamenti di Informatica - D. Talia - UNICAL 1 Specifica di un algoritmo Primo approccio, scrittura diretta del programma: la soluzione coincide con la codifica

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

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

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

Dettagli

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE 1/6 MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE Per prima cosa si ringrazia per aver scelto ImmobiPhone e per aver dato fiducia al suo autore. Il presente documento istruisce l'utilizzatore sull'uso del programma

Dettagli

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro, EXCEL PER WINDOWS95 1.Introduzione ai fogli elettronici I fogli elettronici sono delle applicazioni che permettono di sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area

Dettagli

WORD per WINDOWS95. Un word processor e` come una macchina da scrivere ma. con molte più funzioni. Il testo viene battuto sulla tastiera

WORD per WINDOWS95. Un word processor e` come una macchina da scrivere ma. con molte più funzioni. Il testo viene battuto sulla tastiera WORD per WINDOWS95 1.Introduzione Un word processor e` come una macchina da scrivere ma con molte più funzioni. Il testo viene battuto sulla tastiera ed appare sullo schermo. Per scrivere delle maiuscole

Dettagli

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

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

Dettagli

Esercitazione n 4. Obiettivi

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

Dettagli

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

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

Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012

Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012 Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012 Concetti importanti da (ri)vedere Programmazione imperativa Strutture di

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

Linguaggi e Paradigmi di Programmazione

Linguaggi e Paradigmi di Programmazione Linguaggi e Paradigmi di Programmazione Cos è un linguaggio Definizione 1 Un linguaggio è un insieme di parole e di metodi di combinazione delle parole usati e compresi da una comunità di persone. È una

Dettagli

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

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

Dettagli

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Algoritmi Algoritmi Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Il procedimento (chiamato algoritmo) è composto da passi elementari

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

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

Lezione 8. La macchina universale

Lezione 8. La macchina universale Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione

Dettagli

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

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

Dettagli

Appunti di Sistemi Elettronici

Appunti di Sistemi Elettronici Prof.ssa Maria Rosa Malizia 1 LA PROGRAMMAZIONE La programmazione costituisce una parte fondamentale dell informatica. Infatti solo attraverso di essa si apprende la logica che ci permette di comunicare

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

BARCODE. Gestione Codici a Barre. Release 4.90 Manuale Operativo

BARCODE. Gestione Codici a Barre. Release 4.90 Manuale Operativo Release 4.90 Manuale Operativo BARCODE Gestione Codici a Barre La gestione Barcode permette di importare i codici degli articoli letti da dispositivi d inserimento (penne ottiche e lettori Barcode) integrandosi

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E01 Esempi di programmi A. Miola Ottobre 2011 1 Contenuti Vediamo in questa lezione alcuni primi semplici esempi di applicazioni

Dettagli

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

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

Dettagli

Inizializzazione, Assegnamento e Distruzione di Classi

Inizializzazione, Assegnamento e Distruzione di Classi Inizializzazione, Assegnamento e Distruzione di Classi Lezione 9 Operazioni Automatiche In ogni programma C++ oggetti classe vengono gestiti automaticamente dal compilatore Inizializzati al momento della

Dettagli

PROVA INTRACORSO TRACCIA A Pagina 1 di 6

PROVA INTRACORSO TRACCIA A Pagina 1 di 6 PROVA INTRACORSO DI ELEMENTI DI INFORMATICA MATRICOLA COGNOME E NOME TRACCIA A DOMANDA 1 Calcolare il risultato delle seguenti operazioni binarie tra numeri interi con segno rappresentati in complemento

Dettagli

Esercitazione del 05-03-2007

Esercitazione del 05-03-2007 FUNZIONI Esercitazione del 05-03-2007 1. Aprire una nuova cartella di lavoro. 2. Inserire nel foglio di lavoro di Excel le seguenti colonne: A B 1000 100 1100 200 1200 300 1300 400 1400 500 1500 600 1600

Dettagli

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

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

Dettagli

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

LA GESTIONE DELLE VISITE CLIENTI VIA WEB LA GESTIONE DELLE VISITE CLIENTI VIA WEB L applicazione realizzata ha lo scopo di consentire agli agenti l inserimento via web dei dati relativi alle visite effettuate alla clientela. I requisiti informatici

Dettagli

Matematica in laboratorio

Matematica in laboratorio Unità 1 Attività guidate Attività 1 Foglio elettronico Divisibilità tra numeri naturali Costruisci un foglio di lavoro per determinare se a è divisibile per b, essendo a e b due numeri naturali, con a

Dettagli

Tale attività non è descritta in questa dispensa

Tale attività non è descritta in questa dispensa Fondamenti di informatica Oggetti e Java ottobre 2014 1 Nota preliminare L installazione e l uso di Eclipse richiede di aver preliminarmente installato Java SE SDK Tale attività non è descritta in questa

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

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

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

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo

Dettagli

UTILIZZO DEL MODULO DATA ENTRY PER L IMPORTAZIONE DEI DOCUMENTI (CICLO PASSIVO)

UTILIZZO DEL MODULO DATA ENTRY PER L IMPORTAZIONE DEI DOCUMENTI (CICLO PASSIVO) Codice documento 10091501 Data creazione 15/09/2010 Ultima revisione Software DOCUMATIC Versione 7 UTILIZZO DEL MODULO DATA ENTRY PER L IMPORTAZIONE DEI DOCUMENTI (CICLO PASSIVO) Convenzioni Software gestionale

Dettagli

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1) Strutture Strutture e Unioni DD cap.10 pp.379-391, 405-406 KP cap. 9 pp.361-379 Strutture Collezioni di variabili correlate (aggregati) sotto un unico nome Possono contenere variabili con diversi nomi

Dettagli

Variabili e tipi di dato

Variabili e tipi di dato Variabili e tipi di dato Tutte le variabili devono essere dichiarate, specificandone il tipo La dichiarazione deve precedere l uso Il tipo è un concetto astratto che esprime: L allocazione di spazio per

Dettagli

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net

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

Dettagli

Strumenti per la programmazione

Strumenti per la programmazione Editing del programma Il programma deve essere memorizzato in uno o più files di testo editing codice sorgente 25 Traduzione del programma Compilazione: è la traduzione effettuata da un compilatore Un

Dettagli

Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008)

Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008) Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008) Introduzione a Java: primo programma, installazione dell ambiente di sviluppo, compilazione ed esecuzione 1 Introduzione Java è un linguaggio

Dettagli

7.4 Estrazione di materiale dal web

7.4 Estrazione di materiale dal web 7.4 Estrazione di materiale dal web Salvataggio di file Salvataggio della pagina Una pagina web può essere salvata in locale per poterla consultare anche senza essere collegati alla Rete. Si può scegliere

Dettagli

Operazioni fondamentali

Operazioni fondamentali Foglio elettronico Le seguenti indicazioni valgono per Excel 2007, ma le procedure per Excel 2010 sono molto simile. In alcuni casi (per esempio, Pulsante Office /File) ci sono indicazioni entrambe le

Dettagli

Prova di Laboratorio di Programmazione

Prova di Laboratorio di Programmazione Prova di Laboratorio di Programmazione 6 febbraio 015 ATTENZIONE: Non è possibile usare le classi del package prog.io del libro di testo. Oltre ai metodi richiesti in ciascuna classe, è opportuno implementare

Dettagli

Grafico della parabola

Grafico della parabola Grafico della parabola Il grafico matematico è un disegno che mostra l andamento di una funzione f(x) al variare della variabile x. Per tracciare un grafico sul video del computer, si deve scegliere un

Dettagli

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Dall Algoritmo al Programma Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni IL PROGRAMMA Gli algoritmi sono modelli di descrizione astratti e per controllarne il funzionamento devono essere

Dettagli

Esame di Informatica CHE COS È UN FOGLIO ELETTRONICO CHE COS È UN FOGLIO ELETTRONICO CHE COS È UN FOGLIO ELETTRONICO. Facoltà di Scienze Motorie

Esame di Informatica CHE COS È UN FOGLIO ELETTRONICO CHE COS È UN FOGLIO ELETTRONICO CHE COS È UN FOGLIO ELETTRONICO. Facoltà di Scienze Motorie Facoltà di Scienze Motorie CHE COS È UN FOGLIO ELETTRONICO Una tabella che contiene parole e numeri che possono essere elaborati applicando formule matematiche e funzioni statistiche. Esame di Informatica

Dettagli

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

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

Dettagli