I.T.I.S. “B. FOCACCIA” Via Monticelli – 84131 Salerno PROGRAMMA DI INFORMATICA Anno scolastico 2013/2014 PROF.ssa: Russo Paola PROF. Landi Antonino CLASSE IV E RIPASSO E APPROFONDIMENTI SULLA PROGRAMMAZIONE IMPERATIVA Strutture di controllo Vettori, matrici, tabelle Ricorsione: definizione ed esempi (potenza e somma) Algoritmi ricorsivi: MCD, Fibonacci File sequenziali: scrittura e visualizzazione ALLOCAZIONE DINAMICA DELLA MEMORIA STRUTTURE DINAMICHE (IN C) I puntatori La pila e la coda Gestione di pile e code con i puntatori PROGRAMMAZIONE E PROGETTAZIONE ORIENTATA AGLI OGGETTI Analisi a oggetti: individuare le classi, gli attributi e i metodi Un confronto con la programmazione imperativa: dal record alla classe, dalla funzione al metodo Oggetti: caratteristiche, stato e comportamenti; OOP e OOD Tipi di dato astratto: ADT e attributi e metodi Incapsulamento e principio di information hiding: attributi e metodi pubblici e privati Classi di oggetti: classi e istanze, attributi e metodi (modificatori e query) Definire una classe: variabili istanza e metodi Creare gli oggetti: i metodi costruttori, segnatura, esempi Comunicazione e interazione tra oggetti: messaggi, esecuzione di un metodo, accesso agli attributi, esempi (classi motocicletta, automobile) Il metodo main() Variabili istanza e variabili locali UML: rappresentazioni grafiche di classi e istanze, esempi Ereditarietà: superclasse e sottoclasse, ereditarietà singola e multipla, esempi Polimorfismo Metodi astratti e classi astratte: definizione ed esempi Associazioni tra classi Garbage collector e heap EREDITARIETA' Definizione Gerarchie di classi: superclasse e sottoclasse Ereditarietà per estensione e per ridefinizione (overriding) Tipi di ereditarietà: singola e multipla Livello di visibilità protected Attributi, metodi e classi astratte Richiamare i metodi delle superclassi: chiamata di un metodo della superclasse, chiamata dei metodi costruttori della superclasse POLIMORFISMO Polimorfismo per metodi mediante overriding Polimorfismo per metodi mediante overloading IL LINGUAGGIO JAVA Caratteristiche, portabilità, JVM Struttura di un programma Java: esempi (classe Punto e classe Persona) Espressioni, operandi, operatori Package Tipi di dati primitivi e classi wrapper Gestione dell’input/output: System.out(), readLine(), con finestre di dialogo (classe JOptionPane) Le eccezioni: costrutto try ... catch L'input di dati numerici (metodi parse...()) La clausola throws Strutture di controllo Classi, attributi e metodi Metodi toString() ed equals() Creazione di oggetti e metodi costruttori: il metodo new() Interazione tra oggetti: invocazione di un metodo, passaggio di parametri ai metodi, accesso agli attributi, metodi di tipo get() e set() Visibilità di attributi e metodi Separare la classe dal programma main() Più classi nello stesso file o in file separati Variabili locali e variabili istanza Passaggio di oggetti come parametri e valori di ritorno L'oggetto corrente this Variabili e metodi di classe (static) Ereditarietà: extends, chiamata del costruttore e del metodo di una superclasse (super) Metodi e classi astratte (abstract) L'operatore instanceof STRUTTURE DATI Array e array di oggetti Array come parametri e valori di ritorno dei metodi di una classe Implementazione di una lista: operazioni (visualizzazione, inserimento, eliminazione, ricerca, ordinamento) Lista multipla: definizione Implementazione di una pila: operazioni (visualizzazione, inserimento, eliminazione, ricerca, ordinamento) Implementazione di una coda: operazioni (visualizzazione, inserimento, eliminazione, ricerca, ordinamento) Alberi: definizione, algoritmi di visita in ordine anticipato e differito (definizioni ed esempi) Albero binario: definizione. visita in ordine simmetrico (definizione ed esempi Albero binario di ricerca: definizione JAVA E LA GRAFICA Librerie AWT e SWING Contenitori: finestra, pannello Componenti: etichette, caselle di testo, pulsanti Disposizione dei componenti grafici (flowlayout, borderlayout, gridlayout) La gestione degli eventi: eventi, ascoltatori, metodi di registrazione LA COMPLESSITA' DEGLI ALGORITMI Spazio di memoria e tempo di esecuzione Costo di un algoritmo: regole di valutazione (istruzioni semplici, costrutti di selezione, ciclici e iterativi) Esempi Complessità computazionale: definizione IL LINGUAGGIO JAVASCRIPT Caratteristiche Script interni ed esterni Variabili e operatori Funzioni Istruzioni di I/O: prompt(),alert(), confirm(), document.write(), LABORATORIO PROGRAMMAZIONE C Sviluppo programmi con struttura sequenziale, alternativa, iterativa Sviluppo programmi con uso di vettori, matrici e tabelle Sviluppo di applicativi completi in C con menu di scelta, funzioni, strutture dati Sviluppo semplici problemi di utilizzo dei puntatori con C (code, stack) PROGRAMMAZIONE JAVA E JAVASCRIPT L’ambiente di sviluppo NetBeans Sviluppo di semplici programmi Java con classi Sviluppo di programmi Java con gestione della lista, pila, coda Sviluppo di semplici programmi Java con grafica Sviluppo di semplici programmi JavaScipt TESTI: F. Formichi - G. Meini - I. Venuti Appunti docente GLI ALUNNI Corso di informatica per Informatica Volume 2 I DOCENTI PAOLA RUSSO Zanichelli ANTONINO LANDI