Fondamenti di Informatica II a.a. 2020-2021 - Introduzione al linguaggio Java Prof. Luca Mainetti Università del Salento
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
Fondamenti di Informatica II a.a. 2020-2021 Introduzione al linguaggio Java Prof. Luca Mainetti Università del Salento
Obiettivi della lezione ! Richiamare (elencare) i concetti principali dei calcolatori e il significato della programmazione ! Scrivere, compilare ed eseguire il primo programma Java ! Riconoscere gli errori di compilazione e di esecuzione ! Richiamare la descrizione degli algoritmi in pseudocodice Introduzione al linguaggio Java 2 Luca Mainetti
Calcolatori e programmi ! Hardware ! Software ! Dispositivo ! Cloud ! Servizio ! Programmazione = Progettazione + Sviluppo + Verifica + Evoluzione ! Operazione = Rilascio + Esercizio ! In questo corso ci focalizziamo soprattutto sulla conoscenza del linguaggio Java per lo sviluppo di programmi Introduzione al linguaggio Java 3 Luca Mainetti
Linguaggio di programmazione Java ! Linguaggio di programmazione di alto livello ! Fa uso di astrazioni ! Servono strumenti di sviluppo per tradurre il codice di alto livello in codice macchina (sequenza di istruzioni eseguibili dalla CPU) ! 1991 James Gosling e Patrick Naughton dipendenti di Sum Microsystems progettano il linguaggio Green pensato per set-top-box di differenti marche: sicuro, portabile ! Non ebbe successo ! 1995 al SunWorld presentano un browser scritto in Java in grado di eseguire applet Introduzione al linguaggio Java 8 Luca Mainetti
Versioni di Java Versione Anno Principali novità 1.0 1996 1.1 1997 Classi interne 1.2 1998 Swing, Collections 1.3 2000 Miglioramento delle prestazioni 1.4 2002 Asserzioni, XML 5 2004 Classi generiche, ciclo for generico, auto- incapsulamento, enumerazioni, annotazioni 6 2006 Miglioramento della libreria 7 2011 Piccole modifiche al linguaggio e miglioramento della libreria 8 2014 Espressioni lambda, flussi, nuovi oggetti per il tempo e le date 9 2017 Moduli 10,11 2018 Ogni sei mesi una nuova versione con alcune modifiche Introduzione al linguaggio Java 9 Luca Mainetti
Ambiente di programmazione Java e primo programma ! Mettere in esecuzione IntelliJ IDEA ! Scrivere un primo semplice programma: attenzione, Java come molti altri linguaggi di programmazione è case sensitive ! Eseguire il programma e riconoscere la sequenza di operazione che l’ambiente di sviluppo esegue ! Organizzare il lavoro in cartelle Introduzione al linguaggio Java 10 Luca Mainetti
La sequenza di operazioni eseguite dall’ambiente di sviluppo Introduzione al linguaggio Java 11 Luca Mainetti
Analisi del primo programma Java ! In Java ciascun file sorgente può contenere al massimo una classe pubblica ! Le stringhe di testo sono racchiuse tra doppie virgolette (perché?) Introduzione al linguaggio Java 12 Luca Mainetti
Alcune prove: numeri, stringhe, print ! Facciamo alcune prove per familiarizzare con println e con print ! Proviamo a stampare valori numerici ! Proviamo a eliminare le doppie virgolette ! Priviamo a mettere in sequenza enunciati che contengono println oppure print ! Verifichiamo sempre i risultati nella console del nostro ambiente di sviluppo ! Ricordiamoci che ogni enunciato deve terminare con un punto e virgola. Non tutte le righe del programma, solo gli enunciati Introduzione al linguaggio Java 13 Luca Mainetti
Altre prove: errori sintattici, errori run-time ! Facciamo altre prove per familiarizzare con gli errori che possiamo commettere durante la scrittura del programma ! Errori sintattici: errori derivanti dal fatto che non abbiamo seguito le regole lessicali oppure le regole di composizione delle «frasi» Java ! Gli errori sintattici sono evidenziati dal compilatore, ma prima ancora gli ambienti di sviluppo ci aiutano avvisandoci in vario modo ! Errori in esecuzione: errori logici (dovuti alla «business logic») oppure eccezioni Introduzione al linguaggio Java 14 Luca Mainetti
Progettare algoritmi ! Java ci serve per implementare applicazioni oppure servizi che sono in grado di eseguire algoritmi ! Qual è la differenza tra applicazione e servizio? ! Un algoritmo è una sequenza di passi – Non ambigua – Eseguibile – Che termini in un tempo finito ! Si distingue tra dominio del problema e dominio della soluzione ! Nel dominio della soluzione si distingue tra specifica e implementazione Introduzione al linguaggio Java 15 Luca Mainetti
Esempio di algoritmo finanziario ! Vogliamo progettare un algoritmo che risponda alla seguente domanda Vengono depositato 10.000 dollari in un conto bancario che fornisce il 5 per cento di interesse annuo. Quanti anni occorrono perché il saldo del conto arrivi al doppio dell’importo inziale? ! Diciamo che questa è la descrizione funzionale del compito nello spazio del problema ! In altri termini è una descrizione in linguaggio naturale dei requisiti, che utilizza il linguaggio del dominio finanziario ! Come procediamo per spostarci dallo spazio del problema allo spazio della soluzione? Introduzione al linguaggio Java 16 Luca Mainetti
Analisi ! Ragioniamo sui dati che abbiamo nei requisiti E’ una ! Iniziamo con un saldo rappresentazione di 10.000 all’anno 0 intermedia ancora non descritta in un linguaggio ! Ripetiamo i passi comprensibile dal finché il saldo è minore calcolatore di 20.000 Introduzione al linguaggio Java 17 Luca Mainetti
Pseudocodice ! Lo pseudocodice è una descrizione informale 1. Iniziare con anno = 0 e saldo = 10.000 di una sequenza di 2. Ripetere i passi seguenti passi che risolvono il finché il saldo è < 20.000 problema 2.1 Aggiungere 1 all’anno 2.2 Calcolare l’interesse ! E’ già parte dello come saldo * 0.05 spazio della soluzione 2.3 Aggiungere l’interesse al saldo ! Utilizza il linguaggio 3. Riportare il valore finale dello spazio del dell’anno come risposta problema Introduzione al linguaggio Java 18 Luca Mainetti
Procedimento di sviluppo ! Sul testo troviamo uno schema di procedimento come quello riportato in figura ! Per ora prendiamolo per buono ! Nel corso di Principi di Ingegneria del Software avremo la possibilità di fare passi avanti e ingegnerizzare ciò che è noto come «processo di sviluppo del software» Introduzione al linguaggio Java 19 Luca Mainetti
Puoi anche leggere