Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
Programmazione Ingegneria TLC
Esercitazione 2 10/03/2009
2
Input/Output su finestra
import javax.swing.JOptionPane; public class FinestraOutput { public static void main(String[] args) { String nome = JOptionPane.showInputDialog("Come ti chiami?"); nome = nome.toUpperCase(); String stringaVisualizzata = "Ciao " + nome + ", come stai?"; JOptionPane.showMessageDialog(null,stringaVisualizzata); System.exit(0); } }
3
Esercizio 1 Scrivere un programma Java che legga in input da tastiera una stringa e restituisca in output su video la stringa ottenuta concatenando la stringa ottenuta dalla stringa inserita trasformando tutti i caratteri della stringa in maiuscolo e la stringa ottenuta dalla stringa inserita trasformando tutti i caratteri in minuscolo. Ad esempio, se viene inserita da tastiera la stringa "Ciao", il risultato dovrà essere "CIAOciao". Effettuare l'input da tastiera usando la finestra di dialogo della classe JOptionPane e e l'output usando il metodo println
4
Esercizio 1 - Soluzione import javax.swing.JOptionPane; public class Ese1 { public static void main(String[] args) { String leggi = JOptionPane.showInputDialog ("inserisci una stringa:"); String maiuscola = leggi.toUpperCase(); String minuscola = leggi.toLowerCase(); System.out.println("La stringa soluzione e' " + maiuscola + minuscola ); System.exit(0); } }
5
Esercizio 1 – Soluzione (con meno variabili…)
import javax.swing.JOptionPane; public class Ese1 { public static void main(String[] args) { String leggi = JOptionPane.showInputDialog ("inserisci una stringa:"); System.out.println("La stringa soluzione e' " + leggi.toUpperCase() + leggi.toLowerCase()); System.exit(0); } }
6
Input/Output da tastiera – La classe Scanner
import java.util.Scanner; public class ClassScanner{ public static void main(String[] args) { System.out.print("Inserisci un numero: "); Scanner s = new Scanner(System.in); int num = s.nextInt(); s = new Scanner(System.in); System.out.print("Inserisci una stringa: "); String str = s.nextLine(); s.close(); System.out.println("Hai inserito il numero " + num + " e la stringa '" + str + "'"); } }
7
Esercizio 2 Scrivere un programma Java che legga in input un numero intero e restituisca il quadrato di tale numero.
8
Esercizio 2 – Soluzione import java.util.Scanner; public class Ese2{ public static void main(String[] args) { System.out.print("Inserisci un numero: "); Scanner s = new Scanner(System.in); int num = s.nextInt(); s.close(); System.out.println("la radice quadrata e' " + num*num); } }
9
Istruzioni condizionali
if (condizione) { istruzione1; istruzione2; istruzione3; ... } [else { istruzioneA; istruzioneB; }]
10
Condizioni = assegnazione == uguaglianza != differenza > maggiore
< minore && (AND logico) || (OR logico) E' possibile concatenare tra loro diversi Operatori per avere significati differenti: >= maggiore e uguale <= minore e uguale += assegna e aggiunge un valore -= assegna e sottrae un valore
11
Esempio istruzione if public class Negativo {
public static void main(String[] args) { int a=-4; if( a<0 ) { System.out.println("Attenzione! Il valore di a e' negativo!"); } } }
12
Esercizio 3 Si vuole fare il calcolo dell'inverso di una variabile reale a. L'inverso 1/a è definito solo se a è diverso da zero. Per questa ragione, si vuole che il programma stampi un messaggio di errore se a è pari a zero, e calcoli l'inverso se la variabile è diversa da zero.
13
Esercizio 3 - Soluzione import javax.swing.JOptionPane; public class Inverso { public static void main(String[] args) { double a = Double.parseDouble( JOptionPane.showInputDialog("Inserire il numero: ")); if( a==0 ) { System.out.println("La variabile vale zero."); else { System.out.println("L'inverso vale " + 1/a); } System.exit(0); } }
14
Esercizio 3 – Soluzione 2 import java.util.Scanner; public class Inverso { public static void main(String[] args) { System.out.print("Inserisci un numero: "); Scanner s = new Scanner(System.in); Double a = s.nextDouble(); s.close(); if( a==0 ) System.out.println("La variabile vale zero."); else System.out.println("L'inverso vale " + 1/a); } }
15
Esercizio 4 Scrivere una classe che simuli il lancio simultaneo di tre dadi con sei facce. Se il punteggio complessivo ottenuto è superiore a 12 il “giocatore” vince, altrimenti perde. Stampare a video una stringa che identifichi la vittoria o la sconfitta del giocatore. Si supponga di avere a disposizione la seguente classe dado public class dado { public static int lancia() { return (int)(Math.random()*6)+1; } }
16
Esercizio 4 – Soluzione (dado.java)
public class dado { public static int lancia() { return (int)(Math.random()*6)+1; } }
17
Esercizio 4 – Soluzione (LancioDadi.java)
import javax.swing.JOptionPane; public class LancioDadi { public static void main(String[] args) { gioco(); System.exit(0); } public static void gioco() { // Il metodo restituisce 1 se vince il giocatore, 0 se vince il computer int primoNumero=dado.lancia(); System.out.println("Primo Numero: " + primoNumero); int secondoNumero=dado.lancia(); System.out.println("Secondo Numero: " + secondoNumero);
18
Esercizio 4 - Soluzione int terzoNumero=dado.lancia(); System.out.println("Terzo Numero: " + terzoNumero); int totale=primoNumero+secondoNumero+terzoNumero; System.out.println("Totale: " + totale); String esito; if (totale<=12) esito="perso!!!"; else esito="vinto!!!"; JOptionPane.showMessageDialog(null, "Il giocatore ha " + esito); } }
19
Istruzioni condizionali annidate
if (condizione) { istruzione1; istruzione2; istruzione3; ... } else if { istruzioneA; istruzioneB; else istruzioneAA; istruzioneBB;
20
Esercizio 5 Si scriva una classe per risolvere equazioni di secondo grado con il calcolo del discriminante, utilizzando istruzioni condizionali Suggerimento: si considerino 3 casi: soluzioni reali e distinte, soluzioni reali e coincidenti, soluzioni complesse, in base al valore del discriminante (>0, =0, <0)
21
Esercizio 5 - Soluzione public class SecondoGrado { public static void main (String args[]) { double a=2, b=5, c=3; double d; double s1, s2; d=b*b-4*a*c; if( d==0 ) { s1=(-b - Math.sqrt( d ))/(2*a); s2=s1; System.out.println("Soluzioni coincidenti: " + s1); } else if( d>0 ) { s1=(-b - Math.sqrt( d ))/(2*a); s2=(-b + Math.sqrt( d ))/(2*a); System.out.println("Soluzioni reali: " + s1 + " " + s2); } else { System.out.println("Soluzioni complesse"); } } }
22
Esercizio 5 - Soluzione public class SecondoGrado { public static void main (String args[]) { double a=2, b=5, c=3; double d; double s1, s2; d=b*b-4*a*c; if( d==0 ) { s1=(-b - Math.sqrt( d ))/(2*a); s2=s1; System.out.println("Soluzioni coincidenti: " + s1); } else if( d>0 ) { s1=(-b - Math.sqrt( d ))/(2*a); s2=(-b + Math.sqrt( d ))/(2*a); System.out.println("Soluzioni reali: " + s1 + " " + s2); } else { System.out.println("Soluzioni complesse"); } } }
23
Calcolo del Massimo Comun Divisore (MCD)
Vogliamo realizzare un metodo pubblico statico che, presi come parametri due interi positivi x ed y, calcoli e restituisca il massimo comun divisore mcd(x,y). Es.: mcd(12, 8) = 4 mcd(12, 6) = 6 mcd(12, 7) = 1
24
MCD: sfruttando direttamente la definizione
Cerchiamo il massimo tra i divisori comuni di x ed y Osservazione: 1 <= mcd(x,y) <= min(x,y) Quindi, si provano i numeri compresi tra 1 e min(x,y). Conviene iniziare da min(x,y) e scendere verso 1. Appena si è trovato un divisore comune di x ed y, lo si restituisce.
25
MCD usando il metodo di Euclide
Il metodo di Euclide permette di ridursi più velocemente a numeri più piccoli, sfruttando la seguente proprietà: mcd(x,y) = x (oppure y), se x = y mcd(x,y) = mcd(x-y, y), se x > y mcd(x,y) = mcd(x, y-x), se x < y Questa proprietà si dimostra facilmente, mostrando che i divisori comuni di x e y sono anche divisori di x-y (nel caso in cui x>y). Es. mcd(12,8) = mcd(12-8,8) = mcd(4, 8-4) = 4 Per ottenere un algoritmo si applica ripetutamente il procedimento fino a che non si ottiene che x=y.
26
Informazioni Ricevimento: E-mail: Web: Mailing-list:
da concordare con lo studente a molte domande possiamo rispondere per usate anche la mailing-list del corso Raffaele Nicolussi Stefano Paolozzi Web: Mailing-list: istruzioni sul sito (in allestimento)
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.