Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: istruzioni I/O • Esercizio 1.0 modificare il programma precedente: import java.util.*; // libreria…utilità di sistema! public class esempio1_0{ public static void main(String[] args) { System.out.print("Benvenuto nel mondo Java !"); } } In modo tale che stampi a video la seguente stringa Benvenuto nel mondo Java ! Fondamenti di Informatica 32 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: istruzioni I/O • Esempio 1.1 stampare il messaggio ”Inserire un numero con la virgola” a video, memorizzare in una variabile il valore inserito dall'utente e stampare di nuovo a video il valore inserito dall'utente. Istruzioni di output System.out.println("Stringa da stampare"); System.out.print("Stringa da stampare"); Istruzioni di input Scanner sc = new Scanner(System.in); System.out.println("Inserire un numero intero"); a = sc.nextFloat(); // nel caso di numero con la virgola Fondamenti di Informatica 33 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: istruzioni I/O • Esempio 1.1: richiedere un numero e stamparlo START Stampa messaggio chiedendo all’utente l’inserimento di un intero leggi a Stampa messaggio visualizzando il numero inserito END Fondamenti di Informatica 34 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: istruzioni I/O import java.util.*; // libreria…utilità di sistema! public class esempio1-1{ public static void main(String[] args) { int a; Scanner sc = new Scanner(System.in); System.out.println("Inserire un numero intero"); a= sc.nextInt(); System.out.println("Il numero e'" + a); } } Fondamenti di Informatica 35 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: istruzioni I/O • Esercizio 1.1 modificare il programma precedente, in modo tale che richieda tre numeri, due interi e uno con la virgola(float), e li stampi a video. Fondamenti di Informatica 36 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: istruzioni I/O import java.util.*; // libreria…utilità di sistema! public class esempio1-1{ public static void main(String[] args) { int a,b; float c, tot; Scanner sc = new Scanner(System.in); System.out.println("Inserire un numero intero"); a= sc.nextInt(); System.out.println("Inserire un numero intero"); b= sc.nextInt(); System.out.println("Inserire un numero in virgola mobile"); c= sc.nextFloat(); System.out.println("Il primo numero e'" + a); System.out.println("Il secondo numero e'" + b); System.out.println("Il terzo numero e'" + c); } } Fondamenti di Informatica 37 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: istruzioni I/O • Esempio 1.2 chiedere tre numeri da tastiera, due interi e uno con la virgola (float), usando le istruzioni Java: Scanner sc = new Scanner(System.in); System.out.println("Inserire un numero intero"); a= sc.nextInt(); // nel caso di numero intero b= sc.nextFloat(); // nel caso di numero con la virgola Effettuare poi la somma dei tre numeri (due interi e un numero con la virgola). Infine, stampare il risultato a video (standard output) System.out.print("La somma vale: Fondamenti di Informatica "+tot); 38 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: istruzioni I/O • Esempio 1.2: somma tra due numeri interi e un numero con la virgola int a,b float c float tot leggi b START Stampa messaggio chiedendo all’utente l’inserimento di un numero con la virgola Stampa messaggio chiedendo all’utente l’inserimento di un intero leggi c leggi a tot = a+b+c Stampa messaggio chiedendo all’utente l’inserimento di un intero Fondamenti di Informatica Stampa tot END 39 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: istruzioni I/O // legge due numeri interi e un numero con la virgola // tastiera ed effettua la somma import java.util.*; da // libreria…utilità di sistema! public class esempio1-2{ public static void main(String[] args) { int a,b; float c, tot; Scanner sc = new Scanner(System.in); System.out.println("Inserire un numero intero"); a= sc.nextInt(); System.out.println("Inserire un numero intero"); b= sc.nextInt(); System.out.println("Inserire un numero in virgola mobile"); c= sc.nextFloat(); tot = a+b+c; System.out.print("La somma vale: "+tot); } } Fondamenti di Informatica 40 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: strutture di controllo Strutture di controllo Fondamenti di Informatica 41 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: strutture di controllo • Strutture di controllo: if - else if (a>b) { System.out.print(a); } else { System.out.print(b); } if (K>10) { K = K+1; } Fondamenti di Informatica si a>b Stampa a si no Stampa b K>10 no K=K+1 42 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: strutture di controllo • Strutture di controllo: while int x=0; int y = 2; while(x<4) { x ++; y = y*y; } System.out.print(y); no x<4 si x++ y=y*y Stampa y Fondamenti di Informatica 43 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: strutture di controllo • Strutture di controllo: do while int x=0; int y = 2; do { x ++; y = y*y; } while(x<4); System.out.print(y); x++ y=y*y x<4 si no Stampa y Fondamenti di Informatica 44 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: strutture di controllo • Strutture di controllo: cicli definiti I=0 for(int I=0; I<10; I++) { System.out.println(I); } no I<10 si NB: non è diverso da un while Stampa I I++ Fondamenti di Informatica 45 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: strutture di controllo • Strutture di controllo: selezione multipla int choice= sc.nextInt(); switch (choice) { case 1: … break; case 2: … break; . . . default: … break; choice ==1 …. choice ==2 …. caso default } Fondamenti di Informatica 46 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: strutture di controllo • Esempio 2.0: int voto START Stampa messaggio chiedendo all’utente l’inserimento di un voto leggi voto voto >= 60? si Stampa “promosso” END Fondamenti di Informatica 47 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: strutture di controllo // legge un numero intero e stampa il numero più grande import java.util.*; // libreria…utilità di sistema! public class esempio2-0{ public static void main(String[] args) { int voto; Scanner sc = new Scanner(System.in); System.out.println("Inserire un voto"); a= sc.nextInt(); if (voto >= 60) { System.out.print(“Promosso“); } } } Fondamenti di Informatica 48 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: strutture di controllo • • Esercizio 2.0: completare il programma precedente in modo che se il voto e' >= 60 venga stampata la scritta “Promosso”, altrimenti venga stampata la scritta “Bocciato”. Fondamenti di Informatica 49 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: strutture di controllo • Esercizio 2.0: int voto START Stampa messaggio chiedendo all’utente l’inserimento di un voto leggi voto no voto >= 60? Stampa “Bocciato” Fondamenti di Informatica si Stampa “Promosso” END 50 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: strutture di controllo • • Esempio 2.1: confronto tra due numeri interi viene richiesto all'utente di inserire due numeri interi a,b; si effettua il controllo per verificare quale dei due numeri e' maggiore e si restituisce la differenza positiva tra i due numeri. Fondamenti di Informatica 51 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: strutture di controllo • int a,b Esempio 2.1: confronto tra due numeri interi START si Stampa messaggio chiedendo all’utente l’inserimento di un intero leggi a Stampa messaggio chiedendo all’utente l’inserimento di un intero a>b? tot = a - b; no tot = b - a; Stampa tot END leggi b Fondamenti di Informatica 52 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: strutture di controllo // legge due numeri interi e stampa la differenza positiva import java.util.*; // libreria…utilità di sistema! public class Esempio2_1 { public static void main(String[] args) { int a,b,tot; Scanner sc = new Scanner(System.in); System.out.println("Inserire un numero intero"); a= sc.nextInt(); System.out.println("Inserire un numero intero"); b= sc.nextInt(); if (a>b) { tot = a-b; } else { tot = b-a; } System.out.print("La differenza positiva tra i due numeri è: " + tot); } } Fondamenti di Informatica 53 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: strutture di controllo • • Esercizio 2.2: confronto tra due numeri interi viene richiesto all'utente di inserire due numeri interi a,b; si effettua il controllo per verificare quale dei due numeri e' maggiore e si restituisce la differenza positiva tra i due numeri. DA SVOLGERE UTILIZZANDO L'ISTRUZIONE DI CONTROLLO “if then” Fondamenti di Informatica 54 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: strutture di controllo • • Esercizio 2.3: inversione di una stringa viene richiesto all'utente di inserire una stringa; la stringa data in input deve essere ricopiata, invertendola, in una nuova variabile di tipo stringa. La stringa di output deve cioe' avere come primo carattere l'ultimo carattere della stringa di input e cosi' via per tutti gli altri caratteri. Fondamenti di Informatica 55 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: strutture di controllo • Esempio 2.3: inversione di una stringa String sin, sout i=0 START i<lung sin stampa sout sout = vuota END Stampa messaggio chiedendo all’utente l’inserimento di una stringa incolla in testa a sout carattere i-mo sin leggi sin i=i+1 Fondamenti di Informatica 56 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: strutture di controllo // inverte una stringa import java.util.*; public class Esempio2_3{ public static void main(String[] args) { String sin, sout; sout=""; Scanner sc = new Scanner(System.in); System.out.println("Inserire una stringa arbitraria"); sin= sc.nextLine(); for (int i=0; i<sin.length();i++) { sout = sin.charAt(i)+sout; } System.out.print(sout); } } Fondamenti di Informatica 57 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: strutture di controllo • • Esempio 2.4: si chiede all'utente una stringa di input. Deve essere restituita una nuova stringa di output che contiene la stessa stringa di input a cui sono state eliminate le vocali, sia esse maiuscole o minuscole. Per semplicita' non si considerano le vocali accentati. Suggerimento: creare una stringa ad uso interno che contenga tutte le vocali: aeiouAEIOU Fondamenti di Informatica 58 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: strutture di controllo • Esempio 2.4: conteggio ed eliminazione delle vocali di una stringa int contatore String sin, sout, vocali i=0 START no si END si Stampa messaggio chiedendo all’utente l’inserimento di una stringa leggi sin stampa sout e contatore i<lung sin vocali = “aeiouAEIOU” sout = vuota contatore = 0 carattere i-mo sin!= vocale? incolla in coda a sout carattere i-mo sin no contatore ++ i=i+1 Fondamenti di Informatica 59 Università di Sassari Dipartimento PolComIng - A.A. 2015-2016 Fondamenti del linguaggio: strutture di controllo // conta ed elimina le vocali di una stringa import java.util.*; public class Esempio2_3{ public static void main(String[] args) { String vocali, sin, sout; int contatore=0; vocali = "aeiouAEIOU"; sout=""; Scanner sc = new Scanner(System.in); System.out.println("Inserire una stringa arbitraria"); sin= sc.nextLine(); for (int i=0; i<sin.length();i++) { if (vocali.indexOf(sin.charAt(i))== -1) { sout = sout+sin.charAt(i);} else {contatore++;} } System.out.println("contate ed eliminate "+ contatore + " vocali"); System.out.print(sout); } } Fondamenti di Informatica 60