Programmazione in Java (I modulo) Lezione 3: Prime nozioni
La volta scorsa Abbiamo avuto un primo assaggio! Abbiamo visto come usare l editor per scrivere un programma Java. Abbiamo analizzato riga per riga due semplici programmi Java. Abbiamo provato a compilare e a correggere gli errori di un programma Java.
Compilare un Programma o una Classe Un programma Java consiste di una o più classi che devono essere compilate prima di eseguire il programma. Non occorre compilare le classi che sono fornite da Java (System,Scanner,.). Un package è una libreria di classi già definite import java.util.scanner;
Compilare ed Eseguire Ogni classe deve stare in un file distinto. Il nome del file deve essere lo stesso del nome della classe con suffisso.java Quando compilo un programma Java viene creato un file in linguaggio byte-code che ha lo stesso nome ma il suffisso viene cambiato da.java a.class.
Compilare ed Eseguire Un programma Java può essere composto da numerose classi. La classe da eseguire deve contenere da qualche parte nel file le parole public static void main(string[] args)
Nella lezione di oggi Ricominciamo tutto in modo più formale!
Terminologia Un programma è una sequenza di istruzioni che verranno eseguite dal computer. La persona che scrive il programma è il programmatore (programmer). La persona che interagisce (usa) il programma è l utente (user).
Terminologia Un programma viene scritto in un linguaggio detto linguaggio di programmazione. Il compilatore (interprete) lo traduce in linguaggio macchina, perchè possa essere eseguto dal computer. Perchè il programma possa essere compreso dal compilatore deve essere ben scritto e rispettare tutte le regole grammaticali del linguaggio di programmazioni. Tali regole sono chiamate la sintassi del linguaggio.
Programmare Programmare è un processo creativo Bisogna imparare delle tecniche standard e integrarle con le soluzioni dei problemi che vogliamo risolvere. Tali tecniche di programmazione sono poi applicabili a quasi tutti i linguaggi di programmazine (Java incluso).
Algoritmi L essenza di un programma consiste nell algoritmo utilizzato. Un algoritmo descrive il modo con cui un azione dovrà essere realizzata. Una volta che abbiamo definito bene l algoritmo, esprimerlo in Java (o in un altro linguaggio di programmazione) non è un compito difficile.
Algoritmi Un algoritmo è un insieme di istruzioni per risolvere un problema. Un algoritmo deve essere espresso in maniera completa e precise. Un algoritmo può essere espresso in un linguaggio naturale (italiano, inglese, ) o in pseudocodice.
Algoritmi Utilizziamo algoritmi nella vita quotidiana tutte le volte che:, seguiamo le istruzioni per il montaggio di una apparecchiatura, per impostare il ciclo di lavaggio di una lavastoviglie, per prelevare contante da uno sportello Bancomat, ecc..
Algoritmi Un algoritmo è una sequenza di passi che, se intrapresa da un esecutore, permette di ottenere i risultati attesi (output) a partire dai dati forniti (input). Una volta in grado di specificare un algoritmo per risolvere un problema, siamo anche in grado di automatizzare il procedimento descritto dall algoritmo.
Curiosità Il termine algoritmo deriva dal nome del matematico persiano Muhammadibn Musa al-khwarizmi (Corasmia 780 circa - 850 circa). Esercitò la professione nella città di Baghdad, dove insegnava, e introdusse nel mondo arabo i numeri indiani. La sua opera Il calcolo degli indiani venne successivamente tradotta in latino da un monaco europeo, con il titolo Liber algarismi - (Il libro di al- Khwarizmi).
Dall algoritmo al programma.. L algoritmo in psedocodice viene tradotto dal programmatore in un linguaggio di programmazione seguendo la sintassi del linguaggio. Il programma viene tradotto dal compilatore (interprete) in linguaggio macchina per essere eseguito. Il compilatore ci aiuta anche a correggere gli errori del programma
Errori Un errore in un programma è chiamato bug. Il processo di eliminazione errori è chiamato debugging. Tre tipi di errori Errori di sintassi Errori di esecuzione Errori logici
Errori di sintassi (sintax errors) Sono errori grammaticali le regole di scrittura sono molto strette Il compilatore rileva gli errori di sintassi e scrive un messaggio di errore Esempio: dimenticare un ; alla fine di una istruzione
(Errori di esecuzione) Runtime Errors Errori che vengono individuati mentre si esegue il programma (non durante la compilazione) Quando il computer trova un errore, il programma termina e viene stampato sullo schermo un messaggio di errore. Esempio: attempting to divide by 0
Errori Logici (Logic Errors) Errori che non vengono segnalati nè durante la compilazione nè durante l esecuzione ma che portano il programma a produrre risultati sbagliati. DIFFICILI da individuare! Occorre testare il programma con particolari dati in input
Riutilizzare il Software Programmi non sono di solito creati da zero In genere contengono delle parti che sono state create in altri contesti Si utilizzano delle classi generali già definite Java fornisce già molte classi Controllare la documentazione Java
Riutilizzare il Software
Variabili Variabili sono utilizzate per memorizzare dati come numeri e lettere. sono una specie di contenitore sono implementate come locazioni di memoria Il dato memorizzato in una variabile è chiamato il suo valore. il valore è conservato nella locazione di memoria. Il valore di una variabile può essere cambiato.
Dichiarazione di variabili Dichiarare una variabile significa sceglierne il nome e il tipo. int numerocestini,uovapercestino; Il tipo di una variabile determina quale genere di valore potrà contenere. (int, double, char, etc.). Una variabile deve essere dichiarata prima di essere utilizzata in una istruzione.
Sintassi ed esempi sintassi <tipo> <identif_1>,<identif_2>, ; esempi int num1, valore, contapassi; double media, tassointeresse; char risposta;
Identificatori Java Un identificatore è un nome (es. il nome di una variabile). Identificatori possono contenere soltanto: Lettere Cifre (0.9) il carattere underscore (_) Il primo simbolo non può essere una cifra. Identificatori possono essere lunghi a piacere Java è case sensitive, valore, Valore, e VALORE sono identificatori diversi.
Parole chiave o riservate Alcune parole che fanno parte proprio del linguaggio Java non possono essere usate come identificatori. Esempi: int, public, class,
Convenzioni sui nomi Tipi Class iniziano con lettera maiuscola (es. String). Tipi Primitivi iniziano con lettera minuscola (es. int). Variabili sia di tipo class che primitive iniziano con lettera minuscola (es. mionome, numero). Nomi formati da più parole contengono le maiuscole all inizio delle successive parole
Tipi di dati Un tipo classe è usato per una classe di oggetti ed ha sia dati che metodi "Java is fun" è un valore del tipo classe String Un tipo primitivo è usato per valori semplici tipo come numeri o singoli caratteri. int, double, char sono tipi primitivi.
Tipi Primitivi 4 tipi integer (byte, short, int, long) int è il più utilizzato 2 tipi floating-point (float,double) double è il più utilizzato 1 tipo carattere (char) 1 tipo booleano (boolean)
Esempi Tipi Integer 0-1 365 12000 Tipi Floating-point 0.99-22.8 3.14159 5.0 Tipi carattere 'a' 'A' '#' ' ' Tipi Booleani true false
Tipi Primitivi
Dichiarare le Variabili All inizio della sezione del programma public static void main(string[] args) { /* dichiara variabili qui */... } (Immediatamente prima del loro utilizzo)
Istruzioni di assegnamento Utilizzate per dare un valore ad una variabile risposta = 42; media = 55.3 / 7; scala = b ; Il simbolo di =" si chiama operatore di assegnamento.
Sintassi dell istruzione di assegnamento <variabile> = <espressione> dove espressione può essere un altra variabile, una costante (es. un numero) o qualche espressione aritmetica o logica. (che utilizza operatori aritmetici o logici) NOTA: espressione può contenere anche la stessa variabile Esempio: somma = somma + 4;
Istruzioni di assegnamento L espressione a destra dell operatore di assegnamento (=) è calcolata per prima. Il risultato è poi utilizzato per assegnare il valore alla variabile posta a sinistra del segno = Esempio: somma = somma + 4; dopo l istruzione il valore della variabile somma risulterà incrementato di 4 unità.
Inizializzare le Variabili Una variabile che è stata dichiarata ma a cui non è stato dato un valore si dice non inizializzata. In genere tutte le variabili hanno un qualche valore di default ( null per quelle di tipo class, 0 per quelle primitive numeriche) Meglio non fidarsi dei valori di default e inizializzarle!
Inizializzare le Variabili: sintassi tipo variabile_1 = espressione_1, variabile_2 = espressione_2, ;
Vediamo un esercizio della lezione scorsa: Ese02_4.java..e facciamo una piccola revisione...
Esercizio Ese03_1 Scrivere un programma che: Chiede all utente di inserire 5 numeri double corrispondenti al prezzo in euro di 5 oggetti da comprare. Restituisce in output il costo totale da pagare per l'acquisto. (Supponendo che l'utente paghi con una banconota da 20 Euro) Scrive in output anche il resto che il cassiere deve restituire NOTA1: Per acquisire in input valori double usare n = tastiera.nextdouble(); NOTA2: utilizzare SOLTANTO 2 variabili