Switch

Scrivi il programma ContaArgs che stampa a terminale il numero di argomenti inseriti da linea di comando:

>java ContaArgs
Hai inserito 0 argomenti


>java ContaArgs a
Hai inserito 1 argomento


>java ContaArgs a b c b f d 
Hai inserito 6 argomenti

Scrivi il programma HelloAll che si comporta nel modo seguente:

  • Se non vengono inseriti argomenti, stampa a terminale “Ciao a tutti!”,
  • Se viene inserito 1 argomento (<nome>), stampa “Ciao <nome>!!”,
  • Se vengono inseriti 2 argomenti (<nome> <cognome>), stampa “Buongiorno <cognome> <nome>.

Ad esempio per due argomenti "Michele Brambilla" stampa:

Buongiorno Brambilla Michele

Invece per un solo argomento "Luigi" l’output sarà:

Ciao Luigi!!

E se non vengono inseriti argomenti:

Ciao a tutti!

Scrivere un programma interattivo che chiede all’utente di inserire un numero intero e poi disegna un omino stilizzato di dimensione variabile:

Per dimensione pari a 1 viene stampato un omino con il busto composto da una sola pipe ('|'):

Insert size: 1
\o/
 |
/ \

Se l’utente inserisce 2:

Insert size: 2
\o/
 |
 |
/ \

Per 3:

Insert size: 3
\o/
 |
 |
 |
/ \

Per qualsiasi altro valore intero, il busto sarà composto a 4 segmenti:

Insert size: 100
\o/
 |
 |
 |
 |
/ \

Se il valore inserito non è intero, il programma stampa un messaggio di errore e ripete la richiesta:

Insert size: big
Invalid value "big"
Insert size: small
Invalid value "small"
Insert size: ciao miao bau
Invalid value "ciao miao bau"
Insert size: -1
\o/
 |
 |
 |
 |
/ \

Scrivi il programma Unvowelator che riceve degli argomenti da linea di comando e poi li stampa privandoli delle vocali.

Ad esempio per gli argomenti "In una tiepida notte estiva." il programma stampa:

n n tpd ntt stv.

Scrivi un programma che, dato il numero di argomenti da linea di comando (N), stampa a terminale: “N è multiplo di 5” oppure “N non è multiplo di 5”.

Scrivi il programma Multipli5 che, dato il numero di argomenti da linea di comando (N), stampa a terminale: "<N> è multiplo di 5" oppure "<N> non è multiplo di 5".

Esempio:

>java Multipli5 a b c
3 non è multiplo di 5

>java PariDispari a d v e t f s t u t 
10 è multiplo di 5

Scrivi il programma PariDispari che, dato il numero di argomenti da linea di comando (N), stampa a terminale: "<N> è pari" oppure "<N> è dispari".

Esempio:

>java PariDispari a b c
3 è dispari

>java PariDispari a d v f
4 è pari

Scrivi il programma HelloDrawing che funziona nel modo seguente:

  • Se non vengono inseriti argomenti, disegna a terminale un quadrato,
  • Se viene inserito 1 argomento stampa un triangolo,
  • Se vengono inseriti 2 (o più) argomenti stampa un omino.

Ad esempio:

>java HelloDrawing
* * *
*   *
* * * 


>java HelloDrawing a
  *
 * *
* * *

>java HelloDrawing a a
 o
/|\
/ \

Scrivere un programma interattivo che chiede all’utente di inserire un numero intero e poi disegna un gruppo di omini stilizzati nella quantità richiesta:

Per dimensione pari a 1 viene stampato un omino:

Insert group size: 1
\o/
 |
/ \

Se l’utente inserisce 2 vengono stampati 2 omini:

Insert group size: 2
\o/ \o/ 
 |   |  
/ \ / \ 

Per 3:

Insert group size: 3
\o/ \o/ \o/ 
 |   |   |  
/ \ / \ / \

E via dicendo. Se il valore inserito non è intero, il programma stampa un messaggio di errore e ripete la richiesta:

Insert group size: many
Invalid value "many"
Insert group size: too many
Invalid value "too many"
Insert group size: 10
\o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ \o/ 
 |   |   |   |   |   |   |   |   |   |  
/ \ / \ / \ / \ / \ / \ / \ / \ / \ / \ 

Scrivi il programma HelloPeople che riceve N nomi come argomenti da linea di comando e poi stampa altrettanti omini stilizzati. Sotto ogni omino compare il relativo nome.

Ad esempio per "Luigi Michele" il programma stampa due omini:

\o/     \o/     
 |       |      
/ \     / \     
Luigi   Michele

Invece per "Simone Luigi Pincopallino Michele Joe":

\o/          \o/          \o/          \o/          \o/          
 |            |            |            |            |           
/ \          / \          / \          / \          / \          
Simone       Luigi        Pincopallino Michele      Joe

Se non vengono forniti argomenti, il programma termina senza stampare niente.

Scrivi il programma Java ConvertitoreNota che converte la nota ([1.0;6.0]) passata come primo argomento, in un voto espresso tramite una lettera (A, B, C, …). La deve avvenire conversione secondo i criteri seguenti:

  • per note maggiori o uguali a 1 il voto è E
  • se la nota è maggiore o uguale a 2.5 il voto è D
  • se la nota è maggiore o uguale a 3.5 il voto è C
  • se la nota è maggiore o uguale a 4.5 il voto è B
  • se la nota è maggiore o uguale a 5.5 il voto è A

Devi aiutare il fattore John a catturare la sua gallina. Il fattore e la gallina si trovano in un campo di 3 righe e tre colonne. La cella in alto a sinistra si trova alla riga 0 e alla colonna 0:

👷🍃🍃
🍃🍃🍃
🍃🍃🍃

La cella in basso a sinistra si trova alla riga 2 e alla colonna 0:

🍃🍃🍃
🍃🍃🍃
👷🍃🍃

La cella in basso a destra si trova alla riga 2 e alla colonna 2:

🍃🍃🍃
🍃🍃🍃
🍃🍃👷

Il tuo programma riceve 4 numeri interi come argomenti da linea di comando, nell’ordine:

  • la coordinata della riga in cui si trova il fattore
  • la coordinata della colonna in cui si trova il fattore
  • la coordinata della riga in cui si trova la gallina
  • la coordinata della colonna in cui si trova la gallina

Il tuo programma deve stampare la direzione in cui il fattore si deve spostare per prendere la gallina:

  • "N": NORD, il fattore si sposta verso l’alto
  • "S": SUD, il fattore si sposta verso il basso
  • "W": WEST, il fattore si sposta verso sinistra
  • "E": EAST, il fattore si sposta verso destra

Esempio

Se gli argomenti forniti sono [1,1,0,1] significa che il fattore si trova al centro del campo (riga 1, colonna 1) e la gallina si trova nella riga in alto (0) e nella colonna centrale (1):

🍃🐔🍃
🍃👷🍃
🍃🍃🍃

La gallina si trova sopra al fattore, per catturarla il fattore dovrà spostarsi verso NORD, quindi il tuo programma deve stampare "N".

Scrivi la classe StringTool contenente i metodo seguenti:

longest

public static String longest(String a, String b)

Ritorna la stringa più lunga tra a, b. Ad esempio longest("cane","gatto") ritorna la stringa gatto, mentre longest("abcdef","gatto") ritorna abcdef.

alternate

public static String alternate(String a, String b, int times)

Ritorna una stringa di testo contenente le stringhe a e b alternate times volte. Ad esempio alternate("*","-",5) ritorna la stringa *-*-*-*-*-, mentre alternate("va","Ja",2) ritorna la stringa vaJavaJa.

concatenate

public static String concatenate(int a, int b, int c, char separator, char terminator)

Ritorna una stringa contenente l’elenco dei valori dei parametri a, b e c. I valori sono separati dal carattere separator e la lista è terminata dal carattere terminator. Ad esempio concatenate(1,2,3,';','.') ritorna la stringa 1;2;3., mentre concatenate(10,20,30,'_','!') ritorna la stringa 10_20_30!.w

Scrivi la classe AdvancedStringTool contenente i metodi desctitti in seguito:

isLetter

public static boolean isLetter(char c)

Ritorna true se il carattere c è una lettera, mentre ritorna false In caso contrario.

isConsonant

public static boolean isConsonant(char c)

Ritorna true se il carattere c è una consonante, false altrimenti.

isVowel

public static boolean isVowel(char c)

Ritorna true se c è una vocale, mentre ritorna false in tutti gli altri casi.

countVowels

public static int countVowels(String text)

Ritorna il numero di vocali presenti nella stringa text. Ad esempio countVowels("NOOOOOO") ritorna 6.

countConsonants

public static int countConsonants(String text)

Tale metodo ritorna il numero di consonanti presenti nella stringa text. Ad esempio countConsonants("NOOOOOO") ritorna 1.

vowelize

public static String vowelize(String text)

Ritorna una stringa contenente solamente le vocali della stringa text. Ad esempio vowelize("casa") ritorna "aa", mentre vowelize("lunotto") ritorna "uoo".

isAlternative

public static boolean isAlternative(String s)

Tale metodo ritorna true se la stringa s contiene consonanti e vocali alternate (es. isAlternative("patata") ritorna true).

countInString

public static int countInString(String text, char c)

Tale metodo conta quante volte il carattere c è presente nella stringa text.

isAnagram

public static boolean isAnagram(String firstWord, String secondWord)

Ritorna true se firstWord è un anagramma di secondWord, altrimenti ritorna false. Esempio isAnagram("calendario","locandiera") ritorna true.