Fabrizia Scorzoni. Informatica. Programmazione in Java EDUCAZIONE TECNICA SUPERIORE

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Fabrizia Scorzoni. Informatica. Programmazione in Java EDUCAZIONE TECNICA SUPERIORE"

Transcript

1 Fabrizia Scorzoni Informatica Programmazione in Java EDUCAZIONE TECNICA SUPERIORE

2

3 Fabrizia Scorzoni Informatica Programmazione in Java Seconda Edizionei LOESCHER EDITORE

4 Loescher Editore I diritti di elaborazione in qualsiasi forma o opera, di memorizzazione anche digitale su supporti di qualsiasi tipo (inclusi magnetici e ottici), di riproduzione e di adattamento totale o parziale con qualsiasi mezzo (compresi i microfilm e le copie fotostatiche), i diritti di noleggio, di prestito e di traduzione sono riservati per tutti i paesi. L'acquisto della presente copia dell'opera non implica il trasferimento dei suddetti diritti né li esaurisce. Fotocopie per uso personale (cioè privato e individuale) nei limiti del 15% di ciascun volume possono essere effettuate negli esercizi che aderiscono all accordo tra SIAE - AIE - SNS e CNA - Confartigianato - CASA - Confcommercio del 18 dicembre 2000, dietro pagamento del compenso previsto in tale accordo; oppure dietro pagamento alla SIAE del compenso previsto dall art. 68, commi 4 e 5, della legge 22 aprile 1941 n Per riproduzioni ad uso non personale l editore potrà concedere a pagamento l autorizzazione a riprodurre un numero di pagine non superiore al 15% delle pagine del presente volume. Le richieste per tale tipo di riproduzione vanno inoltrate a: Associazione Italiana per i Diritti di Riproduzione delle Opere dell ingegno (AIDRO) Corso di Porta Romana n. 108, Milano segreteria@aidro.org e sito web L editore, per quanto di propria spettanza, considera rare le opere fuori del proprio catalogo editoriale. La riproduzione a mezzo fotocopia degli esemplari di tali opere esistenti nelle biblioteche è consentita, non essendo concorrenziale all opera. Non possono considerarsi rare le opere di cui esiste, nel catalogo dell editore, una successiva edizione, le opere presenti in cataloghi di altri editori o le opere antologiche. Nel contratto di cessione è esclusa, per biblioteche, istituti di istruzione, musei ed archivi, la facoltà di cui all art per legge diritto d autore. Maggiori informazioni sul nostro sito: Ristampe N ISBN Nonostante la passione e la competenza delle persone coinvolte nella realizzazione di quest opera, è possibile che in essa siano riscontrabili errori o imprecisioni. Ce ne scusiamo fin d ora con i lettori e ringraziamo coloro che, contribuendo al miglioramento dell opera stessa, vorranno segnalarceli al seguente indirizzo: Loescher Editore s.r.l. Via Vittorio Amedeo II, Torino Fax clienti@loescher.it Loescher Editore S.r.l. opera con sistema qualità certificato CERMET n A secondo la norma UNI EN ISO Coordinamento editoriale: Mauro Gargantini Revisione: Giorgia Galiazzo Disegni: Giorgia Galiazzo Stampa: Sograte - Città di Castello (PG)

5 INDICE INTRODUZIONE... XIV MODULO 1 - INTRODUZIONE ALLA PROGRAMMAZIONE... 1 CAPITOLO 1 - LO SVILUPPO DEL SOFTWARE Linguaggi di programmazione I paradigmi di programmazione... 3 Il paradigma procedurale... 3 Il paradigma dichiarativo I linguaggi imperativi Il software di utilità... 5 I programmi traduttori... 5 Il compilatore... 5 Il linker... 6 L interprete... 6 Ambienti di programmazione IDE e RAD La soluzione di problemi con il computer Algoritmo e programma... 8 Computabilità La descrizione dell algoritmo I dati nell algoritmo Dati di input e di output Costanti e variabili Tipi di dati Le strutture di dati Gli array Le istruzioni dell algoritmo Realizzazione di algoritmi e programmi Metodi di descrizione degli algoritmi Istruzioni in pseudocodifica La programmazione strutturata La ricerca della soluzione L analisi top down I sottoprogrammi Funzionamento dei sottoprogrammi Funzioni La gestione delle variabili Variabili globali e locali Ambito di visibilità degli identificatori (scope)... 18

6 IV Indice 1.19 I parametri Le modalità di passaggio dei parametri La ricorsione L interfaccia programma utente Implementazione e documentazione L implementazione La documentazione La verifica del programma Gli errori Il debug La scelta dei dati campione La traccia del programma (o trace) Gli ambienti di debug Alcuni algoritmi utili Ripetizione di un procedimento Algoritmi di ricerca e ordinamento CAPITOLO 2 - JAVA Il linguaggio Java Vantaggi di Java La programmazione a oggetti Java 2.1 Il primo programma Regole generali Gli identificatori I commenti Stampa di un messaggio Visualizzazione di un messaggio con una finestra di dialogo Il metodo main() I modificatori public, static e void Passaggio di parametri Java 2.2 Applicazioni grafiche e applet Creazione di applicazioni e applet Applicazioni grafiche Schema di una applicazione grafica Applet Schema di un applet Java 2.3 Creazione di programmi con il JDK Impostazione del classpath La variabile d ambiente CLASSPATH I path Java 2.4 Uso del debug JSwat Java 2.5 L API di Java Java 2.6 Uso della documentazione dell API Java 2.7 Package File jar MODULO 2 - LE BASI DELLA PROGRAMMAZIONE...53 CAPITOLO 3 - I PRIMI ELEMENTI...54 Java 3.1 Le variabili Java 3.2 I tipi di dati... 55

7 Indice V Conversioni di tipo Situazioni da considerare per evitare errori Java 3.3 Le costanti Valori costanti Costanti simboliche Java 3.4 L assegnazione Java 3.5 Espressioni e operatori Operatori aritmetici Concatenazione di stringhe Java 3.6 Tipi enumerativi Java 3.7 Introduzione a classi e oggetti Java 3.8 Classi e package predefiniti Classi predefinite Package predefiniti Java 3.9 Le istruzioni di scrittura I metodi print() e println() La formattazione dei dati Output mediante finestre di dialogo Java 3.10 Le istruzioni di lettura La classe Scanner Input mediante finestre di dialogo Java 3.11 La classe Math Java 3.12 La classe Random Java 3.13 Classi corrispondenti ai tipi primitivi Integer Long Double Float Character Boolean Java 3.14 Stringhe Costruttori Metodi Conversioni Java 3.15 La classe System Java 3.16 Introduzione alla gestione delle eccezioni CAPITOLO 4 - STRUTTURE DI CONTROLLO, METODI E ARRAY...92 Java 4.1 La struttura sequenziale Java 4.2 L istruzione if.. else L operatore condizionale?: If nidificati Operatori logici Operatori sui bit Java 4.3 L istruzione switch Java 4.4 Le istruzioni while e do.. while L istruzione while L istruzione do.. while Ciclo con controllo in testa del segnale di terminazione Java 4.5 L istruzione for Ciclo sui caratteri di una stringa

8 VI Indice Java 4.6 Cicli sulle stringhe: la classe StringTokenizer Java 4.7 Metodi Visibilità delle variabili Metodi con un numero variabile di parametri Overloading Java 4.8 Array Dichiarazione, creazione e inizializzazione Dimensione Copia di array Foreach Array come parametri di metodi e valori restituiti Array di oggetti La classe Arrays Java 4.9 Passaggio di parametri al programma Java 4.10 Array a due dimensioni MODULO 3 - LA PROGRAMMAZIONE A OGGETTI CAPITOLO 5 - CLASSI E OGGETTI Oggetti e classi Vantaggi della programmazione a oggetti Implementazione di classi e oggetti La programmazione a oggetti Chiamate di metodi Overloading this Incapsulamento e information hiding Classi e oggetti in notazione UML Rappresentazione di una classe Rappresentazione di un oggetto Progettazione delle classi Individuazione delle classi Spazio degli stati di una classe Comportamento degli oggetti Effetti collaterali Precondizioni e postcondizioni Java 5.1 Il primo programma a oggetti Java 5.2 Classi Modificatore di accesso della classe Dichiarazione di attributi Dichiarazione di metodi Costruttori Tipi di variabili, ciclo di vita, ambito di visibilità e inizializzazione Scelta del tipo di accesso Gestione dei package Documentazione Eccezioni ed asserzioni Java 5.3 Oggetti Java 5.4 Variabili e metodi statici Variabili statiche Metodi statici

9 Indice VII Java 5.5 Classi interne Classi locali e classi anonime CAPITOLO 6 - EREDITARIETÀ E POLIMORFISMO Ereditarietà Definizione di sottoclassi Classi astratte Ereditarietà multipla Polimorfismo Diagrammi UML dell ereditarietà Principi di progettazione Sottoclassi Polimorfismo Java 6.1 Ereditarietà: dichiarazione di una sottoclasse o classe derivata Attributi e metodi Overriding e overloading super Polimorfismo Java 6.2 Classi astratte Java 6.3 Interfacce Definizione e uso di interfacce Ereditarietà multipla Esempi di interfacce predefinite Comparable<T> Java 6.4 La classe Object tostring() equals() clone() Altri metodi Le classi dei tipi enumerativi CAPITOLO 7 - ESEMPI DI PROGETTAZIONE E IMPLEMENTAZIONE Relazioni tra le classi Diagrammi UML delle associazioni Dipendenze Diagrammi di interazione tra oggetti Accoppiamento Esempi di associazioni Uso di array di oggetti Uso di vettori Java 7.1 La classe Vector Costruttori Metodi principali La classe ArrayList Schemi di progettazione Schemi di base Generalizzazione Java 7.2 Un esempio completo di implementazione in Java Definizione degli schemi Implementazione I design pattern

10 VIII Indice I pattern GoF Il design pattern Builder Il design pattern Composite MODULO 4 - ARGOMENTI AVANZATI CAPITOLO 8 - GESTIONE DELLE ECCEZIONI Java 8.1 Gerarchia delle eccezioni Java 8.2 Sollevare eccezioni Java 8.3 Il costrutto try catch Java 8.4 Eccezioni controllate Throws Invocazione di metodi che elencano eccezioni Java 8.5 Creazione di nuove eccezioni CAPITOLO 9 - I THREAD I thread e il multithreading Java 9.1 Il multithreading Java 9.2 Definizione di un thread Java 9.3 Creazione e avvio di thread Java 9.4 Altri metodi della classe Thread Metodi per gestire le caratteristiche dei thread Metodi per ottenere informazioni sui thread in esecuzione Metodi per influire sull esecuzione dei thread Java 9.5 Sincronizzazione Metodi synchronized Monitor Metodi wait() e notify() CAPITOLO 10 - LA GENERICITÀ La genericità Classi generiche in UML Java 10.1 Le classi Vector e ArrayList generiche Java 10.2 Definizione di classi generiche e metodi generici Ereditarietà delle classi generiche Metodi generici Vincolare le variabili di tipo Wildcard Wildcard e metodi generici Java 10.3 I tipi raw MODULO 5 - INTERFACCE GRAFICHE CAPITOLO 11 - APPLICAZIONI GRAFICHE Gli eventi Introduzione alle interfacce grafiche Realizzazione di un programma con interfaccia grafica Diagrammi di interfaccia Interfacce grafiche e messaggi asincroni Java 11.1 Librerie grafiche

11 Indice IX Java 11.2 Componenti e contenitori Java 11.3 Contenitori Java 11.4 Finestre Finestre di applicazione Finestre di dialogo Java 11.5 Eventi Java 11.6 Modello di delegazione degli eventi Java 11.7 Eventi del mouse Classe ascoltatore esterna Classe ascoltatore interna Origine e ascoltatore coincidenti Uso della classe adattatore Java 11.8 Eventi finestra Java 11.9 Eventi della tastiera Java Eventi sui componenti ActionEvent Eventi della tastiera Java Inserimento di componenti Java Disposizione dei componenti Gestione del layout Bordi Java Componenti swing Etichette Pulsanti Caselle e aree di testo Caselle di controllo, pulsanti di selezione e caselle combinate Menu Altri componenti Creazione di componenti personalizzati Java Componenti awt Etichette Pulsanti Componenti di testo Caselle di controllo Menu di scelte ed elenchi di scelte Menu Funzionalità particolari CAPITOLO 12 - APPLET Le applet Inserimento di Applet in documenti HTML Java 12.1 Esecuzione delle applet con l Appletviewer Java 12.2 La classe Applet Java 12.3 I messaggi di stampa dalle applet e la Console Java Java 12.4 L applet come contenitore e componente Java 12.5 La classe JApplet Java 12.6 Le applet e le finestre Java 12.7 Lettura di parametri Java 12.8 Dimensioni Java 12.9 Interazione con il browser Java Trasformazioni da applicazioni ad applet e viceversa

12 X Indice CAPITOLO 13 - GESTIONE DELLA GRAFICA Java 13.1 Il metodo paint() Java 13.2 I metodi repaint() e update() Java 13.3 La classi Graphics e Graphics2D Java 13.4 Forme geometriche con Graphics2D Java 13.5 Forme geometriche con Graphics Java 13.6 Colori Altri attributi di rendering Java 13.7 Scrittura di stringhe Java 13.8 Disegno di immagini Java 13.9 Dimensioni Java Unità di misura Java Varie modalità di realizzazione del disegno di un oggetto CAPITOLO 14 - ANIMAZIONI E SUONI Java 14.1 Animazioni Java 14.2 Timer Java 14.3 Animazione di immagini Java 14.4 Audio MODULO 6 - LE STRUTTURE DI DATI CAPITOLO 15 - STRUTTURE DI DATI DINAMICHE Strutture di dati dinamiche Rappresentazione di nuovi tipi di dati Linguaggi di programmazione e strutture di dati dinamiche Liste Pile Java 15.1 Realizzazione di una pila con un array Code Java 15.2 Realizzazione di una coda con un array Liste concatenate Operazioni sulle liste concatenate Realizzazione di una lista concatenata con array Java 15.3 Realizzazione di una lista concatenata Grafi Uso dei grafi per la soluzione del problema del commesso viaggiatore Uso dei grafi per la soluzione di problemi di localizzazione di servizi in un territorio Alberi Alberi binari Java 15.4 Realizzazione di un albero binario Java 15.5 Realizzazione di classi contenitori generiche Pila con Vector generico Lista concatenata generica Gli Iteratori CAPITOLO 16 - COLLEZIONI PREDEFINITE Java 16.1 Le collezioni Interfacce principali

13 Indice XI Classi principali Java 16.2 Interfacce Enumeration Iterator ListIterator Iterable Java 16.3 Classi Stack LinkedList Collections MODULO 7 - GESTIONE DEI DATI CAPITOLO 17 - GESTIONE DELL'INPUT/OUTPUT Java 17.1 Il package java.io Classi Java 17.2 Le classi per la gestione dei flussi Le classi astratte InputStream, OutputStream, Reader e Writer Le altre classi Java 17.3 Stampa di dati Java 17.4 Lettura dallo standard input Conversione tra flussi di byte e flussi di caratteri Bufferizzazione Java 17.5 Gestione dei file su disco La classe File Finestre di dialogo per la scelta di file Le classi FileOutputStream e FileInputStream Le classi FileWriter e FileReader La classe RandomAccessFile Serializzazione di oggetti CAPITOLO 18 - JDBC Java 18.1 Driver per database JDBC e ODBC Driver ODBC Java 18.2 Creazione di applicazioni con JDBC Caricamento del driver e creazione della connessione Operazioni sul database Interrogazioni Aggiornamenti Java 18.3 Uso di parametri Java 18.4 Paginazione e aggiornamento con i metodi di ResultSet Metodi di ResultSet per la paginazione (scrolling) Metodi di ResultSet per l aggiornamento Java 18.5 I metadati CAPITOLO 19 - XML XML Java 19.1 Introduzione API SAX e DOM Il parser

14 XII Indice Java 19.2 SAX L API SAX Elaborazione di un documento XML I gestori degli eventi Validazione Java 19.3 DOM L API DOM Elaborazione di un documento XML Interfacce del package org.w3c.dom Navigazione nell albero Validazione Creazione e modifica dei documenti DomImplementation Java 19.4 Applicare un foglio stile XSL a un documento XML MODULO 8 - APPLICAZIONI DI RETE CAPITOLO 20 - APPLICAZIONI CON I SOCKET Applicazioni client/server Java 20.1 La classe InetAddress I socket Java 20.2 Creazione di applicazioni con i socket in Java Creazione di una applicazione client/server che usa TCP come protocollo di comunicazione Creazione di un server che accetta connessioni multiple CAPITOLO 21 - SERVLET E JSP Il protocollo HTTP L interfaccia CGI Le applicazioni server side e l interfaccia CGI Richiesta di un applicazione server side con un modulo Interfaccia CGI per la richiesta Richiesta di un applicazione server side con un collegamento ipertestuale o un indirizzo nella barra indirizzi del browser Interfaccia CGI per la risposta Applicazioni server side Tecnologie server side Cookie Sessioni Architettura 3-tier JSP e Servlet Installazione di Tomcat Struttura delle applicazioni Web Java 21.1 Servlet Compilazione e pubblicazione di un servlet Java 21.2 Il package javax.servlet Interfacce principali Classi principali Java 21.3 Il package javax.servlet.http Classi Interfacce

15 Indice XIII Un esempio di servlet Cookie e sessioni Java 21.4 JavaServer Pages Le Pagine JSP Richiesta di pagine JSP Java 21.5 Il package javax.servlet.jsp Interfacce Classi principali Java 21.6 Il package org.apache.jasper.runtime Un esempio di servlet generato dal JSPContainer a partire da una pagina JSP JSP 21.1 Primi elementi Commenti Tag Scriptlet Espressioni Dichiarazioni Direttive Uso di classi definite dal programmatore Azioni Oggetti predefiniti JSP 21.2 Request Informazioni sulla richiesta Pagina che crea un modulo e lo elabora Moduli e bean JSP 21.3 Response Codici di stato e intestazioni di risposta Cookie JSP 21.4 Session JSP 21.5 Application Gli altri oggetti predefiniti JSP 21.6 Gestione degli errori nelle pagine JSP JSP 21.7 Elaborazioni con JDBC JSP 21.8 JSP e XML Generazione di codice XML Elaborazione di documenti XML Applicare un foglio stile XSL a un documento XML APPENDICE APPENDICE A - COMPLESSITÀ COMPUTAZIONALE A.1 La complessità computazionale Costo delle istruzioni di un algoritmo Analisi del caso ottimo, pessimo e medio Complessità asintotica Notazione O-grande Classi di complessità Complessità di alcuni algoritmi A.2 Problemi intrattabili INDICE ANALITICO...553

16 INTRODUZIONE La programmazione in Java si rivolge a tutti i corsi di Informatica in cui si insegna la programmazione utilizzando il linguaggio Java. Per imparare a programmare in Java bisogna: conoscere la filosofia della programmazione a oggetti e saper progettare un applicazione in base a questa tecnica, conoscere i package e le classi di Java. Questo libro approfondisce entrambi gli aspetti. Al termine si sarà in grado di creare applicazioni Java anche complesse, sia a linea di comando che grafiche, ed applet. A differenza dell'edizione precedente ("Java: la programmazione ad oggetti") il libro tratta anche le basi della programmazione. Il testo può essere utilizzato per imparare la programmazione in Java anche da chi non conosce nessun altro linguaggio di programmazione, anche se può essere utile una precedente esperienza di programmazione in un linguaggio imperativo come il C o il Pascal. Per un approfondimento della programmazione a oggetti è proposta una introduzione all'utilizzo di alcuni design pattern (schemi che descrivono soluzioni riutilizzabili di particolari problematiche di progettazione). In questa edizione inoltre sono stati introdotti tutti i nuovi argomenti relativi alle nuove versioni del JDK, in particolare la genericità. Sono anche stati inseriti gli argomenti relativi alla tecnologia server side JSP e alla programmazione in Java di applicazioni di rete con i socket e di applicazioni per l'elaborazione di documenti XML. In tutto il testo si fa riferimento al JDK 1.6 (Java TM 2 SDK, Standard Edition versione 1.6.0). La grafica trattata nei capitoli da 11 a 14 è quella sviluppata in Java 2 con il package swing e i miglioramenti apportati al package awt (come la classe Graphics2D). Per una trattazione del linguaggio HTML, dell inserimento nelle pagine Web di elementi multimediali e del linguaggio XML si rimanda al volume Internet e il WWW seconda edizione (codice J020, ISBN ). Nota RINGRAZIAMENTI Desidero ringraziare Giorgia Galiazzo che ha collaborato alla seconda edizione di questo libro realizzando i disegni ed effettuando la revisione. L autrice

17 MODULO 1 INTRODUZIONE ALLA PROGRAMMAZIONE 1 LO SVILUPPO DEL SOFTWARE 2 JAVA

18 1 LO SVILUPPO DEL SOFTWARE PREREQUISITI nessuno OBIETTIVI CONOSCENZE Linguaggi a basso e ad alto livello Paradigmi di programmazione Linguaggi imperativi Programmi di utilità (compilatori e interpreti, linker) Problemi e loro soluzioni: algoritmi Dati e istruzioni Strutture di dati: array Problem solving Analisi top-down, procedure e funzioni Fasi di realizzazione di un programma ABILITÀ/CAPACITÀ Distinguere i paradigmi di programmazione Comprendere l uso della pseudocodifica per la descrizione di algoritmi Implementare un programma Controllare la correttezza di un programma Comprendere le differenti modalità di lavoro usando linguaggi compilati e linguaggi interpretati Conoscere e utilizzare alcuni algoritmi fondamentali

19 Capitolo 1: Lo sviluppo del software LINGUAGGI DI PROGRAMMAZIONE I linguaggi di programmazione si possono suddividere in due grandi categorie: linguaggi a basso livello (linguaggi macchina e Assembler), detti anche linguaggi orientati alla macchina perché sono specifici di ciascuna macchina, o meglio di ciascun processore, e linguaggi ad alto livello o linguaggi evoluti. L unico linguaggio di programmazione che il computer è in grado di comprendere è il linguaggio macchina. Tutti gli altri linguaggi devono essere tradotti in linguaggio macchina. Il linguaggio Assembler è un linguaggio a basso livello, cioè ogni istruzione del linguaggio Assembler corrisponde ad una istruzione del linguaggio macchina; come il linguaggio macchina è quindi strettamente dipendente dal processore. I linguaggi di programmazione ad alto livello, oltre a permettere l uso di nomi simbolici, offrono istruzioni indipendenti dal processore, che corrispondono a più istruzioni in linguaggio macchina, e risultano più comprensibili perché più vicine al linguaggio naturale. 1.2 I PARADIGMI DI PROGRAMMAZIONE I linguaggi di programmazione usano molti paradigmi di programmazione diversi. Un paradigma di programmazione è un modello che permette di descrivere astrattamente l algoritmo (cioè il metodo di soluzione di un problema). I principali paradigmi di programmazione sono: il paradigma procedurale, il paradigma dichiarativo. IL PARADIGMA PROCEDURALE Il paradigma procedurale descrive come deve essere risolto un problema. La programmazione con il paradigma procedurale si può suddividere in: programmazione imperativa: si basa su esplicite richieste fatte all esecutore del programma; la soluzione del problema è descritta come una sequenza di azioni che producono dei cambiamenti di stato nell ambiente (come la modifica del valore delle variabili); I linguaggi imperativi sono chiamati anche algoritmici. Nota Esempi di linguaggi imperativi: linguaggio macchina, Assembler, Pascal, C, Cobol. programmazione orientata agli oggetti: parte dal concetto di oggetto che descrive proprietà e azioni che un oggetto può compiere; la soluzione del problema è descritta dalle interazioni tra gli oggetti. I linguaggi orientati agli oggetti si dicono puri se permettono di usare solo oggetti. Nota Esempi di linguaggi ad oggetti: Java, C++.

20 4 Modulo 1: Introduzione alla programmazione PROGRAMMAZIONE BASATA SUGLI EVENTI Sia nella programmazione imperativa che in quella orientata agli oggetti l esecuzione può essere guidata dagli eventi, cioè alcune azioni possono essere eseguite quando si verificano determinati eventi, per esempio un azione dell utente, il caricamento del programma o il passare del tempo. Di solito la programmazione guidata dagli eventi è legata all interfaccia grafica. Le interfacce grafiche sono spesso realizzate tramite oggetti. Esempi di linguaggi basati sugli eventi: Visual Basic. IL PARADIGMA DICHIARATIVO Il paradigma dichiarativo descrive che cosa si vuole ottenere come soluzione e non come fare per raggiungerla; in questo caso è l esecutore che è predisposto per seguire opportune strategie per determinare la soluzione. Il paradigma dichiarativo comprende: programmazione logica: descrive i fatti e le relazioni tra i fatti e permette di ricavarne delle conseguenze; Esempi di linguaggi logici: Prolog. programmazione funzionale: il programma è costituito da un insieme di funzioni che elaborano liste di simboli; Esempi di linguaggi funzionali: Lisp. linguaggi di markup: usano dei codici (tag) per stabilire il ruolo degli elementi; Esempi di linguaggi di markup: HTML, XHTML, XML. linguaggi di interrogazione di database. Esempi di linguaggi di interrogazione di database: SQL. 1.3 I LINGUAGGI IMPERATIVI Il vocabolario usato da ciascun linguaggio comprende delle parole riservate e delle parole che possono essere definite dal programmatore seguendo alcune semplici regole. Le parole riservate permettono di definire i dati e di scrivere le istruzioni; le parole definite dal programmatore (o identificatori) sono in genere i nomi delle variabili e i nomi delle procedure da richiamare. Le istruzioni normalmente sono semplici da ricordare e si avvicinano al linguaggio naturale (di solito la lingua inglese). Le istruzioni si possono suddividere in: dichiarative, esecutive, di controllo. Le istruzioni dichiarative permettono di definire i dati che si utilizzano; per definire una variabile bisogna stabilire il nome e il tipo di dati; il tipo di dati della variabile determina l insieme dei valori ammessi e le operazioni eseguibili. Nei linguaggi debolmente tipizzati non è necessario definire il tipo di dati delle variabili. Nota

21 Capitolo 1: Lo sviluppo del software 5 Le istruzioni esecutive comprendono quelle che si riferiscono ad operazioni effettive, come operazioni di input/output che gestiscono lo scambio di dati tra utente e programma, operazioni di assegnazione che consentono di associare un valore ad una variabile, operazioni sui dati in base al loro tipo, per esempio operazioni aritmetiche sui dati numerici ecc. Le istruzioni di controllo governano il funzionamento del programma; permettono di solito la codifica delle strutture fondamentali di programmazione (sequenziale, di selezione e iterativa) o almeno il trasferimento, in base al verificarsi di una condizione, ad una istruzione del programma che non sia quella successiva. In genere è possibile anche definire procedure da richiamare nei punti desiderati, a volte anche in modo ricorsivo. 1.4 IL SOFTWARE DI UTILITÀ L editor è un programma di utilità che consente di inserire e memorizzare un testo e di modificarlo successivamente per effettuare aggiunte o correzioni. Le istruzioni del programma vengono memorizzate in un file che contiene il programma sorgente, cioè il programma scritto nel linguaggio di programmazione. I PROGRAMMI TRADUTTORI Il computer è in grado di eseguire soltanto istruzioni in linguaggio macchina; il programma codificato in un linguaggio di programmazione viene tradotto in linguaggio macchina da programmi traduttori chiamati assemblatori per la traduzione del linguaggio Assembler e compilatori o interpreti, secondo il modo in cui operano, per la traduzione dei linguaggi ad alto livello. Per ogni linguaggio esiste un programma traduttore specifico; per alcuni esiste un interprete, per altri un compilatore, a volte sia un interprete che un compilatore. Per esempio per i linguaggi Pascal e C/C++ ci sono dei compilatori, per il linguaggio Visual Basic, sebbene sia più diffuso l utilizzo con l interprete, esistono anche compilatori. Java ha un compilatore che traduce il programma sorgente in un linguaggio intermedio, che poi viene interpretato dalla Java Virtual Machine. Assemblatori e compilatori creano un programma oggetto, traduzione del programma sorgente in linguaggio macchina. Il programma oggetto deve essere linkato per produrre un programma eseguibile prima di poter essere eseguito. IL COMPILATORE Il compilatore è un programma che traduce un programma sorgente scritto in linguaggio ad alto livello in un programma oggetto in linguaggio macchina. Il lavoro del compilatore si divide nelle fasi di analisi e di sintesi. Il compilatore può operare in una o più passate; i compilatori a una passata sono più veloci. L analisi si divide in: analisi lessicale (eseguita dallo scanner), che individua le parole del vocabolario e costruisce la tabella dei simboli;

22 6 Modulo 1: Introduzione alla programmazione analisi sintattica (eseguita dal parser), che controlla se le frasi sono scritte rispettando la sintassi del linguaggio cioè le regole della grammatica; durante questo processo viene creato l albero sintattico (parse tree) relativo al programma; analisi semantica, che controlla la validità del significato degli elementi in base al contesto (per esempio la presenza delle istruzioni dichiarative necessarie, il tipo delle costanti e delle variabili in operazioni di assegnazione, la validità degli operatori in espressioni aritmetiche, la correttezza del numero e tipo dei parametri passati nelle chiamate a sottoprogrammi ecc.). L analisi permette di verificare la correttezza del programma. Il compilatore individua e segnala tutti gli errori formali. Se ci sono errori la traduzione non può avvenire. Se non ci sono errori il compilatore passa alla fase di sintesi durante la quale effettua la traduzione vera e propria e genera il codice oggetto, di solito in formato rilocabile, e produce l elenco dei simboli rilocabili. La fase di sintesi può essere preceduta da una traduzione del programma in un codice intermedio e da una fase di ottimizzazione del codice, che permette di ottenere un programma più efficiente, cioè che utilizza meno risorse di calcolo (memoria e CPU). La generazione del codice oggetto dipende dalla piattaforma utilizzata (processore e sistema operativo). La fase di analisi di un compilatore è indipendente dalla piattaforma, ma la fase di generazione del codice deve essere adattata per ogni piattaforma. La possibilità di adattamento del compilatore a piattaforme diverse viene detta portabilità. Il passaggio della traduzione attraverso un linguaggio intermedio favorisce questa caratteristica. Il programma oggetto prodotto dal compilatore deve essere linkato per produrre un programma eseguibile. IL LINKER Il linker trasforma il programma oggetto in programma eseguibile. Il programma oggetto realizzato dall assemblatore o da un compilatore non può essere eseguito in modo autonomo (anche se può essere eseguito per esempio all interno di un ambiente integrato). Per creare un programma eseguibile bisogna che al programma oggetto siano collegati dei moduli di sistema (supporto run-time) che rendono disponibili delle funzioni necessarie al programma. Il collegamento dei moduli di sistema è effettuato dal linker. Il linker permette anche di collegare più moduli oggetto per creare un unico programma eseguibile. L INTERPRETE L interprete è un programma che traduce le istruzioni del linguaggio ad alto livello in linguaggio macchina, una per una, al momento dell esecuzione. L esecuzione può iniziare subito dopo la scrittura del programma sorgente. L interprete permette di lavorare in un ambiente interattivo per la realizzazione dei programmi. Perché un programma possa essere eseguito, l interprete e il programma devono essere contemporaneamente in memoria centrale. L interprete procede istruzione per istruzione, sul programma sorgente: controlla l istruzione, la traduce in linguaggio macchina e la esegue.

23 Capitolo 1: Lo sviluppo del software 7 Le istruzioni di un ciclo vengono tradotte ogni volta che il ciclo viene percorso. Se un istruzione (per esempio di un ramo di una istruzione condizionale) non viene eseguita, non viene controllata e potrebbe presentare degli errori che non vengono individuati. L interprete non crea un programma oggetto. Nota Se l interprete riscontra un errore formale nella scrittura di una istruzione, segnala l errore e interrompe l esecuzione del programma. Tabella 1.1 Vantaggi e svantaggi di compilatori e interpreti Vantaggi COMPILATORE maggior velocità di esecuzione, perché la traduzione è già stata fatta in precedenza; risparmio di memoria perché durante l esecuzione non è necessario che il compilatore sia presente in memoria; rileva tutti gli errori formali; consente la segretezza del programma sorgente; non è necessario codice aggiuntivo per l esecuzione del programma. Svantaggi tempi di creazione del programma più lunghi (a ogni modifica bisogna compilare e linkare); minore portabilità: bisogna creare un programma eseguibile diverso per ogni piattaforma. INTERPRETE semplicità di messa a punto dei programmi poiché si lavora in ambiente interattivo; maggior portabilità dei programmi: basta che sia disponibile un interprete per la piattaforma. maggiore occupazione di memoria perché durante l esecuzione del programma, anche l interprete deve essere caricato in memoria centrale; l esecuzione risulta più lenta poiché le istruzioni devono essere tradotte ogni volta che vengono eseguite; non dà garanzia di correttezza sintattica: possono restare degli errori perché vengono controllate soltanto le istruzioni effettivamente eseguite; non consente la segretezza del codice sorgente; è necessario avere l interprete per eseguire il programma. AMBIENTI DI PROGRAMMAZIONE IDE E RAD Gli ambienti di sviluppo IDE (Integrated Development Environment, o ambienti di sviluppo intergrati) sono ambienti di programmazione con interfaccia grafica che offrono tutti gli strumenti necessari all implementazione di un programma: editor, interpete o compilatore e linker, debugger ecc. RAD (Rapid Application Development) è un approccio per rendere più rapido lo sviluppo di applicazioni tramite modelli e strumenti per il disegno dell interfaccia grafica o addirittura la produzione automatica del codice (per esempio tramite Wizard che generano il codice in base a scelte impostate dal programmatore).

24 8 Modulo 1: Introduzione alla programmazione 1.5 LA SOLUZIONE DI PROBLEMI CON IL COMPUTER Per problema si può intendere qualsiasi questione o quesito proposto per cui è necessario trovare una soluzione. La descrizione di un problema di solito comprende: la situazione iniziale (dati del problema), che cosa si desidera ottenere (risultati), le risorse a disposizione. La soluzione del problema (o processo risolutivo) è la descrizione del procedimento da seguire per ottenere i risultati desiderati. In base alle risorse a disposizione si possono avere processi risolutivi molto diversi tra loro. Per ottenere realmente una soluzione ci deve essere un esecutore che partendo dalla situazione iniziale e seguendo le istruzioni ottiene il risultato desiderato. Il computer fa da esecutore del processo risolutivo. Il computer può soltanto velocizzare le operazioni e padroneggiare una grande quantità di dati, ma esegue soltanto quello che gli viene detto esplicitamente; non è in grado di prendere delle iniziative in modo autonomo, quindi deve essere istruito in modo preciso. Il processo risolutivo di un problema deve essere descritto in modo formale e richiede la descrizione dei dati relativi al problema e delle azioni da eseguire per risolvere il problema. I dati che riguardano il problema sono tutte le informazioni disponibili all inizio e quelle che si desiderano ottenere come soluzione del problema. Le azioni che possono essere eseguite nel processo risolutivo sono le operazioni che il computer è in grado di eseguire. 1.6 ALGORITMO E PROGRAMMA La descrizione del processo risolutivo (dati necessari e operazioni da eseguire) costituisce l algoritmo. L algoritmo è un procedimento che permette di ottenere dei risultati (dati in uscita o di output) partendo da alcuni dati iniziali (dati di ingresso o di input). Uno stesso problema può essere risolto con algoritmi diversi. Due algoritmi si dicono equivalenti se per ogni combinazione di dati iniziali producono sempre gli stessi risultati, pur eseguendo istruzioni diverse. Il vantaggio di un algoritmo rispetto all altro può dipendere per esempio dal risparmio di tempo o di memoria necessari per l esecuzione o da una maggior comprensibilità. DEFINIZIONE DI ALGORITMO Un algoritmo è la descrizione del processo risolutivo di un problema; si compone di dati e di istruzioni.

25 Capitolo 1: Lo sviluppo del software 9 L algoritmo deve: essere composto da istruzioni che l esecutore dell algoritmo è realmente in grado di eseguire; terminare sempre in un tempo finito; produrre dei risultati che si possano descrivere (cioè deve avere un effetto osservabile); essere deterministico: i risultati devono essere sempre gli stessi, partendo dagli stessi dati iniziali, cioè non devono dipendere da qualcosa di casuale; essere generale: non deve risolvere un singolo caso particolare, ma tutta una serie di problemi dello stesso tipo. È importante distinguere tra descrizione dell algoritmo ed esecuzione dell algoritmo. La descrizione dell algoritmo è la lista delle istruzioni che descrivono come raggiungere la soluzione, che comprende tutti i casi possibili per trattare una classe di problemi. L esecuzione dell algoritmo è l applicazione ad un caso particolare, partendo da dati iniziali noti. L esecuzione è chiamata anche processo e l esecutore processore. Il processo di esecuzione di solito è variabile: le istruzioni da eseguire dipendono dai dati iniziali del particolare caso in esame, e l algoritmo descrive un insieme di sequenze di esecuzione diverse. L algoritmo per poter essere eseguito al computer deve essere implementato in un linguaggio di programmazione. Il programma si ottiene codificando l algoritmo in un linguaggio di programmazione, cioè scrivendo le istruzioni dell algoritmo secondo la sintassi del linguaggio scelto. COMPUTABILITÀ Un problema si dice computabile se la sua soluzione può essere descritta mediante un algoritmo. I problemi che non sono risolvibili con un procedimento algoritmico si dicono non computabili. Per poter affermare che un problema è non computabile, e quindi insolubile, bisogna dimostrare che non esiste una soluzione algoritmica. Ci sono dei problemi per cui non si riesce a trovare una soluzione algoritmica, ma non si riesce nemmeno a dimostrare che non esiste una soluzione. I problemi si possono quindi dividere in: problemi computabili se esiste una soluzione algoritmica; problemi non computabili se è dimostrato che non esiste una soluzione algoritmica; problemi che per il momento vengono considerati non computabili ma per cui potrebbe essere trovata prima o poi una soluzione. 1.7 LA DESCRIZIONE DELL ALGORITMO La descrizione del processo risolutivo può risultare molto diversa in base al paradigma di programmazione scelto.

26 10 Modulo 1: Introduzione alla programmazione La descrizione dei dati e delle azioni per risolvere il problema dipende dal paradigma di programmazione utilizzato e, per linguaggi che usano lo stesso paradigma, almeno parzialmente dal linguaggio scelto, infatti potrebbero essere disponibili per esempio tipi o strutture di dati diverse. Ci sono però alcuni concetti comuni a tutti i paradigmi, per esempio i concetti fondamentali della descrizione dei dati. Nel seguito si fa riferimento al paradigma imperativo. Molti concetti del paradigma imperativo si applicano anche alla programmazione a oggetti per quanto riguarda le interazioni (cioè la scrittura dei metodi degli oggetti). Per questi paradigmi sono fondamentali le istruzioni di assegnazione e le strutture di controllo. 1.8 I DATI NELL ALGORITMO L algoritmo non è soltanto un insieme di istruzioni; una componente fondamentale dell algoritmo è costituita dai dati; quindi una fase essenziale della stesura dell algoritmo è la scelta dei dati da utilizzare. Per poter stabilire quali dati utilizzare è importante conoscere: la differenza tra dati di input, di output e di lavoro; la differenza tra costanti e variabili; i tipi di dati disponibili. DATI DI INPUT E DI OUTPUT I dati permettono la comunicazione tra l utente del programma e l esecutore. L esecutore applica l algoritmo ai dati iniziali forniti dall utente e produce dei risultati da restituire all utente stesso (il programma viene realizzato proprio allo scopo di ottenere tali risultati). I dati necessari alla soluzione di un problema si possono suddividere in dati di input e dati di output. La suddivisione viene fatta in base al verso di comunicazione dei dati tra utente ed esecutore, in riferimento all esecutore (o in modo più impreciso al programma). I dati di input sono i dati che l utente deve fornire al programma per l esecuzione. I dati di input devono essere noti al momento dell esecuzione; non ha invece importanza conoscerli al momento della descrizione dell algoritmo, anzi l algoritmo non si deve basare sul caso particolare dei valori noti ma deve essere generale, cioè valido per qualsiasi altro insieme di valori di input. I dati di output sono il risultato dell elaborazione, cioè i dati che il programma restituisce all utente. I dati di output costituiscono lo scopo del programma. Alcuni dati possono essere sia di input che di output (per esempio un testo modificato in un elaboratore di testi). I dati interni o di lavoro sono altri dati, utilizzati all interno dell algoritmo, predisposti dal programmatore, ma di nessuna importanza per l utente del programma.

27 Capitolo 1: Lo sviluppo del software 11 I dati di lavoro non sono visibili all esterno ma sono usati solo per l elaborazione (sono trasparenti per l utente). COSTANTI E VARIABILI I dati che descrivono un problema si possono suddividere in costanti e variabili. I dati possono essere costanti o variabili in base alla possibilità di cambiare o meno valore nel tempo. I dati costanti sono dati che hanno un valore predefinito, che non cambia. I dati variabili possono cambiare valore. Calcolo del perimetro di un quadrato. I dati necessari sono la misura del lato e il numero dei lati. Il numero dei lati è 4 ed è una costante, non cambia mai, per tutti i quadrati. La misura del lato è variabile e cambia da un quadrato all altro. Calcolo del perimetro di un poligono. Anche in questo caso i dati necessari sono la misura del lato e il numero dei lati. In questo problema però anche il numero dei lati è variabile, perché si possono considerare poligoni con numero di lati diverso. Una variabile è un dato che viene modificato durante l elaborazione o da un elaborazione ad un altra. In qualche caso si può considerare costante anche un valore che non cambia durante l elaborazione, anche se può cambiare per elaborazioni diverse. Per esempio le aliquote IVA si possono considerare costanti, anche se possono variare da un anno all altro in base a variazioni di legge. I valori che possono essere assegnati a costanti e variabili dipendono dal tipo di dati a cui appartengono. TIPI DI DATI I tipi di dati utilizzabili dipendono dal paradigma di programmazione. Nella programmazione orientata agli oggetti i dati sono sempre rappresentati da oggetti. Nel paradigma logico i dati sono fatti. Nel paradigma funzionale i dati sono liste di simboli. Nel paradigma imperativo i dati possono essere di molti tipi diversi; si possono suddividere in dati semplici (come dati numerici, alfanumerici o booleani) e strutture di dati. I tipi di dati semplici standard (cioè quelli normalmente disponibili) sono: numerico: un dato è numerico se è formato soltanto dalle cifre decimali, il segno e la virgola decimale (o il punto decimale secondo la notazione usata); sui dati numerici sono definite tutte le operazioni aritmetiche ed operazioni di confronto; i dati numerici di solito si distinguono in numeri interi e numeri reali; alfanumerico: un dato alfanumerico può contenere cifre, caratteri alfabetici o caratteri speciali; i caratteri disponibili dipendono dal tipo di codifica usata per la memorizzazione e possono essere confrontati in base al codice corrispondente;

28 12 Modulo 1: Introduzione alla programmazione in particolare spesso sono disponibili le stringhe di caratteri alfanumerici; per le stringhe sono solitamente definite operazioni di concatenazione o estrazione di parti e le operazioni di confronto; booleano: un dato booleano può assumere solamente i valori vero o falso; sui dati booleani sono definite le operazioni logiche not, and e or. Non tutti i linguaggi permettono l utilizzo di dati booleani. Nota Normalmente non tutti i valori di un tipo di dati sono utilizzabili in un algoritmo. La rappresentazione di un tipo di dati è finita, quindi è possibile utilizzare solo un intervallo limitato di dati. Inoltre, in base al problema, potrebbe essere ammissibile solo un certo insieme di valori, dominio del problema. In un algoritmo per la media dei prezzi il dominio dei prezzi è costituito da numeri reali positivi con due cifre decimali. Per la media dei voti presi da uno studente il dominio dei voti è costituito dai voti da 1 a 10. Il dominio può essere costituito da un intervallo dei valori di un tipo (subrange) o da un elenco di valori (enumerazione dei valori del dominio). Per un algoritmo che lavora su stringhe il dominio potrebbe essere costituito da tutte le stringhe con un certo numero di caratteri o solo da determinate stringhe (per esempio i nomi dei mesi). In alcuni casi è necessario stabilire dei vincoli ulteriori. In una data il numero massimo del giorno dipende dal mese considerato. È importante definire il dominio esatto dei dati e i relativi vincoli in modo che si possano effettuare dei controlli sull inserimento dei dati o sui valori che i dati assumono durante l elaborazione. 1.9 LE STRUTTURE DI DATI Una struttura di dati è un raggruppamento di dati, con una certa organizzazione, che si può considerare come un unico oggetto o come composto dai singoli dati; è possibile accedere ad ogni dato che compone la struttura mediante modalità che dipendono dal tipo di struttura considerato. Si dice struttura di dati informativa o astratta una struttura definita da un punto di vista logico, descrivendo cioè soltanto le associazioni logiche tra i dati e i metodi per utilizzare la struttura. Il programmatore sceglie la struttura astratta più adatta a memorizzare le informazioni del problema. Esempi di strutture di dati astratte sono array, matrici, liste, ecc. Le caratteristiche principali che differenziano le strutture di dati astratte sono: la possibilità di cambiare o meno dimensione durante l esecuzione (dinamica o statica); il fatto che i dati siano tutti dello stesso tipo oppure no (omogenea o eterogenea);

29 Capitolo 1: Lo sviluppo del software 13 il fatto che sia possibile accedere direttamente a un elemento, o che sia invece necessario scorrere tutti gli elementi precedenti (accesso diretto o sequenziale). Si dice struttura di dati concreta la rappresentazione nella memoria del computer di una struttura astratta. La caratteristica principale che differenzia le strutture di dati concrete è il fatto che i dati siano memorizzati in memoria in locazioni contigue oppure no (sequenziale o no). Le strutture di dati sono memorizzate nella memoria RAM ed esistono soltanto all interno del programma che le utilizza; quando il programma termina, i dati inseriti nella struttura non sono più utilizzabili; non è possibile conservare dati in queste strutture, nè usarle per comunicare dati tra un programma e un altro. Per poter conservare delle informazioni in modo permanente bisogna memorizzarle in file. I file sono memorizzati su memoria di massa ed esistono indipendentemente dall esecuzione del programma. Nota 1.10 GLI ARRAY Un array è un insieme di valori tutti dello stesso tipo, cioè omogenei tra loro. Gli array sono chiamati comunemente anche vettori ma, poiché in alcuni linguaggi (come Java) array e vettori non sono esattamente la stessa cosa, è preferibile usare il termine array. Nota Si può pensare a un array come a una serie di caselle una vicina all altra; ogni casella viene chiamata elemento dell array. La dimensione dell array una volta fissata non può essere modificata. Ogni elemento si distingue dagli altri in base alla sua posizione. Il valore corrispondente alla posizione di un elemento viene detto indice dell elemento. Come struttura concreta un array viene memorizzato in una struttura sequenziale, cioè usa locazioni contigue di memoria. Come conseguenza dell uso di una struttura sequenziale per la memorizzazione, l array: ha dimensione statica; presenta difficoltà di inserimento e cancellazione di elementi LE ISTRUZIONI DELL ALGORITMO Le istruzioni di un algoritmo possono richiedere effettivamente l esecuzione di una operazione (come le istruzioni per l esecuzione di operazioni aritmetiche o le istruzioni di input/output), o possono servire soltanto per controllare il flusso di esecuzione del programma. Le istruzioni del primo tipo vengono chiamate istruzioni effettive, quelle del secondo tipo istruzioni di controllo.

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

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 3-Compilatori e interpreti 1 Prerequisiti Principi di programmazione Utilizzo di un compilatore 2 1 Introduzione Una volta progettato un algoritmo codificato in un linguaggio

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

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

Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA

Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA Salerno Formazione, società operante nel settore della didattica, della formazione professionale e certificata

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

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

Dettagli

Il database management system Access

Il database management system Access Il database management system Access Corso di autoistruzione http://www.manualipc.it/manuali/ corso/manuali.php? idcap=00&idman=17&size=12&sid= INTRODUZIONE Il concetto di base di dati, database o archivio

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione

Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione Università Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

connessioni tra i singoli elementi Hanno caratteristiche diverse e sono presentati con modalità diverse Tali relazioni vengono rappresentate QUINDI

connessioni tra i singoli elementi Hanno caratteristiche diverse e sono presentati con modalità diverse Tali relazioni vengono rappresentate QUINDI Documenti su Internet LINGUAGGI DI MARKUP Internet permette (tra l altro) di accedere a documenti remoti In generale, i documenti acceduti via Internet sono multimediali, cioè che possono essere riprodotti

Dettagli

Proff. Fabio Ciao e Raffaele Bortone

Proff. Fabio Ciao e Raffaele Bortone ISTITUTO D ISTRUZIONE SUPERIORE FERRARIS BRUNELLESCHI - EMPOLI Materia: INFORMATICA PROGRAMMAZIONE ANNUALE A.S. 2014/2015 Classe IV C Informatica Proff. Fabio Ciao e Raffaele Bortone Libro di testo: Cloud

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

Linguaggi per COMUNICARE. Il linguaggio è un sistema codificato di segni che consente la comunicazione, intesa come scambio di informazioni

Linguaggi per COMUNICARE. Il linguaggio è un sistema codificato di segni che consente la comunicazione, intesa come scambio di informazioni Linguaggi per COMUNICARE Il linguaggio è un sistema codificato di segni che consente la comunicazione, intesa come scambio di informazioni Sintassi e semantica dei linguaggi Un informazione può : Essere

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

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment Obiettivi d esame PHP Developer Fundamentals on MySQL Environment 1.0 Ambiente di sviluppo 1.1 Web server e database MySQL Comprendere la definizione dei processi che si occupano di fornire i servizi web

Dettagli

Indice. Introduzione. Capitolo 1

Indice. Introduzione. Capitolo 1 Indice Introduzione XI Capitolo 1 Pagine dei fornitori: applicazione dei fogli di stile CSS in XML 1 1.1 Introduzione a HTML e XHTML 1 1.2 Controllo della presentazione: fogli di stile CSS 8 1.3 Approfondimento

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

CORSO DI PROGRAMMAZIONE JAVA CORSO DI PROGRAMMAZIONE JAVA Corso di Programmazione Java Standard Edition ( MODULO A) OBIETTIVI ll corso ha come obiettivo quello di introdurre la programmazione a oggetti (OOP) e di fornire solide basi

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

Introduzione. Informatica B. Daniele Loiacono

Introduzione. Informatica B. Daniele Loiacono Introduzione Informatica B Perchè studiare l informatica? Perchè ha a che fare con quasi tutto quello con cui abbiamo a che fare ogni giorno Perché è uno strumento fondamentale per progettare l innovazione

Dettagli

Introduzione alla programmazione in C

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

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down

Dettagli

Linguaggi di programmazione

Linguaggi di programmazione Linguaggi di programmazione Programmazione L attività con cui si predispone l elaboratore ad eseguire un particolare insieme di azioni su particolari dati, allo scopo di risolvere un problema Dati Input

Dettagli

Al giorno d oggi, i sistemi per la gestione di database

Al giorno d oggi, i sistemi per la gestione di database Introduzione Al giorno d oggi, i sistemi per la gestione di database implementano un linguaggio standard chiamato SQL (Structured Query Language). Fra le altre cose, il linguaggio SQL consente di prelevare,

Dettagli

EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO

EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO Linguaggi di programmazione classificati in base alle loro caratteristiche fondamentali. Linguaggio macchina, binario e fortemente legato all architettura. Linguaggi

Dettagli

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell

Dettagli

Soluzione dell esercizio del 2 Febbraio 2004

Soluzione dell esercizio del 2 Febbraio 2004 Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo

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

Linguaggi di programmazione

Linguaggi di programmazione Linguaggi di programmazione Un calcolatore basato sul modello di von Neumann permette l esecuzione di un programma, cioè di una sequenza di istruzioni descritte nel linguaggio interpretabile dal calcolatore

Dettagli

Capitolo 4 Pianificazione e Sviluppo di Web Part

Capitolo 4 Pianificazione e Sviluppo di Web Part Capitolo 4 Pianificazione e Sviluppo di Web Part Questo capitolo mostra come usare Microsoft Office XP Developer per personalizzare Microsoft SharePoint Portal Server 2001. Spiega come creare, aggiungere,

Dettagli

ISTITUTO TECNICO INDUSTRIALE STATALE "G. MARCONI" Via Milano n. 51-56025 PONTEDERA (PI) DIPARTIMENTO: Discipline Informatiche

ISTITUTO TECNICO INDUSTRIALE STATALE G. MARCONI Via Milano n. 51-56025 PONTEDERA (PI) DIPARTIMENTO: Discipline Informatiche PROGRAMMAZIONE COORDINATA TEMPORALMENTE Monte ore annuo 99 Libro di Testo Barbero, Vaschetto - Corso di Informatica - terzo anno Ed. Pearson SETTEMBRE OTTOBRE Modulo 0 : CODIFICA INFORMAZIONI Rappresentazione

Dettagli

Cosa è un foglio elettronico

Cosa è un foglio elettronico Cosa è un foglio elettronico Versione informatica del foglio contabile Strumento per l elaborazione di numeri (ma non solo...) I valori inseriti possono essere modificati, analizzati, elaborati, ripetuti

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

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell

Dettagli

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi Il Software Il software impiegato su un computer si distingue in: Software di sistema Sistema Operativo Compilatori per produrre programmi Software applicativo Elaborazione testi Fogli elettronici Basi

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

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10 Il Software e Il Sistema Operativo Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10 Cosa Impareremo Programmi e Processi Struttura del Sistema Operativo Sviluppo di Programmi I files e la loro

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

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

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T1 B2 Significato e proprietà della OOP 1 Prerequisiti Concetto ed elementi della comunicazione Allocazione e deallocazione della memoria Compilazione di un programma Spazio

Dettagli

IL SISTEMA INFORMATIVO

IL SISTEMA INFORMATIVO IL SISTEMA INFORMATIVO In un organizzazione l informazione è una risorsa importante al pari di altri tipi di risorse: umane, materiali, finanziarie, (con il termine organizzazione intendiamo un insieme

Dettagli

Esercizi di JavaScript

Esercizi di JavaScript Esercizi di JavaScript JavaScript JavaScript é un linguaggio di programmazione interpretato e leggero, creato dalla Netscape. E' presente a patire da Netscape 2 in tutti i browser ed é dunque il linguaggio

Dettagli

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Corso di Laurea Magistrale in Ingegneria per l Ambiente e il Territorio A.A. 2014-2015 Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Strutture di dati: DB e DBMS DATO E INFORMAZIONE Dato: insieme

Dettagli

Approccio stratificato

Approccio stratificato Approccio stratificato Il sistema operativo è suddiviso in strati (livelli), ciascuno costruito sopra quelli inferiori. Il livello più basso (strato 0) è l hardware, il più alto (strato N) è l interfaccia

Dettagli

Come ragiona il computer. Problemi e algoritmi

Come ragiona il computer. Problemi e algoritmi Come ragiona il computer Problemi e algoritmi Il problema Abbiamo un problema quando ci poniamo un obiettivo da raggiungere e per raggiungerlo dobbiamo mettere a punto una strategia Problema Strategia

Dettagli

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Sistema operativo Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Architettura a strati di un calcolatore

Dettagli

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI Prof. Andrea Borghesan venus.unive.it/borg borg@unive.it Ricevimento: martedì, 12.00-13.00. Dip. Di Matematica Modalità esame: scritto + tesina facoltativa 1

Dettagli

ISTITUTO TECNICO INDUSTRIALE STATALE "G. MARCONI" Via Milano n. 51-56025 PONTEDERA (PI) DIPARTIMENTO: Discipline Informatiche

ISTITUTO TECNICO INDUSTRIALE STATALE G. MARCONI Via Milano n. 51-56025 PONTEDERA (PI) DIPARTIMENTO: Discipline Informatiche PROGRAMMAZIONE COORDINATA TEMPORALMENTE Monte ore annuo 66 Libro di Testo A.LORENZI M.GOVONI APPLICAZIONI SCIENTIFICHE per il Liceo Scientifico delle Scienze applicate - ATLAS SETTEMBRE Modulo 0 : COLLEGAMENTO

Dettagli

sito web sito Internet

sito web sito Internet Siti Web Cos è un sito web Un sito web o sito Internet è un insieme di pagine web correlate, ovvero una struttura ipertestuale di documenti che risiede, tramite hosting, su un web server e accessibile

Dettagli

Programma del Corso. Dati e DBMS SQL. Progettazione di una. Normalizzazione

Programma del Corso. Dati e DBMS SQL. Progettazione di una. Normalizzazione Programma del Corso Dati e DBMS DBMS relazionali SQL Progettazione di una base di dati Normalizzazione (I prova scritta) (II prova scritta) Interazione fra linguaggi di programmazione e basi di dati Cenni

Dettagli

Programmi. Algoritmi scritti in un linguaggio di programmazione

Programmi. Algoritmi scritti in un linguaggio di programmazione Programmi Algoritmi scritti in un linguaggio di programmazione Sistema operativo:programma supervisore che coordina tutte le operazioni del calcolatore Programmi applicativi esistenti Sistemi di videoscrittura

Dettagli

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi Indice generale OOA Analisi Orientata agli Oggetti Introduzione Analisi Metodi d' analisi Analisi funzionale Analisi del flusso dei dati Analisi delle informazioni Analisi Orientata agli Oggetti (OOA)

Dettagli

EXPLOit Content Management Data Base per documenti SGML/XML

EXPLOit Content Management Data Base per documenti SGML/XML EXPLOit Content Management Data Base per documenti SGML/XML Introduzione L applicazione EXPLOit gestisce i contenuti dei documenti strutturati in SGML o XML, utilizzando il prodotto Adobe FrameMaker per

Dettagli

Come costruire una presentazione. PowerPoint 1. ! PowerPoint permette la realizzazione di presentazioni video ipertestuali, animate e multimediali

Come costruire una presentazione. PowerPoint 1. ! PowerPoint permette la realizzazione di presentazioni video ipertestuali, animate e multimediali PowerPoint Come costruire una presentazione PowerPoint 1 Introduzione! PowerPoint è uno degli strumenti presenti nella suite Office di Microsoft! PowerPoint permette la realizzazione di presentazioni video

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

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

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

Istituto Universitario Navale Facoltà di Ingegneria Corso di Laurea in Ingegneria delle Telecomunicazioni

Istituto Universitario Navale Facoltà di Ingegneria Corso di Laurea in Ingegneria delle Telecomunicazioni Istituto Universitario Navale Facoltà di Ingegneria Corso di Laurea in Ingegneria delle Telecomunicazioni Fondamenti di Informatica Modulo 1 Programma dell'a.a. 2003/2004 Luigi Romano Dipartimento di Informatica

Dettagli

Il calcolatore oggi : UN SISTEMA DI ELABORAZIONE

Il calcolatore oggi : UN SISTEMA DI ELABORAZIONE Il calcolatore oggi : UN SISTEMA DI ELABORAZIONE hardware Firmware, software memorizzato su chip di silicio Sistema Operativo venduto con l, comprende vari programmi di gestione del sistema Applicativo,

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

LICEO DELLE SCIENZE APPLICATE

LICEO DELLE SCIENZE APPLICATE LICEO DELLE SCIENZE APPLICATE San Benedetto PIANO DI LAVORO Docente Stefano Maggi Disciplina INFORMATICA Libro di testo INFORMATICA 2 di Gallo Sirsi ed. Minerva Scuola Classe/Sezione Terza Anno scolastico

Dettagli

Indice. 1.13 Configurazione di PHP 26 1.14 Test dell ambiente di sviluppo 28

Indice. 1.13 Configurazione di PHP 26 1.14 Test dell ambiente di sviluppo 28 Indice 25 184 Introduzione XI Capitolo 1 Impostazione dell ambiente di sviluppo 2 1.1 Introduzione ai siti Web dinamici 2 1.2 Impostazione dell ambiente di sviluppo 4 1.3 Scaricamento di Apache 6 1.4 Installazione

Dettagli

Corso Online Analista Programmatore Microsoft

Corso Online Analista Programmatore Microsoft Corso Online Analista Programmatore Microsoft We Train Italy info@wetrainitaly.it Programma Generale del Corso Analista Programmatore Microsoft Tematiche di Base Modulo Uno Le basi della programmazione

Dettagli

TECNOLOGIE INFORMATICHE DELLA COMUNICAZIONE ORE SETTIMANALI 2 TIPO DI PROVA PER GIUDIZIO SOSPESO PROVA DI LABORATORIO

TECNOLOGIE INFORMATICHE DELLA COMUNICAZIONE ORE SETTIMANALI 2 TIPO DI PROVA PER GIUDIZIO SOSPESO PROVA DI LABORATORIO CLASSE DISCIPLINA MODULO Conoscenze Abilità e competenze Argomento 1 Concetti di base Argomento 2 Sistema di elaborazione Significato dei termini informazione, elaborazione, comunicazione, interfaccia,

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

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

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software di sistema e software applicativo I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software soft ware soffice componente è la parte logica

Dettagli

CORSO DI LAUREA IN SCIENZE ERBORISTICHE E DEI PRODOTTI NUTRACEUTICI

CORSO DI LAUREA IN SCIENZE ERBORISTICHE E DEI PRODOTTI NUTRACEUTICI CORSO DI LAUREA IN SCIENZE ERBORISTICHE E DEI PRODOTTI NUTRACEUTICI Informatica con esercitazioni Prof. Onofrio Greco Modulo 1 Concetti di base dell ICT Modulo 2 Uso del Computer e Gestione dei File Modulo

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

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico Introduzione alle basi di dati Introduzione alle basi di dati Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS Gestione delle

Dettagli

Siti web centrati sui dati (Data-centric web applications)

Siti web centrati sui dati (Data-centric web applications) Siti web centrati sui dati (Data-centric web applications) 1 A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 2 / 2 0 1 3 WEB La tecnologia del World Wide Web (WWW) costituisce attualmente

Dettagli

Gestione delle informazioni necessarie all attività di validazione degli studi di settore. Trasmissione degli esempi da valutare.

Gestione delle informazioni necessarie all attività di validazione degli studi di settore. Trasmissione degli esempi da valutare. Gestione delle informazioni necessarie all attività di validazione degli studi di settore. Trasmissione degli esempi da valutare. E stato previsto l utilizzo di uno specifico prodotto informatico (denominato

Dettagli

I file di dati. Unità didattica D1 1

I file di dati. Unità didattica D1 1 I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità

Dettagli

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

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

Progettazione : Design Pattern Creazionali

Progettazione : Design Pattern Creazionali Progettazione : Design Pattern Creazionali Alessandro Martinelli alessandro.martinelli@unipv.it 30 Novembre 2010 Progettazione : Design Pattern Creazionali Aspetti generali dei Design Pattern Creazionali

Dettagli

Codifica: dal diagramma a blocchi al linguaggio C++

Codifica: dal diagramma a blocchi al linguaggio C++ Codifica: dal diagramma a blocchi al linguaggio C++ E necessario chiarire inizialmente alcuni concetti. La compilazione Il dispositivo del computer addetto all esecuzione dei programmi è la CPU La CPU

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

Object Oriented Programming

Object Oriented Programming OOP Object Oriented Programming Programmazione orientata agli oggetti La programmazione orientata agli oggetti (Object Oriented Programming) è un paradigma di programmazione Permette di raggruppare in

Dettagli

Sistema operativo: Gestione della memoria

Sistema operativo: Gestione della memoria Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e

Dettagli

Introduzione ai tipi di dato astratti: applicazione alle liste

Introduzione ai tipi di dato astratti: applicazione alle liste Universitàdegli Studi di L Aquila Facoltàdi Scienze M.F.N. Corso di Laurea in Informatica Corso di Laboratorio di Algoritmi e Strutture Dati A.A. 2005/2006 Introduzione ai tipi di dato astratti: applicazione

Dettagli

Al termine del lavoro ad uno dei componenti del gruppo verrà affidato l incarico di relazionare a nome di tutto il gruppo.

Al termine del lavoro ad uno dei componenti del gruppo verrà affidato l incarico di relazionare a nome di tutto il gruppo. Pag. 1 di 5 6FRSR analizzare problemi complessi riguardanti la gestione di un sito interattivo proponendo soluzioni adeguate e facilmente utilizzabili da una utenza poco informatizzata. 2ELHWWLYL GD UDJJLXQJHUH

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

Settimana I...1. Giorno 1 - Introduzione all XSLT...3

Settimana I...1. Giorno 1 - Introduzione all XSLT...3 Settimana I...1 Giorno 1 - Introduzione all XSLT...3 Generalità su XSLT...3 Introduzione a XML e XSLT... 4 Cos è XSLT?... 5 Che cosa fa XSLT?... 6 Come si presenta XSLT?... 6 XSLT e la famiglia di XML...

Dettagli

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

Scopo della lezione. Informatica. Informatica - def. 1. Informatica Scopo della lezione Informatica per le lauree triennali LEZIONE 1 - Che cos è l informatica Introdurre i concetti base della materia Definire le differenze tra hardware e software Individuare le applicazioni

Dettagli

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP Accademia Futuro info@accademiafuturo.it Programma Generale del Corso Analista Programmatore Web PHP Tematiche Trattate

Dettagli

Mon Ami 3000 Varianti articolo Gestione di varianti articoli

Mon Ami 3000 Varianti articolo Gestione di varianti articoli Prerequisiti Mon Ami 3000 Varianti articolo Gestione di varianti articoli L opzione Varianti articolo è disponibile per le versioni Azienda Light e Azienda Pro e include tre funzionalità distinte: 1. Gestione

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

Architetture Applicative

Architetture Applicative Alessandro Martinelli alessandro.martinelli@unipv.it 6 Marzo 2012 Architetture Architetture Applicative Introduzione Alcuni esempi di Architetture Applicative Architetture con più Applicazioni Architetture

Dettagli

PROGRAMMAZIONE MODULARE DI INFORMATICA CLASSE QUINTA - INDIRIZZO MERCURIO SEZIONE TECNICO

PROGRAMMAZIONE MODULARE DI INFORMATICA CLASSE QUINTA - INDIRIZZO MERCURIO SEZIONE TECNICO PROGRAMMAZIONE MODULARE DI INFORMATICA CLASSE QUINTA - INDIRIZZO MERCURIO SEZIONE TECNICO Modulo 1: IL LINGUAGGIO HTML Formato degli oggetti utilizzati nel Web Elementi del linguaggio HTML: tag, e attributi

Dettagli

Istituto Centrale per il Catalogo Unico delle Biblioteche Italiane. e per le Informazioni bibliografiche. Manuali utente per SBN WEB. Versione 1.

Istituto Centrale per il Catalogo Unico delle Biblioteche Italiane. e per le Informazioni bibliografiche. Manuali utente per SBN WEB. Versione 1. Istituto Centrale per il Catalogo Unico delle Biblioteche Italiane e per le Informazioni bibliografiche Manuali utente per SBN WEB Versione 1.0 Produzione editoriale Vers. 1.0 27/09/2013 Pagina 1 Sommario

Dettagli

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, abbiamo bisogno di conoscere un metodo risolutivo, cioè un metodo che a partire dai dati di ingresso fornisce i risultati attesi.

Dettagli

4. Un ambiente di sviluppo per Java

4. Un ambiente di sviluppo per Java pag.15 4. Un ambiente di sviluppo per Java Esistono in commercio molti ambienti di sviluppo utilizzati dai programmatori Java, in particolare si tratta di editor complessi che mettono a disposizione tools

Dettagli

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA) Il software Software Il software Il software è la sequenza di istruzioni che permettono ai computer di svolgere i loro compiti ed è quindi necessario per il funzionamento del calcolatore. Il software può

Dettagli

Dispensa di database Access

Dispensa di database Access Dispensa di database Access Indice: Database come tabelle; fogli di lavoro e tabelle...2 Database con più tabelle; relazioni tra tabelle...2 Motore di database, complessità di un database; concetto di

Dettagli

Introduzione a Dev-C++

Introduzione a Dev-C++ Introduzione a Dev-C++ Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Note: Dev-C++ richiede Windows 95/98/NT/2000/XP

Dettagli

MODULO 5 Appunti ACCESS - Basi di dati

MODULO 5 Appunti ACCESS - Basi di dati MODULO 5 Appunti ACCESS - Basi di dati Lezione 1 www.mondopcnet.com Modulo 5 basi di dati Richiede che il candidato dimostri di possedere la conoscenza relativa ad alcuni concetti fondamentali sui database.

Dettagli

SOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software:

SOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software: 1 SOFTWARE È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software: SOFTWARE DI SISTEMA (o di base), che deve gestire le funzioni

Dettagli

Guida rapida all uso di Moodle per gli studenti

Guida rapida all uso di Moodle per gli studenti Guida rapida all uso di Moodle per gli studenti Introduzione La piattaforma utilizzata per le attività a distanza è Moodle, un software per la gestione di corsi on-line. Per chi accede come studente, essa

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 1 Sistema software 1 Prerequisiti Utilizzo elementare di un computer Significato elementare di programma e dati Sistema operativo 2 1 Introduzione In questa Unità studiamo

Dettagli