Primi programmi in Java

Slides:



Advertisements
Presentazioni simili
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: Marzo 2013 Marco D. Santambrogio – Gianluca Durelli -
Advertisements

Introduzione al linguaggio C
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità A2 Java: le basi del linguaggio.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità A2 Java: le basi del linguaggio.
Dipartimento di Matematica
Programmazione Ingegneria TLC
Classi ed Oggetti in Java (Cenni). Richiami Ruolo delle Classi in Java Oggetti.
1 Informatica Generale Susanna Pelagatti Ricevimento: Mercoledì ore presso Dipartimento di Informatica, Via Buonarroti,
Programmazione Procedurale in Linguaggio C++
Argomenti dalla linea dei comandi Gli argomenti possono essere passati a qualsiasi funzione di un programma, compresa la main(), direttamente dalla linea.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
Process synchronization
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
1 Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008) Introduzione a Java: primo programma, installazione dellambiente di sviluppo, compilazione.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
1 Corso di Informatica (Programmazione) Lezione 12 (19 novembre 2008) Programmazione in Java: i metodi statici.
Corso di Informatica (Programmazione)
1 Corso di Informatica (Programmazione) Lezione 13 (21 novembre 2008) Programmazione in Java: stringhe e array.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) JAVA: funzione di output a video Anno Accademico 2009/2010.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) JAVA: i commenti Anno Accademico 2009/2010.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Le stringhe di caratteri in Java Anno Accademico 2009/2010.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Introduzione al linguaggio Java
Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 3 1 JAVA e Internet: il World Wide Web Internet: milioni di computer collegati fra di loro attraverso.
Uso di Linux.
Selezione (=scelta) con “if-else”
CAPITOLO 1 JAVA: UN TUFFO NEL LINGUAGGIO E NELL'AMBIENTE.
Organizzazione del corso
Primi Elementi di Programmazione in C++
Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio.
Dichiarazioni e tipi predefiniti nel linguaggio C
Espressioni condizionali
Argomenti della lezione
IL CONCETTO DI PACKAGE Una applicazione è spesso composta di molte classi (eventualmente correlate) Un package è un gruppo di classi che costi- tuiscono.
Programmazione in Java
Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli Programmare in Matlab Funzioni di Libreria Funzioni definite.
Java Contardi Carlo A.S. 2008/09.
Java come linguaggio di programmazione
BIOINFO3 - Lezione 201 Come in ogni corso di introduzione ad un linguaggio di programmazione, proviamo a scrivere lormai celebre primo programma di prova.
BIOINFO3 - Lezione 331 SUBROUTINE IN PERL Una subroutine (funzione, metodo, procedura o sottoprogramma), e` una prozione di codice all`interno di un programma.
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
1Piero Scotto - C14. Finalità del corso Programma Materiale Requisiti Spendibilità 2Piero Scotto - C14.
Sviluppare un programma in C che, dato un array da 100 elementi interi caricato con numeri casuali compresi tra [10,100], sia in grado di cercare il valore.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA FINALE DEL 21 MAGGIO 2007 NOME: COGNOME: ________________________________________________________________________________.
Corso JAVA Lezione n° 12 Istituto Statale di Istruzione Superiore “F. Enriques”
Conversione da base 10 a base X (Utilizzo della pila)
1 Applet ed HTML Fondamenti di Informatica Corso D.
Appunti di Java (J2SDK 1.4.2, JDK 1.6.0) prof. Antonella Schiavon settembre 2009.
Gena - Applicata - 05/061 Java: javac e java Per compilare una classe: > javac NomeClasse.java  NomeClasse.class javac = invocazione.
Costruzione di una semplice Agenda telefonica Elettronica Esercizio sull'uso delle principali system call Unix.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: Marzo 2014 Marco D. Santambrogio – Gianluca Durelli -
JAVA Per iniziare. Verificare installazione javac –version java –version Cercare i files e sistemare eventualmente il path.
Una "vera" classe.. ..un esempio pratico: la calcolatrice
Programmazione ad oggetti
Fondamenti di informatica Oggetti e Java Luca Cabibbo Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies.
Dal problema all’ algoritmo
1 Corso di Informatica (Programmazione) Lezione 8 (7 novembre 2008) Programmazione in Java: operatori aritmetici, operatori di assegnamento e cast.
Variabili Numeriche –Interi (byte, short, int, long): complemento a 2 –A virgola mobile (float, double): IEEE 745 Alfanumeriche –Carattere (char): Unicode.
Strutture di controllo Esercizi!. Utilizzare i metodi: I modi per poter richiamare un metodo, di una classe (ad esempio SavitchIn) sono due. 1) E’ sempre.
1 Eccezioni in Java. 2 Ricordiamo che 4 una procedura può terminare –normalmente, ritornando un risultato –in modo eccezionale ci possono essere diverse.
© Copyright NTT DATA Italia – All Rights Reserved The information contained in this document is the property of NTT DATA Italia S.p.A. and the addressee.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2: 27 Marzo 2014 Marco D. Santambrogio – Gianluca Durelli –
Fondamenti di informatica T-A Esercitazione 2 : Linguaggio Java, basi e controllo del flusso AA 2012/2013 Tutor : Domenico Di Carlo.
1 Java primo contatto Quando le classi fanno la differenza …
Programmazione dei Calcolatori Elettronici
13/08/02Input 1 Interagire con il computer Da tastiera Da riga di comando Funzioni di conversione.
Programmazione orientata agli Oggetti Introduzione a Java.
Input in Java. Uso Scanner Un oggetto per la lettura dalla tastiera Piuttosto, per rappresentare la tastiera del nostro calcolatore useremo un oggetto.
Transcript della presentazione:

Primi programmi in Java Lezione II

Il processo di sviluppo Passo 1: scrivere il programma Software: un qualsiasi text editor Passo 2: compilare il programma Software (Compilatore): Java Development Kit (JDK) Comando: javac HelloWorld.java -> crea il file HelloWorld.class contenente il bytecode della classe Passo 3: eseguire il programma Software (Esecutore): JDK o Java Runtime environment Comando: java HelloWorld -> esegue il bytecode della classe HelloWorld sulla JVM

Un package importante ATTENZIONE! Non useremo MAI le classi Per gestire l’input da tastiera e l’output a video utilizzeremo rispettivamente le classi (fornite nelle Librerie JAVA!!): Scanner (per l’input) System.out (per l’output) ATTENZIONE! Non useremo MAI le classi ConsoleInputManager e ConsoleOutputManager fanno parte del package prog.io usato SOLO nel corso di teoria per semplificare la spiegazione.

Attenzione! RIPETIAMO: I contenuti del package prog.io non fanno parte della distribuzione di Java. Per potervi accedere è necessario: copiare i contenuti del package sul proprio computer (dal CD venduto assieme al libro) in una zona opportuna; modificare alcuni settaggi del sistema (tipicamente la variabile di ambiente CLASSPATH).

HelloWorld /* Impariamo a usare le classi di Output */ class HelloWorld{ public static void main(String args[]) { System.out.println(‘‘Hello, world!’’); }

>>javac HelloWorld.java Salviamo, Compiliamo… Passo 1: SALVIAMO il tutto in un file dal nome HelloWorld.java In generale una classe dal nome NomeClasse (convenzione: lettera iniziale della classe maiuscola!) dovrà essere salvata in un file a se stante con lo stesso nome della classe e estensione “.java”, ovvero un file dal nome: NomeClasse.java Passo 2: COMPILIAMO… (con comando da tastiera al prompt) >>javac HelloWorld.java Il comando da tastiera ha sintassi: javac + PathClasse.java javac è il comando mentre PathClasse.java è il path (assoluto o relativo alla “posizione” da cui lanciate il comando) contenente il codice della classe

>>javac HelloWorld.java Esempi di comandi di compilazione: Se sono nella stessa directory: >>javac HelloWorld.java Se lancio il comando da una directory padre, la cui directory figlia (“SecondaLezione”) contiene il file HelloWorld.java >>javac SecondaLezione\HelloWorld.java Se voglio usare il path assoluto (indipendentemente da dove io mi trovi ) >>javac c:\...\SecondaLezione\HelloWorld.java Se tutto va bene avremo nella stessa directory un file che contiene il bytecode della classe; tale file viene creato dal compilatore se non trova errori in compilazione. E’ un file con lo stesso nome della classe e estensione “.class”, ovvero un file dal nome: NomeClasse.java

>>java HelloWorld Eseguiamo! Passo 3: ESEGUIAMO la classe HelloWorld (con comando da tastiera al prompt) >>java HelloWorld Il comando da tastiera ha sintassi: java + PathClasse java è il comando mentre PathClasse è il path (assoluto o relativo alla “posizione” da cui lanciate il comando) contenente il codice della classe Otterremo il seguente output: >>java HelloWorld (comando d’esecuzione) Hello, world! (output della classe) >> (prompt/shell in attesa di nuovi comandi...)

HelloWorldEsteso.java /* Impariamo a usare le classi di I/O */ import java.util.Scanner; class HelloWorldEsteso{ } public static void main(String args[]){ Scanner in = new Scanner(System.in); System.out.println(‘‘Which day is today?’’); String tod=in.nextLine(); System.out.println(‘‘Hello, world!’’); System.out.print(‘‘Today is...’’); System.out.println(tod);

Salviamo, Compiliamo ed Eseguiamo! Ora Salviamo il tutto in un file dal nome HelloWorldEsteso.java COMPILIAMO… (con comando da tastiera al prompt) >>javac HelloWorldEsteso.java ESEGUIAMO… (con comando da tastiera al prompt) >>java HelloWorldEsteso Otterremo il seguente output: >>java HelloWorldEsteso (eseguiamo..) Which day is today? (output del programma) Monday (input dell’utente) Today is...Monday (output del programma) >> (prompt in attesa di nuovi comandi)

AreaRettangolo.java /* AreaRettangolo calcola l’area di un rettangolo */ public class AreaRettangolo { public static void main(String args[]) { int base=3; int altezza=4; System.out.print("L’area e’ "); System.out.println(base*altezza); }

Salviamo, Compiliamo ed Eseguiamo! >>javac AreaRettangolo.java >>java AreaRettangolo L’area e’ 12 >> Interattività Un programma come AreaRettangolo sarebbe più utile se, invece di assegnare valori fissati a base e altezza, permettesse all’utente di specificarli a ogni esecuzione. Per fare questo è necessario introdurre dei comandi che permettano di ricevere questo input dalla tastiera.

AreaRettangoloInterattivo.java import java.util.Scanner; //NON DIMENTICARLO!! public class AreaRettangoloInterattivo { public static void main(String args[]) { Scanner sc = new Scanner(System.in); int base=sc.nextInt(); int altezza=sc.nextInt(); System.out.print("L’area e’ "); System.out.println(base*altezza); }

Eseguiamolo! >>javac AreaRettangoloInterattivo.java >> java AreaRettangoloInterattivo 5 6 L'area e' 30 >>

Abbellimenti In questo caso l’esecuzione del programma parte senza dare alcuna indicazione del fatto che il programma attende un’azione dell’utente (l’immissione di base e altezza) E’ opportuno segnalare questo fatto all’utente tramite degli output esplicativi Provate VOI a implementare il programma SENZA guardare la soluzione alla slide seguente.

AreaRettangoloAbbellito.java import java.util.Scanner; public class AreaRettangoloAbbellito { public static void main(String args[]) { Scanner tastiera = new Scanner(System.in); System.out.println("Inserisci la base"); int base=tastiera.nextInt(); System.out.println("Inserisci l’altezza"); int altezza=tastiera.readInt();//UPSI! errorino… System.out.print("L’area e’ "); System.out.println(base*altezza); }

Eseguiamolo! >>javac AreaRettangoloAbbellito.java >>java AreaRettangoloAbbellito Inserisci la base 4 Inserisci l'altezza 7 L'area e' 28 >>

fahrenheit =celsius * 9/5 + 32 Celsius vs. Fahrenheit Fahrenheit Celsius -40 40 80 120 -20 20 fahrenheit =celsius * 9/5 + 32 Provate a implementare un programma che converte dalla scala celsius alla scala fahrenheit.

ConvertiTemperature.java (notate l’indentazione!!!!) import java.util.Scanner(); public class ConvertiTemperature { public static void main(String args[]) { } Scanner in = new Scanner(); int celsius,fahrenheit; // Stesso tipo! Le dichiaro insieme! System.out.print(“Inserisci”); /*Giochiamo con l’output */ System.out.print(“ la ”); System.out.print(“ temperatura in grad”); System.out.println(“i centigradi”); celsius = in.nextInt(); //lettura input utente fahrenheit = celsius *9/5 +32; /*conversione del valore inserito in fahrenheit*/ System.out.print(“La corrispondente temperatura in scala fahrenheit e’ di ”); System.out.print(fahrenheit); System.out.println(“ gradi.”); /*Calcolatelo su calcolatrice e poi eseguite…la conversione e’ esatta?? Perche’*/ ConvertiTemperature.java (notate l’indentazione!!!!)

Eseguiamolo! >> javac ConvertiTemperature.java >>java ConvertiTemperature Inserisci la temperatura in gradi centigradi La corrispondente temperatura in scala farenheit e' di 32 gradi. >> java ConvertiTemperature 37 La corrispondente temperatura in scala farenheit e' di 98 gradi. >>

Esercizio 0-CONSIGLIO: FATELO! Realizzare un programma SwappInt che chieda l’iserimento di due valori interi, li salvi in due variabili x e y e: Stampi il valore assegnato a x e y Scambi i valori, ovvero inserisca in x il valore di y e viceversa Stampi il nuovo valore di x e y L’output dovra’ essere del tipo: >>java SwappInt Inserisci il valore di x (output programma) 7 (input utente) Inserisci il valore di y (output programma) 3 (input utente) Valori inseriti: x=7 e y=3 (output programma) Swap dei valori di x e y… (output programma) Valori dopo lo swap: x=3 e y=7 (output programma)

Esercizio 1 Numeri reali Realizzare un programma AltezzaRettangoloInterattivo che legga l'area e la base di un rettangolo, e ne calcoli e stampi l'altezza. Verificare come si comporta il programma quando l'area inserita non è un multiplo esatto della base; quando viene immesso 0 come valore per la base. Numeri reali Scrivete un programma che richiede all’utente di immettere il raggio di un cerchio, e calcola e stampa la sua area Per risolvere questo problema è necessario avere capito come trattare i numeri con la virgola. Se vi trovate in difficoltà, chiedete aiuto ai docenti!

Esercizio 2a Esercizio 2b Scrivere un programma ConvertiDaFahrenheitACelsius che realizzi la conversione dalla scala Fahrenheit alla scala celsius Scrivere un programma ConvertiDaKilometriAMiglia che realizzi la conversione tra kilometri e miglia, tenuto conto del fatto che un miglio equivale a 1.61 kilometri. Esercizio 2b

Esercizio 3 |-----------| | unNome | | unCognome | Scrivere un programma CentraNomi che stampi a video il vostro nome e cognome centrandoli in un rettangolo di dimensioni opportune, costruito utilizzando i simboli - e |. Ad esempio |-----------| | unNome | | unCognome | Attenzione! Questo programma non deve accettare alcun input da tastiera: i vostri nomi devono essere scritti direttamente nel sorgente JAVA.

Esercizio 4 Scrivere un programma che: chieda l’inserimento delle età dei vostri genitori (utilizzerà le classi Scanner e System.out per i comandi di I\O). calcoli e stampi la somma e la media delle età. calcoli e stampi la somma (e la media) delle età che i genitori avevano n anni fa (dove il valore della variabile n è chiesto all’utente).